'nbuckets': 2, 'memory_size': 2097152,
'next_table_index': 4294967295,
'miss_next_index': 4294967295, },
- 'dhcp6_client_enable_disable': {'enable': 1, },
- 'dhcp6_clients_enable_disable': {'enable': 1, },
- 'dhcp6_pd_client_enable_disable': {'enable': 1, },
- 'dhcp6_send_client_message': {'server_index': 4294967295, 'mrc': 1, },
- 'dhcp_client_config': {'is_add': 1, 'set_broadcast_flag': 1, },
- 'dhcp_proxy_config': {'is_add': 1, },
- 'dhcp_proxy_set_vss': {'vss_type': 255, 'is_add': 1, },
'gbp_subnet_add_del': {'sw_if_index': 4294967295, 'epg_id': 65535, },
'geneve_add_del_tunnel': {'mcast_sw_if_index': 4294967295, 'is_add': 1,
'decap_next_index': 4294967295, },
'ip_punt_police': {'is_add': 1, },
'ip_punt_redirect': {'is_add': 1, },
'ip_route_add_del': {'is_add': 1, },
- 'ip_table_add_del': {'is_add': 1, },
'ip_unnumbered_dump': {'sw_if_index': 4294967295, },
'ipsec_interface_add_del_spd': {'is_add': 1, },
'ipsec_sad_entry_add_del': {'is_add': 1, },
'vxlan_gpe_add_del_tunnel': {'mcast_sw_if_index': 4294967295, 'is_add': 1,
'protocol': 3, },
'want_bfd_events': {'enable_disable': 1, },
- 'want_dhcp6_pd_reply_events': {'enable_disable': 1, },
- 'want_dhcp6_reply_events': {'enable_disable': 1, },
'want_igmp_events': {'enable': 1, },
'want_interface_events': {'enable_disable': 1, },
'want_ip4_arp_events': {'enable_disable': 1, 'ip': '0.0.0.0', },
self.hook.after_api(api_fn.__name__, api_args)
return reply
- def cli(self, cli):
+ def cli_return_response(self, cli):
""" Execute a CLI, calling the before/after hooks appropriately.
+ Return the reply without examining it
:param cli: CLI to execute
- :returns: CLI output
+ :returns: response object
"""
self.hook.before_cli(cli)
cli += '\n'
r = self.papi.cli_inband(cmd=cli)
self.hook.after_cli(cli)
+ return r
+
+ def cli(self, cli):
+ """ Execute a CLI, calling the before/after hooks appropriately.
+
+ :param cli: CLI to execute
+ :returns: CLI output
+
+ """
+ r = self.cli_return_response(cli)
if r.retval == -156:
raise CliSyntaxError(r.reply)
if r.retval != 0:
:param cli: CLI to execute
:returns: CLI output
"""
- return cli + "\n" + str(self.cli(cli))
+ return cli + "\n" + self.cli(cli)
def want_ip4_arp_events(self, enable_disable=1, ip="0.0.0.0"):
return self.api(self.papi.want_ip4_arp_events,
'learn_limit': learn_limit,
'pid': os.getpid(), })
- def want_dhcp6_reply_events(self, enable_disable=1):
- return self.api(self.papi.want_dhcp6_reply_events,
- {'enable_disable': enable_disable,
- 'pid': os.getpid()})
-
- def want_dhcp6_pd_reply_events(self, enable_disable=1):
- return self.api(self.papi.want_dhcp6_pd_reply_events,
- {'enable_disable': enable_disable,
- 'pid': os.getpid()})
-
- def dhcp6_pd_send_client_message(self, msg_type, sw_if_index, T1, T2,
- prefixes, server_index=0xFFFFFFFF,
- irt=0, mrt=0, mrc=1, mrd=0, stop=0,
- ):
- return self.api(self.papi.dhcp6_pd_send_client_message,
- {'sw_if_index': sw_if_index,
- 'server_index': server_index,
- 'irt': irt,
- 'mrt': mrt,
- 'mrc': mrc,
- 'mrd': mrd,
- 'stop': stop,
- 'msg_type': msg_type,
- 'T1': T1,
- 'T2': T2,
- 'n_prefixes': len(prefixes),
- 'prefixes': prefixes})
-
- def dhcp6_pd_client_enable_disable(self, sw_if_index, prefix_group='',
- enable=1):
- return self.api(self.papi.dhcp6_pd_client_enable_disable,
- {'sw_if_index': sw_if_index,
- 'prefix_group': prefix_group,
- 'enable': enable})
-
- def ip6_add_del_address_using_prefix(self, sw_if_index, address,
- prefix_length, prefix_group,
- is_add=1):
- return self.api(self.papi.ip6_add_del_address_using_prefix,
- {'sw_if_index': sw_if_index,
- 'prefix_group': prefix_group,
- 'address': address,
- 'prefix_length': prefix_length,
- 'is_add': is_add})
-
def sw_interface_set_mac_address(self, sw_if_index, mac):
return self.api(self.papi.sw_interface_set_mac_address,
{'sw_if_index': sw_if_index,
return self.api(self.papi.create_loopback,
{'mac_address': mac})
- def ip_table_add_del(self,
- table_id,
- is_add=1,
- is_ipv6=0):
- """
-
- :param table_id
- :param is_add: (Default value = 1)
- :param is_ipv6: (Default value = 0)
-
- """
-
- return self.api(
- self.papi.ip_table_add_del,
- {'table':
- {
- 'table_id': table_id,
- 'is_ip6': is_ipv6
- },
- 'is_add': is_add})
-
- def ip_table_dump(self):
- return self.api(self.papi.ip_table_dump, {})
-
def ip_route_dump(self, table_id, is_ip6=False):
return self.api(self.papi.ip_route_dump,
{'table': {
:param current_data_flag: (Default value = 0)
:param current_data_offset: (Default value = 0)
"""
-
- mask_len = ((len(mask) - 1) / 16 + 1) * 16
- mask = mask + '\0' * (mask_len - len(mask))
+ mask_len = ((len(mask) - 1) // 16 + 1) * 16
+ mask = mask + b'\0' * (mask_len - len(mask))
return self.api(
self.papi.classify_add_del_table,
{'is_add': is_add,
:param metadata: (Default value = 0)
"""
- match_len = ((len(match) - 1) / 16 + 1) * 16
- match = match + '\0' * (match_len - len(match))
+ match_len = ((len(match) - 1) // 16 + 1) * 16
+ match = match + b'\0' * (match_len - len(match))
return self.api(
self.papi.classify_add_del_session,
{'is_add': is_add,
'udp_checksum': udp_checksum,
})
- def dhcp_proxy_config(self,
- dhcp_server,
- dhcp_src_address,
- rx_table_id=0,
- server_table_id=0,
- is_add=1,
- is_ipv6=0):
- return self.api(
- self.papi.dhcp_proxy_config,
- {
- 'rx_vrf_id': rx_table_id,
- 'server_vrf_id': server_table_id,
- 'is_ipv6': is_ipv6,
- 'is_add': is_add,
- 'dhcp_server': dhcp_server,
- 'dhcp_src_address': dhcp_src_address,
- })
-
- def dhcp_proxy_set_vss(self,
- table_id,
- vss_type=255,
- vpn_ascii_id="",
- oui=0,
- vpn_index=0,
- is_add=1,
- is_ip6=0):
- return self.api(
- self.papi.dhcp_proxy_set_vss,
- {
- 'tbl_id': table_id,
- 'vss_type': vss_type,
- 'vpn_ascii_id': vpn_ascii_id,
- 'oui': oui,
- 'vpn_index': vpn_index,
- 'is_add': is_add,
- 'is_ipv6': is_ip6,
- })
-
- def dhcp_client_config(self,
- sw_if_index,
- hostname,
- client_id='',
- is_add=1,
- set_broadcast_flag=1,
- want_dhcp_events=0,
- dscp=0):
- return self.api(
- self.papi.dhcp_client_config,
- {
- 'is_add': is_add,
- 'client': {
- 'sw_if_index': sw_if_index,
- 'hostname': hostname,
- 'id': client_id,
- 'want_dhcp_event': want_dhcp_events,
- 'set_broadcast_flag': set_broadcast_flag,
- 'dscp': dscp,
- 'pid': os.getpid()}
- })
-
def ip_mroute_add_del(self,
table_id,
prefix,
def vxlan_gbp_tunnel_dump(self, sw_if_index=0xffffffff):
return self.api(self.papi.vxlan_gbp_tunnel_dump,
- {'sw_if_index': sw_if_index,
- '_no_type_conversion': True})
+ {'sw_if_index': sw_if_index})
def pppoe_add_del_session(
self,
remote_crypto_key, integ_alg, local_integ_key,
remote_integ_key, is_add=1, esn=0, salt=0,
anti_replay=1, renumber=0,
- udp_encap=0, show_instance=0):
+ udp_encap=0, show_instance=0xffffffff):
return self.api(
self.papi.ipsec_tunnel_if_add_del,
{
def gbp_endpoint_dump(self):
""" GBP endpoint Dump """
- return self.api(self.papi.gbp_endpoint_dump,
- {'_no_type_conversion': True})
+ return self.api(self.papi.gbp_endpoint_dump, {})
def gbp_endpoint_group_add(self, vnid, sclass, bd,
rd, uplink_sw_if_index,
def gbp_subnet_dump(self):
""" GBP Subnet Dump """
- return self.api(self.papi.gbp_subnet_dump,
- {'_no_type_conversion': True})
+ return self.api(self.papi.gbp_subnet_dump, {})
def gbp_contract_dump(self):
""" GBP contract Dump """
'sw_if_index': sw_if_index,
'is_enable': is_enable,
})
+
+ def feature_gso_enable_disable(self, sw_if_index, enable_disable=1):
+ return self.api(self.papi.feature_gso_enable_disable,
+ {
+ 'sw_if_index': sw_if_index,
+ 'enable_disable': enable_disable,
+ })