diff options
author | Klement Sekera <ksekera@cisco.com> | 2019-02-19 14:47:25 +0100 |
---|---|---|
committer | Ole Trøan <otroan@employees.org> | 2019-02-19 17:08:51 +0000 |
commit | f1b4e52a6e9f8ec74127da194ec5bbaccd63b87c (patch) | |
tree | a2a14ba3d4c88549c3b1bd85dc996c88e778c8a7 | |
parent | d2f50b2e33e791cf0f11eaf862932a8e153ca40c (diff) |
reassembly: handle ip6 atomic fragments
Change-Id: Ide3425f144fb17201dcde7ba89f39e460048100d
Signed-off-by: Klement Sekera <ksekera@cisco.com>
-rw-r--r-- | src/vnet/ip/ip6_reassembly.c | 9 |
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)) |