From ff077a040194eb3dd80214738d741bc757f4f210 Mon Sep 17 00:00:00 2001 From: shwethab Date: Wed, 29 Mar 2017 11:36:37 +0000 Subject: SR replicate mheap corruption fix VPP-672 Change-Id: If1c68fc63fa71fab198f2bf4f79bdd7a9841c2e8 Signed-off-by: shwethab Signed-off-by: Pablo Camarillo --- src/vnet/fib/fib_entry_src_api.c | 1 + src/vnet/fib/fib_entry_src_special.c | 1 - src/vnet/sr/sr_policy_rewrite.c | 9 --------- src/vnet/sr/sr_steering.c | 6 ++++-- 4 files changed, 5 insertions(+), 12 deletions(-) (limited to 'src') 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 dfdd7950597..45927385cfe 100755 --- a/src/vnet/sr/sr_policy_rewrite.c +++ b/src/vnet/sr/sr_policy_rewrite.c @@ -516,11 +516,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 *******************************/ @@ -607,10 +602,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 86d6f27cbe1..8d66c5f8ce9 100755 --- a/src/vnet/sr/sr_steering.c +++ b/src/vnet/sr/sr_steering.c @@ -306,7 +306,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, @@ -322,7 +323,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, -- cgit 1.2.3-korg