def local_addr(self):
""" BFD session local address (VPP address) """
if self._local_addr is None:
- return self._interface.local_ip4
+ if self.af == AF_INET:
+ return self._interface.local_ip4
+ elif self.af == AF_INET6:
+ return self._interface.local_ip6
+ else:
+ raise Exception("Unexpected af %s' % af" % self.af)
return self._local_addr
@property
def local_addr_n(self):
""" BFD session local address (VPP address) - raw, suitable for API """
if self._local_addr is None:
- return self._interface.local_ip4n
+ if self.af == AF_INET:
+ return self._interface.local_ip4n
+ elif self.af == AF_INET6:
+ return self._interface.local_ip6n
+ else:
+ raise Exception("Unexpected af %s' % af" % self.af)
return self._local_addr_n
@property
session = s
break
if session is None:
- raise Exception(
- "Could not find BFD session in VPP response: %s" % repr(result))
+ raise Exception("Could not find BFD session in VPP response: %s" %
+ repr(result))
return session.state
@property
self.peer_addr_n,
is_ipv6=is_ipv6)
self._bs_index = result.bs_index
+ self._test.registry.register(self, self.test.logger)
def query_vpp_config(self):
result = self.test.vapi.bfd_udp_session_dump()
return True
def remove_vpp_config(self):
- if hasattr(self, '_bs_index'):
+ if self._bs_index is not None:
is_ipv6 = 1 if AF_INET6 == self._af else 0
self.test.vapi.bfd_udp_del(
self._interface.sw_if_index,
def object_id(self):
return "bfd-udp-%d" % self.bs_index
+ def __str__(self):
+ return self.object_id()
+
def admin_up(self):
self.test.vapi.bfd_session_set_flags(self.bs_index, 1)