Мое приложение должно получать обновления маршрутизации многоадресной сети Netlink из ядра. Я провел некоторое исследование и нашел, что mutlicast использует другое семейство: RTNL_FAMILY_IPMR и группа RTMGRP_IPV4_MROUTE.Обновления маршрутизации linlink netlink
Однако если я использую:
sfd = socket (AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
snl.nl_groups |= RTMGRP_IPV4_MROUTE
я не получаю никаких обновлений.
Но
sfd = socket (AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
snl.nl_family = RTNL_FAMILY_IPMR;
snl.nl_groups |= RTMGRP_IPV4_MROUTE;
Это дает ошибку связывания», связывают: Недопустимый аргумент
sfd = socket (RTNL_FAMILY_IPMR, SOCK_RAW, NETLINK_ROUTE);
Это отдавания "Семейство адресов не поддерживается протоколом" ошибка
Я не знаю, как для получения обновлений из ядра для маршрутов mutlicast.