diff options
author | Matej Klotton <mklotton@cisco.com> | 2016-07-25 17:52:22 +0200 |
---|---|---|
committer | Matej Klotton <mklotton@cisco.com> | 2016-08-15 14:36:47 +0200 |
commit | 517ee7fd3eb28ecf030c5d50be09fcdabe508922 (patch) | |
tree | c6ac1ce632b96157b962f43c74f9c11cefca2ebe /resources/libraries/python/IPUtil.py | |
parent | bc4e345605abe0772043892fcc99fce9aa768edb (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.py | 23 |
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. |