File: netlink.7

package info (click to toggle)
manpages-ja 0.4.0.0.20020315-2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 14,808 kB
  • ctags: 4
  • sloc: sh: 9,595; perl: 157; makefile: 62
file content (277 lines) | stat: -rw-r--r-- 7,791 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
'\" t
.\" Don't change the first line, it tells man that tbl is needed.
.\" This man page copyright 1998 by Andi Kleen. Subject to the GPL.
.\" This manpage copyright 1998 by Andi Kleen. Subject to the GPL.
.\" Based on the original comments from Alexey Kuznetsov
.\" $Id: netlink.7,v 1.5 2001/04/04 08:02:37 ysato Exp $
.\"
.\" Japanese Version Copyright (c) 1999 NAKANO Takeo all rights reserved.
.\" Translated Mon 6 Dec 1999 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
.\" Updated Wed Apr  4 16:21:55 JST 2001 by Yuichi SATO <ysato@h4.dion.ne.jp>
.\"
.\"WORD		payload		ڥ
.\"WORD		capability	
.\"
.TH NETLINK  7 "27 Apr 1999" "Linux Man Page" "Linux Programmer's Manual"
.SH ̾
netlink, PF_NETLINK \- ͥȥ桼֤̿
.SH 
.nf
.\" XXX
.B #include <asm/types.h>
.br
.B #include <sys/socket.h>
.br
.B #include <linux/netlink.h> 
.br
.PP
.BI "netlink_socket = socket(PF_NETLINK, " socket_type ", " netlink_family ); 
.SH 
netlink ϥͥ⥸塼ȥ桼֤Υץ֤
Ȥꤹ뤿Ѥ롣 netlink ϡ桼ץ
ФƤɸŪʥåȥ١Υ󥿡ե
ͥ⥸塼ˤϥͥ API 󶡤롣
ͥΥ󥿡եˤĤƤϤ man ڡǤ
Ҥʤޤ netlink 饯ǥХѤ
obsolete  netlink 󥿡ե⤢뤬
⤳ʸǤϲ⤷ʤñ˲ߴ
ѰդƤΤˤʤ

netlink ϥǡظΥӥǤ롣
.I socket_type
ˤ
.B SOCK_RAW

.B SOCK_DGRAM
ξȤǽǤ롣 netlink ץȥ
ǡ raw åȤζ̤򤷤ʤ

.I netlink_family
ϡ̿륫ͥ⥸塼 netlink 롼פѤ롣
߳ƤƤ netlink եߥ꡼ϰʲ̤ꡣ
.TP
.B NETLINK_ROUTE
롼ƥ󥰤ι롣 IPv4 롼ƥ󥰥ơ֥ν
Ѥ뤳ȤǤ
.RB ( rtnetlink (7)
򸫤)
.TP
.B NETLINK_FIREWALL 
IPv4 firewall ɤƤѥåȤ롣
.TP
.B NETLINK_ARPD
arp ơ֥桼֤Ǵ롣
.TP
.B NETLINK_ROUTE6
IPv6 Υ롼ƥ󥰥ơ֥빹롣
.TP
.B NETLINK_IP6_FW
IPv6 firewall Υå˼ԤѥåȤ
(ߤϤޤƤʤ)
.TP
.BR NETLINK_TAPBASE ... NETLINK_TAPBASE+15

.B ethertap
ǥХΥ󥹥󥹤Ǥ롣
ethertap ϵͥåȥȥͥǥХǡ
ˤäƥ桼֤饤ͥåȥɥ饤Ф
ߥ졼Ȥ뤳Ȥǽˤʤ롣
.TP
.B NETLINK_SKIP
ENskip Ѥͽ󤵤Ƥ롣
.TP
.B NETLINK_USERSOCK
Υ桼֤ΥץȥѤͽ󤵤Ƥ롣
.PP
netlink åϥХȥȥ꡼फʤꡢ
İʾ 
.B nlmsghdr
إåȡбڥ (payload) ޤޤ롣
ޥѡȥåˤƤϡƬΥإå³Υإåˤ
.B NLM_F_MULTI
ե饰åȤ롣ǸΥإå㳰ǡ
.B NLMSG_DONE
פȤʤ롣Хȥȥ꡼ˤϡɸ
.B NLMSG_*
ޥˤäƤΤߥ٤Ǥ롣
.BR netlink (3)
򸫤衣

netlink Ͽι⤤ץȥǤϤʤ netlink 
åԤϤ뤿˺Ԥ
꤬­ʤäꥨ顼äꤹ
åꤳܤȤ⤢롣ι⤤žԤȤϡ
ԤϼԤ˱׵᤹뤳ȤǤ롣ˤ
.B NLM_F_ACK
ե饰򥻥åȤ롣
.B NLMSG_ERROR
ѥåȤΥ顼եɤ 0 ˤΤˤʤ롣
ץꥱϼʬȤΥåȤˤϡ
ʤФʤʤͥϼԤѥåȤФơ
.B NLMSG_ERROR
åȤ롣桼ץϤδˤ
ɬפ롣

줾 netlink եߥ꡼ 32 Υޥ㥹ȥ롼פ
åȤġ
.BR bind (2)
åȤФƸƤФȡ
.B sockaddr_nl

.B nl_groups
եɤˤ listen 롼פΥӥåȥޥåȤ롣
ǥեȤͤ 0 ǡޥ㥹Ȥڼʤ
.BR sendmsg (2)

