如何使用C语言中的NETLINK套接字从内核到用户空间获取VLAN信息,例如添加和删除VLAN子接口?
我按照评论中的建议对NETLINK手册进行了一些研究。我添加和删除了一个VLAN子接口,并使用netlink套接字程序进行了监视。每次添加和删除都会收到3个消息。添加发送3个NEWLINK消息,删除发送2个NEWLINK消息和1个DELLINK消息。为什么会这样?
要添加新的VLAN接口eth1.75:
我按照评论中的建议对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的源代码以获取示例。 - Brian McFarland