OSDN Git Service

(split) Import translated manuals from JM CVS Repository.
[linuxjm/LDP_man-pages.git] / release / man3 / rtnetlink.3
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: rtnetlink.3,v 1.3 1999/08/20 04:10:17 nakano Exp $
7 .\"
8 .\" Japanese Version Copyright (c) 1999 Shouichi Saito
9 .\"     all rights reserved.
10 .\" Translated Mon Jul 26 12:18:39 JST 1999
11 .\"     by Shouichi Saito <ss236rx@ymg.urban.ne.jp>
12 .\" Proofed Fri Aug 20 1999 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
13 .\"
14 .\"WORD:        running length  ¼ÂÆ°»þ¤ÎŤµ
15 .\"
16 .TH RTNETLINK 3 2010-01-11 "GNU" "Linux Programmer's Manual"
17 .SH Ì¾Á°
18 rtnetlink \- rtnetlink ¥á¥Ã¥»¡¼¥¸¤òÁàºî¤¹¤ë¥Þ¥¯¥í
19 .SH ½ñ¼°
20 .B #include <asm/types.h>
21 .br
22 .B #include <linux/netlink.h>
23 .br
24 .B #include <linux/rtnetlink.h>
25 .br
26 .B #include <sys/socket.h>
27
28 .BI "rtnetlink_socket = socket(AF_NETLINK, int " socket_type \
29 ", NETLINK_ROUTE);"
30 .sp
31 .BI "int RTA_OK(struct rtattr *" rta ", int " rtabuflen );
32 .sp
33 .BI "void *RTA_DATA(struct rtattr *" rta );
34 .sp
35 .BI "unsigned int RTA_PAYLOAD(struct rtattr *" rta );
36 .sp
37 .BI "struct rtattr *RTA_NEXT(struct rtattr *" rta \
38 ", unsigned int " rtabuflen );
39 .sp
40 .BI "unsigned int RTA_LENGTH(unsigned int " length );
41 .sp
42 .BI "unsigned int RTA_SPACE(unsigned int "length );
43 .SH ÀâÌÀ
44 Á´¤Æ¤Î
45 .BR rtnetlink (7)
46 ¥á¥Ã¥»¡¼¥¸¤Ï
47 .BR netlink (7)
48 ¥á¥Ã¥»¡¼¥¸¥Ø¥Ã¥À¤ÈÄɲðÀ­¤«¤é¤Ê¤ë¡£
49 °À­¤ÎÁàºî¤Ï¡¢É¬¤º¤³¤³¤Ëµó¤²¤¿¥Þ¥¯¥í¤òÄ̤·¤Æ¹Ô¤¦¤Ù¤­¤Ç¤¢¤ë¡£
50 .PP
51 .BI RTA_OK( rta ", " attrlen )
52 ¤Ï
53 .I rta
54 ¤¬Í­¸ú¤Ê¥ë¡¼¥Æ¥£¥ó¥°Â°À­¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ì¤Ð¿¿¤òÊÖ¤¹¡£
55 .I attrlen
56 ¤Ï°À­¥Ð¥Ã¥Õ¥¡¤Î¼ÂƯ»þ¤ÎŤµ (running length) ¤Ç¤¢¤ë¡£
57 ¿¿¤Ç¤Ê¤±¤ì¤Ð¡¢Î㤨
58 .I attrlen
59 ¤¬¥¼¥í¤Ç¤Ê¤¯¤Æ¤â¡¢
60 ¥á¥Ã¥»¡¼¥¸Ãæ¤Ë¤Ï¤â¤¦¤½¤ì°Ê¾å°À­¤Ï̵¤¤¤È¹Í¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
61 .PP
62 .BI RTA_DATA( rta )
63 ¤Ï¤³¤Î°À­¥Ç¡¼¥¿¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£
64 .PP
65 .BI RTA_PAYLOAD( rta )
66 ¤Ï¤³¤Î°À­¥Ç¡¼¥¿¤ÎŤµ¤òÊÖ¤¹¡£
67 .PP
68 .BI RTA_NEXT( rta ", " attrlen )
69 ¤Ï
70 .I rta
71 ¤Î¼¡¤Ë¤¢¤ë°À­¤ò¼èÆÀ¤¹¤ë¡£
72 ¤³¤Î¥Þ¥¯¥í¤ò¸Æ¤Ö¤È
73 .I attrlen
74 ¤¬¹¹¿·¤µ¤ì¤ë¡£
75 .B RTA_OK
76 ¤ò»È¤Ã¤Æ¡¢ÊÖ¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤¬Àµ¤·¤¤¤«¤ò¥Á¥§¥Ã¥¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£
77 .PP
78 .BI RTA_LENGTH( len )
79 ¤Ï
80 .I len
81 ¥Ð¥¤¥È¤Î¥Ç¡¼¥¿ + ¥Ø¥Ã¥À¤ËɬÍפÊŤµ¤òÊÖ¤¹¡£
82 .PP
83 .BI RTA_SPACE( len )
84 ¤Ï
85 .I len
86 ¥Ð¥¤¥È¤Î¥Ç¡¼¥¿¤ò»ý¤Ä¥á¥Ã¥»¡¼¥¸¤ËɬÍפȤµ¤ì¤ëÍÆÎ̤òÊÖ¤¹¡£
87 .SH ½àµò
88 ¤³¤ì¤é¤Î¥Þ¥¯¥í¤ÏÈóɸ½à¤Ç¡¢Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ë¡£
89 .SH ¥Ð¥°
90 ¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï´°Á´¤Ç¤Ï¤Ê¤¤¡£
91 .SH Îã
92 .\" FIXME ? would be better to use libnetlink in the EXAMPLE code here
93 ¥Ç¥Ð¥¤¥¹¤Î MTU ¤ò¥»¥Ã¥È¤¹¤ë rtnetlink ¥á¥Ã¥»¡¼¥¸¤òÀ¸À®¤¹¤ë
94 .nf
95     #include <linux/rtnetlink.h>
96
97     ...
98
99     struct {
100         struct nlmsghdr  nh;
101         struct ifinfomsg if;
102         char             attrbuf[512];
103     } req;
104
105     struct rtattr *rta;
106     unsigned int mtu = 1000;
107
108     int rtnetlink_sk = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE);
109
110     memset(&req, 0, sizeof(req));
111     req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifinfomsg));
112     req.nh.nlmsg_flags = NLM_F_REQUEST;
113     req.nh.nlmsg_type = RTM_NEWLINK;
114     req.if.ifi_family = AF_UNSPEC;
115     req.if.ifi_index = INTERFACE_INDEX;
116     req.if.ifi_change = 0xffffffff; /* ???*/
117     rta = (struct rtattr *)(((char *) &req) +
118                                   NLMSG_ALIGN(req.nh.nlmsg_len));
119     rta\->rta_type = IFLA_MTU;
120     rta\->rta_len = sizeof(unsigned int);
121     req.n.nlmsg_len = NLMSG_ALIGN(req.nh.nlmsg_len) +
122                                   RTA_LENGTH(sizeof(mtu));
123     memcpy(RTA_DATA(rta), &mtu, sizeof(mtu));
124     send(rtnetlink_sk, &req, req.nh.nlmsg_len);
125 .fi
126 .SH ´ØÏ¢¹àÌÜ
127 .BR netlink (3),
128 .BR netlink (7),
129 .BR rtnetlink (7)