elif hasattr(other, "ip4") and hasattr(other, "ip6"):
# vl_api_address_union_t
if 4 == self.version:
- return self.ip_addr.packed == other.ip4
+ return self.ip_addr == other.ip4
else:
- return self.ip_addr.packed == other.ip6
+ return self.ip_addr == other.ip6
else:
- _log.error("Comparing VppIpAddressUnions:%s"
- " with incomparable type: %s",
- self, other)
- return NotImplemented
+ raise Exception("Comparing VppIpAddressUnions:%s"
+ " with incomparable type: %s",
+ self, other)
+
+ def __ne__(self, other):
+ return not (self == other)
def __str__(self):
return str(self.ip_addr)
'same address family.')
def encode(self):
- if 6 == self.version:
- prefix = {
- 'af': VppEnum.vl_api_address_family_t.ADDRESS_IP6,
- 'grp_address': {
- 'ip6': self.gaddr
- },
- 'src_address': {
- 'ip6': self.saddr
- },
- 'grp_address_length': self.glen,
- }
- else:
- prefix = {
- 'af': VppEnum.vl_api_address_family_t.ADDRESS_IP4,
- 'grp_address': {
- 'ip4': self.gaddr
- },
- 'src_address': {
- 'ip4': self.saddr
- },
- 'grp_address_length': self.glen,
- }
- return prefix
+ return {
+ 'af': ip_address(self.gaddr).vapi_af,
+ 'grp_address': {
+ ip_address(self.gaddr).vapi_af_name: self.gaddr
+ },
+ 'src_address': {
+ ip_address(self.saddr).vapi_af_name: self.saddr
+ },
+ 'grp_address_length': self.glen,
+ }
@property
def length(self):
return (self.glen == other.grp_address_length and
self.gaddr == str(other.grp_address.ip6) and
self.saddr == str(other.src_address.ip6))
- else:
- raise Exception("Comparing VppIpPrefix:%s with unknown type: %s" %
- (self, other))
- return False
+ return NotImplemented