summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorshwethab <shwetha.bhandari@gmail.com>2017-03-29 11:36:37 +0000
committerDamjan Marion <dmarion.lists@gmail.com>2017-03-30 12:17:45 +0000
commitb18e0de1f9630fab8b3d6ffe85c7a6ee35a6fdac (patch)
tree646a05e633981776bddc131e752024cb0d4ca46a /src
parentadcaaf14012acec9afc3cb6f3738b98d9e9b4c04 (diff)
SR replicate mheap corruption fix VPP-672
Change-Id: If1c68fc63fa71fab198f2bf4f79bdd7a9841c2e8 Signed-off-by: shwethab <shwetha.bhandari@gmail.com> Signed-off-by: Pablo Camarillo <pcamaril@cisco.com>
Diffstat (limited to 'src')
-rw-r--r--src/vnet/fib/fib_entry_src_api.c1
-rw-r--r--src/vnet/fib/fib_entry_src_special.c1
-rwxr-xr-xsrc/vnet/sr/sr_policy_rewrite.c9
-rwxr-xr-xsrc/vnet/sr/sr_steering.c6
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,