From fe9473f3b5f59a2c63e3bd1c51d915d99cd49252 Mon Sep 17 00:00:00 2001 From: Matus Fabian Date: Wed, 21 Sep 2016 05:13:01 -0700 Subject: VPP-414: Fixed IPSec transport mode in esp_encrypt.c Change-Id: I27accb0c87d6bf2fbbe90d8d1bc074697299e639 Signed-off-by: Matus Fabian --- vnet/vnet/ipsec/esp_encrypt.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'vnet') diff --git a/vnet/vnet/ipsec/esp_encrypt.c b/vnet/vnet/ipsec/esp_encrypt.c index 193c0849b71..ba7579de8b5 100644 --- a/vnet/vnet/ipsec/esp_encrypt.c +++ b/vnet/vnet/ipsec/esp_encrypt.c @@ -299,13 +299,15 @@ esp_encrypt_node_fn (vlib_main_t * vm, } else { - vlib_buffer_advance (i_b0, ip_hdr_size); next_hdr_type = ip_proto; if (vnet_buffer (i_b0)->sw_if_index[VLIB_TX] != ~0) { transport_mode = 1; ethernet_header_t *ieh0, *oeh0; - ieh0 = (ethernet_header_t *) i_b0->data; + ieh0 = + (ethernet_header_t *) ((u8 *) + vlib_buffer_get_current (i_b0) - + sizeof (ethernet_header_t)); oeh0 = (ethernet_header_t *) o_b0->data; clib_memcpy (oeh0, ieh0, sizeof (ethernet_header_t)); next0 = ESP_ENCRYPT_NEXT_INTERFACE_OUTPUT; @@ -315,6 +317,7 @@ esp_encrypt_node_fn (vlib_main_t * vm, vnet_buffer (o_b0)->output_features.bitmap = vnet_buffer (i_b0)->output_features.bitmap; } + vlib_buffer_advance (i_b0, ip_hdr_size); } ASSERT (sa0->crypto_alg < IPSEC_CRYPTO_N_ALG); -- cgit 1.2.3-korg