aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksander Djuric <aleksander.djuric@gmail.com>2019-10-31 14:35:21 +0300
committerAndrew Yourtchenko <ayourtch@gmail.com>2020-07-03 01:48:33 +0000
commit64b6dd7f8f120251e10ee84ff491beb6bae36e82 (patch)
treed6eb455ade4dd28d342c43fedd1d61f0c58bbb61
parentf6a8a3a31c34c3c1dadffb257a64fe31faeff9c7 (diff)
interface: shmemioerror while getting name_filter arg
Type: fix Signed-off-by: Aleksander Djuric <aleksander.djuric@gmail.com> Change-Id: I5e0eb7024d208040d79e9d6db863f41e2ecf4ee6 Signed-off-by: Ole Troan <ot@cisco.com> (cherry picked from commit c12eae73f925169597e20a8f8139c462e317404d)
-rw-r--r--src/vnet/interface_api.c5
-rw-r--r--src/vpp/api/custom_dump.c6
-rw-r--r--test/test_interface_crud.py7
3 files changed, 13 insertions, 5 deletions
diff --git a/src/vnet/interface_api.c b/src/vnet/interface_api.c
index dd78d2aa8a7..1fe12e8d044 100644
--- a/src/vnet/interface_api.c
+++ b/src/vnet/interface_api.c
@@ -327,9 +327,8 @@ vl_api_sw_interface_dump_t_handler (vl_api_sw_interface_dump_t * mp)
if (mp->name_filter_valid)
{
- filter =
- format (0, ".*%s", vl_api_string_len (&mp->name_filter),
- vl_api_from_api_string (&mp->name_filter), 0);
+ filter = vl_api_from_api_to_vec (&mp->name_filter);
+ vec_add1 (filter, 0); /* Ensure it's a C string for strcasecmp() */
}
char *strcasestr (char *, char *); /* lnx hdr file botch */
diff --git a/src/vpp/api/custom_dump.c b/src/vpp/api/custom_dump.c
index 6ad0f9ce9c7..b7e6b6f3e19 100644
--- a/src/vpp/api/custom_dump.c
+++ b/src/vpp/api/custom_dump.c
@@ -1974,7 +1974,11 @@ static void *vl_api_sw_interface_dump_t_print
s = format (0, "SCRIPT: sw_interface_dump ");
if (mp->name_filter_valid)
- s = format (s, "name_filter %s ", mp->name_filter);
+ {
+ u8 *v = vl_api_from_api_to_vec (&mp->name_filter);
+ s = format (s, "name_filter %v ", v);
+ vec_free (v);
+ }
else
s = format (s, "all ");
diff --git a/test/test_interface_crud.py b/test/test_interface_crud.py
index ae30a6d47ea..49a19156668 100644
--- a/test/test_interface_crud.py
+++ b/test/test_interface_crud.py
@@ -90,12 +90,17 @@ class TestLoopbackInterfaceCRUD(VppTestCase):
i.admin_up()
# read (check sw if dump, ip4 fib, ip6 fib)
- if_dump = self.vapi.sw_interface_dump()
+ if_dump = self.vapi.sw_interface_dump(name_filter_valid=True,
+ name_filter='loop')
fib4_dump = self.vapi.ip_route_dump(0)
for i in loopbacks:
self.assertTrue(i.is_interface_config_in_dump(if_dump))
self.assertTrue(i.is_ip4_entry_in_fib_dump(fib4_dump))
+ if_dump = self.vapi.sw_interface_dump(name_filter_valid=True,
+ name_filter='loopXYZ')
+ self.assertEqual(len(if_dump), 0)
+
# check ping
stream = self.create_icmp_stream(self.pg0, loopbacks)
self.pg0.add_stream(stream)