aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/IPUtil.py
diff options
context:
space:
mode:
authorMatej Klotton <mklotton@cisco.com>2016-07-25 17:52:22 +0200
committerMatej Klotton <mklotton@cisco.com>2016-08-15 14:36:47 +0200
commit517ee7fd3eb28ecf030c5d50be09fcdabe508922 (patch)
treec6ac1ce632b96157b962f43c74f9c11cefca2ebe /resources/libraries/python/IPUtil.py
parentbc4e345605abe0772043892fcc99fce9aa768edb (diff)
CSIT-197: Add basic mapping rule tests for MAP-E
- IPv4 prefix length + ea bits length < 32 - IPv4 prefix length + ea bits length == 32 - IPv4 prefix length + ea bits length > 32 - End user IPv6 prefix is 64 - IPv4 preffix is 0 Change-Id: Ib8d76abfebfb206fbbaa3c1422b2d321a3ed8712 Signed-off-by: Matej Klotton <mklotton@cisco.com>
Diffstat (limited to 'resources/libraries/python/IPUtil.py')
-rw-r--r--resources/libraries/python/IPUtil.py23
1 files changed, 21 insertions, 2 deletions
diff --git a/resources/libraries/python/IPUtil.py b/resources/libraries/python/IPUtil.py
index 323c75bda4..5011708c39 100644
--- a/resources/libraries/python/IPUtil.py
+++ b/resources/libraries/python/IPUtil.py
@@ -12,13 +12,15 @@
# limitations under the License.
"""Common IP utilities library."""
-from ipaddress import IPv4Network
+
+from ipaddress import IPv4Network, ip_address
from resources.libraries.python.ssh import SSH
from resources.libraries.python.constants import Constants
from resources.libraries.python.topology import Topology
+
class IPUtil(object):
"""Common IP utilities"""
@@ -45,7 +47,7 @@ class IPUtil(object):
elif if_type == "name":
iface_name = interface
else:
- raise ValueError("if_type unknown: {}".format(if_type))
+ raise ValueError("if_type unknown: {0}".format(if_type))
cmd = "{c}".format(c=Constants.VAT_BIN_NAME)
cmd_input = 'exec ip probe {dev} {ip}'.format(dev=iface_name, ip=addr)
@@ -54,6 +56,23 @@ class IPUtil(object):
raise Exception('VPP ip probe {dev} {ip} failed on {h}'.format(
dev=iface_name, ip=addr, h=node['host']))
+ @staticmethod
+ def ip_addresses_should_be_equal(ip1, ip2):
+ """Fails if the given IP addresses are unequal.
+
+ :param ip1: IPv4 or IPv6 address.
+ :param ip2: IPv4 or IPv6 address.
+ :type ip1: str
+ :type ip2: str
+ """
+
+ addr1 = ip_address(unicode(ip1))
+ addr2 = ip_address(unicode(ip2))
+
+ if addr1 != addr2:
+ raise AssertionError('IP addresses are not equal: {0} != {1}'.
+ format(ip1, ip2))
+
def convert_ipv4_netmask_prefix(network):
"""Convert network mask to equivalent network prefix length or vice versa.