Rtnetlink描述.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Rtnetlink描述

Rtnetlink描述 针对路由控制的netlink接口,Linux IPv4 routing sockets Rtnetlink基于netlink,允许对内核的路由表进行读写。主要用来进行内核与用户空间的通信以及内核中子系统间的通信。Rtnetlink是Linux2.2及其以后的版本中的一个新的特征。 Rtnetlink消息在初始头后可以有一些属性。结构: struct { unsigned short rta_len; //属性的长度 unsigned short rta_type; //属性类型 /*属性数据跟随在这个结构之后*/ } 这些属性用RTA_*宏或者libnetlink来进行修改。 RTA_*宏: #define RTA_ALIGNTO 4 #define RTA_ALIGN(len) ( ((len)+RTA_ALIGNTO-1) ~(RTA_ALIGNTO-1) ) /*对齐*/ #define RTA_OK(rta,len) ((len) = (int)sizeof(struct rtattr) \ (rta)-rta_len = sizeof(struct rtattr) \ (rta)-rta_len = (len)) /*判断长度是否有len长*/ #define RTA_NEXT(rta,attrlen) ((attrlen) -= RTA_ALIGN((rta)-rta_len), \ (struct rtattr*)(((char*)(rta)) + RTA_ALIGN((rta)-rta_len))) /*下一个的首地址*/ #define RTA_LENGTH(len) (RTA_ALIGN(sizeof(struct rtattr)) + (len)) /*计算总长度*/ #define RTA_SPACE(len) RTA_ALIGN(RTA_LENGTH(len)) /*返回数据的对齐的最小数值*/ #define RTA_DATA(rta) ((void*)(((char*)(rta)) + RTA_LENGTH(0))) /*取得数据部分首地址*/ #define RTA_PAYLOAD(rta) ((int)((rta)-rta_len) - RTA_LENGTH(0)) /*payload总长度*/ 除了标准的netlink消息外,rtnetlink主要由以下的消息类型组成: 1、RTM_NEWLINK, RTM_DELLINK, RTM_GETLINK 创建,删除或者获取网络设备的IFLA_ADDRESS 1 硬件MAC地址 IFLA_BROADCAST 2 硬件MAC广播地址 IFLA_IFNAME 3 接口名称 IFLA_MTU 4 最大传输单元 IFLA_LINK 5 连接类型 IFLA_QDISC 6 队列规则 IFLA_STATS 7 接口统计 IFLA_COST 8 IFLA_PRIORITY 9 IFLA_MASTER 10 IFLA_WIRELESS 11 /* Wireless Extension event - see wireless.h */ IFLA_PROTINFO 12 /* Protocol specific information for a link */ IFLA_TXQLEN 13 IFLA_MAP 14 IFLA_WEIGHT 15 IFLA_OPERSTATE 16 IFLA_LINKMODE 17 2、RTM_NEWADDR, RTM_DELADDR, RTM_GETADDR 创建,删除或者获取网络设备的IP信息 IFA_UNSPEC 0 IFA_ADDRESS 1 接口地址interface address IFA_LOCAL 2 本地地址local address IFA_LABEL 3 接口名称name of the interface IFA_BROADCAST 4 广播地址broadcast address IFA_ANYCAST 5 anycast address IFA_CACHEINFO 6 address information IFA_MULTICAST 7 3、RTM_NEWROUTE, RTM_DELROUTE, RTM_GETROUTE 创建,删除或者获取网络设备的路由信息 RTN_LOCAL 2 本地接收 RTN_BROADCAST 3

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档