X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Futil.py;h=d6b77f9d3c3e90756b087f419cadab49e6b0ba07;hb=e3d52803149d58737aad38435361e692d70c9d7a;hp=24e9af44b7d5b248ff4e84ce554b462d2ccd377d;hpb=46a87adf10d41af4b1b14f06bdab33228cbaae95;p=vpp.git diff --git a/test/util.py b/test/util.py index 24e9af44b7d..d6b77f9d3c3 100644 --- a/test/util.py +++ b/test/util.py @@ -1,3 +1,5 @@ +""" test framework utilities """ + import socket import sys from abc import abstractmethod, ABCMeta @@ -45,6 +47,11 @@ def ip4n_range(ip4n, s, e): for ip in ip4_range(ip4, s, e)) +def mactobinary(mac): + """ Convert the : separated format into binary packet data for the API """ + return mac.replace(':', '').decode('hex') + + class NumericConstant(object): __metaclass__ = ABCMeta @@ -98,3 +105,16 @@ class Host(object): self._mac = mac self._ip4 = ip4 self._ip6 = ip6 + + +class ForeignAddressFactory(object): + count = 0 + prefix_len = 24 + net_template = '10.10.10.{}' + net = net_template.format(0) + '/' + str(prefix_len) + + def get_ip4(self): + if self.count > 255: + raise Exception("Network host address exhaustion") + self.count += 1 + return self.net_template.format(self.count)