X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Fvpp_mac.py;h=b20bf54634c03ffeaa2ff989e37cca5ea8a7b3e3;hb=02782d6ebd13ce02f2d3facebb54fec3c2137c88;hp=c9ee11e66587840b5f48b92e52536d01ee9645ad;hpb=c0a93143412b4be7bba087bf633855aeeaee7c56;p=vpp.git diff --git a/test/vpp_mac.py b/test/vpp_mac.py index c9ee11e6658..b20bf54634c 100644 --- a/test/vpp_mac.py +++ b/test/vpp_mac.py @@ -2,13 +2,24 @@ MAC Types """ +import binascii -from util import mactobinary + +def mactobinary(mac): + """ Convert the : separated format into binary packet data for the API """ + return binascii.unhexlify(mac.replace(':', '')) + + +def binarytomac(binary): + """ Convert binary packed data in a : separated string """ + x = b':'.join(binascii.hexlify(binary)[i:i + 2] + for i in range(0, 12, 2)) + return str(x.decode('ascii')) class VppMacAddress(): def __init__(self, addr): - self.address = addr + self._address = addr def encode(self): return { @@ -21,4 +32,19 @@ class VppMacAddress(): @property def address(self): - return self.addr.address + return self._address + + def __str__(self): + return self.address + + def __eq__(self, other): + if isinstance(other, self.__class__): + return self.address == other.address + elif hasattr(other, "bytes"): + # vl_api_mac_addres_t + return self.bytes == other.bytes + else: + raise TypeError("Comparing VppMacAddress:%s" + "with unknown type: %s" % + (self, other)) + return False