for filename in fnmatch.filter(filenames, '*.api.json'):
jsonfiles.append(os.path.join(root, filename))
- self.vpp = VPP(jsonfiles, logger=test_class.logger)
+ self.vpp = VPP(jsonfiles, logger=test_class.logger, read_timeout=5)
self._events = deque()
def __enter__(self):
'input_source': input_source,
'enable': enable})
- def igmp_listen(self, enable, sw_if_index, saddr, gaddr):
+ def igmp_enable_disable(self, sw_if_index, enable, host):
+ """ Enable/disable IGMP on a given interface """
+ return self.api(self.papi.igmp_enable_disable,
+ {'enable': enable,
+ 'mode': host,
+ 'sw_if_index': sw_if_index})
+
+ def igmp_listen(self, filter, sw_if_index, saddrs, gaddr):
""" Listen for new (S,G) on specified interface
:param enable: add/del
:param gaddr: group ip4 addr
"""
return self.api(self.papi.igmp_listen,
- {'enable': enable,
- 'sw_if_index': sw_if_index,
- 'saddr': saddr,
- 'gaddr': gaddr})
+ {
+ 'group':
+ {
+ 'filter': filter,
+ 'sw_if_index': sw_if_index,
+ 'n_srcs': len(saddrs),
+ 'saddrs': saddrs,
+ 'gaddr':
+ {
+ 'address': gaddr
+ }
+ }
+ })
def igmp_dump(self, sw_if_index=None):
""" Dump all (S,G) interface configurations """
if sw_if_index is None:
- dump_all = 1
- sw_if_index = 0
- else:
- dump_all = 0
- return self.api(self.papi.igmp_dump, {'sw_if_index': sw_if_index,
- 'dump_all': dump_all})
+ sw_if_index = 0xffffffff
+ return self.api(self.papi.igmp_dump,
+ {'sw_if_index': sw_if_index})
def igmp_clear_interface(self, sw_if_index):
""" Remove all (S,G)s from specified interface
def abf_itf_attach_dump(self):
return self.api(
self.papi.abf_itf_attach_dump, {})
+
+ def pipe_create(self, is_specified, user_instance):
+ return self.api(self.papi.pipe_create,
+ {'is_specified': is_specified,
+ 'user_instance': user_instance})
+
+ def pipe_delete(self, parent_sw_if_index):
+ return self.api(self.papi.pipe_delete,
+ {'parent_sw_if_index': parent_sw_if_index})
+
+ def pipe_dump(self):
+ return self.api(self.papi.pipe_dump, {})