aboutsummaryrefslogtreecommitdiffstats
path: root/test/vpp_ip.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/vpp_ip.py')
-rw-r--r--test/vpp_ip.py128
1 files changed, 70 insertions, 58 deletions
diff --git a/test/vpp_ip.py b/test/vpp_ip.py
index 81305b2dd9b..331accb993e 100644
--- a/test/vpp_ip.py
+++ b/test/vpp_ip.py
@@ -2,12 +2,12 @@
IP Types
"""
+
import logging
from ipaddress import ip_address
-from socket import AF_INET, AF_INET6
-from vpp_papi import VppEnum
from vpp_object import VppObject
+
try:
text_type = unicode
except NameError:
@@ -25,7 +25,7 @@ class DpoProto:
DPO_PROTO_NSH = 5
-INVALID_INDEX = 0xffffffff
+INVALID_INDEX = 0xFFFFFFFF
def get_dpo_proto(addr):
@@ -35,16 +35,16 @@ def get_dpo_proto(addr):
return DpoProto.DPO_PROTO_IP4
-class VppIpAddressUnion():
+class VppIpAddressUnion:
def __init__(self, addr):
self.addr = addr
self.ip_addr = ip_address(text_type(self.addr))
def encode(self):
if self.version == 6:
- return {'ip6': self.ip_addr}
+ return {"ip6": self.ip_addr}
else:
- return {'ip4': self.ip_addr}
+ return {"ip4": self.ip_addr}
@property
def version(self):
@@ -72,9 +72,11 @@ class VppIpAddressUnion():
else:
return self.ip_addr == other.ip6
else:
- raise Exception("Comparing VppIpAddressUnions:%s"
- " with incomparable type: %s",
- self, other)
+ raise Exception(
+ "Comparing VppIpAddressUnions:%s with incomparable type: %s",
+ self,
+ other,
+ )
def __ne__(self, other):
return not (self == other)
@@ -83,26 +85,22 @@ class VppIpAddressUnion():
return str(self.ip_addr)
-class VppIpMPrefix():
+class VppIpMPrefix:
def __init__(self, saddr, gaddr, glen):
self.saddr = saddr
self.gaddr = gaddr
self.glen = glen
- if ip_address(self.saddr).version != \
- ip_address(self.gaddr).version:
- raise ValueError('Source and group addresses must be of the '
- 'same address family.')
+ if ip_address(self.saddr).version != ip_address(self.gaddr).version:
+ raise ValueError(
+ "Source and group addresses must be of the same address family."
+ )
def encode(self):
return {
- 'af': ip_address(self.gaddr).vapi_af,
- 'grp_address': {
- ip_address(self.gaddr).vapi_af_name: self.gaddr
- },
- 'src_address': {
- ip_address(self.saddr).vapi_af_name: self.saddr
- },
- 'grp_address_length': self.glen,
+ "af": ip_address(self.gaddr).vapi_af,
+ "grp_address": {ip_address(self.gaddr).vapi_af_name: self.gaddr},
+ "src_address": {ip_address(self.saddr).vapi_af_name: self.saddr},
+ "grp_address_length": self.glen,
}
@property
@@ -118,21 +116,29 @@ class VppIpMPrefix():
def __eq__(self, other):
if isinstance(other, self.__class__):
- return (self.glen == other.glen and
- self.saddr == other.gaddr and
- self.saddr == other.saddr)
- elif (hasattr(other, "grp_address_length") and
- hasattr(other, "grp_address") and
- hasattr(other, "src_address")):
+ return (
+ self.glen == other.glen
+ and self.saddr == other.gaddr
+ and self.saddr == other.saddr
+ )
+ elif (
+ hasattr(other, "grp_address_length")
+ and hasattr(other, "grp_address")
+ and hasattr(other, "src_address")
+ ):
# vl_api_mprefix_t
if 4 == self.version:
- return (self.glen == other.grp_address_length and
- self.gaddr == str(other.grp_address.ip4) and
- self.saddr == str(other.src_address.ip4))
+ return (
+ self.glen == other.grp_address_length
+ and self.gaddr == str(other.grp_address.ip4)
+ and self.saddr == str(other.src_address.ip4)
+ )
else:
- return (self.glen == other.grp_address_length and
- self.gaddr == str(other.grp_address.ip6) and
- self.saddr == str(other.src_address.ip6))
+ return (
+ self.glen == other.grp_address_length
+ and self.gaddr == str(other.grp_address.ip6)
+ and self.saddr == str(other.src_address.ip6)
+ )
return NotImplemented
@@ -143,12 +149,14 @@ class VppIpPuntPolicer(VppObject):
self._is_ip6 = is_ip6
def add_vpp_config(self):
- self._test.vapi.ip_punt_police(policer_index=self._policer_index,
- is_ip6=self._is_ip6, is_add=True)
+ self._test.vapi.ip_punt_police(
+ policer_index=self._policer_index, is_ip6=self._is_ip6, is_add=True
+ )
def remove_vpp_config(self):
- self._test.vapi.ip_punt_police(policer_index=self._policer_index,
- is_ip6=self._is_ip6, is_add=False)
+ self._test.vapi.ip_punt_police(
+ policer_index=self._policer_index, is_ip6=self._is_ip6, is_add=False
+ )
def query_vpp_config(self):
NotImplemented
@@ -162,12 +170,16 @@ class VppIpPuntRedirect(VppObject):
self._nh_addr = ip_address(nh_addr)
def encode(self):
- return {"rx_sw_if_index": self._rx_index,
- "tx_sw_if_index": self._tx_index, "nh": self._nh_addr}
+ return {
+ "rx_sw_if_index": self._rx_index,
+ "tx_sw_if_index": self._tx_index,
+ "nh": self._nh_addr,
+ }
def add_vpp_config(self):
self._test.vapi.ip_punt_redirect(punt=self.encode(), is_add=True)
self._test.registry.register(self, self._test.logger)
+ return self
def remove_vpp_config(self):
self._test.vapi.ip_punt_redirect(punt=self.encode(), is_add=False)
@@ -175,7 +187,8 @@ class VppIpPuntRedirect(VppObject):
def get_vpp_config(self):
is_ipv6 = True if self._nh_addr.version == 6 else False
return self._test.vapi.ip_punt_redirect_dump(
- sw_if_index=self._rx_index, is_ipv6=is_ipv6)
+ sw_if_index=self._rx_index, is_ipv6=is_ipv6
+ )
def query_vpp_config(self):
if self.get_vpp_config():
@@ -191,39 +204,38 @@ class VppIpPathMtu(VppObject):
self.table_id = table_id
def add_vpp_config(self):
- self._test.vapi.ip_path_mtu_update(pmtu={'nh': self.nh,
- 'table_id': self.table_id,
- 'path_mtu': self.pmtu})
+ self._test.vapi.ip_path_mtu_update(
+ pmtu={"nh": self.nh, "table_id": self.table_id, "path_mtu": self.pmtu}
+ )
self._test.registry.register(self, self._test.logger)
return self
def modify(self, pmtu):
self.pmtu = pmtu
- self._test.vapi.ip_path_mtu_update(pmtu={'nh': self.nh,
- 'table_id': self.table_id,
- 'path_mtu': self.pmtu})
+ self._test.vapi.ip_path_mtu_update(
+ pmtu={"nh": self.nh, "table_id": self.table_id, "path_mtu": self.pmtu}
+ )
return self
def remove_vpp_config(self):
- self._test.vapi.ip_path_mtu_update(pmtu={'nh': self.nh,
- 'table_id': self.table_id,
- 'path_mtu': 0})
+ self._test.vapi.ip_path_mtu_update(
+ pmtu={"nh": self.nh, "table_id": self.table_id, "path_mtu": 0}
+ )
def query_vpp_config(self):
- ds = list(self._test.vapi.vpp.details_iter(
- self._test.vapi.ip_path_mtu_get))
+ ds = list(self._test.vapi.vpp.details_iter(self._test.vapi.ip_path_mtu_get))
for d in ds:
- if self.nh == str(d.pmtu.nh) \
- and self.table_id == d.pmtu.table_id \
- and self.pmtu == d.pmtu.path_mtu:
+ if (
+ self.nh == str(d.pmtu.nh)
+ and self.table_id == d.pmtu.table_id
+ and self.pmtu == d.pmtu.path_mtu
+ ):
return True
return False
def object_id(self):
- return ("ip-path-mtu-%d-%s-%d" % (self.table_id,
- self.nh,
- self.pmtu))
+ return "ip-path-mtu-%d-%s-%d" % (self.table_id, self.nh, self.pmtu)
def __str__(self):
return self.object_id()