misc: deprecating the plugin
Type: refactor Not maintained Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I5568ecf1161b63cd0f314e2b1503e350e214e51b
This commit is contained in:
parent
1307b2eb2c
commit
7db5172ea2
@ -614,10 +614,6 @@ I: papi
|
||||
M: Ole Troan <ot@cisco.com>
|
||||
F: src/vpp-api/python
|
||||
|
||||
Plugin - SCTP
|
||||
I: sctp
|
||||
F: src/plugins/sctp/
|
||||
|
||||
Cisco Discovery Protocol
|
||||
I: cdp
|
||||
F: src/plugins/cdp/
|
||||
|
@ -1,36 +0,0 @@
|
||||
# Copyright (c) 2019 Cisco and/or its affiliates.
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
add_vpp_plugin(sctp
|
||||
SOURCES
|
||||
sctp.c
|
||||
sctp_api.c
|
||||
sctp_pg.c
|
||||
sctp_input.c
|
||||
sctp_output.c
|
||||
sctp_output_node.c
|
||||
sctp_format.c
|
||||
|
||||
API_FILES
|
||||
sctp.api
|
||||
|
||||
MULTIARCH_SOURCES
|
||||
sctp_output_node.c
|
||||
sctp_input.c
|
||||
|
||||
INSTALL_HEADERS
|
||||
sctp_error.def
|
||||
sctp_packet.h
|
||||
sctp_timer.h
|
||||
sctp.h
|
||||
)
|
@ -1,50 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2018 SUSE LLC.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
option version = "2.0.0";
|
||||
|
||||
import "vnet/ip/ip_types.api";
|
||||
|
||||
/** \brief Configure SCTP source addresses, for active-open SCTP sessions
|
||||
|
||||
SCTP src/dst ports are 16 bits
|
||||
@param client_index - opaque cookie to identify the sender
|
||||
@param context - sender context, to match reply w/ request
|
||||
@param vrf_id - fib table / vrf id for local adjacencies
|
||||
@param src_address - src address that SCTP will use for this sub-conn
|
||||
@param dst_address - dst address that SCTP will use for this sub-conn
|
||||
*/
|
||||
autoreply define sctp_add_src_dst_connection {
|
||||
u32 client_index;
|
||||
u32 context;
|
||||
u32 vrf_id;
|
||||
vl_api_address_t src_address;
|
||||
vl_api_address_t dst_address;
|
||||
};
|
||||
|
||||
autoreply define sctp_del_src_dst_connection {
|
||||
u32 client_index;
|
||||
u32 context;
|
||||
u32 vrf_id;
|
||||
vl_api_address_t src_address;
|
||||
vl_api_address_t dst_address;
|
||||
};
|
||||
|
||||
autoreply define sctp_config {
|
||||
u32 client_index;
|
||||
u32 context;
|
||||
bool never_delay_sack;
|
||||
bool never_bundle;
|
||||
};
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,104 +0,0 @@
|
||||
/*
|
||||
*------------------------------------------------------------------
|
||||
* sctp_api.c - sctp-layer API
|
||||
*
|
||||
* Copyright (c) 2018 SUSE LLC.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include <vlib/vlib.h>
|
||||
#include <vlibapi/api.h>
|
||||
#include <vlibmemory/api.h>
|
||||
|
||||
#include <vnet/ip/ip_types_api.h>
|
||||
#include <vnet/format_fns.h>
|
||||
|
||||
#include <sctp/sctp.h>
|
||||
|
||||
#include <sctp/sctp.api_enum.h>
|
||||
#include <sctp/sctp.api_types.h>
|
||||
|
||||
#define REPLY_MSG_ID_BASE sctp_main.msg_id_base
|
||||
#include <vlibapi/api_helper_macros.h>
|
||||
|
||||
static void
|
||||
vl_api_sctp_add_src_dst_connection_t_handler
|
||||
(vl_api_sctp_add_src_dst_connection_t * mp)
|
||||
{
|
||||
vlib_main_t *vm = vlib_get_main ();
|
||||
vl_api_sctp_add_src_dst_connection_reply_t *rmp;
|
||||
int rv;
|
||||
ip46_address_t src, dst;
|
||||
|
||||
ip_address_decode (&mp->src_address, &src);
|
||||
ip_address_decode (&mp->dst_address, &dst);
|
||||
|
||||
if (ip46_address_is_ip4 (&src) && ip46_address_is_ip4 (&dst))
|
||||
rv = sctp_sub_connection_add_ip4 (vm, &src.ip4, &dst.ip4);
|
||||
else
|
||||
rv = sctp_sub_connection_add_ip6 (vm, &src.ip6, &dst.ip6);
|
||||
|
||||
REPLY_MACRO (VL_API_SCTP_ADD_SRC_DST_CONNECTION_REPLY);
|
||||
}
|
||||
|
||||
static void
|
||||
vl_api_sctp_del_src_dst_connection_t_handler
|
||||
(vl_api_sctp_del_src_dst_connection_t * mp)
|
||||
{
|
||||
vl_api_sctp_del_src_dst_connection_reply_t *rmp;
|
||||
int rv;
|
||||
ip46_address_t src, dst;
|
||||
|
||||
ip_address_decode (&mp->src_address, &src);
|
||||
ip_address_decode (&mp->dst_address, &dst);
|
||||
|
||||
if (ip46_address_is_ip4 (&src) && ip46_address_is_ip4 (&dst))
|
||||
rv = sctp_sub_connection_del_ip4 (&src.ip4, &dst.ip4);
|
||||
else
|
||||
rv = sctp_sub_connection_del_ip6 (&src.ip6, &dst.ip6);
|
||||
|
||||
REPLY_MACRO (VL_API_SCTP_ADD_SRC_DST_CONNECTION_REPLY);
|
||||
}
|
||||
|
||||
static void
|
||||
vl_api_sctp_config_t_handler (vl_api_sctp_config_t * mp)
|
||||
{
|
||||
sctp_user_configuration_t config;
|
||||
vl_api_sctp_config_reply_t *rmp;
|
||||
int rv;
|
||||
|
||||
config.never_delay_sack = mp->never_delay_sack;
|
||||
config.never_bundle = mp->never_bundle;
|
||||
rv = sctp_configure (config);
|
||||
|
||||
REPLY_MACRO (VL_API_SCTP_CONFIG_REPLY);
|
||||
}
|
||||
|
||||
#include <sctp/sctp.api.c>
|
||||
clib_error_t *
|
||||
sctp_plugin_api_hookup (vlib_main_t * vm)
|
||||
{
|
||||
/* Ask for a correctly-sized block of API message decode slots */
|
||||
sctp_main.msg_id_base = setup_message_id_table ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* fd.io coding-style-patch-verification: ON
|
||||
*
|
||||
* Local Variables:
|
||||
* eval: (c-set-style "gnu")
|
||||
* End:
|
||||
*/
|
@ -1,69 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2017 SUSE LLC.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#ifndef included_sctp_debug_h__
|
||||
#define included_sctp_debug_h__
|
||||
|
||||
#include <vlib/vlib.h>
|
||||
|
||||
typedef enum _sctp_dbg
|
||||
{
|
||||
#define _(sym, str) SCTP_DBG_##sym,
|
||||
foreach_sctp_dbg_evt
|
||||
#undef _
|
||||
} sctp_dbg_e;
|
||||
|
||||
#define SCTP_DEBUG_STATE_MACHINE (0)
|
||||
#if SCTP_DEBUG_STATE_MACHINE
|
||||
#define SCTP_DBG_STATE_MACHINE(_fmt, _args...) clib_warning (_fmt, ##_args)
|
||||
#else
|
||||
#define SCTP_DBG_STATE_MACHINE(_fmt, _args...)
|
||||
#endif
|
||||
|
||||
#define SCTP_DEBUG (0)
|
||||
#if SCTP_DEBUG
|
||||
#define SCTP_DBG(_fmt, _args...) clib_warning (_fmt, ##_args)
|
||||
#else
|
||||
#define SCTP_DBG(_fmt, _args...)
|
||||
#endif
|
||||
|
||||
#define SCTP_ADV_DEBUG (0)
|
||||
#if SCTP_ADV_DEBUG
|
||||
#define SCTP_ADV_DBG(_fmt, _args...) clib_warning (_fmt, ##_args)
|
||||
#else
|
||||
#define SCTP_ADV_DBG(_fmt, _args...)
|
||||
#endif
|
||||
|
||||
#define SCTP_DEBUG_OUTPUT (0)
|
||||
#if SCTP_DEBUG_OUTPUT
|
||||
#define SCTP_DBG_OUTPUT(_fmt, _args...) clib_warning (_fmt, ##_args)
|
||||
#else
|
||||
#define SCTP_DBG_OUTPUT(_fmt, _args...)
|
||||
#endif
|
||||
|
||||
#define SCTP_ADV_DEBUG_OUTPUT (0)
|
||||
#if SCTP_ADV_DEBUG_OUTPUT
|
||||
#define SCTP_ADV_DBG_OUTPUT(_fmt, _args...) clib_warning (_fmt, ##_args)
|
||||
#else
|
||||
#define SCTP_ADV_DBG_OUTPUT(_fmt, _args...)
|
||||
#endif
|
||||
|
||||
#define SCTP_CONN_TRACKING_DEBUG (0)
|
||||
#if SCTP_CONN_TRACKING_DEBUG
|
||||
#define SCTP_CONN_TRACKING_DBG(_fmt, _args...) clib_warning (_fmt, ##_args)
|
||||
#else
|
||||
#define SCTP_CONN_TRACKING_DBG(_fmt, _args...)
|
||||
#endif
|
||||
|
||||
#endif /* included_sctp_debug_h__ */
|
@ -1,52 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2017 SUSE LLC.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
sctp_error (NONE, "no error")
|
||||
sctp_error (WRONG_WORKER, "Wrong worker thread")
|
||||
sctp_error (FILTERED, "Packets filtered")
|
||||
sctp_error (PKTS_SENT, "Packets sent")
|
||||
sctp_error (INVALID_CONNECTION, "Invalid connection")
|
||||
sctp_error (INVALID_TAG, "Invalid verification tag")
|
||||
sctp_error (INVALID_TAG_FOR_INIT, "Invalid verification tag for INIT chunk")
|
||||
sctp_error (CONNECTION_CLOSED, "Connection closed")
|
||||
sctp_error (ENQUEUED, "Packets pushed into rx fifo")
|
||||
sctp_error (CREATE_EXISTS, "Connection already exists")
|
||||
sctp_error (INITS_RCVD, "INITs received")
|
||||
sctp_error (CREATE_SESSION_FAIL, "Sessions couldn't be allocated")
|
||||
sctp_error (NO_LISTENER, "no listener for dst port")
|
||||
sctp_error (LENGTH, "inconsistent ip/sctp lengths")
|
||||
sctp_error (DISPATCH, "Dispatch error")
|
||||
sctp_error (ACK_DUP, "Duplicate ACK")
|
||||
sctp_error (DATA_CHUNK_VIOLATION, "DATA chunk received in invalid state")
|
||||
sctp_error (INIT_CHUNK_VIOLATION, "INIT chunk received in the wrong state")
|
||||
sctp_error (INIT_ACK_CHUNK_VIOLATION, "INIT_ACK chunk received in the wrong state")
|
||||
sctp_error (SACK_CHUNK_VIOLATION, "SACK chunk received in invalid state")
|
||||
sctp_error (HEARTBEAT_CHUNK_VIOLATION, "HEARTBEAT chunk received in invalid state")
|
||||
sctp_error (HEARTBEAT_ACK_CHUNK_VIOLATION, "HEARTBEAT_ACK chunk received in invalid state")
|
||||
sctp_error (ABORT_CHUNK_VIOLATION, "ABORT_CHUNK chunk received in invalid state")
|
||||
sctp_error (SHUTDOWN_CHUNK_VIOLATION, "SHUTDOWN chunk received in invalid state")
|
||||
sctp_error (SHUTDOWN_ACK_CHUNK_VIOLATION, "SHUTDOWN_ACK chunk received in invalid state")
|
||||
sctp_error (OPERATION_ERROR_VIOLATION, "OPERATION_ERROR chunk received in invalid state")
|
||||
sctp_error (COOKIE_ECHO_VIOLATION, "COOKIE_ECHO chunk received in invalid state")
|
||||
sctp_error (COOKIE_ACK_VIOLATION, "COOKIE_ACK chunk received in invalid state")
|
||||
sctp_error (ECNE_VIOLATION, "ECNE chunk received in invalid state")
|
||||
sctp_error (CWR_VIOLATION, "CWR chunk received in invalid state")
|
||||
sctp_error (SHUTDOWN_COMPLETE_VIOLATION, "SHUTDOWN_COMPLETE chunk received in invalid state")
|
||||
sctp_error (FIFO_FULL, "Packets dropped for lack of rx fifo space")
|
||||
sctp_error (PARTIALLY_ENQUEUED, "Packets partially pushed into rx fifo")
|
||||
sctp_error (EVENT_FIFO_FULL, "Events not sent for lack of event fifo space")
|
||||
sctp_error (UNKNOWN_CHUNK, "Unrecognized / unknown chunk or chunk-state mismatch")
|
||||
sctp_error (BUNDLING_VIOLATION, "Bundling not allowed")
|
||||
sctp_error (PUNT, "Packets punted")
|
||||
sctp_error (MAX_CONNECTIONS, "Reached max supported subconnection")
|
@ -1,40 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2017 SUSE LLC.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <sctp/sctp.h>
|
||||
|
||||
/* Format SCTP header. */
|
||||
u8 *
|
||||
format_sctp_header (u8 * s, va_list * args)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
u8 *
|
||||
format_sctp_tx_trace (u8 * s, va_list * args)
|
||||
{
|
||||
CLIB_UNUSED (vlib_main_t * vm) = va_arg (*args, vlib_main_t *);
|
||||
CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* fd.io coding-style-patch-verification: ON
|
||||
*
|
||||
* Local Variables:
|
||||
* eval: (c-set-style "gnu")
|
||||
* End:
|
||||
*/
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,30 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2017 SUSE LLC.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#include <vnet/ip/ip.h>
|
||||
#include <vnet/pg/pg.h>
|
||||
|
||||
uword
|
||||
unformat_pg_sctp_header (unformat_input_t * input, va_list * args)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* fd.io coding-style-patch-verification: ON
|
||||
*
|
||||
* Local Variables:
|
||||
* eval: (c-set-style "gnu")
|
||||
* End:
|
||||
*/
|
@ -1,29 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2017 SUSE LLC.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#ifndef included_sctp_timer_h__
|
||||
#define included_sctp_timer_h__
|
||||
|
||||
#include <vppinfra/tw_timer_16t_2w_512sl.h>
|
||||
#include <vppinfra/tw_timer_16t_1w_2048sl.h>
|
||||
|
||||
#endif /* included_sctp_timer_h__ */
|
||||
|
||||
/*
|
||||
* fd.io coding-style-patch-verification: ON
|
||||
*
|
||||
* Local Variables:
|
||||
* eval: (c-set-style "gnu")
|
||||
* End:
|
||||
*/
|
@ -1,92 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import unittest
|
||||
|
||||
from framework import VppTestCase, VppTestRunner
|
||||
from vpp_ip_route import VppIpTable, VppIpRoute, VppRoutePath
|
||||
|
||||
|
||||
class TestSCTP(VppTestCase):
|
||||
""" SCTP Test Case """
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.extra_vpp_plugin_config.append("plugin sctp_plugin.so { enable }")
|
||||
super(TestSCTP, cls).setUpClass()
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
super(TestSCTP, cls).tearDownClass()
|
||||
|
||||
def setUp(self):
|
||||
super(TestSCTP, self).setUp()
|
||||
self.vapi.session_enable_disable(is_enabled=1)
|
||||
self.vapi.cli("sctp enable")
|
||||
self.create_loopback_interfaces(2)
|
||||
|
||||
table_id = 0
|
||||
|
||||
for i in self.lo_interfaces:
|
||||
i.admin_up()
|
||||
|
||||
if table_id != 0:
|
||||
tbl = VppIpTable(self, table_id)
|
||||
tbl.add_vpp_config()
|
||||
|
||||
i.set_table_ip4(table_id)
|
||||
i.config_ip4()
|
||||
table_id += 1
|
||||
|
||||
# Configure namespaces
|
||||
self.vapi.app_namespace_add_del(namespace_id=b"0",
|
||||
sw_if_index=self.loop0.sw_if_index)
|
||||
self.vapi.app_namespace_add_del(namespace_id=b"1",
|
||||
sw_if_index=self.loop1.sw_if_index)
|
||||
|
||||
def tearDown(self):
|
||||
for i in self.lo_interfaces:
|
||||
i.unconfig_ip4()
|
||||
i.set_table_ip4(0)
|
||||
i.admin_down()
|
||||
self.vapi.session_enable_disable(is_enabled=0)
|
||||
super(TestSCTP, self).tearDown()
|
||||
|
||||
def test_sctp_transfer(self):
|
||||
""" SCTP echo client/server transfer """
|
||||
|
||||
# Add inter-table routes
|
||||
ip_t01 = VppIpRoute(self, self.loop1.local_ip4, 32,
|
||||
[VppRoutePath("0.0.0.0",
|
||||
0xffffffff,
|
||||
nh_table_id=1)])
|
||||
ip_t10 = VppIpRoute(self, self.loop0.local_ip4, 32,
|
||||
[VppRoutePath("0.0.0.0",
|
||||
0xffffffff,
|
||||
nh_table_id=0)], table_id=1)
|
||||
ip_t01.add_vpp_config()
|
||||
ip_t10.add_vpp_config()
|
||||
|
||||
# Start builtin server and client
|
||||
uri = "sctp://" + self.loop0.local_ip4 + "/1234"
|
||||
error = self.vapi.cli("test echo server appns 0 fifo-size 4 " +
|
||||
"no-echo uri " + uri)
|
||||
if error:
|
||||
self.logger.critical(error)
|
||||
self.assertNotIn("failed", error)
|
||||
|
||||
error = self.vapi.cli("test echo client mbytes 10 no-return " +
|
||||
" appns 1" +
|
||||
" fifo-size 4" +
|
||||
" no-output test-bytes syn-timeout 3" +
|
||||
" test-timeout 30" +
|
||||
" uri " + uri)
|
||||
if error:
|
||||
self.logger.critical(error)
|
||||
self.assertNotIn("failed", error)
|
||||
|
||||
# Delete inter-table routes
|
||||
ip_t01.remove_vpp_config()
|
||||
ip_t10.remove_vpp_config()
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main(testRunner=VppTestRunner)
|
Loading…
x
Reference in New Issue
Block a user