summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2019-07-11 09:31:19 +0000
committerDamjan Marion <dmarion@me.com>2019-07-11 17:20:48 +0000
commitd2029bc9c5947a8a676208bada9386e07ec16c97 (patch)
treee385f6d50bac9b33eca13f19f3586a63952d784c
parent6d1ba56f3303c8bc0b85916aa8762f439923556e (diff)
ipsec: Revert "IPSEC: remove double byte swap of IP addresses"
This reverts commit 9b208ced585d3b4620d6fde586cd047fe2027ecf. Type: fix Fixes: 9b208ced585d3b4620d6fde586cd047fe2027ecf Change-Id: I94a17039b4727bff0877423da5ba6cfceb188b17 Signed-off-by: Neale Ranns <nranns@cisco.com>
-rw-r--r--src/vnet/ipsec/ipsec_input.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/vnet/ipsec/ipsec_input.c b/src/vnet/ipsec/ipsec_input.c
index cfbda318851..47220dbb095 100644
--- a/src/vnet/ipsec/ipsec_input.c
+++ b/src/vnet/ipsec/ipsec_input.c
@@ -86,25 +86,25 @@ ipsec_input_protect_policy_match (ipsec_spd_t * spd, u32 sa, u32 da, u32 spi)
if (ipsec_sa_is_set_IS_TUNNEL (s))
{
- if (da != s->tunnel_dst_addr.ip4.as_u32)
+ if (da != clib_net_to_host_u32 (s->tunnel_dst_addr.ip4.as_u32))
continue;
- if (sa != s->tunnel_src_addr.ip4.as_u32)
+ if (sa != clib_net_to_host_u32 (s->tunnel_src_addr.ip4.as_u32))
continue;
return p;
}
- if (da < p->laddr.start.ip4.as_u32)
+ if (da < clib_net_to_host_u32 (p->laddr.start.ip4.as_u32))
continue;
- if (da > p->laddr.stop.ip4.as_u32)
+ if (da > clib_net_to_host_u32 (p->laddr.stop.ip4.as_u32))
continue;
- if (sa < p->raddr.start.ip4.as_u32)
+ if (sa < clib_net_to_host_u32 (p->raddr.start.ip4.as_u32))
continue;
- if (sa > p->raddr.stop.ip4.as_u32)
+ if (sa > clib_net_to_host_u32 (p->raddr.stop.ip4.as_u32))
continue;
return p;
@@ -233,8 +233,12 @@ VLIB_NODE_FN (ipsec4_input_node) (vlib_main_t * vm,
/* FIXME TODO missing check whether there is enough data inside
* IP/UDP to contain ESP header & stuff ? */
p0 = ipsec_input_protect_policy_match (spd0,
- ip0->src_address.as_u32,
- ip0->dst_address.as_u32,
+ clib_net_to_host_u32
+ (ip0->src_address.
+ as_u32),
+ clib_net_to_host_u32
+ (ip0->dst_address.
+ as_u32),
clib_net_to_host_u32
(esp0->spi));
@@ -279,8 +283,12 @@ VLIB_NODE_FN (ipsec4_input_node) (vlib_main_t * vm,
{
ah0 = (ah_header_t *) ((u8 *) ip0 + ip4_header_bytes (ip0));
p0 = ipsec_input_protect_policy_match (spd0,
- ip0->src_address.as_u32,
- ip0->dst_address.as_u32,
+ clib_net_to_host_u32
+ (ip0->src_address.
+ as_u32),
+ clib_net_to_host_u32
+ (ip0->dst_address.
+ as_u32),
clib_net_to_host_u32
(ah0->spi));