diff options
author | Dave Barach <dave@barachs.net> | 2016-09-23 12:05:21 -0400 |
---|---|---|
committer | Dave Barach <dave@barachs.net> | 2016-09-23 12:05:35 -0400 |
commit | 76260a61b258b16ea4f385eab7f69ce8a3bf7a25 (patch) | |
tree | c4b4d242e6558dbad7d8c66335424bc0dce292ae /vnet | |
parent | 4448957b1864bb1e640fec63cc6f61b1fb7e5b55 (diff) |
Fix source RPF check in ip4_local
We need to accept src ip addresses which hit receive and clean
adjacencies.
Change-Id: I8cf07f622058203665ed09280452ed8412984bd5
Signed-off-by: Dave Barach <dave@barachs.net>
Diffstat (limited to 'vnet')
-rw-r--r-- | vnet/vnet/ip/ip4_forward.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/vnet/vnet/ip/ip4_forward.c b/vnet/vnet/ip/ip4_forward.c index 4c49d0e4916..f7cc7667069 100644 --- a/vnet/vnet/ip/ip4_forward.c +++ b/vnet/vnet/ip/ip4_forward.c @@ -1505,6 +1505,8 @@ ip4_local (vlib_main_t * vm, error0 = (error0 == IP4_ERROR_UNKNOWN_PROTOCOL && dpo0->dpoi_type != DPO_ADJACENCY && dpo0->dpoi_type != DPO_ADJACENCY_INCOMPLETE + && dpo0->dpoi_type != DPO_RECEIVE + && dpo0->dpoi_type != DPO_ADJACENCY_GLEAN && ip0->dst_address.as_u32 != 0xFFFFFFFF ? IP4_ERROR_SRC_LOOKUP_MISS : error0); @@ -1514,6 +1516,8 @@ ip4_local (vlib_main_t * vm, error1 = (error1 == IP4_ERROR_UNKNOWN_PROTOCOL && dpo1->dpoi_type != DPO_ADJACENCY && dpo1->dpoi_type != DPO_ADJACENCY_INCOMPLETE + && dpo0->dpoi_type != DPO_RECEIVE + && dpo0->dpoi_type != DPO_ADJACENCY_GLEAN && ip1->dst_address.as_u32 != 0xFFFFFFFF ? IP4_ERROR_SRC_LOOKUP_MISS : error1); @@ -1669,6 +1673,7 @@ ip4_local (vlib_main_t * vm, && dpo0->dpoi_type != DPO_ADJACENCY && dpo0->dpoi_type != DPO_ADJACENCY_INCOMPLETE && dpo0->dpoi_type != DPO_RECEIVE + && dpo0->dpoi_type != DPO_ADJACENCY_GLEAN && ip0->dst_address.as_u32 != 0xFFFFFFFF ? IP4_ERROR_SRC_LOOKUP_MISS : error0); |