summaryrefslogtreecommitdiffstats
path: root/src/vnet/ip/ip6_reassembly.c
diff options
context:
space:
mode:
authorKlement Sekera <ksekera@cisco.com>2019-02-19 14:47:25 +0100
committerOle Trøan <otroan@employees.org>2019-02-19 17:08:51 +0000
commitf1b4e52a6e9f8ec74127da194ec5bbaccd63b87c (patch)
treea2a14ba3d4c88549c3b1bd85dc996c88e778c8a7 /src/vnet/ip/ip6_reassembly.c
parentd2f50b2e33e791cf0f11eaf862932a8e153ca40c (diff)
reassembly: handle ip6 atomic fragments
Change-Id: Ide3425f144fb17201dcde7ba89f39e460048100d Signed-off-by: Klement Sekera <ksekera@cisco.com>
Diffstat (limited to 'src/vnet/ip/ip6_reassembly.c')
-rw-r--r--src/vnet/ip/ip6_reassembly.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/vnet/ip/ip6_reassembly.c b/src/vnet/ip/ip6_reassembly.c
index 631556efec0..012f3d26639 100644
--- a/src/vnet/ip/ip6_reassembly.c
+++ b/src/vnet/ip/ip6_reassembly.c
@@ -718,13 +718,9 @@ ip6_reass_update (vlib_main_t * vm, vlib_node_runtime_t * node,
// starting a new reassembly
ip6_reass_insert_range_in_chain (vm, rm, rt, reass, prev_range_bi,
*bi0);
- if (PREDICT_FALSE (fb->flags & VLIB_BUFFER_IS_TRACED))
- {
- ip6_reass_add_trace (vm, node, rm, reass, *bi0, RANGE_NEW, 0);
- }
reass->min_fragment_length = clib_net_to_host_u16 (fip->payload_length);
- *bi0 = ~0;
- return IP6_REASS_RC_OK;
+ consumed = 1;
+ goto check_if_done_maybe;
}
reass->min_fragment_length =
clib_min (clib_net_to_host_u16 (fip->payload_length),
@@ -777,6 +773,7 @@ ip6_reass_update (vlib_main_t * vm, vlib_node_runtime_t * node,
}
break;
}
+check_if_done_maybe:
if (consumed)
{
if (PREDICT_FALSE (fb->flags & VLIB_BUFFER_IS_TRACED))