blob: 27814cdc761eaa29538615197d1d8b08edf72744 [file] [log] [blame]
Neale Rannsc0a93142018-09-05 15:42:26 -07001"""
2 MAC Types
3
4"""
5
6from util import mactobinary
7
8
9class VppMacAddress():
10 def __init__(self, addr):
11 self.address = addr
12
13 def encode(self):
14 return {
15 'bytes': self.bytes
16 }
17
18 @property
19 def bytes(self):
20 return mactobinary(self.address)
21
22 @property
23 def address(self):
Paul Vinciguerradd891732018-11-30 12:03:04 -080024 return self.address
25
26 @address.setter
27 def address(self, value):
28 self.address = value
Neale Ranns93cc3ee2018-10-10 07:22:51 -070029
30 def __str__(self):
31 return self.address
32
33 def __eq__(self, other):
34 if isinstance(other, self.__class__):
Paul Vinciguerradd891732018-11-30 12:03:04 -080035 return self.address == other.address
Neale Ranns93cc3ee2018-10-10 07:22:51 -070036 elif hasattr(other, "bytes"):
37 # vl_api_mac_addres_t
38 return self.bytes == other.bytes
39 else:
Paul Vinciguerradd891732018-11-30 12:03:04 -080040 raise TypeError("Comparing VppMacAddress:%s"
Neale Ranns93cc3ee2018-10-10 07:22:51 -070041 "with unknown type: %s" %
42 (self, other))
43 return False