summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2019-03-19 13:56:46 -0700
committerAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2019-04-20 08:33:20 -0700
commit4ab3321f29151f0d911a49fc0f8593736799a349 (patch)
tree07fb13609323331ed3f2e3170d880e54c2a3ad11 /lib
parentabfa0a96516dba8c77ff30a3abc1118873b663c7 (diff)
lib, zebra: changes to propagate vxlan mcast SG entries to pimd
These updates act as triggers to pimd to - 1. join the MDT for rxing VxLAN encapsulated BUM traffic 2. register the local-vtep-ip as a source for the MDT Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/log.c2
-rw-r--r--lib/zclient.c11
-rw-r--r--lib/zclient.h6
3 files changed, 19 insertions, 0 deletions
diff --git a/lib/log.c b/lib/log.c
index 8724e0db93..e64c00186b 100644
--- a/lib/log.c
+++ b/lib/log.c
@@ -1068,6 +1068,8 @@ static const struct zebra_desc_table command_types[] = {
DESC_ENTRY(ZEBRA_IPTABLE_DELETE),
DESC_ENTRY(ZEBRA_IPTABLE_NOTIFY_OWNER),
DESC_ENTRY(ZEBRA_VXLAN_FLOOD_CONTROL),
+ DESC_ENTRY(ZEBRA_VXLAN_SG_ADD),
+ DESC_ENTRY(ZEBRA_VXLAN_SG_DEL),
};
#undef DESC_ENTRY
diff --git a/lib/zclient.c b/lib/zclient.c
index e5cab9e0f2..4901c92743 100644
--- a/lib/zclient.c
+++ b/lib/zclient.c
@@ -2701,6 +2701,17 @@ static int zclient_read(struct thread *thread)
(*zclient->iptable_notify_owner)(command,
zclient, length,
vrf_id);
+ break;
+ case ZEBRA_VXLAN_SG_ADD:
+ if (zclient->vxlan_sg_add)
+ (*zclient->vxlan_sg_add)(command, zclient, length,
+ vrf_id);
+ break;
+ case ZEBRA_VXLAN_SG_DEL:
+ if (zclient->vxlan_sg_del)
+ (*zclient->vxlan_sg_del)(command, zclient, length,
+ vrf_id);
+ break;
default:
break;
}
diff --git a/lib/zclient.h b/lib/zclient.h
index 3a054e5e72..0926281f2e 100644
--- a/lib/zclient.h
+++ b/lib/zclient.h
@@ -164,6 +164,8 @@ typedef enum {
ZEBRA_IPTABLE_DELETE,
ZEBRA_IPTABLE_NOTIFY_OWNER,
ZEBRA_VXLAN_FLOOD_CONTROL,
+ ZEBRA_VXLAN_SG_ADD,
+ ZEBRA_VXLAN_SG_DEL,
} zebra_message_types_t;
struct redist_proto {
@@ -275,6 +277,10 @@ struct zclient {
struct zclient *zclient,
uint16_t length,
vrf_id_t vrf_id);
+ int (*vxlan_sg_add)(int command, struct zclient *client,
+ uint16_t length, vrf_id_t vrf_id);
+ int (*vxlan_sg_del)(int command, struct zclient *client,
+ uint16_t length, vrf_id_t vrf_id_t);
};
/* Zebra API message flag. */