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
100 RTM_GETMULTICAST,100 RTM_GETMULTICAST,
101#define RTM_GETMULTICAST RTM_GETMULTICAST101#define RTM_GETMULTICAST RTM_GETMULTICAST
102 102
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,
104#define RTM_GETANYCAST RTM_GETANYCAST108#define RTM_GETANYCAST RTM_GETANYCAST
105 109
106 RTM_NEWNEIGHTBL = 64,110 RTM_NEWNEIGHTBL = 64,
@@ -783,6 +787,8 @@ enum rtnetlink_groups { · 676 unmodified lines
783#define RTNLGRP_IPV4_MCADDR RTNLGRP_IPV4_MCADDR787#define RTNLGRP_IPV4_MCADDR RTNLGRP_IPV4_MCADDR
784 RTNLGRP_IPV6_MCADDR,788 RTNLGRP_IPV6_MCADDR,
785#define RTNLGRP_IPV6_MCADDR RTNLGRP_IPV6_MCADDR789#define RTNLGRP_IPV6_MCADDR RTNLGRP_IPV6_MCADDR
790 RTNLGRP_IPV6_ACADDR,
791#define RTNLGRP_IPV6_ACADDR RTNLGRP_IPV6_ACADDR
786 __RTNLGRP_MAX792 __RTNLGRP_MAX
787};793};
788#define RTNLGRP_MAX (__RTNLGRP_MAX - 1)794#define RTNLGRP_MAX (__RTNLGRP_MAX - 1)