diff options
author | jackiechen1985 <xiaobo.chen@tieto.com> | 2018-12-06 03:10:31 +0800 |
---|---|---|
committer | Neale Ranns <nranns@cisco.com> | 2018-12-07 10:23:40 +0000 |
commit | 9f6957d1a5b23d4bee9390da20537db6e93b3433 (patch) | |
tree | abd3b745dab2f90dda072bda6009cb2fd160973b /src/vnet/ipsec/esp_decrypt.c | |
parent | 920fd77e9c78860b42dc9250a85288152de007d7 (diff) |
Fix VPP-1515 IPSec receive packet error in transport mode with udp encap
Change-Id: Ife66395b89e1e9f9206666e5f0fd441b3c241bb2
Signed-off-by: jackiechen1985 <xiaobo.chen@tieto.com>
Diffstat (limited to 'src/vnet/ipsec/esp_decrypt.c')
-rw-r--r-- | src/vnet/ipsec/esp_decrypt.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/vnet/ipsec/esp_decrypt.c b/src/vnet/ipsec/esp_decrypt.c index 68cb825f23b..3f463505e01 100644 --- a/src/vnet/ipsec/esp_decrypt.c +++ b/src/vnet/ipsec/esp_decrypt.c @@ -277,9 +277,19 @@ esp_decrypt_inline (vlib_main_t * vm, } else { - ih4 = - (ip4_header_t *) ((u8 *) esp0 - - sizeof (ip4_header_t)); + if (sa0->udp_encap) + { + ih4 = + (ip4_header_t *) ((u8 *) esp0 - + sizeof (udp_header_t) - + sizeof (ip4_header_t)); + } + else + { + ih4 = + (ip4_header_t *) ((u8 *) esp0 - + sizeof (ip4_header_t)); + } oh4 = vlib_buffer_get_current (o_b0); ip_hdr_size = sizeof (ip4_header_t); } |