From 517ee7fd3eb28ecf030c5d50be09fcdabe508922 Mon Sep 17 00:00:00 2001 From: Matej Klotton Date: Mon, 25 Jul 2016 17:52:22 +0200 Subject: 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 --- resources/libraries/python/IPUtil.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'resources/libraries/python/IPUtil.py') 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. -- cgit 1.2.3-korg