from six import moves, iteritems
from vpp_papi import VPP, mac_pton
from hook import Hook
-from vpp_l2 import L2_PORT_TYPE
from vpp_ip_route import MPLS_IETF_MAX_LABEL, MPLS_LABEL_INVALID
-class L2_VTR_OP:
- L2_DISABLED = 0
- L2_PUSH_1 = 1
- L2_PUSH_2 = 2
- L2_POP_1 = 3
- L2_POP_2 = 4
- L2_TRANSLATE_1_1 = 5
- L2_TRANSLATE_1_2 = 6
- L2_TRANSLATE_2_1 = 7
- L2_TRANSLATE_2_2 = 8
-
-
class QOS_SOURCE:
EXT = 0
VLAN = 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, },
- 'gre_add_del_tunnel': {'instance': 4294967295, 'is_add': 1, },
+ 'gre_tunnel_add_del': {'instance': 4294967295, 'is_add': 1, },
'gtpu_add_del_tunnel': {'is_add': 1, 'mcast_sw_if_index': 4294967295,
'decap_next_index': 4294967295, },
'input_acl_set_interface': {'ip4_table_index': 4294967295,
'svs_route_add_del': {'is_add': 1, },
'svs_table_add_del': {'is_add': 1, },
'sw_interface_add_del_address': {'is_add': 1, },
+ 'sw_interface_dump': {'sw_if_index': 4294967295, },
'sw_interface_ip6nd_ra_prefix': {'val_lifetime': 4294967295,
'pref_lifetime': 4294967295, },
'sw_interface_set_ip_directed_broadcast': {'enable': 1, },
}
)
- def gre_add_del_tunnel(self,
- src_address,
- dst_address,
+ def gre_tunnel_add_del(self,
+ src,
+ dst,
outer_fib_id=0,
tunnel_type=0,
instance=0xFFFFFFFF,
session_id=0,
- is_add=1,
- is_ip6=0):
+ is_add=1):
""" Add a GRE tunnel
:param src_address:
:param outer_fib_id: (Default value = 0)
:param tunnel_type: (Default value = 0)
:param instance: (Default value = 0xFFFFFFFF)
- :param session_id: (Defalt value = 0)
+ :param session_id: (Default value = 0)
:param is_add: (Default value = 1)
:param is_ipv6: (Default value = 0)
"""
return self.api(
- self.papi.gre_add_del_tunnel,
+ self.papi.gre_tunnel_add_del,
{'is_add': is_add,
- 'is_ipv6': is_ip6,
- 'tunnel_type': tunnel_type,
- 'instance': instance,
- 'src_address': src_address,
- 'dst_address': dst_address,
- 'outer_fib_id': outer_fib_id,
- 'session_id': session_id}
+ 'tunnel':
+ {
+ 'type': tunnel_type,
+ 'instance': instance,
+ 'src': src,
+ 'dst': dst,
+ 'outer_fib_id': outer_fib_id,
+ 'session_id': session_id}
+ }
)
def udp_encap_add(self,
:param first_ip_address: First IP address
:param last_ip_address: Last IP address
:param vrf_id: VRF id for the address range
- :param twice_nat: twice NAT address for extenal hosts
+ :param twice_nat: twice NAT address for extenral hosts
:param is_add: 1 if add, 0 if delete (Default value = 1)
"""
return self.api(
"""Add/del NAT44 address from interface
:param sw_if_index: Software index of the interface
- :param twice_nat: twice NAT address for extenal hosts
+ :param twice_nat: twice NAT address for external hosts
:param is_add: 1 if add, 0 if delete (Default value = 1)
"""
return self.api(
is_add=1):
"""Add/delete NAT44 load-balancing static mapping rule backend
- :param external_addr: external IPv4 address of the servic
+ :param external_addr: external IPv4 address of the service
:param external_port: external L4 port number of the service
:param local_addr: IPv4 address of the internal node
:param local_port: L4 port number of the internal node
:param por: port number
:param protocol: IP protocol number
:param vrf_id: VRF ID
- :param is_in: 1 if inside network addres and port pari, 0 if outside
+ :param is_in: 1 if inside network address and port pair, 0 if outside
:param ext_host_address: external host IPv4 address
:param ext_host_port: external host port
"""
"""Dump NAT64 session table
:param protocol: IP protocol (Default value = 255, all STs)
- :returns: Dictionary of NAT64 sesstion table entries
+ :returns: Dictionary of NAT64 session table entries
"""
return self.api(self.papi.nat64_st_dump, {'proto': protocol})
"""Set HA failover (remote settings)
:param addr: failover IP4 address
- :param port: failvoer UDP port number
+ :param port: failover UDP port number
:param refresh: number of seconds after which to send session refresh
"""
return self.api(self.papi.nat_ha_set_failover,
tunnel_src_address='',
tunnel_dst_address='',
flags=0,
+ salt=0,
is_add=1):
""" IPSEC SA add/del
:param sad_id: security association ID
'data': crypto_key,
},
'flags': flags,
+ 'salt': salt,
}
})
def ipsec_tunnel_if_add_del(self, local_ip, remote_ip, local_spi,
remote_spi, crypto_alg, local_crypto_key,
remote_crypto_key, integ_alg, local_integ_key,
- remote_integ_key, is_add=1, esn=0,
+ remote_integ_key, is_add=1, esn=0, salt=0,
anti_replay=1, renumber=0, show_instance=0):
return self.api(
self.papi.ipsec_tunnel_if_add_del,
'esn': esn,
'anti_replay': anti_replay,
'renumber': renumber,
- 'show_instance': show_instance
+ 'show_instance': show_instance,
+ 'salt': salt
})
+ def ipsec_gre_tunnel_add_del(self, local_ip, remote_ip,
+ sa_out, sa_in, is_add=1):
+ return self.api(self.papi.ipsec_gre_tunnel_add_del,
+ {
+ 'is_add': is_add,
+ 'tunnel': {
+ 'src': local_ip,
+ 'dst': remote_ip,
+ 'local_sa_id': sa_out,
+ 'remote_sa_id': sa_in
+ }
+ })
+
def ipsec_select_backend(self, protocol, index):
return self.api(self.papi.ipsec_select_backend,
{'protocol': protocol, 'index': index})