History

netlink: add IPv6 anycast join/leave notifications

This change introduces a mechanism for notifying userspace applications about changes to IPv6 anycast addresses via netlink. It includes: * Addition and deletion of IPv6 anycast addresses are reported using RTM_NEWANYCAST and RTM_DELANYCAST. * A new netlink group (RTNLGRP_IPV6_ACADDR) for subscribing to these notifications. This enables user space applications(e.g. ip monitor) to efficiently track anycast addresses through netlink messages, improving metrics collection and system monitoring. It also unlocks the potential for advanced anycast management in user space, such as hardware offload control and fine grained network control.

Yuyang Huang committed 1 year ago

Commit 33d97a01 parent e61e6c44 files · +48 −4Browse files

Showing the changes to include/uapi (1 of 4 files). Show all

Unified · Split

include/uapi/linux/rtnetlink.h+7−1
@@ -100,7 +100,11 @@ enum { · 99 unmodified lines
100100 RTM_GETMULTICAST,
101101 #define RTM_GETMULTICAST RTM_GETMULTICAST
102102
103− RTM_GETANYCAST = 62,
103+ RTM_NEWANYCAST = 60,
104+#define RTM_NEWANYCAST RTM_NEWANYCAST
105+ RTM_DELANYCAST,
106+#define RTM_DELANYCAST RTM_DELANYCAST
107+ RTM_GETANYCAST,
104108 #define RTM_GETANYCAST RTM_GETANYCAST
105109
106110 RTM_NEWNEIGHTBL = 64,
@@ -783,6 +787,8 @@ enum rtnetlink_groups { · 676 unmodified lines
783787 #define RTNLGRP_IPV4_MCADDR RTNLGRP_IPV4_MCADDR
784788 RTNLGRP_IPV6_MCADDR,
785789 #define RTNLGRP_IPV6_MCADDR RTNLGRP_IPV6_MCADDR
790+ RTNLGRP_IPV6_ACADDR,
791+#define RTNLGRP_IPV6_ACADDR RTNLGRP_IPV6_ACADDR
786792 __RTNLGRP_MAX
787793 };
788794 #define RTNLGRP_MAX (__RTNLGRP_MAX - 1)