ip: refactor reassembly
this is a preparation step for introducing other reassembly types Type: refactor Change-Id: I197e299dbd729b00eead31667913b8ceff915d63 Signed-off-by: Klement Sekera <ksekera@cisco.com>
This commit is contained in:
Klement Sekera
committed by
Ole Trøan
parent
5e2f84d2cf
commit
896c896a3c
@ -431,7 +431,7 @@ list(APPEND VNET_SOURCES
|
|||||||
ip/ip4_pg.c
|
ip/ip4_pg.c
|
||||||
ip/ip4_source_and_port_range_check.c
|
ip/ip4_source_and_port_range_check.c
|
||||||
ip/ip4_source_check.c
|
ip/ip4_source_check.c
|
||||||
ip/ip4_reassembly.c
|
ip/reass/ip4_full_reass.c
|
||||||
ip/ip6_format.c
|
ip/ip6_format.c
|
||||||
ip/ip6_forward.c
|
ip/ip6_forward.c
|
||||||
ip/ip6_ll_table.c
|
ip/ip6_ll_table.c
|
||||||
@ -441,7 +441,7 @@ list(APPEND VNET_SOURCES
|
|||||||
ip/ip6_input.c
|
ip/ip6_input.c
|
||||||
ip/ip6_neighbor.c
|
ip/ip6_neighbor.c
|
||||||
ip/ip6_pg.c
|
ip/ip6_pg.c
|
||||||
ip/ip6_reassembly.c
|
ip/reass/ip6_full_reass.c
|
||||||
ip/rd_cp.c
|
ip/rd_cp.c
|
||||||
ip/ip_neighbor.c
|
ip/ip_neighbor.c
|
||||||
ip/ip_api.c
|
ip/ip_api.c
|
||||||
@ -461,9 +461,9 @@ list(APPEND VNET_SOURCES
|
|||||||
list(APPEND VNET_MULTIARCH_SOURCES
|
list(APPEND VNET_MULTIARCH_SOURCES
|
||||||
ip/ip4_source_check.c
|
ip/ip4_source_check.c
|
||||||
ip/ip4_punt_drop.c
|
ip/ip4_punt_drop.c
|
||||||
ip/ip4_reassembly.c
|
ip/reass/ip4_full_reass.c
|
||||||
ip/ip6_hop_by_hop.c
|
ip/ip6_hop_by_hop.c
|
||||||
ip/ip6_reassembly.c
|
ip/reass/ip6_full_reass.c
|
||||||
ip/ip6_input.c
|
ip/ip6_input.c
|
||||||
ip/ip6_punt_drop.c
|
ip/ip6_punt_drop.c
|
||||||
ip/punt_node.c
|
ip/punt_node.c
|
||||||
|
@ -38,8 +38,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <vnet/ip/ip.h>
|
#include <vnet/ip/ip.h>
|
||||||
#include <vnet/ip/ip4_reassembly.h>
|
#include <vnet/ip/reass/ip4_full_reass.h>
|
||||||
#include <vnet/ip/ip6_reassembly.h>
|
#include <vnet/ip/reass/ip6_full_reass.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
@ -269,26 +269,26 @@ set_reassembly_command_fn (vlib_main_t * vm,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
vnet_api_error_t rv4 = ip4_reass_enable_disable (sw_if_index, ip4_on);
|
vnet_api_error_t rv4 = ip4_full_reass_enable_disable (sw_if_index, ip4_on);
|
||||||
vnet_api_error_t rv6 = ip6_reass_enable_disable (sw_if_index, ip6_on);
|
vnet_api_error_t rv6 = ip6_full_reass_enable_disable (sw_if_index, ip6_on);
|
||||||
if (rv4 && rv6)
|
if (rv4 && rv6)
|
||||||
{
|
{
|
||||||
return clib_error_return (0,
|
return clib_error_return (0,
|
||||||
"`ip4_reass_enable_disable' API call failed, rv=%d:%U, "
|
"`ip4_full_reass_enable_disable' API call failed, rv=%d:%U, "
|
||||||
"`ip6_reass_enable_disable' API call failed, rv=%d:%U",
|
"`ip6_full_reass_enable_disable' API call failed, rv=%d:%U",
|
||||||
(int) rv4, format_vnet_api_errno, rv4,
|
(int) rv4, format_vnet_api_errno, rv4,
|
||||||
(int) rv6, format_vnet_api_errno, rv6);
|
(int) rv6, format_vnet_api_errno, rv6);
|
||||||
}
|
}
|
||||||
else if (rv4)
|
else if (rv4)
|
||||||
{
|
{
|
||||||
return clib_error_return (0,
|
return clib_error_return (0,
|
||||||
"`ip4_reass_enable_disable' API call failed, rv=%d:%U",
|
"`ip4_full_reass_enable_disable' API call failed, rv=%d:%U",
|
||||||
(int) rv4, format_vnet_api_errno, rv4);
|
(int) rv4, format_vnet_api_errno, rv4);
|
||||||
}
|
}
|
||||||
else if (rv6)
|
else if (rv6)
|
||||||
{
|
{
|
||||||
return clib_error_return (0,
|
return clib_error_return (0,
|
||||||
"`ip6_reass_enable_disable' API call failed, rv=%d:%U",
|
"`ip6_full_reass_enable_disable' API call failed, rv=%d:%U",
|
||||||
(int) rv6, format_vnet_api_errno, rv6);
|
(int) rv6, format_vnet_api_errno, rv6);
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -1871,7 +1871,7 @@ VLIB_REGISTER_NODE (ip4_local_node) =
|
|||||||
[IP_LOCAL_NEXT_PUNT] = "ip4-punt",
|
[IP_LOCAL_NEXT_PUNT] = "ip4-punt",
|
||||||
[IP_LOCAL_NEXT_UDP_LOOKUP] = "ip4-udp-lookup",
|
[IP_LOCAL_NEXT_UDP_LOOKUP] = "ip4-udp-lookup",
|
||||||
[IP_LOCAL_NEXT_ICMP] = "ip4-icmp-input",
|
[IP_LOCAL_NEXT_ICMP] = "ip4-icmp-input",
|
||||||
[IP_LOCAL_NEXT_REASSEMBLY] = "ip4-reassembly",
|
[IP_LOCAL_NEXT_REASSEMBLY] = "ip4-full-reassembly",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
/* *INDENT-ON* */
|
/* *INDENT-ON* */
|
||||||
|
@ -398,7 +398,7 @@ VLIB_REGISTER_NODE (ip4_input_node) = {
|
|||||||
[IP4_INPUT_NEXT_LOOKUP] = "ip4-lookup",
|
[IP4_INPUT_NEXT_LOOKUP] = "ip4-lookup",
|
||||||
[IP4_INPUT_NEXT_LOOKUP_MULTICAST] = "ip4-mfib-forward-lookup",
|
[IP4_INPUT_NEXT_LOOKUP_MULTICAST] = "ip4-mfib-forward-lookup",
|
||||||
[IP4_INPUT_NEXT_ICMP_ERROR] = "ip4-icmp-error",
|
[IP4_INPUT_NEXT_ICMP_ERROR] = "ip4-icmp-error",
|
||||||
[IP4_INPUT_NEXT_REASSEMBLY] = "ip4-reassembly",
|
[IP4_INPUT_NEXT_REASSEMBLY] = "ip4-full-reassembly",
|
||||||
},
|
},
|
||||||
|
|
||||||
.format_buffer = format_ip4_header,
|
.format_buffer = format_ip4_header,
|
||||||
|
@ -1517,7 +1517,7 @@ VLIB_REGISTER_NODE (ip6_local_node) =
|
|||||||
[IP_LOCAL_NEXT_PUNT] = "ip6-punt",
|
[IP_LOCAL_NEXT_PUNT] = "ip6-punt",
|
||||||
[IP_LOCAL_NEXT_UDP_LOOKUP] = "ip6-udp-lookup",
|
[IP_LOCAL_NEXT_UDP_LOOKUP] = "ip6-udp-lookup",
|
||||||
[IP_LOCAL_NEXT_ICMP] = "ip6-icmp-input",
|
[IP_LOCAL_NEXT_ICMP] = "ip6-icmp-input",
|
||||||
[IP_LOCAL_NEXT_REASSEMBLY] = "ip6-reassembly",
|
[IP_LOCAL_NEXT_REASSEMBLY] = "ip6-full-reassembly",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
/* *INDENT-ON* */
|
/* *INDENT-ON* */
|
||||||
|
@ -43,8 +43,8 @@
|
|||||||
#include <vnet/fib/ip6_fib.h>
|
#include <vnet/fib/ip6_fib.h>
|
||||||
#include <vnet/fib/fib_path_list.h>
|
#include <vnet/fib/fib_path_list.h>
|
||||||
#include <vnet/ip/ip6_hop_by_hop.h>
|
#include <vnet/ip/ip6_hop_by_hop.h>
|
||||||
#include <vnet/ip/ip4_reassembly.h>
|
#include <vnet/ip/reass/ip4_full_reass.h>
|
||||||
#include <vnet/ip/ip6_reassembly.h>
|
#include <vnet/ip/reass/ip6_full_reass.h>
|
||||||
#include <vnet/ethernet/arp.h>
|
#include <vnet/ethernet/arp.h>
|
||||||
#include <vnet/ip/ip_types_api.h>
|
#include <vnet/ip/ip_types_api.h>
|
||||||
|
|
||||||
@ -2738,17 +2738,21 @@ vl_api_ip_reassembly_set_t_handler (vl_api_ip_reassembly_set_t * mp)
|
|||||||
int rv = 0;
|
int rv = 0;
|
||||||
if (mp->is_ip6)
|
if (mp->is_ip6)
|
||||||
{
|
{
|
||||||
rv = ip6_reass_set (clib_net_to_host_u32 (mp->timeout_ms),
|
rv = ip6_full_reass_set (clib_net_to_host_u32 (mp->timeout_ms),
|
||||||
clib_net_to_host_u32 (mp->max_reassemblies),
|
clib_net_to_host_u32 (mp->max_reassemblies),
|
||||||
clib_net_to_host_u32 (mp->max_reassembly_length),
|
clib_net_to_host_u32
|
||||||
clib_net_to_host_u32 (mp->expire_walk_interval_ms));
|
(mp->max_reassembly_length),
|
||||||
|
clib_net_to_host_u32
|
||||||
|
(mp->expire_walk_interval_ms));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rv = ip4_reass_set (clib_net_to_host_u32 (mp->timeout_ms),
|
rv = ip4_full_reass_set (clib_net_to_host_u32 (mp->timeout_ms),
|
||||||
clib_net_to_host_u32 (mp->max_reassemblies),
|
clib_net_to_host_u32 (mp->max_reassemblies),
|
||||||
clib_net_to_host_u32 (mp->max_reassembly_length),
|
clib_net_to_host_u32
|
||||||
clib_net_to_host_u32 (mp->expire_walk_interval_ms));
|
(mp->max_reassembly_length),
|
||||||
|
clib_net_to_host_u32
|
||||||
|
(mp->expire_walk_interval_ms));
|
||||||
}
|
}
|
||||||
|
|
||||||
REPLY_MACRO (VL_API_IP_REASSEMBLY_SET_REPLY);
|
REPLY_MACRO (VL_API_IP_REASSEMBLY_SET_REPLY);
|
||||||
@ -2771,15 +2775,16 @@ vl_api_ip_reassembly_get_t_handler (vl_api_ip_reassembly_get_t * mp)
|
|||||||
if (mp->is_ip6)
|
if (mp->is_ip6)
|
||||||
{
|
{
|
||||||
rmp->is_ip6 = 1;
|
rmp->is_ip6 = 1;
|
||||||
ip6_reass_get (&rmp->timeout_ms, &rmp->max_reassemblies,
|
ip6_full_reass_get (&rmp->timeout_ms, &rmp->max_reassemblies,
|
||||||
&rmp->expire_walk_interval_ms);
|
&rmp->max_reassembly_length,
|
||||||
|
&rmp->expire_walk_interval_ms);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rmp->is_ip6 = 0;
|
rmp->is_ip6 = 0;
|
||||||
ip4_reass_get (&rmp->timeout_ms, &rmp->max_reassemblies,
|
ip4_full_reass_get (&rmp->timeout_ms, &rmp->max_reassemblies,
|
||||||
&rmp->max_reassembly_length,
|
&rmp->max_reassembly_length,
|
||||||
&rmp->expire_walk_interval_ms);
|
&rmp->expire_walk_interval_ms);
|
||||||
}
|
}
|
||||||
rmp->timeout_ms = clib_host_to_net_u32 (rmp->timeout_ms);
|
rmp->timeout_ms = clib_host_to_net_u32 (rmp->timeout_ms);
|
||||||
rmp->max_reassemblies = clib_host_to_net_u32 (rmp->max_reassemblies);
|
rmp->max_reassemblies = clib_host_to_net_u32 (rmp->max_reassemblies);
|
||||||
@ -2794,12 +2799,13 @@ void
|
|||||||
{
|
{
|
||||||
vl_api_ip_reassembly_enable_disable_reply_t *rmp;
|
vl_api_ip_reassembly_enable_disable_reply_t *rmp;
|
||||||
int rv = 0;
|
int rv = 0;
|
||||||
rv = ip4_reass_enable_disable (clib_net_to_host_u32 (mp->sw_if_index),
|
rv = ip4_full_reass_enable_disable (clib_net_to_host_u32 (mp->sw_if_index),
|
||||||
mp->enable_ip4);
|
mp->enable_ip4);
|
||||||
if (0 == rv)
|
if (0 == rv)
|
||||||
{
|
{
|
||||||
rv = ip6_reass_enable_disable (clib_net_to_host_u32 (mp->sw_if_index),
|
rv =
|
||||||
mp->enable_ip6);
|
ip6_full_reass_enable_disable (clib_net_to_host_u32 (mp->sw_if_index),
|
||||||
|
mp->enable_ip6);
|
||||||
}
|
}
|
||||||
|
|
||||||
REPLY_MACRO (VL_API_IP_REASSEMBLY_ENABLE_DISABLE_REPLY);
|
REPLY_MACRO (VL_API_IP_REASSEMBLY_ENABLE_DISABLE_REPLY);
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -20,8 +20,8 @@
|
|||||||
* This file contains the source code for IPv4 reassembly.
|
* This file contains the source code for IPv4 reassembly.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __included_ip4_reassembly_h__
|
#ifndef __included_ip4_full_reass_h__
|
||||||
#define __included_ip4_reassembly_h__
|
#define __included_ip4_full_reass_h__
|
||||||
|
|
||||||
#include <vnet/api_errno.h>
|
#include <vnet/api_errno.h>
|
||||||
#include <vnet/vnet.h>
|
#include <vnet/vnet.h>
|
||||||
@ -29,21 +29,21 @@
|
|||||||
/**
|
/**
|
||||||
* @brief set ip4 reassembly configuration
|
* @brief set ip4 reassembly configuration
|
||||||
*/
|
*/
|
||||||
vnet_api_error_t ip4_reass_set (u32 timeout_ms, u32 max_reassemblies,
|
vnet_api_error_t ip4_full_reass_set (u32 timeout_ms, u32 max_reassemblies,
|
||||||
u32 max_reassembly_length,
|
u32 max_reassembly_length,
|
||||||
u32 expire_walk_interval_ms);
|
u32 expire_walk_interval_ms);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief get ip4 reassembly configuration
|
* @brief get ip4 reassembly configuration
|
||||||
*/
|
*/
|
||||||
vnet_api_error_t ip4_reass_get (u32 * timeout_ms, u32 * max_reassemblies,
|
vnet_api_error_t ip4_full_reass_get (u32 * timeout_ms, u32 * max_reassemblies,
|
||||||
u32 * max_reassembly_length,
|
u32 * max_reassembly_length,
|
||||||
u32 * expire_walk_interval_ms);
|
u32 * expire_walk_interval_ms);
|
||||||
|
|
||||||
vnet_api_error_t ip4_reass_enable_disable (u32 sw_if_index,
|
vnet_api_error_t ip4_full_reass_enable_disable (u32 sw_if_index,
|
||||||
u8 enable_disable);
|
u8 enable_disable);
|
||||||
|
|
||||||
#endif /* __included_ip4_reassembly_h */
|
#endif /* __included_ip4_full_reass_h__ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* fd.io coding-style-patch-verification: ON
|
* fd.io coding-style-patch-verification: ON
|
File diff suppressed because it is too large
Load Diff
@ -20,8 +20,8 @@
|
|||||||
* This file contains the source code for IPv6 reassembly.
|
* This file contains the source code for IPv6 reassembly.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __included_ip6_reassembly_h__
|
#ifndef __included_ip6_full_reass_h__
|
||||||
#define __included_ip6_reassembly_h__
|
#define __included_ip6_full_reass_h__
|
||||||
|
|
||||||
#include <vnet/api_errno.h>
|
#include <vnet/api_errno.h>
|
||||||
#include <vnet/vnet.h>
|
#include <vnet/vnet.h>
|
||||||
@ -29,20 +29,21 @@
|
|||||||
/**
|
/**
|
||||||
* @brief set ip6 reassembly configuration
|
* @brief set ip6 reassembly configuration
|
||||||
*/
|
*/
|
||||||
vnet_api_error_t ip6_reass_set (u32 timeout_ms, u32 max_reassemblies,
|
vnet_api_error_t ip6_full_reass_set (u32 timeout_ms, u32 max_reassemblies,
|
||||||
u32 max_reassembly_length,
|
u32 max_reassembly_length,
|
||||||
u32 expire_walk_interval_ms);
|
u32 expire_walk_interval_ms);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief get ip6 reassembly configuration
|
* @brief get ip6 reassembly configuration
|
||||||
*/
|
*/
|
||||||
vnet_api_error_t ip6_reass_get (u32 * timeout_ms, u32 * max_reassemblies,
|
vnet_api_error_t ip6_full_reass_get (u32 * timeout_ms, u32 * max_reassemblies,
|
||||||
u32 * expire_walk_interval_ms);
|
u32 * max_reassembly_length,
|
||||||
|
u32 * expire_walk_interval_ms);
|
||||||
|
|
||||||
vnet_api_error_t ip6_reass_enable_disable (u32 sw_if_index,
|
vnet_api_error_t ip6_full_reass_enable_disable (u32 sw_if_index,
|
||||||
u8 enable_disable);
|
u8 enable_disable);
|
||||||
|
|
||||||
#endif /* __included_ip6_reassembly_h */
|
#endif /* __included_ip6_full_reass_h */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* fd.io coding-style-patch-verification: ON
|
* fd.io coding-style-patch-verification: ON
|
@ -17,6 +17,7 @@ from util import ppp, ppc, fragment_rfc791, fragment_rfc8200
|
|||||||
from vpp_gre_interface import VppGreInterface
|
from vpp_gre_interface import VppGreInterface
|
||||||
from vpp_ip import DpoProto
|
from vpp_ip import DpoProto
|
||||||
from vpp_ip_route import VppIpRoute, VppRoutePath, FibPathProto
|
from vpp_ip_route import VppIpRoute, VppRoutePath, FibPathProto
|
||||||
|
from vpp_papi import VppEnum
|
||||||
|
|
||||||
# 35 is enough to have >257 400-byte fragments
|
# 35 is enough to have >257 400-byte fragments
|
||||||
test_packet_count = 35
|
test_packet_count = 35
|
||||||
@ -69,7 +70,7 @@ class TestIPv4Reassembly(VppTestCase):
|
|||||||
super(TestIPv4Reassembly, self).tearDown()
|
super(TestIPv4Reassembly, self).tearDown()
|
||||||
|
|
||||||
def show_commands_at_teardown(self):
|
def show_commands_at_teardown(self):
|
||||||
self.logger.debug(self.vapi.ppcli("show ip4-reassembly details"))
|
self.logger.debug(self.vapi.ppcli("show ip4-full-reassembly details"))
|
||||||
self.logger.debug(self.vapi.ppcli("show buffers"))
|
self.logger.debug(self.vapi.ppcli("show buffers"))
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -197,7 +198,7 @@ class TestIPv4Reassembly(VppTestCase):
|
|||||||
""" long fragment chain """
|
""" long fragment chain """
|
||||||
|
|
||||||
error_cnt_str = \
|
error_cnt_str = \
|
||||||
"/err/ip4-reassembly-feature/fragment chain too long (drop)"
|
"/err/ip4-full-reassembly-feature/fragment chain too long (drop)"
|
||||||
|
|
||||||
error_cnt = self.statistics.get_err_counter(error_cnt_str)
|
error_cnt = self.statistics.get_err_counter(error_cnt_str)
|
||||||
|
|
||||||
@ -247,11 +248,12 @@ class TestIPv4Reassembly(VppTestCase):
|
|||||||
self.pg_start()
|
self.pg_start()
|
||||||
|
|
||||||
self.dst_if.get_capture(1)
|
self.dst_if.get_capture(1)
|
||||||
self.assert_packet_counter_equal("ip4-reassembly-feature", 1)
|
self.logger.debug(self.vapi.ppcli("show error"))
|
||||||
|
self.assert_packet_counter_equal("ip4-full-reassembly-feature", 1)
|
||||||
# TODO remove above, uncomment below once clearing of counters
|
# TODO remove above, uncomment below once clearing of counters
|
||||||
# is supported
|
# is supported
|
||||||
# self.assert_packet_counter_equal(
|
# self.assert_packet_counter_equal(
|
||||||
# "/err/ip4-reassembly-feature/malformed packets", 1)
|
# "/err/ip4-full-reassembly-feature/malformed packets", 1)
|
||||||
|
|
||||||
def test_44924(self):
|
def test_44924(self):
|
||||||
""" compress tiny fragments """
|
""" compress tiny fragments """
|
||||||
@ -314,11 +316,11 @@ class TestIPv4Reassembly(VppTestCase):
|
|||||||
|
|
||||||
self.dst_if.get_capture(1)
|
self.dst_if.get_capture(1)
|
||||||
|
|
||||||
self.assert_packet_counter_equal("ip4-reassembly-feature", 1)
|
self.assert_packet_counter_equal("ip4-full-reassembly-feature", 1)
|
||||||
# TODO remove above, uncomment below once clearing of counters
|
# TODO remove above, uncomment below once clearing of counters
|
||||||
# is supported
|
# is supported
|
||||||
# self.assert_packet_counter_equal(
|
# self.assert_packet_counter_equal(
|
||||||
# "/err/ip4-reassembly-feature/malformed packets", 1)
|
# "/err/ip4-full-reassembly-feature/malformed packets", 1)
|
||||||
|
|
||||||
def test_random(self):
|
def test_random(self):
|
||||||
""" random order reassembly """
|
""" random order reassembly """
|
||||||
@ -551,7 +553,7 @@ class TestIPv4MWReassembly(VppTestCase):
|
|||||||
super(TestIPv4MWReassembly, self).tearDown()
|
super(TestIPv4MWReassembly, self).tearDown()
|
||||||
|
|
||||||
def show_commands_at_teardown(self):
|
def show_commands_at_teardown(self):
|
||||||
self.logger.debug(self.vapi.ppcli("show ip4-reassembly details"))
|
self.logger.debug(self.vapi.ppcli("show ip4-full-reassembly details"))
|
||||||
self.logger.debug(self.vapi.ppcli("show buffers"))
|
self.logger.debug(self.vapi.ppcli("show buffers"))
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -713,14 +715,14 @@ class TestIPv6Reassembly(VppTestCase):
|
|||||||
self.vapi.ip_reassembly_set(timeout_ms=1000000, max_reassemblies=1000,
|
self.vapi.ip_reassembly_set(timeout_ms=1000000, max_reassemblies=1000,
|
||||||
max_reassembly_length=1000,
|
max_reassembly_length=1000,
|
||||||
expire_walk_interval_ms=10000, is_ip6=1)
|
expire_walk_interval_ms=10000, is_ip6=1)
|
||||||
self.logger.debug(self.vapi.ppcli("show ip6-reassembly details"))
|
self.logger.debug(self.vapi.ppcli("show ip6-full-reassembly details"))
|
||||||
self.logger.debug(self.vapi.ppcli("show buffers"))
|
self.logger.debug(self.vapi.ppcli("show buffers"))
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
super(TestIPv6Reassembly, self).tearDown()
|
super(TestIPv6Reassembly, self).tearDown()
|
||||||
|
|
||||||
def show_commands_at_teardown(self):
|
def show_commands_at_teardown(self):
|
||||||
self.logger.debug(self.vapi.ppcli("show ip6-reassembly details"))
|
self.logger.debug(self.vapi.ppcli("show ip6-full-reassembly details"))
|
||||||
self.logger.debug(self.vapi.ppcli("show buffers"))
|
self.logger.debug(self.vapi.ppcli("show buffers"))
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -883,7 +885,7 @@ class TestIPv6Reassembly(VppTestCase):
|
|||||||
""" long fragment chain """
|
""" long fragment chain """
|
||||||
|
|
||||||
error_cnt_str = \
|
error_cnt_str = \
|
||||||
"/err/ip6-reassembly-feature/fragment chain too long (drop)"
|
"/err/ip6-full-reassembly-feature/fragment chain too long (drop)"
|
||||||
|
|
||||||
error_cnt = self.statistics.get_err_counter(error_cnt_str)
|
error_cnt = self.statistics.get_err_counter(error_cnt_str)
|
||||||
|
|
||||||
@ -1162,7 +1164,7 @@ class TestIPv6MWReassembly(VppTestCase):
|
|||||||
super(TestIPv6MWReassembly, self).tearDown()
|
super(TestIPv6MWReassembly, self).tearDown()
|
||||||
|
|
||||||
def show_commands_at_teardown(self):
|
def show_commands_at_teardown(self):
|
||||||
self.logger.debug(self.vapi.ppcli("show ip6-reassembly details"))
|
self.logger.debug(self.vapi.ppcli("show ip6-full-reassembly details"))
|
||||||
self.logger.debug(self.vapi.ppcli("show buffers"))
|
self.logger.debug(self.vapi.ppcli("show buffers"))
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -1324,7 +1326,7 @@ class TestIPv4ReassemblyLocalNode(VppTestCase):
|
|||||||
super(TestIPv4ReassemblyLocalNode, self).tearDown()
|
super(TestIPv4ReassemblyLocalNode, self).tearDown()
|
||||||
|
|
||||||
def show_commands_at_teardown(self):
|
def show_commands_at_teardown(self):
|
||||||
self.logger.debug(self.vapi.ppcli("show ip4-reassembly details"))
|
self.logger.debug(self.vapi.ppcli("show ip4-full-reassembly details"))
|
||||||
self.logger.debug(self.vapi.ppcli("show buffers"))
|
self.logger.debug(self.vapi.ppcli("show buffers"))
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -1463,8 +1465,8 @@ class TestFIFReassembly(VppTestCase):
|
|||||||
super(TestFIFReassembly, self).tearDown()
|
super(TestFIFReassembly, self).tearDown()
|
||||||
|
|
||||||
def show_commands_at_teardown(self):
|
def show_commands_at_teardown(self):
|
||||||
self.logger.debug(self.vapi.ppcli("show ip4-reassembly details"))
|
self.logger.debug(self.vapi.ppcli("show ip4-full-reassembly details"))
|
||||||
self.logger.debug(self.vapi.ppcli("show ip6-reassembly details"))
|
self.logger.debug(self.vapi.ppcli("show ip6-full-reassembly details"))
|
||||||
self.logger.debug(self.vapi.ppcli("show buffers"))
|
self.logger.debug(self.vapi.ppcli("show buffers"))
|
||||||
|
|
||||||
def verify_capture(self, capture, ip_class, dropped_packet_indexes=[]):
|
def verify_capture(self, capture, ip_class, dropped_packet_indexes=[]):
|
||||||
|
Reference in New Issue
Block a user