|
̾??natm —
?ͥ??ƥ??֥⡼?? ATM
?ץ??ȥ?????
????BSD ATM ???եȥ??????ϥͥ??ƥ??֥⡼?? ATM ?ץ??ȥ????ؤ??ޤߡ? AAL0 ?? AAL5 ?β??۲??? (?С??????륵?????å?) ?ؤΥ????åȥ??٥??Υ????????????ޤ??? ?ܥץ??ȥ????ؤ?ͭ???ˤ????ˤϡ??????ͥ??????ե???????options NATM NATM APINATM ?ؤǤϲ??۲????????ꤹ?뤿????struct sockaddr_natm ?????Ѥ??ޤ?:
struct sockaddr_natm { u_int8_t snatm_len; /* Ĺ?? */ u_int8_t snatm_family; /* AF_NATM */ char snatm_if[IFNAMSIZ]; /* ???ե?????̾ */ u_int16_t snatm_vci; /* vci */ u_int8_t snatm_vpi; /* vpi */ }; VPI 0, VCI 201 ?β??۲????? AAL5 ???ͥ??????????????????ˤϼ????ͤˤ??ޤ?: struct sockaddr_natm snatm; int s, r; s = socket(AF_NATM, SOCK_STREAM, PROTO_NATMAAL5); /* ??: PROTO_NATMAAL0 ?? AAL0 ?Ǥ? */ if (s < 0) { perror("socket"); exit(1); } bzero(&snatm, sizeof(snatm)); snatm.snatm_len = sizeof(snatm); snatm.snatm_family = AF_NATM; sprintf(snatm.snatm_if, "en0"); snatm.snatm_vci = 201; snatm.snatm_vpi = 0; r = connect(s, (struct sockaddr *)&snatm, sizeof(snatm)); if (r < 0) { perror("connect"); exit(1); } /* ?ʾ??? s ?? ATM ????³?????ޤ???! */
?????? NATM ????????Ū?ˡ?NATM ?ץ??ȥ????ؤ? ???Υ????ƥ????????ƤΥ????ƥ??֤ʲ??۲????Υꥹ?Ȥ?natm_pcbs ???ݻ????Ƥ??ޤ???
?????ϡ?NATM ?? IP
?????۲??????Ǿ??ͤ??뤳?Ȥ??ɤ??????ˡ?
???λ? IP ?ǻ??????β??????ޤߤޤ???
???۲????Υǡ?????????ͭ???????????ȡ? NATM ?ץ??ȥ????ؤϥץ??ȥ????????֥??å??Υ??ɥ쥹?? ???? “?ϥ??ɥ?” ?Ȥ??ƥɥ饤?Ф??Ϥ??ޤ??? ???ϥǡ????????夹???ȡ? ?ɥ饤?Ф?Ŭ?ڤʼ????ϥ??ɥ??ȶ??˥ǡ??????֤??ޤ??? NATM ?ؤϡ? ?ץ??ȥ????????֥??å??θ????Υ????Хإåɤ??뤿???ˡ? ???ξ????????Ѥ??ޤ??? ?????ˤ??ꡢATM ?????˥ǡ??????ǥޥ????ץ쥯?????Ƥ??????̤? ???Ѥ??뤳?Ȥ??Ǥ??ޤ??? ????¾?? NATM ???????桹?ϸ??ߥӥǥ??????Хץ????????Ȥ˼????Ȥ??Ǥ??ꡢ ???ι????ΰ????Ȥ??Ƥ??Υɥ饤?Ф????Ѥ??Ƥ??ޤ??? ?桹?μ긵?ˤϲ桹?κ??????? MMX ?ȸƤФ????ǥХ??????????ޤ??? ?ӥǥ????????? MMX ????³???ơ??ӥǥ????Ϥ? AAL0 ?? ???륹?ȥ???Ȥ????????????뤳?Ȥ??Ǥ??ޤ??? ???????Υ??ȥ???Ϥ??ʤ?®?? (?ºݤ??????̤Ǥ?!)?? ?ܥɥ饤?Ф??̾??? AAL0 ?ؤν????Ǥ??н??Ǥ??ޤ??? (???????ϡ??????? mbuf ???ȤΥ????ץꥱ?????????? ?????????褦?Ȼ??ߤ??Ǥ??礦???????????????å??ؤ????μ??? ?ǡ??????ȥ???ν????ˤĤ??Ƥ????ʤ??????狼???ޤ?)?? ?????????????褹?뤿?ᡢ?桹?? “raw” ?⡼?ɤ????????ޤ????? ?????ϡ??????ɤ???????̤?????? AAL0 ?ξ????????礭?ʥǡ????? ?????ޤ??ؤȽ??????ޤ??? ?????å??ؤ????????ʿ????뤳??̵???????Υǡ??????ꥢ?륿?????? ?ǥ?????????¸???뤳?Ȥ??Ǥ??ޤ??? ?????ˤ??????Υǡ??????ˤ? RBD (receive buffer descriptors: ?????Хåե????һ?) ?ڤӥ????إå????ޤޤ??Ƥ??ޤ????? ?????ϼ??????߸??˽???ʤ????Фʤ??ޤ????? “raw” ?⡼?ɤ?ͭ?????????ˤϼ????ͤ? ioctl ?????Ѥ??ޤ?:int size = 4000; /* bytes */ ret = ioctl(s, SIOCRAWATM, (caddr_t)&size); ???????Ǥϡ??̾??? 48 ?Х??ȤΤ????ޤ??ǤϤʤ???4000 ?Х??Ȥ? ?????ޤ??? AAL0 ?Υǡ??????????????褦?ɥ饤?Ф??????ޤ??? ???餫?ˤ????Ͼ????ƻ?????ˡ?ǤϤ????ޤ????? ?桹?θ??ߤΥ??ץꥱ?????????ˤ?ɬ?פʤ??ΤǤ??? ???衢Ŭ?????礭?? AAL5 ?Υե졼???ǥӥǥ????????? ?ǡ??????????Ԥ????뤳?Ȥ????Ԥ??Ƥ??ޤ??? ?ٹ?NATM ?ץ??ȥ????Υ??ݡ??Ȥ? ATM ?ץ??ȥ????γ?ȯ?ˤ??? ?ѹ??????䤹???Ǥ??? ?桼???ϸ??ߤμ????ξܺ٤˰?¸?????٤??ǤϤʤ??? ?ष?????????ݡ??Ȥ??줿?????ӥ??˰?¸???٤??Ǥ?????Ϣ????en(4)????1996 ǯ??NetBSD ?ˤ????ơ?Washington University ?? Chuck Cranor ?? NATM ?ץ??ȥ????ؤ? EN ATM ?ɥ饤?Фȶ??˼??????ޤ?????
Visit the GSP FreeBSD Man Page Interface. |