diff options
| author | Anuradha Karuppiah <anuradhak@cumulusnetworks.com> | 2019-03-19 13:56:46 -0700 |
|---|---|---|
| committer | Anuradha Karuppiah <anuradhak@cumulusnetworks.com> | 2019-04-20 08:33:20 -0700 |
| commit | 4ab3321f29151f0d911a49fc0f8593736799a349 (patch) | |
| tree | 07fb13609323331ed3f2e3170d880e54c2a3ad11 /lib | |
| parent | abfa0a96516dba8c77ff30a3abc1118873b663c7 (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.c | 2 | ||||
| -rw-r--r-- | lib/zclient.c | 11 | ||||
| -rw-r--r-- | lib/zclient.h | 6 |
3 files changed, 19 insertions, 0 deletions
@@ -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. */ |
