1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "POT-Creation-Date: 2012-05-01 04:38+0900\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
16 "Content-Type: text/plain; charset=CHARSET\n"
17 "Content-Transfer-Encoding: 8bit\n"
20 #: build/C/man3/netlink.3:4 build/C/man7/netlink.7:7
26 #: build/C/man3/netlink.3:4
32 #: build/C/man3/netlink.3:4 build/C/man3/rtnetlink.3:7
38 #: build/C/man3/netlink.3:4 build/C/man7/netlink.7:7 build/C/man3/rtnetlink.3:7 build/C/man7/rtnetlink.7:11
40 msgid "Linux Programmer's Manual"
44 #: build/C/man3/netlink.3:5 build/C/man7/netlink.7:8 build/C/man3/rtnetlink.3:8 build/C/man7/rtnetlink.7:12
50 #: build/C/man3/netlink.3:7
51 msgid "netlink - Netlink macros"
55 #: build/C/man3/netlink.3:7 build/C/man7/netlink.7:10 build/C/man3/rtnetlink.3:10 build/C/man7/rtnetlink.7:14
60 #. FIXME . what will glibc 2.1 use here?
61 #. May 2007: glibc 2.5, things look to be unchanged -- the header file
62 #. is still linux/netlink.h -- mtk
64 #: build/C/man3/netlink.3:13
66 msgid "B<#include E<lt>asm/types.hE<gt>>\n"
70 #: build/C/man3/netlink.3:15
72 msgid "B<#include E<lt>linux/netlink.hE<gt>>\n"
76 #: build/C/man3/netlink.3:17
78 msgid "B<int NLMSG_ALIGN(size_t >I<len>B<);>\n"
82 #: build/C/man3/netlink.3:19
84 msgid "B<int NLMSG_LENGTH(size_t >I<len>B<);>\n"
88 #: build/C/man3/netlink.3:21
90 msgid "B<int NLMSG_SPACE(size_t >I<len>B<);>\n"
94 #: build/C/man3/netlink.3:23
96 msgid "B<void *NLMSG_DATA(struct nlmsghdr *>I<nlh>B<);>\n"
100 #: build/C/man3/netlink.3:25
102 msgid "B<struct nlmsghdr *NLMSG_NEXT(struct nlmsghdr *>I<nlh>B<, int >I<len>B<);>\n"
106 #: build/C/man3/netlink.3:27
108 msgid "B<int NLMSG_OK(struct nlmsghdr *>I<nlh>B<, int >I<len>B<);>\n"
112 #: build/C/man3/netlink.3:29
114 msgid "B<int NLMSG_PAYLOAD(struct nlmsghdr *>I<nlh>B<, int >I<len>B<);>\n"
118 #: build/C/man3/netlink.3:30 build/C/man7/netlink.7:18 build/C/man3/rtnetlink.3:34 build/C/man7/rtnetlink.7:24
124 #: build/C/man3/netlink.3:38
126 "I<E<lt>linux/netlink.hE<gt>> defines several standard macros to access or "
127 "create a netlink datagram. They are similar in spirit to the macros defined "
128 "in B<cmsg>(3) for auxiliary data. The buffer passed to and from a netlink "
129 "socket should only be accessed using these macros."
133 #: build/C/man3/netlink.3:38
135 msgid "B<NLMSG_ALIGN>()"
139 #: build/C/man3/netlink.3:41
140 msgid "Round the length of a netlink message up to align it properly."
144 #: build/C/man3/netlink.3:41
146 msgid "B<NLMSG_LENGTH>()"
150 #: build/C/man3/netlink.3:49
152 "Given the payload length, I<len>, this macro returns the aligned length to "
153 "store in the I<nlmsg_len> field of the I<nlmsghdr>."
157 #: build/C/man3/netlink.3:49
159 msgid "B<NLMSG_SPACE>()"
163 #: build/C/man3/netlink.3:54
165 "Return the number of bytes that a netlink message with payload of I<len> "
170 #: build/C/man3/netlink.3:54
172 msgid "B<NLMSG_DATA>()"
176 #: build/C/man3/netlink.3:58
177 msgid "Return a pointer to the payload associated with the passed I<nlmsghdr>."
180 #. this is bizarre, maybe the interface should be fixed.
182 #: build/C/man3/netlink.3:58
184 msgid "B<NLMSG_NEXT>()"
188 #: build/C/man3/netlink.3:74
190 "Get the next I<nlmsghdr> in a multipart message. The caller must check if "
191 "the current I<nlmsghdr> didn't have the B<NLMSG_DONE> set\\(emthis function "
192 "doesn't return NULL on end. The I<len> argument is an lvalue containing the "
193 "remaining length of the message buffer. This macro decrements it by the "
194 "length of the message header."
198 #: build/C/man3/netlink.3:74
200 msgid "B<NLMSG_OK>()"
204 #: build/C/man3/netlink.3:78
206 "Return true if the netlink message is not truncated and is in a form "
207 "suitable for parsing."
211 #: build/C/man3/netlink.3:78
213 msgid "B<NLMSG_PAYLOAD>()"
217 #: build/C/man3/netlink.3:82
218 msgid "Return the length of the payload associated with the I<nlmsghdr>."
222 #: build/C/man3/netlink.3:82 build/C/man3/rtnetlink.3:78
224 msgid "CONFORMING TO"
228 #: build/C/man3/netlink.3:84 build/C/man3/rtnetlink.3:80
229 msgid "These macros are nonstandard Linux extensions."
233 #: build/C/man3/netlink.3:84 build/C/man7/netlink.7:375
239 #: build/C/man3/netlink.3:88
241 "It is often better to use netlink via I<libnetlink> than via the low-level "
246 #: build/C/man3/netlink.3:88 build/C/man7/netlink.7:458 build/C/man3/rtnetlink.3:118 build/C/man7/rtnetlink.7:445
252 #: build/C/man3/netlink.3:90
253 msgid "B<netlink>(7)"
257 #: build/C/man3/netlink.3:92
258 msgid "and ftp://ftp.inr.ac.ru/ip-routing/iproute2* for libnetlink"
262 #: build/C/man3/netlink.3:92 build/C/man7/netlink.7:471 build/C/man3/rtnetlink.3:122 build/C/man7/rtnetlink.7:450
268 #: build/C/man3/netlink.3:99 build/C/man7/netlink.7:478 build/C/man3/rtnetlink.3:129 build/C/man7/rtnetlink.7:457
270 "This page is part of release 3.40 of the Linux I<man-pages> project. A "
271 "description of the project, and information about reporting bugs, can be "
272 "found at http://www.kernel.org/doc/man-pages/."
276 #: build/C/man7/netlink.7:7
282 #: build/C/man7/netlink.7:7 build/C/man7/rtnetlink.7:11
288 #: build/C/man7/netlink.7:10
289 msgid "netlink - Communication between kernel and userspace (AF_NETLINK)"
293 #: build/C/man7/netlink.7:15
296 "B<#include E<lt>asm/types.hE<gt>>\n"
297 "B<#include E<lt>sys/socket.hE<gt>>\n"
298 "B<#include E<lt>linux/netlink.hE<gt>>\n"
302 #: build/C/man7/netlink.7:17
305 "B<netlink_socket = socket(AF_NETLINK, >I<socket_type>B<, "
306 ">I<netlink_family>B<);>\n"
310 #: build/C/man7/netlink.7:27
312 "Netlink is used to transfer information between kernel and userspace "
313 "processes. It consists of a standard sockets-based interface for userspace "
314 "processes and an internal kernel API for kernel modules. The internal "
315 "kernel interface is not documented in this manual page. There is also an "
316 "obsolete netlink interface via netlink character devices; this interface is "
317 "not documented here and is only provided for backward compatibility."
321 #: build/C/man7/netlink.7:37
323 "Netlink is a datagram-oriented service. Both B<SOCK_RAW> and B<SOCK_DGRAM> "
324 "are valid values for I<socket_type>. However, the netlink protocol does not "
325 "distinguish between datagram and raw sockets."
329 #: build/C/man7/netlink.7:41
331 "I<netlink_family> selects the kernel module or netlink group to communicate "
332 "with. The currently assigned netlink families are:"
336 #: build/C/man7/netlink.7:41
338 msgid "B<NETLINK_ROUTE>"
342 #: build/C/man7/netlink.7:48
344 "Receives routing and link updates and may be used to modify the routing "
345 "tables (both IPv4 and IPv6), IP addresses, link parameters, neighbor setups, "
346 "queueing disciplines, traffic classes and packet classifiers (see "
351 #: build/C/man7/netlink.7:48
353 msgid "B<NETLINK_W1>"
357 #: build/C/man7/netlink.7:51
358 msgid "Messages from 1-wire subsystem."
362 #: build/C/man7/netlink.7:51
364 msgid "B<NETLINK_USERSOCK>"
368 #: build/C/man7/netlink.7:54
369 msgid "Reserved for user-mode socket protocols."
373 #: build/C/man7/netlink.7:54
375 msgid "B<NETLINK_FIREWALL>"
379 #: build/C/man7/netlink.7:60
381 "Transport IPv4 packets from netfilter to userspace. Used by I<ip_queue> "
386 #: build/C/man7/netlink.7:60
388 msgid "B<NETLINK_INET_DIAG>"
391 #. FIXME More details on NETLINK_INET_DIAG needed.
393 #: build/C/man7/netlink.7:64
394 msgid "INET socket monitoring."
398 #: build/C/man7/netlink.7:64
400 msgid "B<NETLINK_NFLOG>"
404 #: build/C/man7/netlink.7:67
405 msgid "Netfilter/iptables ULOG."
409 #: build/C/man7/netlink.7:67
411 msgid "B<NETLINK_XFRM>"
414 #. FIXME More details on NETLINK_XFRM needed.
416 #: build/C/man7/netlink.7:71
421 #: build/C/man7/netlink.7:71
423 msgid "B<NETLINK_SELINUX>"
427 #: build/C/man7/netlink.7:74
428 msgid "SELinux event notifications."
432 #: build/C/man7/netlink.7:74
434 msgid "B<NETLINK_ISCSI>"
437 #. FIXME More details on NETLINK_ISCSI needed.
439 #: build/C/man7/netlink.7:78
444 #: build/C/man7/netlink.7:78
446 msgid "B<NETLINK_AUDIT>"
449 #. FIXME More details on NETLINK_AUDIT needed.
451 #: build/C/man7/netlink.7:82
456 #: build/C/man7/netlink.7:82
458 msgid "B<NETLINK_FIB_LOOKUP>"
461 #. FIXME More details on NETLINK_FIB_LOOKUP needed.
463 #: build/C/man7/netlink.7:86
464 msgid "Access to FIB lookup from userspace."
468 #: build/C/man7/netlink.7:86
470 msgid "B<NETLINK_CONNECTOR>"
474 #: build/C/man7/netlink.7:92
476 "Kernel connector. See I<Documentation/connector/*> in the kernel source for "
477 "further information."
481 #: build/C/man7/netlink.7:92
483 msgid "B<NETLINK_NETFILTER>"
486 #. FIXME More details on NETLINK_NETFILTER needed.
488 #: build/C/man7/netlink.7:96
489 msgid "Netfilter subsystem."
493 #: build/C/man7/netlink.7:96
495 msgid "B<NETLINK_IP6_FW>"
499 #: build/C/man7/netlink.7:102
501 "Transport IPv6 packets from netfilter to userspace. Used by I<ip6_queue> "
506 #: build/C/man7/netlink.7:102
508 msgid "B<NETLINK_DNRTMSG>"
512 #: build/C/man7/netlink.7:105
513 msgid "DECnet routing messages."
517 #: build/C/man7/netlink.7:105
519 msgid "B<NETLINK_KOBJECT_UEVENT>"
522 #. FIXME More details on NETLINK_KOBJECT_UEVENT needed.
524 #: build/C/man7/netlink.7:109
525 msgid "Kernel messages to userspace."
529 #: build/C/man7/netlink.7:109
531 msgid "B<NETLINK_GENERIC>"
535 #: build/C/man7/netlink.7:112
536 msgid "Generic netlink family for simplified netlink usage."
540 #: build/C/man7/netlink.7:122
542 "Netlink messages consist of a byte stream with one or multiple I<nlmsghdr> "
543 "headers and associated payload. The byte stream should only be accessed "
544 "with the standard B<NLMSG_*> macros. See B<netlink>(3) for further "
549 #: build/C/man7/netlink.7:130
551 "In multipart messages (multiple I<nlmsghdr> headers with associated payload "
552 "in one byte stream) the first and all following headers have the "
553 "B<NLM_F_MULTI> flag set, except for the last header which has the type "
558 #: build/C/man7/netlink.7:134
559 msgid "After each I<nlmsghdr> the payload follows."
563 #: build/C/man7/netlink.7:144
566 "struct nlmsghdr {\n"
567 " __u32 nlmsg_len; /* Length of message including header. */\n"
568 " __u16 nlmsg_type; /* Type of message content. */\n"
569 " __u16 nlmsg_flags; /* Additional flags. */\n"
570 " __u32 nlmsg_seq; /* Sequence number. */\n"
571 " __u32 nlmsg_pid; /* PID of the sending process. */\n"
576 #: build/C/man7/netlink.7:157
578 "I<nlmsg_type> can be one of the standard message types: B<NLMSG_NOOP> "
579 "message is to be ignored, B<NLMSG_ERROR> message signals an error and the "
580 "payload contains an I<nlmsgerr> structure, B<NLMSG_DONE> message terminates "
581 "a multipart message."
585 #: build/C/man7/netlink.7:164
588 "struct nlmsgerr {\n"
589 " int error; /* Negative errno or 0 for acknowledgements */\n"
590 " struct nlmsghdr msg; /* Message header that caused the error */\n"
595 #: build/C/man7/netlink.7:172
597 "A netlink family usually specifies more message types, see the appropriate "
598 "manual pages for that, for example, B<rtnetlink>(7) for B<NETLINK_ROUTE>."
602 #: build/C/man7/netlink.7:175
603 msgid "Standard flag bits in I<nlmsg_flags>"
607 #: build/C/man7/netlink.7:177
608 msgid "---------------------------------"
612 #: build/C/man7/netlink.7:180
614 msgid "NLM_F_REQUEST:Must be set on all request messages.\n"
618 #: build/C/man7/netlink.7:181
620 msgid "NLM_F_MULTI:T{\n"
624 #: build/C/man7/netlink.7:182
626 msgid "The message is part of a multipart message terminated by\n"
630 #: build/C/man7/netlink.7:183
632 msgid "B<NLMSG_DONE>.\n"
636 #: build/C/man7/netlink.7:184 build/C/man7/netlink.7:199 build/C/man7/rtnetlink.7:208 build/C/man7/rtnetlink.7:211 build/C/man7/rtnetlink.7:220 build/C/man7/rtnetlink.7:230 build/C/man7/rtnetlink.7:253 build/C/man7/rtnetlink.7:273
642 #: build/C/man7/netlink.7:185
644 msgid "NLM_F_ACK:Request for an acknowledgment on success.\n"
648 #: build/C/man7/netlink.7:186
650 msgid "NLM_F_ECHO:Echo this request.\n"
654 #: build/C/man7/netlink.7:190
655 msgid "Additional flag bits for GET requests"
659 #: build/C/man7/netlink.7:192 build/C/man7/netlink.7:214
660 msgid "-------------------------------------"
664 #: build/C/man7/netlink.7:195
666 msgid "NLM_F_ROOT:Return the complete table instead of a single entry.\n"
670 #: build/C/man7/netlink.7:196
672 msgid "NLM_F_MATCH:T{\n"
676 #: build/C/man7/netlink.7:197
678 msgid "Return all entries matching criteria passed in message content.\n"
682 #: build/C/man7/netlink.7:198
684 msgid "Not implemented yet.\n"
687 #. FIXME NLM_F_ATOMIC is not used any more?
689 #: build/C/man7/netlink.7:201
691 msgid "NLM_F_ATOMIC:Return an atomic snapshot of the table.\n"
695 #: build/C/man7/netlink.7:202
697 msgid "NLM_F_DUMP:Convenience macro; equivalent to (NLM_F_ROOT|NLM_F_MATCH).\n"
701 #: build/C/man7/netlink.7:210
703 "Note that B<NLM_F_ATOMIC> requires the B<CAP_NET_ADMIN> capability or an "
704 "effective UID of 0."
708 #: build/C/man7/netlink.7:212
709 msgid "Additional flag bits for NEW requests"
713 #: build/C/man7/netlink.7:217
715 msgid "NLM_F_REPLACE:Replace existing matching object.\n"
719 #: build/C/man7/netlink.7:218
721 msgid "NLM_F_EXCL:Don't replace if the object already exists.\n"
725 #: build/C/man7/netlink.7:219
727 msgid "NLM_F_CREATE:Create object if it doesn't already exist.\n"
731 #: build/C/man7/netlink.7:220
733 msgid "NLM_F_APPEND:Add to the end of the object list.\n"
737 #: build/C/man7/netlink.7:236
739 "I<nlmsg_seq> and I<nlmsg_pid> are used to track messages. I<nlmsg_pid> "
740 "shows the origin of the message. Note that there isn't a 1:1 relationship "
741 "between I<nlmsg_pid> and the PID of the process if the message originated "
742 "from a netlink socket. See the B<ADDRESS FORMATS> section for further "
746 #. FIXME Explain more about nlmsg_seq and nlmsg_pid.
748 #: build/C/man7/netlink.7:243
749 msgid "Both I<nlmsg_seq> and I<nlmsg_pid> are opaque to netlink core."
753 #: build/C/man7/netlink.7:261
755 "Netlink is not a reliable protocol. It tries its best to deliver a message "
756 "to its destination(s), but may drop messages when an out-of-memory condition "
757 "or other error occurs. For reliable transfer the sender can request an "
758 "acknowledgement from the receiver by setting the B<NLM_F_ACK> flag. An "
759 "acknowledgment is an B<NLMSG_ERROR> packet with the error field set to 0. "
760 "The application must generate acknowledgements for received messages "
761 "itself. The kernel tries to send an B<NLMSG_ERROR> message for every failed "
762 "packet. A user process should follow this convention too."
766 #: build/C/man7/netlink.7:272
768 "However, reliable transmissions from kernel to user are impossible in any "
769 "case. The kernel can't send a netlink message if the socket buffer is full: "
770 "the message will be dropped and the kernel and the userspace process will no "
771 "longer have the same view of kernel state. It is up to the application to "
772 "detect when this happens (via the B<ENOBUFS> error returned by "
773 "B<recvmsg>(2)) and resynchronize."
777 #: build/C/man7/netlink.7:272
779 msgid "Address Formats"
783 #: build/C/man7/netlink.7:282
785 "The I<sockaddr_nl> structure describes a netlink client in user space or in "
786 "the kernel. A I<sockaddr_nl> can be either unicast (only sent to one peer) "
787 "or sent to netlink multicast groups (I<nl_groups> not equal 0)."
791 #: build/C/man7/netlink.7:291
794 "struct sockaddr_nl {\n"
795 " sa_family_t nl_family; /* AF_NETLINK */\n"
796 " unsigned short nl_pad; /* Zero. */\n"
797 " pid_t nl_pid; /* Process ID. */\n"
798 " __u32 nl_groups; /* Multicast groups mask. */\n"
803 #: build/C/man7/netlink.7:322
805 "I<nl_pid> is the unicast address of netlink socket. It's always 0 if the "
806 "destination is in the kernel. For a userspace process, I<nl_pid> is usually "
807 "the PID of the process owning the destination socket. However, I<nl_pid> "
808 "identifies a netlink socket, not a process. If a process owns several "
809 "netlink sockets, then I<nl_pid> can only be equal to the process ID for at "
810 "most one socket. There are two ways to assign I<nl_pid> to a netlink "
811 "socket. If the application sets I<nl_pid> before calling B<bind>(2), then "
812 "it is up to the application to make sure that I<nl_pid> is unique. If the "
813 "application sets it to 0, the kernel takes care of assigning it. The kernel "
814 "assigns the process ID to the first netlink socket the process opens and "
815 "assigns a unique I<nl_pid> to every netlink socket that the process "
816 "subsequently creates."
820 #: build/C/man7/netlink.7:356
822 "I<nl_groups> is a bit mask with every bit representing a netlink group "
823 "number. Each netlink family has a set of 32 multicast groups. When "
824 "B<bind>(2) is called on the socket, the I<nl_groups> field in the "
825 "I<sockaddr_nl> should be set to a bit mask of the groups which it wishes to "
826 "listen to. The default value for this field is zero which means that no "
827 "multicasts will be received. A socket may multicast messages to any of the "
828 "multicast groups by setting I<nl_groups> to a bit mask of the groups it "
829 "wishes to send to when it calls B<sendmsg>(2) or does a B<connect>(2). "
830 "Only processes with an effective UID of 0 or the B<CAP_NET_ADMIN> capability "
831 "may send or listen to a netlink multicast group. Any replies to a message "
832 "received for a multicast group should be sent back to the sending PID and "
833 "the multicast group. Some Linux kernel subsystems may additionally allow "
834 "other users to send and/or receive messages. As at Linux 3.0, the "
835 "B<NETLINK_KOBJECT_UEVENT>, B<NETLINK_GENERIC>, B<NETLINK_ROUTE>, and "
836 "B<NETLINK_SELINUX> groups allow other users to receive messages. No groups "
837 "allow other users to send messages."
841 #: build/C/man7/netlink.7:356 build/C/man7/rtnetlink.7:440
847 #: build/C/man7/netlink.7:358
848 msgid "The socket interface to netlink is a new feature of Linux 2.2."
852 #: build/C/man7/netlink.7:362
854 "Linux 2.0 supported a more primitive device-based netlink interface (which "
855 "is still available as a compatibility option). This obsolete interface is "
856 "not described here."
860 #: build/C/man7/netlink.7:364
861 msgid "NETLINK_SELINUX appeared in Linux 2.6.4."
865 #: build/C/man7/netlink.7:366
866 msgid "NETLINK_AUDIT appeared in Linux 2.6.6."
870 #: build/C/man7/netlink.7:368
871 msgid "NETLINK_KOBJECT_UEVENT appeared in Linux 2.6.10."
875 #: build/C/man7/netlink.7:370
876 msgid "NETLINK_W1 and NETLINK_FIB_LOOKUP appeared in Linux 2.6.13."
880 #: build/C/man7/netlink.7:373
882 "NETLINK_INET_DIAG, NETLINK_CONNECTOR and NETLINK_NETFILTER appeared in Linux "
887 #: build/C/man7/netlink.7:375
888 msgid "NETLINK_GENERIC and NETLINK_ISCSI appeared in Linux 2.6.15."
892 #: build/C/man7/netlink.7:381
894 "It is often better to use netlink via I<libnetlink> or I<libnl> than via the "
895 "low-level kernel interface."
899 #: build/C/man7/netlink.7:381 build/C/man3/rtnetlink.3:80 build/C/man7/rtnetlink.7:443
905 #: build/C/man7/netlink.7:383
906 msgid "This manual page is not complete."
910 #: build/C/man7/netlink.7:383 build/C/man3/rtnetlink.3:82
916 #: build/C/man7/netlink.7:391
918 "The following example creates a B<NETLINK_ROUTE> netlink socket which will "
919 "listen to the B<RTMGRP_LINK> (network interface create/delete/up/down "
920 "events) and B<RTMGRP_IPV4_IFADDR> (IPv4 addresses add/delete events) "
925 #: build/C/man7/netlink.7:395
927 msgid "struct sockaddr_nl sa;\n"
931 #: build/C/man7/netlink.7:399
934 "memset(&sa, 0, sizeof(sa));\n"
935 "sa.nl_family = AF_NETLINK;\n"
936 "sa.nl_groups = RTMGRP_LINK | RTMGRP_IPV4_IFADDR;\n"
940 #: build/C/man7/netlink.7:402
943 "fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);\n"
944 "bind(fd, (struct sockaddr *) &sa, sizeof(sa));\n"
948 #: build/C/man7/netlink.7:409
950 "The next example demonstrates how to send a netlink message to the kernel "
951 "(pid 0). Note that application must take care of message sequence numbers "
952 "in order to reliably track acknowledgements."
956 #: build/C/man7/netlink.7:416
959 "struct nlmsghdr *nh; /* The nlmsghdr with payload to send. */\n"
960 "struct sockaddr_nl sa;\n"
961 "struct iovec iov = { (void *) nh, nh-E<gt>nlmsg_len };\n"
962 "struct msghdr msg;\n"
966 #: build/C/man7/netlink.7:424
969 "msg = { (void *)&sa, sizeof(sa), &iov, 1, NULL, 0, 0 };\n"
970 "memset(&sa, 0, sizeof(sa));\n"
971 "sa.nl_family = AF_NETLINK;\n"
972 "nh-E<gt>nlmsg_pid = 0;\n"
973 "nh-E<gt>nlmsg_seq = ++sequence_number;\n"
974 "/* Request an ack from kernel by setting NLM_F_ACK. */\n"
975 "nh-E<gt>nlmsg_flags |= NLM_F_ACK;\n"
979 #: build/C/man7/netlink.7:426
981 msgid "sendmsg(fd, &msg, 0);\n"
985 #: build/C/man7/netlink.7:430
986 msgid "And the last example is about reading netlink message."
990 #: build/C/man7/netlink.7:439
995 "struct iovec iov = { buf, sizeof(buf) };\n"
996 "struct sockaddr_nl sa;\n"
997 "struct msghdr msg;\n"
998 "struct nlmsghdr *nh;\n"
1002 #: build/C/man7/netlink.7:442
1005 "msg = { (void *)&sa, sizeof(sa), &iov, 1, NULL, 0, 0 };\n"
1006 "len = recvmsg(fd, &msg, 0);\n"
1010 #: build/C/man7/netlink.7:448
1013 "for (nh = (struct nlmsghdr *) buf; NLMSG_OK (nh, len);\n"
1014 " nh = NLMSG_NEXT (nh, len)) {\n"
1015 " /* The end of multipart message. */\n"
1016 " if (nh-E<gt>nlmsg_type == NLMSG_DONE)\n"
1021 #: build/C/man7/netlink.7:452
1024 " if (nh-E<gt>nlmsg_type == NLMSG_ERROR)\n"
1025 " /* Do some error handling. */\n"
1030 #: build/C/man7/netlink.7:456
1033 " /* Continue with parsing payload. */\n"
1039 #: build/C/man7/netlink.7:463
1040 msgid "B<cmsg>(3), B<netlink>(3), B<capabilities>(7), B<rtnetlink>(7)"
1044 #: build/C/man7/netlink.7:466
1045 msgid "ftp://ftp.inr.ac.ru/ip-routing/iproute2* for information about libnetlink."
1049 #: build/C/man7/netlink.7:469
1050 msgid "http://people.suug.ch/~tgr/libnl/ for information about libnl."
1054 #: build/C/man7/netlink.7:471
1055 msgid "RFC 3549 \"Linux Netlink as an IP Services Protocol\""
1059 #: build/C/man3/rtnetlink.3:7 build/C/man7/rtnetlink.7:11
1065 #: build/C/man3/rtnetlink.3:7
1071 #: build/C/man3/rtnetlink.3:10
1072 msgid "rtnetlink - macros to manipulate rtnetlink messages"
1076 #: build/C/man3/rtnetlink.3:12 build/C/man7/rtnetlink.7:16
1077 msgid "B<#include E<lt>asm/types.hE<gt>>"
1081 #: build/C/man3/rtnetlink.3:14 build/C/man7/rtnetlink.7:18
1082 msgid "B<#include E<lt>linux/netlink.hE<gt>>"
1086 #: build/C/man3/rtnetlink.3:16 build/C/man7/rtnetlink.7:20
1087 msgid "B<#include E<lt>linux/rtnetlink.hE<gt>>"
1091 #: build/C/man3/rtnetlink.3:18 build/C/man7/rtnetlink.7:22
1092 msgid "B<#include E<lt>sys/socket.hE<gt>>"
1096 #: build/C/man3/rtnetlink.3:21 build/C/man7/rtnetlink.7:24
1098 "B<rtnetlink_socket = socket(AF_NETLINK, int >I<socket_type>B<, "
1103 #: build/C/man3/rtnetlink.3:23
1104 msgid "B<int RTA_OK(struct rtattr *>I<rta>B<, int >I<rtabuflen>B<);>"
1108 #: build/C/man3/rtnetlink.3:25
1109 msgid "B<void *RTA_DATA(struct rtattr *>I<rta>B<);>"
1113 #: build/C/man3/rtnetlink.3:27
1114 msgid "B<unsigned int RTA_PAYLOAD(struct rtattr *>I<rta>B<);>"
1118 #: build/C/man3/rtnetlink.3:30
1120 "B<struct rtattr *RTA_NEXT(struct rtattr *>I<rta>B<, unsigned int "
1121 ">I<rtabuflen>B<);>"
1125 #: build/C/man3/rtnetlink.3:32
1126 msgid "B<unsigned int RTA_LENGTH(unsigned int >I<length>B<);>"
1130 #: build/C/man3/rtnetlink.3:34
1131 msgid "B<unsigned int RTA_SPACE(unsigned int >I<length>B<);>"
1135 #: build/C/man3/rtnetlink.3:42
1137 "All B<rtnetlink>(7) messages consist of a B<netlink>(7) message header and "
1138 "appended attributes. The attributes should be only manipulated using the "
1139 "macros provided here."
1143 #: build/C/man3/rtnetlink.3:53
1145 "B<RTA_OK(>I<rta>B<, >I<attrlen>B<)> returns true if I<rta> points to a valid "
1146 "routing attribute; I<attrlen> is the running length of the attribute "
1147 "buffer. When not true then you must assume there are no more attributes in "
1148 "the message, even if I<attrlen> is nonzero."
1152 #: build/C/man3/rtnetlink.3:56
1154 "B<RTA_DATA(>I<rta>B<)> returns a pointer to the start of this attribute's "
1159 #: build/C/man3/rtnetlink.3:59
1160 msgid "B<RTA_PAYLOAD(>I<rta>B<)> returns the length of this attribute's data."
1164 #: build/C/man3/rtnetlink.3:68
1166 "B<RTA_NEXT(>I<rta>B<, >I<attrlen>B<)> gets the next attribute after I<rta>. "
1167 "Calling this macro will update I<attrlen>. You should use B<RTA_OK> to "
1168 "check the validity of the returned pointer."
1172 #: build/C/man3/rtnetlink.3:73
1174 "B<RTA_LENGTH(>I<len>B<)> returns the length which is required for I<len> "
1175 "bytes of data plus the header."
1179 #: build/C/man3/rtnetlink.3:78
1181 "B<RTA_SPACE(>I<len>B<)> returns the amount of space which will be needed in "
1182 "a message with I<len> bytes of data."
1186 #: build/C/man3/rtnetlink.3:82 build/C/man7/rtnetlink.7:445
1187 msgid "This manual page is incomplete."
1190 #. FIXME ? would be better to use libnetlink in the EXAMPLE code here
1192 #: build/C/man3/rtnetlink.3:86
1193 msgid "Creating a rtnetlink message to set the MTU of a device:"
1197 #: build/C/man3/rtnetlink.3:88
1199 msgid " #include E<lt>linux/rtnetlink.hE<gt>\n"
1203 #: build/C/man3/rtnetlink.3:90
1209 #: build/C/man3/rtnetlink.3:96
1213 " struct nlmsghdr nh;\n"
1214 " struct ifinfomsg if;\n"
1215 " char attrbuf[512];\n"
1220 #: build/C/man3/rtnetlink.3:99
1223 " struct rtattr *rta;\n"
1224 " unsigned int mtu = 1000;\n"
1228 #: build/C/man3/rtnetlink.3:101
1230 msgid " int rtnetlink_sk = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE);\n"
1234 #: build/C/man3/rtnetlink.3:117
1237 " memset(&req, 0, sizeof(req));\n"
1238 " req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifinfomsg));\n"
1239 " req.nh.nlmsg_flags = NLM_F_REQUEST;\n"
1240 " req.nh.nlmsg_type = RTM_NEWLINK;\n"
1241 " req.if.ifi_family = AF_UNSPEC;\n"
1242 " req.if.ifi_index = INTERFACE_INDEX;\n"
1243 " req.if.ifi_change = 0xffffffff; /* ??? */\n"
1244 " rta = (struct rtattr *)(((char *) &req) +\n"
1245 " NLMSG_ALIGN(req.nh.nlmsg_len));\n"
1246 " rta-E<gt>rta_type = IFLA_MTU;\n"
1247 " rta-E<gt>rta_len = RTA_LENGTH(sizeof(unsigned int));\n"
1248 " req.n.nlmsg_len = NLMSG_ALIGN(req.nh.nlmsg_len) +\n"
1249 " RTA_LENGTH(sizeof(mtu));\n"
1250 " memcpy(RTA_DATA(rta), &mtu, sizeof(mtu));\n"
1251 " send(rtnetlink_sk, &req, req.nh.nlmsg_len);\n"
1255 #: build/C/man3/rtnetlink.3:122
1256 msgid "B<netlink>(3), B<netlink>(7), B<rtnetlink>(7)"
1260 #: build/C/man7/rtnetlink.7:11
1266 #: build/C/man7/rtnetlink.7:14
1267 msgid "rtnetlink, NETLINK_ROUTE - Linux IPv4 routing socket"
1270 #. FIXME ? all these macros could be moved to rtnetlink(3)
1272 #: build/C/man7/rtnetlink.7:38
1274 "Rtnetlink allows the kernel's routing tables to be read and altered. It is "
1275 "used within the kernel to communicate between various subsystems, though "
1276 "this usage is not documented here, and for communication with user-space "
1277 "programs. Network routes, IP addresses, link parameters, neighbor setups, "
1278 "queueing disciplines, traffic classes and packet classifiers may all be "
1279 "controlled through B<NETLINK_ROUTE> sockets. It is based on netlink "
1280 "messages; see B<netlink>(7) for more information."
1284 #: build/C/man7/rtnetlink.7:38
1286 msgid "Routing Attributes"
1290 #: build/C/man7/rtnetlink.7:40
1291 msgid "Some rtnetlink messages have optional attributes after the initial header:"
1295 #: build/C/man7/rtnetlink.7:48
1299 " unsigned short rta_len; /* Length of option */\n"
1300 " unsigned short rta_type; /* Type of option */\n"
1301 " /* Data follows */\n"
1306 #: build/C/man7/rtnetlink.7:54
1308 "These attributes should be only manipulated using the RTA_* macros or "
1309 "libnetlink, see B<rtnetlink>(3)."
1313 #: build/C/man7/rtnetlink.7:54
1319 #: build/C/man7/rtnetlink.7:57
1321 "Rtnetlink consists of these message types (in addition to standard netlink "
1326 #: build/C/man7/rtnetlink.7:57
1328 msgid "B<RTM_NEWLINK>, B<RTM_DELLINK>, B<RTM_GETLINK>"
1332 #: build/C/man7/rtnetlink.7:65
1334 "Create, remove or get information about a specific network interface. These "
1335 "messages contain an I<ifinfomsg> structure followed by a series of I<rtattr> "
1340 #: build/C/man7/rtnetlink.7:74
1343 "struct ifinfomsg {\n"
1344 " unsigned char ifi_family; /* AF_UNSPEC */\n"
1345 " unsigned short ifi_type; /* Device type */\n"
1346 " int ifi_index; /* Interface index */\n"
1347 " unsigned int ifi_flags; /* Device flags */\n"
1348 " unsigned int ifi_change; /* change mask */\n"
1354 #: build/C/man7/rtnetlink.7:84
1356 "I<ifi_flags> contains the device flags, see B<netdevice>(7); I<ifi_index> is "
1357 "the unique interface index, I<ifi_change> is reserved for future use and "
1358 "should be always set to 0xFFFFFFFF."
1362 #: build/C/man7/rtnetlink.7:88
1364 msgid "Routing attributes\n"
1368 #: build/C/man7/rtnetlink.7:89 build/C/man7/rtnetlink.7:151 build/C/man7/rtnetlink.7:298
1370 msgid "rta_type:value type:description\n"
1374 #: build/C/man7/rtnetlink.7:90 build/C/man7/rtnetlink.7:152 build/C/man7/rtnetlink.7:202 build/C/man7/rtnetlink.7:226 build/C/man7/rtnetlink.7:299 build/C/man7/rtnetlink.7:417
1380 #: build/C/man7/rtnetlink.7:91
1382 msgid "IFLA_UNSPEC:-:unspecified.\n"
1386 #: build/C/man7/rtnetlink.7:92
1388 msgid "IFLA_ADDRESS:hardware address:interface L2 address\n"
1392 #: build/C/man7/rtnetlink.7:93
1394 msgid "IFLA_BROADCAST:hardware address:L2 broadcast address.\n"
1398 #: build/C/man7/rtnetlink.7:94
1400 msgid "IFLA_IFNAME:asciiz string:Device name.\n"
1404 #: build/C/man7/rtnetlink.7:95
1406 msgid "IFLA_MTU:unsigned int:MTU of the device.\n"
1410 #: build/C/man7/rtnetlink.7:96
1412 msgid "IFLA_LINK:int:Link type.\n"
1416 #: build/C/man7/rtnetlink.7:97
1418 msgid "IFLA_QDISC:asciiz string:Queueing discipline.\n"
1422 #: build/C/man7/rtnetlink.7:98
1424 msgid "IFLA_STATS:T{\n"
1428 #: build/C/man7/rtnetlink.7:99
1434 #: build/C/man7/rtnetlink.7:100
1436 msgid "T}:Interface Statistics.\n"
1440 #: build/C/man7/rtnetlink.7:104
1441 msgid "The value type for IFLA_STATS is I<struct net_device_stats>."
1445 #: build/C/man7/rtnetlink.7:104
1447 msgid "B<RTM_NEWADDR>, B<RTM_DELADDR>, B<RTM_GETADDR>"
1451 #: build/C/man7/rtnetlink.7:117
1453 "Add, remove or receive information about an IP address associated with an "
1454 "interface. In Linux 2.2, an interface can carry multiple IP addresses, this "
1455 "replaces the alias device concept in 2.0. In Linux 2.2, these messages "
1456 "support IPv4 and IPv6 addresses. They contain an I<ifaddrmsg> structure, "
1457 "optionally followed by I<rtattr> routing attributes."
1461 #: build/C/man7/rtnetlink.7:126
1464 "struct ifaddrmsg {\n"
1465 " unsigned char ifa_family; /* Address type */\n"
1466 " unsigned char ifa_prefixlen; /* Prefixlength of address */\n"
1467 " unsigned char ifa_flags; /* Address flags */\n"
1468 " unsigned char ifa_scope; /* Address scope */\n"
1469 " int ifa_index; /* Interface index */\n"
1474 #: build/C/man7/rtnetlink.7:146
1476 "I<ifa_family> is the address family type (currently B<AF_INET> or "
1477 "B<AF_INET6>), I<ifa_prefixlen> is the length of the address mask of the "
1478 "address if defined for the family (like for IPv4), I<ifa_scope> is the "
1479 "address scope, I<ifa_index> is the interface index of the interface the "
1480 "address is associated with. I<ifa_flags> is a flag word of "
1481 "B<IFA_F_SECONDARY> for secondary address (old alias interface), "
1482 "B<IFA_F_PERMANENT> for a permanent address set by the user and other "
1483 "undocumented flags."
1487 #: build/C/man7/rtnetlink.7:150 build/C/man7/rtnetlink.7:297 build/C/man7/rtnetlink.7:415
1489 msgid "Attributes\n"
1493 #: build/C/man7/rtnetlink.7:153
1495 msgid "IFA_UNSPEC:-:unspecified.\n"
1499 #: build/C/man7/rtnetlink.7:154
1501 msgid "IFA_ADDRESS:raw protocol address:interface address\n"
1505 #: build/C/man7/rtnetlink.7:155
1507 msgid "IFA_LOCAL:raw protocol address:local address\n"
1511 #: build/C/man7/rtnetlink.7:156
1513 msgid "IFA_LABEL:asciiz string:name of the interface\n"
1517 #: build/C/man7/rtnetlink.7:157
1519 msgid "IFA_BROADCAST:raw protocol address:broadcast address.\n"
1523 #: build/C/man7/rtnetlink.7:158
1525 msgid "IFA_ANYCAST:raw protocol address:anycast address\n"
1529 #: build/C/man7/rtnetlink.7:159
1531 msgid "IFA_CACHEINFO:struct ifa_cacheinfo:Address information.\n"
1535 #: build/C/man7/rtnetlink.7:162
1537 msgid "B<RTM_NEWROUTE>, B<RTM_DELROUTE>, B<RTM_GETROUTE>"
1541 #: build/C/man7/rtnetlink.7:182
1543 "Create, remove or receive information about a network route. These messages "
1544 "contain an I<rtmsg> structure with an optional sequence of I<rtattr> "
1545 "structures following. For B<RTM_GETROUTE>, setting I<rtm_dst_len> and "
1546 "I<rtm_src_len> to 0 means you get all entries for the specified routing "
1547 "table. For the other fields, except I<rtm_table> and I<rtm_protocol>, 0 is "
1552 #: build/C/man7/rtnetlink.7:189
1556 " unsigned char rtm_family; /* Address family of route */\n"
1557 " unsigned char rtm_dst_len; /* Length of destination */\n"
1558 " unsigned char rtm_src_len; /* Length of source */\n"
1559 " unsigned char rtm_tos; /* TOS filter */\n"
1563 #: build/C/man7/rtnetlink.7:194
1566 " unsigned char rtm_table; /* Routing table ID */\n"
1567 " unsigned char rtm_protocol; /* Routing protocol; see below */\n"
1568 " unsigned char rtm_scope; /* See below */\n"
1569 " unsigned char rtm_type; /* See below */\n"
1573 #: build/C/man7/rtnetlink.7:197
1576 " unsigned int rtm_flags;\n"
1581 #: build/C/man7/rtnetlink.7:201
1583 msgid "rtm_type:Route type\n"
1587 #: build/C/man7/rtnetlink.7:203
1589 msgid "RTN_UNSPEC:unknown route\n"
1593 #: build/C/man7/rtnetlink.7:204
1595 msgid "RTN_UNICAST:a gateway or direct route\n"
1599 #: build/C/man7/rtnetlink.7:205
1601 msgid "RTN_LOCAL:a local interface route\n"
1605 #: build/C/man7/rtnetlink.7:206
1607 msgid "RTN_BROADCAST:T{\n"
1611 #: build/C/man7/rtnetlink.7:207
1613 msgid "a local broadcast route (sent as a broadcast)\n"
1617 #: build/C/man7/rtnetlink.7:209
1619 msgid "RTN_ANYCAST:T{\n"
1623 #: build/C/man7/rtnetlink.7:210
1625 msgid "a local broadcast route (sent as a unicast)\n"
1629 #: build/C/man7/rtnetlink.7:212
1631 msgid "RTN_MULTICAST:a multicast route\n"
1635 #: build/C/man7/rtnetlink.7:213
1637 msgid "RTN_BLACKHOLE:a packet dropping route\n"
1641 #: build/C/man7/rtnetlink.7:214
1643 msgid "RTN_UNREACHABLE:an unreachable destination\n"
1647 #: build/C/man7/rtnetlink.7:215
1649 msgid "RTN_PROHIBIT:a packet rejection route\n"
1653 #: build/C/man7/rtnetlink.7:216
1655 msgid "RTN_THROW:continue routing lookup in another table\n"
1659 #: build/C/man7/rtnetlink.7:217
1661 msgid "RTN_NAT:a network address translation rule\n"
1665 #: build/C/man7/rtnetlink.7:218
1667 msgid "RTN_XRESOLVE:T{\n"
1671 #: build/C/man7/rtnetlink.7:219
1673 msgid "refer to an external resolver (not implemented)\n"
1677 #: build/C/man7/rtnetlink.7:225
1679 msgid "rtm_protocol:Route origin.\n"
1683 #: build/C/man7/rtnetlink.7:227
1685 msgid "RTPROT_UNSPEC:unknown\n"
1689 #: build/C/man7/rtnetlink.7:228
1691 msgid "RTPROT_REDIRECT:T{\n"
1695 #: build/C/man7/rtnetlink.7:229
1697 msgid "by an ICMP redirect (currently unused)\n"
1701 #: build/C/man7/rtnetlink.7:231
1703 msgid "RTPROT_KERNEL:by the kernel\n"
1707 #: build/C/man7/rtnetlink.7:232
1709 msgid "RTPROT_BOOT:during boot\n"
1713 #: build/C/man7/rtnetlink.7:233
1715 msgid "RTPROT_STATIC:by the administrator\n"
1719 #: build/C/man7/rtnetlink.7:244
1721 "Values larger than B<RTPROT_STATIC> are not interpreted by the kernel, they "
1722 "are just for user information. They may be used to tag the source of a "
1723 "routing information or to distinguish between multiple routing daemons. See "
1724 "I<E<lt>linux/rtnetlink.hE<gt>> for the routing daemon identifiers which are "
1729 #: build/C/man7/rtnetlink.7:247
1730 msgid "I<rtm_scope> is the distance to the destination:"
1734 #: build/C/man7/rtnetlink.7:250
1736 msgid "RT_SCOPE_UNIVERSE:global route\n"
1740 #: build/C/man7/rtnetlink.7:251
1742 msgid "RT_SCOPE_SITE:T{\n"
1746 #: build/C/man7/rtnetlink.7:252
1748 msgid "interior route in the local autonomous system\n"
1752 #: build/C/man7/rtnetlink.7:254
1754 msgid "RT_SCOPE_LINK:route on this link\n"
1758 #: build/C/man7/rtnetlink.7:255
1760 msgid "RT_SCOPE_HOST:route on the local host\n"
1764 #: build/C/man7/rtnetlink.7:256
1766 msgid "RT_SCOPE_NOWHERE:destination doesn't exist\n"
1770 #: build/C/man7/rtnetlink.7:264
1772 "The values between B<RT_SCOPE_UNIVERSE> and B<RT_SCOPE_SITE> are available "
1777 #: build/C/man7/rtnetlink.7:268
1778 msgid "The I<rtm_flags> have the following meanings:"
1782 #: build/C/man7/rtnetlink.7:271
1784 msgid "RTM_F_NOTIFY:T{\n"
1788 #: build/C/man7/rtnetlink.7:272
1790 msgid "if the route changes, notify the user via rtnetlink\n"
1794 #: build/C/man7/rtnetlink.7:274
1796 msgid "RTM_F_CLONED:route is cloned from another route\n"
1800 #: build/C/man7/rtnetlink.7:275
1802 msgid "RTM_F_EQUALIZE:a multipath equalizer (not yet implemented)\n"
1806 #: build/C/man7/rtnetlink.7:280
1807 msgid "I<rtm_table> specifies the routing table"
1811 #: build/C/man7/rtnetlink.7:283
1813 msgid "RT_TABLE_UNSPEC:an unspecified routing table\n"
1817 #: build/C/man7/rtnetlink.7:284
1819 msgid "RT_TABLE_DEFAULT:the default table\n"
1823 #: build/C/man7/rtnetlink.7:285
1825 msgid "RT_TABLE_MAIN:the main table\n"
1829 #: build/C/man7/rtnetlink.7:286
1831 msgid "RT_TABLE_LOCAL:the local table\n"
1835 #: build/C/man7/rtnetlink.7:293
1837 "The user may assign arbitrary values between B<RT_TABLE_UNSPEC> and "
1838 "B<RT_TABLE_DEFAULT>."
1842 #: build/C/man7/rtnetlink.7:300
1844 msgid "RTA_UNSPEC:-:ignored.\n"
1848 #: build/C/man7/rtnetlink.7:301
1850 msgid "RTA_DST:protocol address:Route destination address.\n"
1854 #: build/C/man7/rtnetlink.7:302
1856 msgid "RTA_SRC:protocol address:Route source address.\n"
1860 #: build/C/man7/rtnetlink.7:303
1862 msgid "RTA_IIF:int:Input interface index.\n"
1866 #: build/C/man7/rtnetlink.7:304
1868 msgid "RTA_OIF:int:Output interface index.\n"
1872 #: build/C/man7/rtnetlink.7:305
1874 msgid "RTA_GATEWAY:protocol address:The gateway of the route\n"
1878 #: build/C/man7/rtnetlink.7:306
1880 msgid "RTA_PRIORITY:int:Priority of route.\n"
1884 #: build/C/man7/rtnetlink.7:307
1886 msgid "RTA_PREFSRC::\n"
1890 #: build/C/man7/rtnetlink.7:308
1892 msgid "RTA_METRICS:int:Route metric\n"
1896 #: build/C/man7/rtnetlink.7:309
1898 msgid "RTA_MULTIPATH::\n"
1902 #: build/C/man7/rtnetlink.7:310
1904 msgid "RTA_PROTOINFO::\n"
1908 #: build/C/man7/rtnetlink.7:311
1910 msgid "RTA_FLOW::\n"
1914 #: build/C/man7/rtnetlink.7:312
1916 msgid "RTA_CACHEINFO::\n"
1920 #: build/C/man7/rtnetlink.7:316
1921 msgid "B<Fill these values in!>"
1925 #: build/C/man7/rtnetlink.7:316
1927 msgid "B<RTM_NEWNEIGH>, B<RTM_DELNEIGH>, B<RTM_GETNEIGH>"
1931 #: build/C/man7/rtnetlink.7:323
1933 "Add, remove or receive information about a neighbor table entry (e.g., an "
1934 "ARP entry). The message contains an I<ndmsg> structure."
1938 #: build/C/man7/rtnetlink.7:332
1942 " unsigned char ndm_family;\n"
1943 " int ndm_ifindex; /* Interface index */\n"
1944 " __u16 ndm_state; /* State */\n"
1945 " __u8 ndm_flags; /* Flags */\n"
1951 #: build/C/man7/rtnetlink.7:339
1954 "struct nda_cacheinfo {\n"
1955 " __u32 ndm_confirmed;\n"
1956 " __u32 ndm_used;\n"
1957 " __u32 ndm_updated;\n"
1958 " __u32 ndm_refcnt;\n"
1963 #: build/C/man7/rtnetlink.7:343
1964 msgid "I<ndm_state> is a bit mask of the following states:"
1968 #: build/C/man7/rtnetlink.7:346
1970 msgid "NUD_INCOMPLETE:a currently resolving cache entry\n"
1974 #: build/C/man7/rtnetlink.7:347
1976 msgid "NUD_REACHABLE:a confirmed working cache entry\n"
1980 #: build/C/man7/rtnetlink.7:348
1982 msgid "NUD_STALE:an expired cache entry\n"
1986 #: build/C/man7/rtnetlink.7:349
1988 msgid "NUD_DELAY:an entry waiting for a timer\n"
1992 #: build/C/man7/rtnetlink.7:350
1994 msgid "NUD_PROBE:a cache entry that is currently reprobed\n"
1998 #: build/C/man7/rtnetlink.7:351
2000 msgid "NUD_FAILED:an invalid cache entry\n"
2004 #: build/C/man7/rtnetlink.7:352
2006 msgid "NUD_NOARP:a device with no destination cache\n"
2010 #: build/C/man7/rtnetlink.7:353
2012 msgid "NUD_PERMANENT:a static entry\n"
2016 #: build/C/man7/rtnetlink.7:359
2017 msgid "Valid I<ndm_flags> are:"
2021 #: build/C/man7/rtnetlink.7:362
2023 msgid "NTF_PROXY:a proxy arp entry\n"
2027 #: build/C/man7/rtnetlink.7:363
2029 msgid "NTF_ROUTER:an IPv6 router\n"
2033 #. document the members of the struct better
2035 #: build/C/man7/rtnetlink.7:373
2036 msgid "The I<rtattr> struct has the following meanings for the I<rta_type> field:"
2040 #: build/C/man7/rtnetlink.7:376
2042 msgid "NDA_UNSPEC:unknown type\n"
2046 #: build/C/man7/rtnetlink.7:377
2048 msgid "NDA_DST:a neighbor cache n/w layer destination address\n"
2052 #: build/C/man7/rtnetlink.7:378
2054 msgid "NDA_LLADDR:a neighbor cache link layer address\n"
2058 #: build/C/man7/rtnetlink.7:379
2060 msgid "NDA_CACHEINFO:cache statistics.\n"
2064 #: build/C/man7/rtnetlink.7:389
2066 "If the I<rta_type> field is B<NDA_CACHEINFO> then a I<struct nda_cacheinfo> "
2071 #: build/C/man7/rtnetlink.7:389
2073 msgid "B<RTM_NEWRULE>, B<RTM_DELRULE>, B<RTM_GETRULE>"
2077 #: build/C/man7/rtnetlink.7:394
2078 msgid "Add, delete or retrieve a routing rule. Carries a I<struct rtmsg>"
2082 #: build/C/man7/rtnetlink.7:394
2084 msgid "B<RTM_NEWQDISC>, B<RTM_DELQDISC>, B<RTM_GETQDISC>"
2088 #: build/C/man7/rtnetlink.7:401
2090 "Add, remove or get a queueing discipline. The message contains a I<struct "
2091 "tcmsg> and may be followed by a series of attributes."
2095 #: build/C/man7/rtnetlink.7:410
2099 " unsigned char tcm_family;\n"
2100 " int tcm_ifindex; /* interface index */\n"
2101 " __u32 tcm_handle; /* Qdisc handle */\n"
2102 " __u32 tcm_parent; /* Parent qdisc */\n"
2103 " __u32 tcm_info;\n"
2108 #: build/C/man7/rtnetlink.7:416
2110 msgid "rta_type:value type:Description\n"
2114 #: build/C/man7/rtnetlink.7:418
2116 msgid "TCA_UNSPEC:-:unspecified\n"
2120 #: build/C/man7/rtnetlink.7:419
2122 msgid "TCA_KIND:asciiz string:Name of queueing discipline\n"
2126 #: build/C/man7/rtnetlink.7:420
2128 msgid "TCA_OPTIONS:byte sequence:Qdisc-specific options follow\n"
2132 #: build/C/man7/rtnetlink.7:421
2134 msgid "TCA_STATS:struct tc_stats:Qdisc statistics.\n"
2138 #: build/C/man7/rtnetlink.7:422
2140 msgid "TCA_XSTATS:qdisc specific:Module-specific statistics.\n"
2144 #: build/C/man7/rtnetlink.7:423
2146 msgid "TCA_RATE:struct tc_estimator:Rate limit.\n"
2150 #: build/C/man7/rtnetlink.7:428
2152 "In addition various other qdisc module specific attributes are allowed. For "
2153 "more information see the appropriate include files."
2157 #: build/C/man7/rtnetlink.7:428
2159 msgid "B<RTM_NEWTCLASS>, B<RTM_DELTCLASS>, B<RTM_GETTCLASS>"
2163 #: build/C/man7/rtnetlink.7:434
2165 "Add, remove or get a traffic class. These messages contain a I<struct "
2166 "tcmsg> as described above."
2170 #: build/C/man7/rtnetlink.7:434
2172 msgid "B<RTM_NEWTFILTER>, B<RTM_DELTFILTER>, B<RTM_GETTFILTER>"
2176 #: build/C/man7/rtnetlink.7:440
2178 "Add, remove or receive information about a traffic filter. These messages "
2179 "contain a I<struct tcmsg> as described above."
2183 #: build/C/man7/rtnetlink.7:443
2184 msgid "B<rtnetlink> is a new feature of Linux 2.2."
2188 #: build/C/man7/rtnetlink.7:450
2189 msgid "B<cmsg>(3), B<rtnetlink>(3), B<ip>(7), B<netlink>(7)"