summaryrefslogtreecommitdiff
path: root/zebra/zebra_dplane.h
diff options
context:
space:
mode:
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2020-05-08 16:53:25 -0700
committerAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2020-10-26 10:32:51 -0700
commitc60522f7026b51e7440832f4b0d80fcd0111270f (patch)
tree25ae877fe3fefd7e6a93b13d6a17c7dd30829feb /zebra/zebra_dplane.h
parent1103c5c6cd2a2219a2c6b116229a3b96540ed80d (diff)
zebra: dplane APIs for programming evpn-mh access port attributes
This includes - 1. non-DF block filter 2. List of es-peers that need to be blocked per-access port (for split horizon filtering) 3. Backup nexthop group to failover local-es via the VxLAN overlay Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Diffstat (limited to 'zebra/zebra_dplane.h')
-rw-r--r--zebra/zebra_dplane.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/zebra/zebra_dplane.h b/zebra/zebra_dplane.h
index fd70211f7c..b37bf665ae 100644
--- a/zebra/zebra_dplane.h
+++ b/zebra/zebra_dplane.h
@@ -152,6 +152,9 @@ enum dplane_op_e {
/* Link layer address discovery */
DPLANE_OP_NEIGH_DISCOVER,
+
+ /* bridge port update */
+ DPLANE_OP_BR_PORT_UPDATE,
};
/*
@@ -184,6 +187,8 @@ enum dplane_op_e {
#define DPLANE_NEIGH_SET_STATIC (1 << 2)
#define DPLANE_NEIGH_SET_INACTIVE (1 << 3)
+#define DPLANE_BR_PORT_NON_DF (1 << 0)
+
/* Enable system route notifications */
void dplane_enable_sys_route_notifs(void);
@@ -444,6 +449,15 @@ dplane_ctx_rule_get_dst_ip(const struct zebra_dplane_ctx *ctx);
const struct prefix *
dplane_ctx_rule_get_old_dst_ip(const struct zebra_dplane_ctx *ctx);
+/* Accessors for bridge port information */
+uint32_t dplane_ctx_get_br_port_flags(const struct zebra_dplane_ctx *ctx);
+uint32_t
+dplane_ctx_get_br_port_sph_filter_cnt(const struct zebra_dplane_ctx *ctx);
+const struct in_addr *
+dplane_ctx_get_br_port_sph_filters(const struct zebra_dplane_ctx *ctx);
+uint32_t
+dplane_ctx_get_br_port_backup_nhg_id(const struct zebra_dplane_ctx *ctx);
+
/* Namespace info - esp. for netlink communication */
const struct zebra_dplane_info *dplane_ctx_get_ns(
const struct zebra_dplane_ctx *ctx);
@@ -479,6 +493,12 @@ enum zebra_dplane_result dplane_route_notif_update(
enum dplane_op_e op,
struct zebra_dplane_ctx *ctx);
+/*
+ * Enqueue bridge port changes for the dataplane.
+ */
+enum zebra_dplane_result dplane_br_port_update(
+ const struct interface *ifp, bool non_df, uint32_t sph_filter_cnt,
+ const struct in_addr *sph_filters, uint32_t backup_nhg_id);
/* Forward ref of nhg_hash_entry */
struct nhg_hash_entry;