diff options
Diffstat (limited to 'zebra/zebra_vxlan_private.h')
| -rw-r--r-- | zebra/zebra_vxlan_private.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/zebra/zebra_vxlan_private.h b/zebra/zebra_vxlan_private.h index 5081c08d19..9f945442bb 100644 --- a/zebra/zebra_vxlan_private.h +++ b/zebra/zebra_vxlan_private.h @@ -52,6 +52,10 @@ struct zebra_vtep_t_ { /* Remote IP. */ /* NOTE: Can only be IPv4 right now. */ struct in_addr vtep_ip; + /* Flood mode (one of enum vxlan_flood_control) based on the PMSI + * tunnel type advertised by the remote VTEP + */ + int flood_control; /* Links. */ struct zebra_vtep_t_ *next; @@ -87,6 +91,9 @@ struct zebra_vni_t_ { /* Local IP */ struct in_addr local_vtep_ip; + /* PIM-SM MDT group for BUM flooding */ + struct in_addr mcast_grp; + /* tenant VRF, if any */ vrf_id_t vrf_id; @@ -427,4 +434,26 @@ struct nh_walk_ctx { } #endif +/* + * Multicast hash table. + * + * This table contains - + * 1. The (S, G) entries used for encapsulating and forwarding BUM traffic. + * S is the local VTEP-IP and G is a BUM mcast group address. + * 2. The (X, G) entries used for terminating a BUM flow. + * Multiple L2-VNIs can share the same MDT hence the need to maintain + * an aggregated table that pimd can consume without much + * re-interpretation. + */ +typedef struct zebra_vxlan_sg_ { + struct zebra_vrf *zvrf; + + struct prefix_sg sg; + char sg_str[PREFIX_SG_STR_LEN]; + + /* For SG - num of L2 VNIs using this entry for sending BUM traffic */ + /* For XG - num of SG using this as parent */ + uint32_t ref_cnt; +} zebra_vxlan_sg_t; + #endif /* _ZEBRA_VXLAN_PRIVATE_H */ |
