1const RTNLGRP_LINK: u32 = 1;
5const RTNLGRP_NOTIFY: u32 = 2;
6const RTNLGRP_NEIGH: u32 = 3;
7const RTNLGRP_TC: u32 = 4;
8const RTNLGRP_IPV4_IFADDR: u32 = 5;
9const RTNLGRP_IPV4_MROUTE: u32 = 6;
10const RTNLGRP_IPV4_ROUTE: u32 = 7;
11const RTNLGRP_IPV4_RULE: u32 = 8;
12const RTNLGRP_IPV6_IFADDR: u32 = 9;
13const RTNLGRP_IPV6_MROUTE: u32 = 10;
14const RTNLGRP_IPV6_ROUTE: u32 = 11;
15const RTNLGRP_IPV6_IFINFO: u32 = 12;
16const RTNLGRP_DECNET_IFADDR: u32 = 13;
17const RTNLGRP_DECNET_ROUTE: u32 = 15;
19const RTNLGRP_DECNET_RULE: u32 = 16;
20const RTNLGRP_IPV6_PREFIX: u32 = 18;
22const RTNLGRP_IPV6_RULE: u32 = 19;
23const RTNLGRP_ND_USEROPT: u32 = 20;
24const RTNLGRP_PHONET_IFADDR: u32 = 21;
25const RTNLGRP_PHONET_ROUTE: u32 = 22;
26const RTNLGRP_DCB: u32 = 23;
27const RTNLGRP_IPV4_NETCONF: u32 = 24;
28const RTNLGRP_IPV6_NETCONF: u32 = 25;
29const RTNLGRP_MDB: u32 = 26;
30const RTNLGRP_MPLS_ROUTE: u32 = 27;
31const RTNLGRP_NSID: u32 = 28;
32const RTNLGRP_MPLS_NETCONF: u32 = 29;
33const RTNLGRP_IPV4_MROUTE_R: u32 = 30;
34const RTNLGRP_IPV6_MROUTE_R: u32 = 31;
35const RTNLGRP_NEXTHOP: u32 = 32;
36const RTNLGRP_BRVLAN: u32 = 33;
37const RTNLGRP_MCTP_IFADDR: u32 = 34;
38const RTNLGRP_TUNNEL: u32 = 35;
39const RTNLGRP_STATS: u32 = 36;
40const RTNLGRP_IPV4_MCADDR: u32 = 37;
41const RTNLGRP_IPV6_MCADDR: u32 = 38;
42const RTNLGRP_IPV6_ACADDR: u32 = 39;
43
44#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
45#[repr(u32)]
46#[non_exhaustive]
47pub enum MulticastGroup {
48 Link = RTNLGRP_LINK,
49 Notify = RTNLGRP_NOTIFY,
50 Neigh = RTNLGRP_NEIGH,
51 Tc = RTNLGRP_TC,
52 Ipv4Ifaddr = RTNLGRP_IPV4_IFADDR,
53 Ipv4Mroute = RTNLGRP_IPV4_MROUTE,
54 Ipv4Route = RTNLGRP_IPV4_ROUTE,
55 Ipv4Rule = RTNLGRP_IPV4_RULE,
56 Ipv6Ifaddr = RTNLGRP_IPV6_IFADDR,
57 Ipv6Mroute = RTNLGRP_IPV6_MROUTE,
58 Ipv6Route = RTNLGRP_IPV6_ROUTE,
59 Ipv6Ifinfo = RTNLGRP_IPV6_IFINFO,
60 DecnetIfaddr = RTNLGRP_DECNET_IFADDR,
61 DecnetRoute = RTNLGRP_DECNET_ROUTE,
62 DecnetRule = RTNLGRP_DECNET_RULE,
63 Ipv6Prefix = RTNLGRP_IPV6_PREFIX,
64 Ipv6Rule = RTNLGRP_IPV6_RULE,
65 NdUseropt = RTNLGRP_ND_USEROPT,
66 PhonetIfaddr = RTNLGRP_PHONET_IFADDR,
67 PhonetRoute = RTNLGRP_PHONET_ROUTE,
68 Dcb = RTNLGRP_DCB,
69 Ipv4Netconf = RTNLGRP_IPV4_NETCONF,
70 Ipv6Netconf = RTNLGRP_IPV6_NETCONF,
71 Mdb = RTNLGRP_MDB,
72 MplsRoute = RTNLGRP_MPLS_ROUTE,
73 Nsid = RTNLGRP_NSID,
74 MplsNetconf = RTNLGRP_MPLS_NETCONF,
75 Ipv4MrouteR = RTNLGRP_IPV4_MROUTE_R,
76 Ipv6MrouteR = RTNLGRP_IPV6_MROUTE_R,
77 Nexthop = RTNLGRP_NEXTHOP,
78 Brvlan = RTNLGRP_BRVLAN,
79 MctpIfaddr = RTNLGRP_MCTP_IFADDR,
80 Tunnel = RTNLGRP_TUNNEL,
81 Stats = RTNLGRP_STATS,
82 Ipv4Mcaddr = RTNLGRP_IPV4_MCADDR,
83 Ipv6Mcaddr = RTNLGRP_IPV6_MCADDR,
84 Ipv6Acaddr = RTNLGRP_IPV6_ACADDR,
85}
86
87impl MulticastGroup {
88 pub fn need_via_add_membership(self) -> bool {
90 self as u32 > 31
91 }
92}