diff options
-rw-r--r-- | src/vnet/fib/fib_entry_src_api.c | 1 | ||||
-rw-r--r-- | src/vnet/fib/fib_entry_src_special.c | 1 | ||||
-rwxr-xr-x | src/vnet/sr/sr_policy_rewrite.c | 9 | ||||
-rwxr-xr-x | src/vnet/sr/sr_steering.c | 6 |
4 files changed, 5 insertions, 12 deletions
diff --git a/src/vnet/fib/fib_entry_src_api.c b/src/vnet/fib/fib_entry_src_api.c index 1277bd65af7..19db8819ede 100644 --- a/src/vnet/fib/fib_entry_src_api.c +++ b/src/vnet/fib/fib_entry_src_api.c @@ -117,4 +117,5 @@ fib_entry_src_api_register (void) fib_entry_src_register(FIB_SOURCE_CLI, &api_src_vft); fib_entry_src_register(FIB_SOURCE_DHCP, &api_src_vft); fib_entry_src_register(FIB_SOURCE_IP6_ND_PROXY, &api_src_vft); + fib_entry_src_register(FIB_SOURCE_SR, &api_src_vft); } diff --git a/src/vnet/fib/fib_entry_src_special.c b/src/vnet/fib/fib_entry_src_special.c index 52a6134e337..75605d7f5eb 100644 --- a/src/vnet/fib/fib_entry_src_special.c +++ b/src/vnet/fib/fib_entry_src_special.c @@ -66,6 +66,5 @@ fib_entry_src_special_register (void) fib_entry_src_register(FIB_SOURCE_MAP, &special_src_vft); fib_entry_src_register(FIB_SOURCE_SIXRD, &special_src_vft); fib_entry_src_register(FIB_SOURCE_CLASSIFY, &special_src_vft); - fib_entry_src_register(FIB_SOURCE_SR, &special_src_vft); fib_entry_src_register(FIB_SOURCE_AE, &special_src_vft); } diff --git a/src/vnet/sr/sr_policy_rewrite.c b/src/vnet/sr/sr_policy_rewrite.c index de6c1616704..61cf4437125 100755 --- a/src/vnet/sr/sr_policy_rewrite.c +++ b/src/vnet/sr/sr_policy_rewrite.c @@ -518,11 +518,6 @@ update_replicate (ip6_sr_policy_t * sr_policy) replicate_multipath_update (&sr_policy->ip6_dpo, ip6_path_vector); if (sr_policy->is_encap) replicate_multipath_update (&sr_policy->ip4_dpo, ip4_path_vector); - - /* Cleanup */ - vec_free (b_path_vector); - vec_free (ip6_path_vector); - vec_free (ip4_path_vector); } /******************************* SR rewrite API *******************************/ @@ -606,10 +601,6 @@ sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, "SRv6 steering of IP6 prefixes through BSIDs"); sm->fib_table_ip4 = fib_table_create_and_lock (FIB_PROTOCOL_IP6, "SRv6 steering of IP4 prefixes through BSIDs"); - fib_table_flush (sm->fib_table_ip6, FIB_PROTOCOL_IP6, - FIB_SOURCE_SPECIAL); - fib_table_flush (sm->fib_table_ip4, FIB_PROTOCOL_IP6, - FIB_SOURCE_SPECIAL); } /* Create IPv6 FIB for the BindingSID attached to the DPO of the only SL */ diff --git a/src/vnet/sr/sr_steering.c b/src/vnet/sr/sr_steering.c index 1699d888d02..5156b20474c 100755 --- a/src/vnet/sr/sr_steering.c +++ b/src/vnet/sr/sr_steering.c @@ -308,7 +308,8 @@ update_fib: (table_id != (u32) ~ 0 ? table_id : 0)), - &pfx, FIB_SOURCE_CLI, FIB_ENTRY_FLAG_NONE, + &pfx, FIB_SOURCE_SR, + FIB_ENTRY_FLAG_LOOSE_URPF_EXEMPT, FIB_PROTOCOL_IP6, (ip46_address_t *) & sr_policy->bsid, ~0, sm->fib_table_ip6, 1, NULL, @@ -324,7 +325,8 @@ update_fib: (table_id != (u32) ~ 0 ? table_id : 0)), - &pfx, FIB_SOURCE_CLI, FIB_ENTRY_FLAG_NONE, + &pfx, FIB_SOURCE_SR, + FIB_ENTRY_FLAG_LOOSE_URPF_EXEMPT, FIB_PROTOCOL_IP6, (ip46_address_t *) & sr_policy->bsid, ~0, sm->fib_table_ip4, 1, NULL, |