Как вы получаете информацию о VLAN, такую как добавление и удаление подинтерфейса VLAN из ядра в пользовательское пространство, используя сокет NETLINK в C?
Я немного изучил человека 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. - person Brian McFarland   schedule 22.05.2015