.BR connect (2)
ˤäơ륽åȤåޥ㥹ȤȤϡ
.B nl_groups
롼פΥӥåȥޥ򥻥åȤФ褤
¸桼 ID  0 
.B CAP_NET_ADMIN
¤ĥ桼Τߤ netlink ޥ㥹ȥ롼פ
ꡢ listen ꤹ뤳ȤǤ롣
ޥ㥹ȥ롼פؤΥåФϡ
åޥ㥹ȤȤϡ
.B nl_groups
롼פΥӥåȥޥ򥻥åȤФ褤
¸桼 ID  0 
.B CAP_NET_ADMIN
¤ĥ桼Τߤ netlink ޥ㥹ȥ롼פ
ꡢ listen ꤹ뤳ȤǤ롣
ޥ㥹ȥ롼׸å硢Ф
 pid ȥޥ㥹ȥ롼פȤ֤٤Ǥ롣

.RS
.nf
.ta 4 13 25
struct nlmsghdr
{
	__u32	nlmsg_len;	/* Length of message including header */
	__u16	nlmsg_type;	/* Message content */
	__u16	nlmsg_flags;	/* Additional flags */
	__u32	nlmsg_seq;	/* Sequence number */
	__u32	nlmsg_pid;	/* PID of the process that opened the socket */
};


struct nlmsgerr
{
	int	error;	/* negative errno or 0 for acks. */ 
	struct nlmsghdr msg;	/* message header that caused the error */ 
};
.ta
.fi
.RE

.\" 2.1.130 does not seem to use it.
.\" .B NLMSG_OVERRUN
.\" data was lost. 
.B nlmsghdr
θˤϥڥ (payload) ³
.B nlmsg_type
ɸΥåפΤɤ줫ĤǤ:
.B NLMSG_NOOP
å̵뤵롣
.B NLMSG_ERROR
åϥ顼򼨤ڥɤˤ
.I nlmsgerr
¤Τ롣
.B NLMSG_DONE
åϥޥѡȥåνλ롣

 netlink եߥ꡼ǻǤåפϡ
̾ä¿˴ؤƤŬڤ man ڡ򸫤Ƥۤ
Ȥ
.I NETLINK_ROUTE
˴ؤƤ
.BR rtnetlink (7)
˽񤤤Ƥ롣

.TS 
tab(:); 
l s 
l l.
.\" XXX describe that
nlmsg_flags ɸե饰ӥå
NLM_F_REQUEST:׵åƤǥåȤ롣
NLM_F_MULTI:T{
ΥåϥޥѡȥåΰǤ롣
ޥѡȥå
.B NLMSG_DONE
ǽü롣
T}
NLM_F_ACK:ֿ롣
NLM_F_ECHO:׵򥨥롣
.TE

.TS
tab(:);
l s 
l l.
GET ׵ˤɲåե饰ӥå
NLM_F_ROOT:ñΥȥǤϤʤơ֥Τ֤
NLM_F_MATCH:ޤƤʤ
NLM_F_ATOMIC:ơ֥ΥȥߥåʥʥåץåȤ֤
NLM_F_DUMP:ޤҤƤʤ
.TE

.TS
tab(:);
l s
l l.
NEW ׵ˤɲåե饰ӥå
NLM_F_REPLACE:¸Υ֥Ȥ񤭤롣
NLM_F_EXCL:Ǥ˥֥Ȥäִʤ
NLM_F_CREATE:ޤ֥Ȥʤк롣
NLM_F_APPEND:֥ȥꥹȤκǸɲä롣
.TE

NLM_F_ATMIC ˤ
.B CAP_NET_ADMIN
¤ޤϥѡ桼¤ɬפǤ롣

.SH ɥ쥹Υեޥå
.B sockaddr_nl
¤Τϥ桼֤䥫֤ͥ netlink 饤Ȥ򵭽Ҥ롣
sockaddr_nl ϥ˥㥹 (ñ³ˤ) ˤǤ뤷
netlink 롼 (nl_groups  0 Ǥʤ) ˤ뤳ȤǤ롣

.RS
.nf
struct sockaddr_nl
{
    sa_family_t nl_family;    /* AF_NETLINK */
    unsigned short nl_pad;    /* zero */
    pid_t       nl_pid;       /* process pid */
    __u32       nl_groups;    /* multicast groups mask */
};
.fi
.RE

.B nl_pid
ŪΥåȤͭƤץ pid Ǥ롣
Ԥ褬ͥξ 0 ˤ롣
.B nl_groups
ϥӥåȥޥǡ٤ƤΥӥåȤ netlink 롼ֹɽ
.\" XXX describe what that is. 
.SH Х
 man ڡϴƤʤ
.SH 
٥Υͥ륤󥿡եꡢ
.B libnetlink
̤ netlink ѤۤɤȤ¿
.SH С
netlink ؤΥåȥ󥿡ե Linux 2.2 οǽǤ롣

Linux 2.0 ϡäȸŪʥǥХ١ netlink 󥿡ե
ݡȤƤ (ߴΤ˺ǤѤǤ)
Ť󥿡ե˴ؤƤϤǤϵҤʤ
.SH Ϣ
.BR cmsg (3),
.BR rtnetlink (7),
.BR netlink (3)
.PP
libnetlink ˴ؤ
ftp://ftp.inr.ac.ru/ip-routing/iproute2*