summaryrefslogtreecommitdiff
path: root/pimd/pim_iface.h
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2021-11-11 20:41:23 +0100
committerDavid Lamparter <equinox@opensourcerouting.org>2022-05-06 16:01:59 +0200
commit5e5034b0a230a2622acbedc968cdcaf305e0ba21 (patch)
treeffa5626d34e59f385e46093e0c8c4da18b2b95da /pimd/pim_iface.h
parent23a8660ea488940729032d3d24652046f3a5c34d (diff)
pim6d: add fresh MLD implementation
Fresh ground-up MLD implementation with subscriber-tracking for MLDv2. Intended to be adapted for IPv4 and replace the IGMP implementation at a later point. Tested in ANVL, currently at 94/116. Some issues/TODOs are left in the code as CPP_NOTICE markers, but the code is very much good enough to proceed since otherwise we're blocked on overall PIM v6 progress. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'pimd/pim_iface.h')
-rw-r--r--pimd/pim_iface.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/pimd/pim_iface.h b/pimd/pim_iface.h
index 3535db70a8..6781cbf3a0 100644
--- a/pimd/pim_iface.h
+++ b/pimd/pim_iface.h
@@ -69,6 +69,8 @@ struct pim_secondary_addr {
enum pim_secondary_addr_flags flags;
};
+struct gm_if;
+
struct pim_interface {
bool pim_enable : 1;
bool pim_can_disable_join_suppression : 1;
@@ -90,6 +92,7 @@ struct pim_interface {
* address of the interface */
int igmp_version; /* IGMP version */
+ int mld_version;
int gm_default_robustness_variable; /* IGMP or MLD QRV */
int gm_default_query_interval; /* IGMP or MLD secs between general
queries */
@@ -111,6 +114,8 @@ struct pim_interface {
struct list *gm_group_list; /* list of struct IGMP or MLD group */
struct hash *gm_group_hash;
+ struct gm_if *mld;
+
int pim_sock_fd; /* PIM socket file descriptor */
struct thread *t_pim_sock_read; /* thread for reading PIM socket */
int64_t pim_sock_creation; /* timestamp of PIM socket creation */