diff options
Diffstat (limited to 'src/vnet/dpo/dvr_dpo.c')
-rw-r--r-- | src/vnet/dpo/dvr_dpo.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/vnet/dpo/dvr_dpo.c b/src/vnet/dpo/dvr_dpo.c index 02b97ee2e9f..39a8a631ebd 100644 --- a/src/vnet/dpo/dvr_dpo.c +++ b/src/vnet/dpo/dvr_dpo.c @@ -288,8 +288,12 @@ dvr_dpo_inline (vlib_main_t * vm, (u8*)ethernet_buffer_get_header(b0)); len1 = ((u8*)vlib_buffer_get_current(b1) - (u8*)ethernet_buffer_get_header(b1)); - vnet_buffer(b0)->l2.l2_len = len0; - vnet_buffer(b1)->l2.l2_len = len1; + vnet_buffer(b0)->l2.l2_len = + vnet_buffer(b0)->ip.save_rewrite_length = + len0; + vnet_buffer(b1)->l2.l2_len = + vnet_buffer(b1)->ip.save_rewrite_length = + len1; b0->flags |= VNET_BUFFER_F_IS_DVR; b1->flags |= VNET_BUFFER_F_IS_DVR; @@ -349,7 +353,9 @@ dvr_dpo_inline (vlib_main_t * vm, */ len0 = ((u8*)vlib_buffer_get_current(b0) - (u8*)ethernet_buffer_get_header(b0)); - vnet_buffer(b0)->l2.l2_len = len0; + vnet_buffer(b0)->l2.l2_len = + vnet_buffer(b0)->ip.save_rewrite_length = + len0; b0->flags |= VNET_BUFFER_F_IS_DVR; vlib_buffer_advance(b0, -len0); |