From c01e13ff3100085984976aba88858135dc14b5d9 Mon Sep 17 00:00:00 2001 From: Carmine Scarpitta Date: Sun, 15 Sep 2024 18:56:21 +0200 Subject: [PATCH] bgpd: Include structure when removing End.DT4/6 SID Include SID structure information when removing an SRv6 End.DT4 or End.DT6 SID from the forwarding plane. Signed-off-by: Carmine Scarpitta (cherry picked from commit a764fb9bd8e703eb6ea45ce40d67e4c503823286) # Conflicts: # bgpd/bgp_mplsvpn.c --- bgpd/bgp_mplsvpn.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/bgpd/bgp_mplsvpn.c b/bgpd/bgp_mplsvpn.c index 3eb8545eec90..840e0e1a6ef0 100644 --- a/bgpd/bgp_mplsvpn.c +++ b/bgpd/bgp_mplsvpn.c @@ -488,6 +488,11 @@ void vpn_leak_zebra_vrf_sid_update(struct bgp *bgp, afi_t afi) void vpn_leak_zebra_vrf_sid_withdraw_per_af(struct bgp *bgp, afi_t afi) { int debug = BGP_DEBUG(vpn, VPN_LEAK_LABEL); +<<<<<<< HEAD +======= + struct srv6_sid_ctx ctx = {}; + struct seg6local_context seg6localctx = {}; +>>>>>>> a764fb9bd8 (bgpd: Include structure when removing End.DT4/6 SID) if (bgp->vrf_id == VRF_UNKNOWN) { if (debug) @@ -500,9 +505,22 @@ void vpn_leak_zebra_vrf_sid_withdraw_per_af(struct bgp *bgp, afi_t afi) zlog_debug("%s: deleting sid for vrf %s afi (id=%d)", __func__, bgp->name_pretty, bgp->vrf_id); + if (bgp->vpn_policy[afi].tovpn_sid_locator) { + seg6localctx.block_len = + bgp->vpn_policy[afi].tovpn_sid_locator->block_bits_length; + seg6localctx.node_len = + bgp->vpn_policy[afi].tovpn_sid_locator->node_bits_length; + seg6localctx.function_len = + bgp->vpn_policy[afi] + .tovpn_sid_locator->function_bits_length; + seg6localctx.argument_len = + bgp->vpn_policy[afi] + .tovpn_sid_locator->argument_bits_length; + } zclient_send_localsid(zclient, - bgp->vpn_policy[afi].tovpn_zebra_vrf_sid_last_sent, - bgp->vrf_id, ZEBRA_SEG6_LOCAL_ACTION_UNSPEC, NULL); + bgp->vpn_policy[afi].tovpn_zebra_vrf_sid_last_sent, + bgp->vrf_id, ZEBRA_SEG6_LOCAL_ACTION_UNSPEC, + &seg6localctx); XFREE(MTYPE_BGP_SRV6_SID, bgp->vpn_policy[afi].tovpn_zebra_vrf_sid_last_sent); bgp->vpn_policy[afi].tovpn_zebra_vrf_sid_last_sent = NULL;