【发布时间】:2015-08-02 11:35:41
【问题描述】:
如何使用 C 语言中的 NETLINK 套接字获取 VLAN 信息,例如从内核到用户空间的 VLAN 子接口的添加和删除?
按照 cmets 的建议,我几乎没有研究过 NETLINK 人。我添加和删除了一个 VLAN 子接口,并使用 netlink 套接字程序进行了监控。用于添加和删除每个接收 3 条消息。 添加发送 3 条 NEWLINK 消息,删除发送 2 条 NEWLINK 和 1 条 DELLINK 消息。为什么会这样?
用于添加新的 VLAN 接口 eth1.75:
RTM_NEWLINK Link eth2.75 Down
RTM_NEWLINK Link eth2 Up
RTM_NEWLINK Link eth2.75 Up
对于VLAN接口eth2.75的删除:
RTM_NEWLINK Link eth2 Up
RTM_NEWLINK Link eth2.75 Down
RTM_DELLINK eth2.75
【问题讨论】:
-
阅读手册页并在遇到特定问题时返回。从
man 7 netlink开始,然后是man 7 rtnetlink。我认为你会得到一个RTM_NEWLINK用于添加和RTM_DELINK用于删除。查看 Network Manager 的源代码中的示例。
标签: c linux kernel netlink vlan