Rechercher une page de manuel
rtnetlink
Langue: ja
Version: 1999-04-30 (openSuse - 09/10/07)
Section: 7 (Divers)
̾Á°
rtnetlink, NETLINK_ROUTE - Linux IPv4 ¥ë¡¼¥Æ¥£¥ó¥°¥½¥±¥Ã¥È½ñ¼°
#include <asm/types.h>#include <linux/netlink.h>
#include <linux/rtnetlink.h>
#include <sys/socket.h>
rtnetlink_socket = socket(PF_NETLINK, int socket_type, NETLINK_ROUTE);
ÀâÌÀ
rtnetlink ¤Ï¥«¡¼¥Í¥ë¤Î¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤òÆɤó¤À¤êÊѹ¹¤·¤¿¤ê ¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£¤³¤ì¤Ï¥«¡¼¥Í¥ë¤¬ÆâÉô¤Î¥µ¥Ö¥·¥¹¥Æ¥à¤È ÄÌ¿®¤¹¤ë¤¿¤á¤Ë¤âÍѤ¤¤é¤ì¤Æ¤¤¤ë¤¬¡¢¤½¤ì¤Ï¤³¤³¤Ç¤Ïµ½Ò¤·¤Ê¤¤¡£ ¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ï¥æ¡¼¥¶¡¼¶õ´Ö¤Î¥×¥í¥°¥é¥à¤È¤ÎÄÌ¿®¤Ë´Ø¤·¤Æ¤Î¤ß½Ò¤Ù¤ë¡£ ¥Í¥Ã¥È¥ï¡¼¥¯·ÐÏ©¡¦IP ¥¢¥É¥ì¥¹¡¦¥ê¥ó¥¯¥Ñ¥é¥á¡¼¥¿¡¦ ¶á˵ÀßÄê (neighbour setup)¡¦¥¥å¡¼¥¤¥ó¥°¥ë¡¼¥ë (queueing dicipline)¡¦ ¥È¥é¥Õ¥£¥Ã¥¯¥¯¥é¥¹¡¦¥Ñ¥±¥Ã¥È¤Î¥¯¥é¥¹Ê¬Îà¤Ê¤É¤¬¡¢¤¹¤Ù¤Æ NETLINK_ROUTE ¥½¥±¥Ã¥È¤òÄ̤·¤ÆÀ©¸æ¤Ç¤¤ë¡£ rtnetlink ¤Ï netlink ¥á¥Ã¥»¡¼¥¸¤ò¥Ù¡¼¥¹¤Ë¤·¤Æ¤¤¤ë¡£¾ÜºÙ¤Ï netlink(7) ¤ò¸«¤ë¤³¤È¡£¥ë¡¼¥Æ¥£¥ó¥°Â°À
rtnetlink ¥á¥Ã¥»¡¼¥¸¤Ë¤Ï¡¢½é´ü¥Ø¥Ã¥À¤Î¸å¤ËÉÕ²ÃŪ¤Ê°À¤ò »ý¤Ä¤â¤Î¤¬¤¢¤ë¡£struct rtattr { unsigned short rta_len; /* Length of option */ unsigned short rta_type; /* Type of option */ /* Data follows */ };
¤³¤ì¤é¤Î°À¤ÎÁàºî¤Ï¡¢ RTA_* ¥Þ¥¯¥í¤« libnetlink ¤òÄ̤·¤Æ¤Î¤ß ¹Ô¤¦¤Ù¤¤Ç¤¢¤ë¡£ rtnetlink(3) ¤ò¸«¤è¡£
¥á¥Ã¥»¡¼¥¸
rtnetlink ¤Ï (ɸ½àŪ¤Ê netlink ¥á¥Ã¥»¡¼¥¸¤Ë²Ã¤¨¤Æ) °Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¥¿¥¤¥×¤«¤é¹½À®¤µ¤ì¤ë¡£- RTM_NEWLINK, RTM_DELLINK, RTM_GETLINK
- »ØÄꤷ¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¾ðÊó¤ò¡¢À¸À®¡¦ºï½ü¡¦¼èÆÀ¤¹¤ë¡£ ¤³¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï ifinfomsg ¹½Â¤ÂΤȡ¢¤½¤ì¤Ë³¤¤¤Æ¤¤¤¯¤Ä¤«¤Î rtattr ¹½Â¤ÂΤòȼ¤¦¡£
struct ifinfomsg { unsigned char ifi_family; /* AF_UNSPEC */ unsigned short ifi_type; /* Device type */ int ifi_index; /* Interface index */ unsigned int ifi_flags; /* Device flags */ unsigned int ifi_change; /* change mask */ };
ifi_flags ¤Ï¥Ç¥Ð¥¤¥¹¤Î¥Õ¥é¥°¤Ç¤¢¤ë¡£ netdevice(7) ¤ò¸«¤è¡£ ifi_index ¤Ï¾¤È½Å¤Ê¤é¤Ê¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î index ¤Ç¤¢¤ë¡£ ifi_change ¤Ï¾Íè¤ÎÍøÍѤΤ¿¤á¤ËͽÌ󤵤ì¤Æ¤ª¤ê¡¢¾ï¤Ë 0xFFFFFFFF ¤Ë¥»¥Ã¥È¤¹¤Ù¤¤Ç¤¢¤ë¡£
¥ë¡¼¥Æ¥£¥ó¥°Â°À rta_type Ãͤη¿ ÀâÌÀ IFLA_UNSPEC - »ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ IFLA_ADDRESS hardware address ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ L2 ¥¢¥É¥ì¥¹ IFLA_BROADCAST hardware address L2 ¥Ö¥í¡¼¥É¥¥ã¥¹¥È¥¢¥É¥ì¥¹ IFLA_IFNAME asciiz string ¥Ç¥Ð¥¤¥¹Ì¾ IFLA_MTU unsigned int ¥Ç¥Ð¥¤¥¹¤Î MTU IFLA_LINK int ¥ê¥ó¥¯¥¿¥¤¥× IFLA_QDISC asciiz string ¥¥å¡¼¥¤¥ó¥°¤Î¥ë¡¼¥ë IFLA_STATS ²¼µ»²¾È ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÅý·× IFLA_STATS ¤ÎÃͤη¿¤Ï struct net_device_stats ¤Ç¤¢¤ë¡£
- RTM_NEWADDR, RTM_DELADDR, RTM_GETADDR
- ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î IP ¥¢¥É¥ì¥¹¤Î¾ðÊó¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ Linux 2.2 ¤Ç¤Ï¡¢°ì¤Ä¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ËÊ£¿ô¤Î IP ¥¢¥É¥ì¥¹¤ò ÊÝ»ý¤µ¤»¤ë¤³¤È¤¬¤Ç¤¡¢¤³¤ì¤Ï 2.0 ¤ÎÊÌ̾¥Ç¥Ð¥¤¥¹¤Î³µÇ°¤òÃÖ¤´¹¤¨¤ë¡£ Linux 2.2 ¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï IPv4 ¤È IPv6 ¤ÎξÊý¤Î¥¢¥É¥ì¥¹¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ ¤³¤ì¤é¤Ï ifaddrmsg ¹½Â¤ÂΤòȼ¤¦¡£¤½¤Î¤¢¤È¤Ë rtaddr ¥ë¡¼¥Æ¥£¥ó¥°Â°À¤¬Â³¤¯¤³¤È¤â¤¢¤ë¡£
struct ifaddrmsg { unsigned char ifa_family; /* Address type */ unsigned char ifa_prefixlen; /* Prefixlength of address */ unsigned char ifa_flags; /* Address flags */ unsigned char ifa_scope; /* Address scope */ int ifa_index; /* Interface index */ };
ifa_family ¤Ï¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Î¥¿¥¤¥×¤Ç¤¢¤ë (¸½ºß¤Ï AF_INET ¤Þ¤¿¤Ï AF_INET6)¡£ ifa_prefixlen ¤Ï¥¢¥É¥ì¥¹¤Î¥¢¥É¥ì¥¹¥Þ¥¹¥¯¤ÎŤµ¤Ç¤¢¤ë (IPv4 ¤Î¤è¤¦¤Ë¡¢ ¤½¤Î¥Õ¥¡¥ß¥ê¡¼¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç)¡£ ifa_scope ¤Ï¥¢¥É¥ì¥¹¤Î¥¹¥³¡¼¥×¤Ç¤¢¤ë¡£ ifa_index ¤Ï¥¢¥É¥ì¥¹¤¬´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î index ¤Ç¤¢¤ë¡£ ifa_flags ¤Ï¥Õ¥é¥°¥ï¡¼¥É¤Ç¡¢ Æó¤Ä¤á¤Î¥¢¥É¥ì¥¹ (¸Å¤¤ÊÌ̾¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹) ¤Î¾ì¹ç¤Ï IFA_F_SECONDARY ¤Ë¡¢±Ê³Ū¤Ê¥¢¥É¥ì¥¹¤Î¾ì¹ç¤Ï IFA_F_PERMANENT ¤ËŬÍѤµ¤ì¤ë¡£¥æ¡¼¥¶¡¼¤Ë¤è¤Ã¤Æ¥»¥Ã¥È¤µ¤ì¤ë¥Õ¥é¥°¤È¡¢ undocumented ¤Ê¥Õ¥é¥°¤¬¤¢¤ë¡£
°À rta_type Ãͤη¿ ÀâÌÀ IFA_UNSPEC - »ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤ IFA_ADDRESS raw protocol address ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹ IFA_LOCAL raw protocol address ¥í¡¼¥«¥ë¥¢¥É¥ì¥¹ IFA_LABEL asciiz string ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î̾Á° IFA_BROADCAST raw protocol address ¥Ö¥í¡¼¥É¥¥ã¥¹¥È¥¢¥É¥ì¥¹ IFA_ANYCAST raw protocol address anycast ¥¢¥É¥ì¥¹ IFA_CACHEINFO struct ifa_cacheinfo ¥¢¥É¥ì¥¹¾ðÊó - RTM_NEWROUTE, RTM_DELROUTE, RTM_GETROUTE
- ¥Í¥Ã¥È¥ï¡¼¥¯·ÐÏ©¤Î¾ðÊó¤òÀ¸À®¡¦ºï½ü¡¦¼èÆÀ¤¹¤ë¡£ ¤³¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï rtmsg ¹½Â¤ÂΤòȼ¤¦¡£¤½¤Î¤¢¤È¤Ë¤¤¤¯¤Ä¤«¤Î rtattr ¹½Â¤ÂΤò³¤±¤ë¤³¤È¤â¤Ç¤¤ë¡£ RTM_GETROUTE ¤Ç rtm_dst_len ¤È rtm_src_len ¤Ë 0 ¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢ »ØÄꤵ¤ì¤¿¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤ÎÁ´¤Æ¤Î¥¨¥ó¥È¥ê¤ò½êÆÀ¤¹¤ë¡£ rtm_table ¤È rtm_protocol °Ê³°¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ë 0 ¤òÆþ¤ì¤ë¤È¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¤ò°ÕÌ£¤¹¤ë¡£
struct rtmsg { unsigned char rtm_family; /* Address family of route */ unsigned char rtm_dst_len; /* Length of source */ unsigned char rtm_src_len; /* Length of destination */ unsigned char rtm_tos; /* TOS filter */ unsigned char rtm_table; /* Routing table ID */ unsigned char rtm_protocol; /* Routing protocol; see below */ unsigned char rtm_scope; /* See below */ unsigned char rtm_type; /* See below */ unsigned int rtm_flags; };
rtm_type ·ÐÏ©¤Î¥¿¥¤¥× RTN_UNSPEC ̤ÃΤηÐÏ© RTN_UNICAST ¥²¡¼¥È¥¦¥§¥¤¤Þ¤¿¤Ï¥À¥¤¥ì¥¯¥È¤Ê·ÐÏ© RTN_LOCAL ¥í¡¼¥«¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î·ÐÏ© RTN_BROADCAST ¥í¡¼¥«¥ë¤Ê¥Ö¥í¡¼¥É¥¥ã¥¹¥È·ÐÏ© (¥Ö¥í¡¼¥É¥¥ã¥¹¥È¤È¤·¤ÆÁ÷¿®¤µ¤ì¤ë) RTN_ANYCAST ¥í¡¼¥«¥ë¤Ê¥Ö¥í¡¼¥É¥¥ã¥¹¥È·ÐÏ© (¥æ¥Ë¥¥ã¥¹¥È¤È¤·¤ÆÁ÷¿®¤µ¤ì¤ë) RTN_MULTICAST ¥Þ¥ë¥Á¥¥ã¥¹¥È·ÐÏ© RTN_BLACKHOLE ¥Ñ¥±¥Ã¥È¤ò¼Î¤Æ¤ë·ÐÏ© RTN_UNREACHABLE Åþã¤Ç¤¤Ê¤¤¹Ô¤Àè RTN_PROHIBIT ¥Ñ¥±¥Ã¥È¤òµñÈݤ¹¤ë·ÐÏ© RTN_THROW ·Ðϩõº÷¤òÊ̤Υơ¼¥Ö¥ë¤Ç·Ñ³ RTN_NAT ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ÎÊÑ´¹¥ë¡¼¥ë RTN_XRESOLVE ³°Éô¥ì¥¾¥ë¥Ð¤ò»²¾È (¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) rtm_protocol ·ÐÏ©¤Î¾ðÊó¸» RTPROT_UNSPEC ÉÔÌÀ RTPROT_REDIRECT ICMP ¥ê¥À¥¤¥ì¥¯¥È¤Ë¤è¤ë (¸½ºß¤ÏÍѤ¤¤é¤ì¤Ê¤¤) RTPROT_KERNEL ¥«¡¼¥Í¥ë¤Ë¤è¤ë RTPROT_BOOT ¥Ö¡¼¥È»þ RTPROT_STATIC ´ÉÍý¼Ô¤Ë¤è¤ë RTPROT_STATIC ¤è¤ê¤âÂ礤ÊÃͤϥ«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ²ò¼á¤µ¤ì¤Ê¤¤¡£¤³¤ì¤Ï ñ¤Ê¤ë¥æ¡¼¥¶¡¼¤Ø¤Î¾ðÊó¤Ç¤¢¤ë¡£¤³¤ì¤é¤Ï·ÐÏ©¾ðÊó¤Î¾ðÊ󸻤ò ¥¿¥°ÉÕ¤±¤·¤¿¤ê¡¢Ê£¿ô¤Î¥ë¡¼¥Æ¥£¥ó¥°¥Ç¡¼¥â¥ó¤«¤é¤Î¾ðÊó¤ò ¶èÊ̤¹¤ë¤¿¤á¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤¤ë¡£ ´û¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥ë¡¼¥Æ¥£¥ó¥°¥Ç¡¼¥â¥ó¤Î¼±Ê̻ҤˤĤ¤¤Æ¤Ï <linux/rtnetlink.h> ¤ò¸«¤è¡£
rtm_scope ¤Ï¹Ô¤Àè¤Ø¤Îµ÷Î¥¤Ç¤¢¤ë¡£
RT_SCOPE_UNIVERSE ¥°¥í¡¼¥Ð¥ë¤Ê·ÐÏ© RT_SCOPE_SITE ¥í¡¼¥«¥ë¤Ê¼«Î§¥·¥¹¥Æ¥à¤Ë¤ª¤±¤ëÆâÉô·ÐÏ© RT_SCOPE_LINK ¤³¤Î¥ê¥ó¥¯¾å¤Î·ÐÏ© RT_SCOPE_HOST ¥í¡¼¥«¥ë¥Û¥¹¥È¾å¤Î·ÐÏ© RT_SCOPE_NOWHERE ¹Ô¤À褬¸ºß¤·¤Ê¤¤ ¥æ¡¼¥¶¡¼¤Ï RT_SCOPE_UNIVERSE ¤È RT_SCOPE_SITE ¤Î´Ö¤ÎÃͤòÍѤ¤¤ë¤³¤È¤¬¤Ç¤¤ë¡£
rtm_flags ¤Ï°Ê²¼¤Î°ÕÌ£¤ò»ý¤Ä:
RTM_F_NOTIFY ·ÐÏ©¤¬Êѹ¹¤µ¤ì¤ë¤È¡¢ rtnetlink ¤òÄ̤·¤Æ¥æ¡¼¥¶¡¼¤ËÄÌÃΤ¬¹Ô¤¯¡£ RTM_F_CLONED ·ÐÏ©¤Ï¾¤Î·ÐÏ©¤Ë¤è¤Ã¤ÆÊ£À½¤µ¤ì¤¿¡£ RTM_F_EQUALIZE ¥Þ¥ë¥Á¥¥ã¥¹¥È¥¤¥¯¥©¥é¥¤¥¶¡¼ (¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) rtm_table ¤Ç¤Ï¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤ò»ØÄꤹ¤ë¡£
RT_TABLE_UNSPEC »ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë RT_TABLE_DEFAULT ¥Ç¥Õ¥©¥ë¥È¤Î¥Æ¡¼¥Ö¥ë RT_TABLE_MAIN ¥á¥¤¥ó¤Î¥Æ¡¼¥Ö¥ë RT_TABLE_LOCAL ¥í¡¼¥«¥ë¥Æ¡¼¥Ö¥ë ¥æ¡¼¥¶¡¼¤Ï RT_TABLE_UNSPEC ¤È RT_TABLE_DEFAULT. ¤Î´Ö¤ÎǤ°Õ¤ÎÃͤòÍѤ¤¤ë¤³¤È¤¬¤Ç¤¤ë¡£
°À rta_type Ãͤη¿ ÀâÌÀ RTA_UNSPEC - ̵»ë¤µ¤ì¤ë RTA_DST protocol address ·ÐÏ©¤Î¹Ô¤À襢¥É¥ì¥¹ RTA_SRC protocol address ·ÐÏ©¤Îȯ¿®¸µ¥¢¥É¥ì¥¹ RTA_IIF int ÆþÎÏ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î index RTA_OIF int ½ÐÎÏ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î index RTA_GATEWAY protocol address ·ÐÏ©¤Î¥²¡¼¥È¥¦¥§¥¤ RTA_PRIORITY int ·ÐÏ©¤ÎÍ¥ÀèÅÙ RTA_PREFSRC RTA_METRICS int ·ÐÏ©¤Î¥á¥È¥ê¥Ã¥¯ RTA_MULTIPATH RTA_PROTOINFO RTA_FLOW RTA_CACHEINFO (¤³¤ì¤é¤ÎÃͤòËä¤á¤ë¤³¤È!)
- RTM_NEWNEIGH, RTM_DELNEIGH, RTM_GETNEIGH
- ¶á˵¥Æ¡¼¥Ö¥ë (neighbour table) ¤Î¥¨¥ó¥È¥ê (Î㤨¤Ð ARP ¥¨¥ó¥È¥ê) ¤Î¾ðÊó¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ ¤³¤Î¥á¥Ã¥»¡¼¥¸¤Ï ndmsg ¹½Â¤ÂΤòȼ¤¦¡£
struct ndmsg { unsigned char ndm_family; int ndm_ifindex; /* Interface index */ __u16 ndm_state; /* State */ __u8 ndm_flags; /* Flags */ __u8 ndm_type; }; struct nda_cacheinfo { __u32 ndm_confirmed; __u32 ndm_used; __u32 ndm_updated; __u32 ndm_refcnt; };
ndm_state ¤Ï°Ê²¼¤Î¾õÂ֤Υӥåȥޥ¹¥¯¤Ç¤¢¤ë:
NUD_INCOMPLETE ¸½ºß¥ì¥¾¥ë¥ÖÃæ¤Î¥¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê NUD_REACHABLE Æ°ºî³ÎǧºÑ¤ß¤Î¥¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê NUD_STALE ´ü¸ÂÀÚ¤ì¤Î¥¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê NUD_DELAY ¥¿¥¤¥ÞÂÔ¤Á¤Î¥¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê NUD_PROBE ºÆ³ÎǧÃæ¤Î¥¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê NUD_FAILED ÉÔÀµ¤Ê¥¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê NUD_NOARP ¹Ô¤À襥ã¥Ã¥·¥å¤Î¤Ê¤¤¥Ç¥Ð¥¤¥¹ NUD_PERMANENT ÀÅŪ¤Ê¥¨¥ó¥È¥ê ͸ú¤Ê ndm_flags ¤Ï°Ê²¼¤ÎÄ̤ê:
NTF_PROXY ¥×¥í¥¯¥· arp ¥¨¥ó¥È¥ê NTF_ROUTER IPv6 ¥ë¡¼¥¿ (¹½Â¤ÂÎ¥á¥ó¥Ð¤Îµ½Ò¤ò¤â¤¦¤Á¤ç¤Ã¤È²þÎɤ¹¤ë¤³¤È)
rtaddr ¹½Â¤ÂΤϡ¢ rta_type ¥Õ¥£¡¼¥ë¥É¤Ë±þ¤¸¤Æ¤½¤ì¤¾¤ì°Ê²¼¤Î°ÕÌ£¤ò»ý¤Ä:
NDA_UNSPEC ̤ÃΤΥ¿¥¤¥× NDA_DST ¶á˵¥¥ã¥Ã¥·¥å¥Í¥Ã¥È¥ï¡¼¥¯ÁؤιԤÀ襢¥É¥ì¥¹ NDA_LLADDR ¶á˵¥¥ã¥Ã¥·¥å¥ê¥ó¥¯ÁؤΥ¢¥É¥ì¥¹ NDA_CACHEINFO ¥¥ã¥Ã¥·¥å¤ÎÅý·× rta_type ¥Õ¥£¡¼¥ë¥É¤¬ NDA_CACHEINFO ¤Î¾ì¹ç¤Ë¤Ï¡¢ struct nda_cacheinfo ¥Ø¥Ã¥À¤¬Â³¤¯¡£
- RTM_NEWRULE, RTM_DELRULE, RTM_GETRULE
- ¥ë¡¼¥Æ¥£¥ó¥°¥ë¡¼¥ë¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ struct rtmsg ¤òȼ¤¦¡£
- RTM_NEWQDISC, RTM_DELQDISC, RTM_GETQDISC
- ¥¥å¡¼¥¤¥ó¥°¥ë¡¼¥ë¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ ¤³¤Î¥á¥Ã¥»¡¼¥¸¤Ï struct tcmsg ¤òȼ¤¤¡¢¤Þ¤¿¤½¤Î¤¢¤È¤Ë°À¤¬¤¤¤¯¤Ä¤«Â³¤¯¤³¤È¤â¤¢¤ë¡£
struct tcmsg { unsigned char tcm_family; int tcm_ifindex; /* interface index */ __u32 tcm_handle; /* Qdisc handle */ __u32 tcm_parent; /* Parent qdisc */ __u32 tcm_info; };
°À rta_type Ãͤη¿ ÀâÌÀ TCA_UNSPEC - »ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤ TCA_KIND asciiz string ¥¥å¡¼¥¤¥ó¥°¥ë¡¼¥ë¤Î̾Á° TCA_OPTIONS byte sequence Qdisc ÆÃͤΥª¥×¥·¥ç¥ó¤¬Â³¤¯ TCA_STATS struct tc_stats Qdisc ¤ÎÅý·× TCA_XSTATS qdisc specific ¥â¥¸¥å¡¼¥ëÆÃͤÎÅý·× TCA_RATE struct tc_estimator ¥ì¡¼¥ÈÀ©¸Â ¤µ¤é¤Ë¡¢ qdisc ¥â¥¸¥å¡¼¥ëÆÃͤÎÍÍ¡¹¤Ê°À¤ò»ØÄê¤Ç¤¤ë¡£ ¾ÜºÙ¤Ê¾ðÊó¤ÏŬÀڤʥ¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò¸«¤è¡£
- RTM_NEWTCLASS, RTM_DELTCLASS, RTM_GETTCLASS
- ¥È¥é¥Õ¥£¥Ã¥¯¥¯¥é¥¹¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ ¤³¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï¡¢¾å½Ò¤Î struct tcmsg ¤òȼ¤¦¡£
- RTM_NEWTFILTER, RTM_DELTFILTER, RTM_GETTFILTER
- ¥È¥é¥Õ¥£¥Ã¥¯¥Õ¥£¥ë¥¿¡¼¤Î¾ðÊó¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ ¤³¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï¡¢¾å½Ò¤Î struct tcmsg ¤òȼ¤¦¡£
¥Ð¡¼¥¸¥ç¥ó
rtnetlink ¤Ï Linux 2.2 ¤Î¿·µ¡Ç½¤Ç¤¢¤ë¡£¥Ð¥°
¤³¤Î man ¥Ú¡¼¥¸¤ÏÉÔ´°Á´¤Ç¤¢¤ë¡£´ØÏ¢¹àÌÜ
cmsg(3), rtnetlink(3), ip(7), netlink(7)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre