OSDN Git Service

(split) Import translated manuals from JM CVS Repository.
[linuxjm/LDP_man-pages.git] / release / man7 / packet.7
1 .\" This man page is Copyright (C) 1999 Andi Kleen <ak@muc.de>.
2 .\" Permission is granted to distribute possibly modified copies
3 .\" of this page provided the header is included verbatim,
4 .\" and in case of nontrivial modification author and date
5 .\" of the modification is added to the header.
6 .\" $Id: packet.7,v 1.12 2001/06/19 07:07:38 argrath Exp $
7 .\"
8 .\" Japanese Version Copyright (c) 1999 NAKANO Takeo all rights reserved.
9 .\" Translated 1999-12-06, NAKANO Takeo <nakano@apm.seikei.ac.jp>
10 .\" Updated 2001-02-13, Kentaro Shirakata <argrath@ub32.org>
11 .\" Updated 2005-02-21, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
12 .\"
13 .\"WORD         physical layer          ÊªÍýÁØ
14 .\"WORD         link level header(s)    ¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À
15 .\"WORD         phyxical header(s)      ÊªÍý¥Ø¥Ã¥À
16 .\"WORD         effective user id       ¼Â¸ú¥æ¡¼¥¶¡¼ ID
17 .\"WORD         capability              ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£
18 .\"WORD         pending error           Ãٱ䥨¥é¡¼
19 .\"WORD         promiscuous mode        Ìµº¹Ê̥⡼¥É
20 .\"
21 .TH PACKET  7 2008-08-08 "Linux" "Linux Programmer's Manual"
22 .SH Ì¾Á°
23 packet, AF_PACKET \- ¥Ç¥Ð¥¤¥¹¥ì¥Ù¥ë¤Î¥Ñ¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹
24 .SH ½ñ¼°
25 .nf
26 .B #include <sys/socket.h>
27 .br
28 .B #include <netpacket/packet.h>
29 .br
30 .B #include <net/ethernet.h>     /* the L2 protocols */
31 .sp
32 .BI "packet_socket = socket(AF_PACKET, int " socket_type ", int "protocol );
33 .fi
34 .SH ÀâÌÀ
35 packet ¥½¥±¥Ã¥È¤Ï¡¢¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð (OSI ¥ì¥¤¥ä 2) ¥ì¥Ù¥ë¤Ç
36 À¸¤Î¥Ñ¥±¥Ã¥È (raw packet) ¤òÁ÷¼õ¿®¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£
37 packet ¥½¥±¥Ã¥È¤ò»È¤¦¤È¡¢¥æ¡¼¥¶¡¼¶õ´Ö¤ÇʪÍýÁؤξå¤Ë
38 ¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤ò¼ÂÁõ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
39
40 .I socket_type
41 ¤Ë¤Ï
42 .B SOCK_RAW
43 ¤È
44 .B SOCK_DGRAM
45 ¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¡£
46 .B SOCK_RAW
47 ¤Ï¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À¤ò´Þ¤à raw ¥Ñ¥±¥Ã¥È¤ò¡¢
48 .B SOCK_DGRAM
49 ¤Ï¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À¤¬ºï½ü¤µ¤ì¤¿²Ã¹©ºÑ¤ß¥Ñ¥±¥Ã¥È¤ò¼¨¤¹¡£
50 ¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À¾ðÊó¤Ï
51 .I sockaddr_ll
52 ¤Ç¶¦Ä̤Υե©¡¼¥Þ¥Ã¥È¤ÇÆþ¼ê¤Ç¤­¤ë¡£
53 .I protocol
54 ¤Ë¤Ï IEEE 802.3 ¥×¥í¥È¥³¥ëÈÖ¹æ¤ò
55 ¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Ç»ØÄꤹ¤ë¡£
56 »ØÄê¤Ç¤­¤ë¥×¥í¥È¥³¥ë¤Î¥ê¥¹¥È¤Ï¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë
57 .I <linux/if_ether.h>
58 ¤ò»²¾È¡£¥×¥í¥È¥³¥ë¤ò
59 .B htons(ETH_P_ALL)
60 ¤Ë¤¹¤ë¤È¡¢Á´¤Æ¤Î¥×¥í¥È¥³¥ë¤¬¼õ¿®¤µ¤ì¤ë¡£
61 ³°Éô¤«¤éÍ褿¥Ñ¥±¥Ã¥È¤Î¤¦¤Á»ØÄꤷ¤¿¥×¥í¥È¥³¥ë¤Î¤â¤Î¤Ï¡¢
62 ¥«¡¼¥Í¥ë¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤ËÅϤµ¤ì¤ëÁ°¤ÎÃʳ¬¤Ç¡¢
63 packet ¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤ë¡£
64
65 packet ¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤Ç¤­¤ë¤Î¤Ï¡¢
66 ¼Â¸ú¥æ¡¼¥¶¡¼ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢
67 .B CAP_NET_RAW
68 ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹¤À¤±¤Ç¤¢¤ë¡£
69
70 .B SOCK_RAW
71 ¥Ñ¥±¥Ã¥È¤Ç¤Ï¡¢¥Ñ¥±¥Ã¥È¤ò¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤È¼õ¤±ÅϤ·¤¹¤ëºÝ¡¢
72 ¥Ñ¥±¥Ã¥È¥Ç¡¼¥¿¤ËÊѹ¹¤¬¹Ô¤ï¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£
73 ¥Ñ¥±¥Ã¥È¤Î¼õ¿®»þ¤Ë¤Ï¡¢¥¢¥É¥ì¥¹¤Î²òÀϤÀ¤±¤Ï¹Ô¤ï¤ì¡¢
74 ɸ½àŪ¤Ê
75 .I sockaddr_ll
76 ¥¢¥É¥ì¥¹¹½Â¤ÂΤËÅϤµ¤ì¤ë¡£¥Ñ¥±¥Ã¥È¤ÎÁ÷¿®»þ¤Ë¤Ï¡¢¥æ¡¼¥¶¤¬»ØÄꤹ¤ë
77 ¥Ð¥Ã¥Õ¥¡¤ËʪÍýÁؤΥإåÀ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£
78 ¥Ñ¥±¥Ã¥È¤Ï¤½¤Î¤Þ¤Þ½¤Àµ¤ò¼õ¤±¤º¤Ë¡¢¹Ô¤­À襢¥É¥ì¥¹¤«¤é·èÄꤵ¤ì¤ë
79 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥É¥é¥¤¥Ð¤Ë¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤ë¡£
80 ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ë¤è¤Ã¤Æ¤Ï¡¢Â¾¤Î¥Ø¥Ã¥À¤ò¾ï¤ËÄɲ乤ë¤â¤Î¤â¤¢¤ë¡£
81 .B SOCK_RAW
82 ¤Ï Linux 2.0 ¤Î obosolete ¤Ê
83 .B AF_INET/SOCK_PACKET
84 ¤È»÷¤Æ¤¤¤ë¤¬¡¢¸ß´¹À­¤¬¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£
85
86 .B SOCK_DGRAM
87 ¤Ï¤ä¤ä¹â°Ì¤Î¥ì¥Ù¥ë¤ÇÆ°ºî¤¹¤ë¡£ÊªÍý¥Ø¥Ã¥À¤Ï¡¢¥Ñ¥±¥Ã¥È¤¬¥æ¡¼¥¶¡¼¤Ë
88 ÅϤµ¤ì¤ëÁ°¤Ëºï½ü¤µ¤ì¤ë¡£
89 .B SOCK_DGRAM
90 ¤Î packet ¥½¥±¥Ã¥È¤òÄ̤·¤ÆÁ÷¤é¤ì¤ë¥Ñ¥±¥Ã¥È¤Ï¡¢
91 .I sockaddr_ll
92 ¤Î¹Ô¤­À襢¥É¥ì¥¹¤Î¾ðÊó¤Ë´ð¤Å¤­¡¢Å¬ÀÚ¤ÊʪÍýÁؤΥإåÀ¤¬Éղ䵤ì¤Æ¤«¤é¡¢
93 ¥­¥å¡¼¤ËÁ÷¤é¤ì¤ë¡£
94
95 ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢»ØÄꤷ¤¿¥×¥í¥È¥³¥ë·¿¤Î¥Ñ¥±¥Ã¥È¤Ï¤¹¤Ù¤Æ packet
96 ¥½¥±¥Ã¥È¤ËÁ÷¤é¤ì¤ë¡£ÆÃÄê¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤«¤é¤Î¥Ñ¥±¥Ã¥È¤À¤±¤ò
97 ¼èÆÀ¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢
98 .I struct sockaddr_ll
99 ¤Ë¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤Æ
100 .BR bind (2)
101 ¤ò¸Æ¤Ó¡¢ packet ¥½¥±¥Ã¥È¤ò¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë·ë¤ÓÉÕ¤±¤ë (¥Ð¥¤¥ó¥É¤¹¤ë)¡£
102 ¥Ð¥¤¥ó¥É¤ÎºÝ¤Ë¤Ï¡¢¥¢¥É¥ì¥¹¥Õ¥£¡¼¥ë¥É¤Î¤¦¤Á
103 .I sll_protocol
104 ¤È
105 .I sll_ifindex
106 ¤À¤±¤¬ÍѤ¤¤é¤ì¤ë¡£
107
108 .BR connect (2)
109 Áàºî¤Ï packet ¥½¥±¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
110
111 .B MSG_TRUNC
112 ¥Õ¥é¥°¤¬
113 .BR recvmsg (2),
114 .BR recv (2),
115 .BR recvfrom (2)
116 ¤ËÅϤµ¤ì¤ë¤È¡¢ (¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤è¤êÂ礭¤«¤Ã¤¿¤È¤·¤Æ¤â) ¾ï¤Ë¼ÂºÝ¤ËÄÌ¿®¤µ¤ì¤¿
117 ¥Ñ¥±¥Ã¥È¤ÎŤµ¤¬ÊÖ¤µ¤ì¤ë¡£
118 .SS ¥¢¥É¥ì¥¹¤Î¥¿¥¤¥×
119 sockaddr_ll ¤Ï¥Ç¥Ð¥¤¥¹¤Ë°Í¸¤·¤Ê¤¤ÊªÍýÁؤΥ¢¥É¥ì¥¹¤Ç¤¢¤ë¡£
120
121 .in +4n
122 .nf
123 struct sockaddr_ll {
124     unsigned short sll_family;   /* ¾ï¤Ë AF_PACKET */
125     unsigned short sll_protocol; /* ÊªÍýÁؤΥץí¥È¥³¥ë */
126     int            sll_ifindex;  /* ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ÈÖ¹æ */
127     unsigned short sll_hatype;   /* ¥Ø¥Ã¥À¼ïÊÌ */
128     unsigned char  sll_pkttype;  /* ¥Ñ¥±¥Ã¥È¼ïÊÌ */
129     unsigned char  sll_halen;    /* ¥¢¥É¥ì¥¹¤ÎŤµ */
130     unsigned char  sll_addr[8];  /* ÊªÍýÁؤΥ¢¥É¥ì¥¹ */
131 };
132 .fi
133 .in
134
135 .I sll_protocol
136 ¤Ïɸ½àŪ¤Ê¥¤¡¼¥µ¥Í¥Ã¥È¥×¥í¥È¥³¥ë¤Î¥¿¥¤¥×¤Ç¡¢
137 ¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Çµ­½Ò¤¹¤ë¡£
138 ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë
139 .I <linux/if_ether.h>
140 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
141 ¤³¤ì¤¬¤³¤Î¥½¥±¥Ã¥È¤Î¥×¥í¥È¥³¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¡£
142
143 .I sll_ifindex
144 ¤Ï¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î interface index ¤Ç¤¢¤ë
145 .RB ( netdevice (7)
146 ¤ò»²¾È)¡£
147 0 ¤Ï (¥Ð¥¤¥ó¥É¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë)  Ç¤°Õ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£
148
149 .I sll_hatype
150 ¤Ï¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë
151 .I <linux/if_arp.h>
152 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë ARP ¼ïÊ̤Ǥ¢¤ë¡£
153
154 .I sll_pkttype
155 ¤Ï¥Ñ¥±¥Ã¥È¼ïÊ̤Ǥ¢¤ë¡£»ØÄê¤Ç¤­¤ë¼ïÊ̤ϰʲ¼¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë:
156 .B PACKET_HOST
157 (¥í¡¼¥«¥ë¥Û¥¹¥È¸þ¤±¤Î¥Ñ¥±¥Ã¥È)¡¢
158 .B PACKET_BORADCAST
159 (ʪÍýÁØ¤Î¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È)¡¢
160 .B PACKET_MULTICAST
161 (ʪÍýÁؤΥޥë¥Á¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ËÁ÷¤ë¥Ñ¥±¥Ã¥È)¡¢
162 .B PACKET_OTHERHOST
163 (¾¤Î¥Û¥¹¥È¤Ë¸þ¤±¤é¤ì¤¿¥Ñ¥±¥Ã¥È¤Î¤¦¤Á¡¢
164 ̵º¹Ê̥⡼¥É (promiscuous mode: ¸å½Ò) ¤Î¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ë¤è¤êÊä­¤µ¤ì¤¿¤â¤Î)¡¢
165 .B PACKET_OUTGOING
166 (¥í¡¼¥«¥ë¥Û¥¹¥È¤«¤éȯ¿®¤µ¤ì¡¢
167 packet ¥½¥±¥Ã¥È¤Ë¥ë¡¼¥×¥Ð¥Ã¥¯¤·¤Æ¤­¤¿¥Ñ¥±¥Ã¥È)¡£
168 ¤³¤ì¤é¤Î¼ïÊ̤¬°ÕÌ£¤ò»ý¤Ä¤Î¤Ï¼õ¿®»þ¤Î¤ß¤Ç¤¢¤ë¡£
169
170 .I sll_addr
171 ¤È
172 .I sll_halen
173 ¤Ï¡¢ÊªÍýÁؤΠ(¤Ä¤Þ¤ê IEEE 802.3 ¤Î) ¥¢¥É¥ì¥¹¤È¤½¤ÎŤµ¤Ç¤¢¤ë¡£
174 ¸·Ì©¤Ê²ò¼á¤Ï¥Ç¥Ð¥¤¥¹¤Ë°Í¸¤¹¤ë¡£
175
176 ¥Ñ¥±¥Ã¥È¤òÁ÷¤ë¾ì¹ç¤Ï¡¢
177 .IR sll_family ,
178 .IR sll_addr ,
179 .IR sll_halen ,
180 .I sll_ifindex
181 ¤ò»ØÄꤹ¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£
182 ¤½¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ï 0 ¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£
183 .I sll_hatype
184 ¤È
185 .I sll_pkttype
186 ¤Ë¤Ï¼õ¿®¤·¤¿¥Ñ¥±¥Ã¥È¤Î¾ðÊó¤¬ÀßÄꤵ¤ì¤ë¡£
187 ¥Ð¥¤¥ó¥É¤ÎºÝ¤Ë¤Ï¡¢
188 .I sll_protocol
189 ¤È
190 .I sll_ifindex
191 ¤À¤±¤¬»ÈÍѤµ¤ì¤ë¡£
192 .SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó
193 packet ¥½¥±¥Ã¥È¤Ï¡¢ÊªÍýÁؤΥޥë¥Á¥­¥ã¥¹¥È¤ä
194 ̵º¹Ê̥⡼¥É (promiscuous mode) ¤òÀßÄꤷ¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£
195 ¤³¤ì¤Ë¤Ï
196 .B SOL_PACKET
197 ¤È°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Î¤¤¤º¤ì¤«¤ò»ØÄꤷ¤Æ
198 .BR setsockopt (2)
199 ¤ò¸Æ¤Ù¤Ð¤è¤¤¡£
200 ¥Ð¥¤¥ó¥É¤òÄɲ乤ë¾ì¹ç¤Ï
201 .B PACKET_ADD_MEMBERSHIP
202 ¤Ç¤¢¤ê¡¢¼è¤êµî¤ë¾ì¹ç¤Ï
203 .B PACKET_DROP_MEMBERSHIP
204 ¤Ç¤¢¤ë¡£¤³¤ì¤é¤Ï¤¤¤º¤ì¤â
205 .B packet_mreq
206 ¹½Â¤ÂΤò°ú¤­¿ô¤Ë¼è¤ë¡£
207
208 .in +4n
209 .nf
210 struct packet_mreq {
211     int            mr_ifindex;    /* ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ÈÖ¹æ */
212     unsigned short mr_type;       /* Æ°ºî */
213     unsigned short mr_alen;       /* ¥¢¥É¥ì¥¹¤ÎŤµ */
214     unsigned char  mr_address[8]; /* ÊªÍýÁؤΥ¢¥É¥ì¥¹ */
215 };
216 .fi
217 .in
218
219 .I mr_ifindex
220 ¤Ï¡¢¥¹¥Æ¡¼¥¿¥¹¤òÊѹ¹¤·¤¿¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î
221 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ÈÖ¹æ¤Ç¤¢¤ë¡£
222 .I mr_type
223 ¥Ñ¥é¥á¡¼¥¿¤Ï¼Â¹Ô¤¹¤ëÆ°ºî¤ò»ØÄꤹ¤ë:
224 .B PACKET_MR_PROMISC
225 ¤Ï¡¢¶¦Í­¤·¤Æ¤¤¤ëÇÞÂΤ«¤é¤ÎÁ´¤Æ¤Î¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë
226 (¤·¤Ð¤·¤Ð "̵º¹Ê̥⡼¥É (promiscuous mode)" ¤È¸Æ¤Ð¤ì¤ë)¡£
227 .B PACKET_MR_MULTICAST
228 ¤Ï¡¢¤½¤Î¥½¥±¥Ã¥È¤ò¡¢
229 .I mr_address
230 ¤È
231 .I mr_alen
232 ¤Ç»ØÄꤵ¤ì¤ëʪÍýÁؤΥޥë¥Á¥­¥ã¥¹¥È¥Ö¥ë¡¼¥×¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¡£
233 .B PACKET_MR_ALLMULTI
234 ¤Ï socket ¤ò up ¤Ë¤·¤Æ¡¢¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ËÅþ㤷¤¿¤¹¤Ù¤Æ¤Î
235 ¥Þ¥ë¥Á¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£
236
237 ÀΤ«¤é¤¢¤ë ioctl ¤À¤±¤Ç¤Ê¤¯¡¢
238 .BR SIOCSIFFLAGS ,
239 .BR SIOCADDMULTI ,
240 .B SIOCDELMULTI
241 ¤òƱ¤¸ÌÜŪ¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
242 .SS ioctl
243 .B SIOCGSTAMP
244 ¤òÍѤ¤¤ë¤È¡¢ºÇ¸å¤Ë¼õ¿®¤·¤¿¥Ñ¥±¥Ã¥È¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
245 °ú¤­¿ô¤Ï
246 .I struct timeval
247 ¤Ç¤¢¤ë¡£
248
249 ¤µ¤é¤Ë¡¢
250 .BR netdevice (7)
251 ¤ª¤è¤Ó
252 .BR socket (7)
253 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëɸ½à¤Î ioctl ¤Ï¤¤¤º¤ì¤â
254 packet ¥½¥±¥Ã¥È¤Ë»ØÄê²Äǽ¤Ç¤¢¤ë¡£
255 .SS ¥¨¥é¡¼½èÍý
256 packet ¥½¥±¥Ã¥È¤Ï¡¢¥Ñ¥±¥Ã¥È¤ò¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ËÅϤ¹¤È¤­¤Ë
257 µ¯¤­¤¿¥¨¥é¡¼¤·¤«½èÍý¤·¤Ê¤¤¡£Ãٱ䥨¥é¡¼ (pending error)
258 ¤Ë´Ø¤¹¤ë³µÇ°¤Ï»ý¤Ã¤Æ¤¤¤Ê¤¤¡£
259 .SH ¥¨¥é¡¼
260 .TP
261 .B EADDRNOTAVAIL
262 ÉÔÌÀ¤Ê¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¥¢¥É¥ì¥¹¤¬ÅϤµ¤ì¤¿¡£
263 .TP
264 .B EFAULT
265 ¥æ¡¼¥¶¤¬ÅϤ·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹¤¬ÉÔÀµ¡£
266 .TP
267 .B EINVAL
268 °ú¤­¿ô¤¬ÉÔÀµ¡£
269 .TP
270 .B EMSGSIZE
271 ¥Ñ¥±¥Ã¥È¤¬¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î MTU ¤è¤êÂ礭¤¤¡£
272 .TP
273 .B ENETDOWN
274 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ up ¤Ç¤Ê¤¤¡£
275 .TP
276 .B ENOBUFS
277 ¥Ñ¥±¥Ã¥È¤Ë³ä¤êÅö¤Æ¤ë¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£
278 .TP
279 .B ENODEV
280 ¥Ç¥Ð¥¤¥¹Ì¾¤¬ÉÔÌÀ¡£¤¢¤ë¤¤¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤Ç»ØÄꤵ¤ì¤¿
281 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬ÉÔÌÀ¡£
282 .TP
283 .B ENOENT
284 ¥Ñ¥±¥Ã¥È¤ò°ì¤Ä¤â¼õ¿®¤·¤Æ¤¤¤Ê¤¤¡£
285 .TP
286 .B ENOTCONN
287 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤¬ÅϤµ¤ì¤Ê¤«¤Ã¤¿¡£
288 .TP
289 .B ENXIO
290 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤ËÉÔÀµ¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£
291 .TP
292 .B EPERM
293 ¤³¤ÎÁàºî¤ò¹Ô¤¦¤Î¤ËɬÍפʸ¢¸Â¤ò¥æ¡¼¥¶¤¬»ý¤Ã¤Æ¤¤¤Ê¤¤¡£
294
295 ¾åµ­°Ê³°¤Î¥¨¥é¡¼¤¬¡¢Äã¥ì¥Ù¥ë¤Î¥É¥é¥¤¥Ð¤ÇÀ¸À®¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£
296 .SH ¥Ð¡¼¥¸¥ç¥ó
297 .B AF_PACKET
298 ¤Ï Linux 2.2 ¤Î¿·µ¡Ç½¤Ç¤¢¤ë¡£¤³¤ì¤è¤ê¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î Linux ¤Ç¤Ï
299 .B SOCK_PACKET
300 ¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤¿¡£
301 .PP
302 ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë
303 .I <netpacket/packet.h>
304 ¤¬Â¸ºß¤¹¤ë¤Î¤Ï glibc 2.1 °Ê¹ß¤Ç¤¢¤ë¡£
305 ¤½¤ì°ÊÁ°¤Î¥·¥¹¥Æ¥à¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë:
306 .sp
307 .in +4n
308 .nf
309 #include <asm/types.h>
310 #include <linux/if_packet.h>
311 #include <linux/if_ether.h>  /* The L2 protocols */
312 .fi
313 .in
314 .SH Ãí°Õ
315 °Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢
316 .BR pcap (3)
317 ·Ðͳ¤Ç
318 .B AF_PACKET
319 ¤òÍѤ¤¤ë¤³¤È¤ò¤ªÁ¦¤á¤¹¤ë¡£¤¿¤À¤·¡¢¤³¤ÎÊýË¡¤Ç¤Ï
320 .B AF_PACKET
321 ¤Îµ¡Ç½¤¹¤Ù¤Æ¤òÍøÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
322
323 .B SOCK_DGRAM
324 packet ¥½¥±¥Ã¥È¤Ï¡¢IEEE 802.3 ¥Õ¥ì¡¼¥à¤Î IEEE 802.2 LLC ¥Ø¥Ã¥À¤Î
325 À¸À®¤ä²òÀϤò¹Ô¤ª¤¦¤È¤·¤Ê¤¤¡£
326 .B ETH_P_802_3
327 ¤¬Á÷¿®¥×¥í¥È¥³¥ë¤Ë»ØÄꤵ¤ì¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï 802.3 ¥Õ¥ì¡¼¥à¤ò
328 À¸À®¤·¤Æ length ¥Õ¥£¡¼¥ë¥É¤Ë½ñ¤­¹þ¤à¡£
329 ´°Á´¤Ë½àµò¤·¤¿¥Ñ¥±¥Ã¥È¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¥æ¡¼¥¶¡¼¤¬ LLC ¥Ø¥Ã¥À¤ò
330 Í¿¤¨¤ëɬÍפ¬¤¢¤ë¡£ÅþÃ夷¤¿ 802.3 ¥Ñ¥±¥Ã¥È¤Ç¤Ï¡¢
331 DSAP/SSAP protocol ¤Î³Æ¥Õ¥£¡¼¥ë¥É¤Ï¿½Å²½ (multiplex) ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
332 Âå¤ï¤ê¤Ë¤³¤ì¤é¤Ï LLC ¥Ø¥Ã¥À¤¬Á°ÃÖ¤µ¤ì¤¿
333 .B ETH_P_802_2
334 ¥×¥í¥È¥³¥ë¤È¤·¤ÆÍ¿¤¨¤é¤ì¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢
335 .B ETH_P_802_3
336 ¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¤«¤ï¤ê¤Ë
337 .B ETH_P_802_2
338 ¤Ë¥Ð¥¤¥ó¥É¤·¡¢¼«Ê¬¼«¿È¤Ç¥×¥í¥È¥³¥ë¤Î¿½Å²½¤ò¹Ô¤¦¤³¤È¡£
339 Á÷¿®¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¡¢¥×¥í¥È¥³¥ë¥Õ¥£¡¼¥ë¥É¤ò»ý¤Ä
340 ɸ½à¤Î Ethernet DIX encapsulation ¤Ç¤¢¤ë¡£
341
342 packet ¥½¥±¥Ã¥È¤ÏÆþ½ÐÎϤΠfirewall chain ¤Ë±Æ¶Á¤ò¤¦¤±¤Ê¤¤¡£
343 .SS °Ü¿¢À­
344 Linux 2.0 ¤Ç¤Ï¡¢ packet ¥½¥±¥Ã¥È¤òÆÀ¤ëÊýË¡¤Ï
345 .BI "socket(AF_INET, SOCK_PACKET, " protocol )\fR
346 ¤ò¸Æ¤Ö¤ä¤êÊý¤·¤«¤Ê¤«¤Ã¤¿¡£¤³¤ÎÊýË¡¤Ï¤Þ¤À¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢
347 ÍѤ¤¤Ê¤¤¤³¤È¤ò¶¯¤¯¿ä¾©¤¹¤ë¡£¸½ºß¤ÎÊýË¡¤È¤Î¼ç¤Ê°ã¤¤¤Ï¡¢
348 .B SOCK_PACKET
349 ¤Ç¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î»ØÄê¤Ë¸Å¤¤
350 .I struct sockaddr_pkt
351 ¤òÍѤ¤¤ëÅÀ¤Ç¤¢¤ë¡£¤³¤ì¤Ë¤ÏʪÍýÁؤ«¤é¤ÎÆÈΩÀ­¤¬¤Ê¤¤¡£
352
353 .in +4n
354 .nf
355 struct sockaddr_pkt {
356     unsigned short spkt_family;
357     unsigned char  spkt_device[14];
358     unsigned short spkt_protocol;
359 };
360 .fi
361 .in
362
363 .I spkt_family
364 ¤Ï¥Ç¥Ð¥¤¥¹¤Î¥¿¥¤¥×¡¢
365 .I spkt_protocol
366 ¤Ï
367 .I <sys/if_ether.h>
368 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë IEEE 802.3 ¥×¥í¥È¥³¥ë¥¿¥¤¥×¡¢
369 .I spkt_device
370 ¤Ï¥Ç¥Ð¥¤¥¹¤Î̾Á°¤ò NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤ÇÍ¿¤¨¤¿¤â¤Î (Îã: eth0) ¤Ç¤¢¤ë¡£
371
372 ¤³¤Î¹½Â¤ÂΤϠobsolete ¤Ç¤¢¤ê¡¢
373 ¿·¤·¤¯¥³¡¼¥É¤ò½ñ¤¯»þ¤Ë¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ê¤¤¡£
374 .SH ¥Ð¥°
375 glibc 2.1 ¤Ë¤Ï
376 .B SOL_PACKET
377 ¤ÎÄêµÁ¤¬¤Ê¤¤¡£²óÈòºö¤È¤·¤Æ¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¤È¤è¤¤¡£
378 .in +4n
379 .nf
380
381 #ifndef SOL_PACKET
382 #define SOL_PACKET 263
383 #endif
384
385 .fi
386 .in
387 ¤³¤ÎÌäÂê¤Ï¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£
388 libc5 ¤Î¥·¥¹¥Æ¥à¤Ë¤Ï¤³¤ÎÌäÂê¤Ï¤Ê¤¤¡£
389
390 IEEE 802.2/803.3 ¤Î LLC ¤Î°·¤¤Êý¤Ï¡¢¥Ð¥°¤È¹Í¤¨¤Æ¤âÎɤ¤¤À¤í¤¦¡£
391
392 ¥½¥±¥Ã¥È¥Õ¥£¥ë¥¿¡¼¤Ë¤Ä¤¤¤Æµ­ºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
393
394 .B MSG_TRUNC
395 .BR recvmsg (2)
396 ³ÈÄ¥¤ÏÈó¾ï¤Ë¤Þ¤º¤¤Âнè¤Ç¤¢¤ê¡¢À©¸æ¥á¥Ã¥»¡¼¥¸¤ÇÃÖ¤­´¹¤¨¤ë¤Ù¤­¤Ç¤¢¤ë¡£
397 º£¤Î¤È¤³¤í
398 .B SOCK_DGRAM
399 ·Ðͳ¤Ç¥Ñ¥±¥Ã¥È¤Ë¤Ä¤¤¤Æ¤¤¤¿°¸À襢¥É¥ì¥¹¤òÆÀ¤ëÊýË¡¤¬¤Ê¤¤¡£
400 .\" .SH Ãø¼Ô
401 .\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï Matthew Wilcox ¤Î½õÎϤΤâ¤È¤Ë Andi Kleen ¤¬½ñ¤¤¤¿¡£
402 .\" Linux 2.2 ¤Î AF_PACKET ¤Ï¡¢
403 .\" Alan Cox ¤¿¤Á¤Î¥³¡¼¥É¤ò¤â¤È¤Ë¤·¤Æ Alexey Kuznetsov ¤¬¼ÂÁõ¤·¤¿¡£
404 .SH ´ØÏ¢¹àÌÜ
405 .BR socket (2),
406 .BR pcap (3),
407 .BR capabilities (7),
408 .BR ip (7),
409 .BR raw (7),
410 .BR socket (7)
411
412 ɸ½à IP Ethernet encapsulation ¤Ë´Ø¤¹¤ë¾ðÊó¤Ï RFC\ 894 ¤Ë¤¢¤ë¡£
413
414 IEEE 802.3 IP encapsulation ¤Ë´Ø¤¹¤ë¾ðÊó¤Ï RFC\ 1700 ¤Ë¤¢¤ë¡£
415
416 ʪÍýÁؤΥץí¥È¥³¥ë¤Ë´Ø¤¹¤ëµ­½Ò¤Ï
417 .I <linux/if_ether.h>
418 ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¡£