'unnumbered_sw_if_index': sw_if_index,
'is_add': is_add})
+ def ip_unnumbered_dump(self, sw_if_index=0xffffffff):
+ return self.api(self.papi.ip_unnumbered_dump,
+ {'sw_if_index': sw_if_index})
+
def sw_interface_enable_disable_mpls(self, sw_if_index,
is_enable=1):
"""
{'sw_if_index': sw_if_index,
'enable': enable})
+ def sw_interface_set_ip_directed_broadcast(
+ self,
+ sw_if_index,
+ enable=1):
+ """IP Directed broadcast
+ :param sw_if_index - interface the operation is applied to
+
+ """
+ return self.api(self.papi.sw_interface_set_ip_directed_broadcast,
+ {'sw_if_index': sw_if_index,
+ 'enable': enable})
+
def sw_interface_set_flags(self, sw_if_index, admin_up_down):
"""
external_addr,
external_port,
protocol,
- vrf_id=0,
twice_nat=0,
self_twice_nat=0,
out2in_only=0,
'external_addr': external_addr,
'external_port': external_port,
'protocol': protocol,
- 'vrf_id': vrf_id,
'twice_nat': twice_nat,
'self_twice_nat': self_twice_nat,
'out2in_only': out2in_only,
:param current_data_offset: (Default value = 0)
"""
+ mask_len = ((len(mask) - 1) / 16 + 1) * 16
+ mask = mask + '\0' * (mask_len - len(mask))
return self.api(
self.papi.classify_add_del_table,
{'is_add': is_add,
'miss_next_index': miss_next_index,
'current_data_flag': current_data_flag,
'current_data_offset': current_data_offset,
+ 'mask_len': mask_len,
'mask': mask})
def classify_add_del_session(
:param metadata: (Default value = 0)
"""
+ match_len = ((len(match) - 1) / 16 + 1) * 16
+ match = match + '\0' * (match_len - len(match))
return self.api(
self.papi.classify_add_del_session,
{'is_add': is_add,
'advance': advance,
'action': action,
'metadata': metadata,
+ 'match_len': match_len,
'match': match})
def input_acl_set_interface(
'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