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*
|