def _recv_timeout_loop(self):
        """
        A loop to check timeout of receiving remote BFD packet.
        """
        while self._detect_time:
            last_wait = time.time()
            self._lock = hub.Event()

            self._lock.wait(timeout=self._detect_time)

            if self._lock.is_set():
                # Authentication variable check (RFC5880 Section 6.8.1.)
                if getattr(self, "_auth_seq_known", 0):
                    if last_wait > time.time() + 2 * self._detect_time:
                        self._auth_seq_known = 0

            else:
                # Check Detection Time expiration (RFC5880 section 6.8.4.)
                LOG.info("[BFD][%s][RECV] BFD Session timed out.",
                         hex(self._local_discr))
                if self._session_state not in [bfd.BFD_STATE_DOWN,
                                               bfd.BFD_STATE_ADMIN_DOWN]:
                    self._set_state(bfd.BFD_STATE_DOWN,
                                    bfd.BFD_DIAG_CTRL_DETECT_TIME_EXPIRED)

                # Authentication variable check (RFC5880 Section 6.8.1.)
                if getattr(self, "_auth_seq_known", 0):
                    self._auth_seq_known = 0
def _recv_timeout_loop ( self ) : while self . _detect_time : last_wait = time . time ( ) self . _lock = hub . Event ( ) self . _lock . wait ( timeout = self . _detect_time ) if self . _lock . is_set ( ) : if getattr ( self , "_auth_seq_known" , 0 ) : if last_wait > time . time ( ) + 2 * self . _detect_time : self . _auth_seq_known = 0 else : LOG . info ( "[BFD][%s][RECV] BFD Session timed out." , hex ( self . _local_discr ) ) if self . _session_state not in [ bfd . BFD_STATE_DOWN , bfd . BFD_STATE_ADMIN_DOWN ] : self . _set_state ( bfd . BFD_STATE_DOWN , bfd . BFD_DIAG_CTRL_DETECT_TIME_EXPIRED ) if getattr ( self , "_auth_seq_known" , 0 ) : self . _auth_seq_known = 0
A loop to check timeout of receiving remote BFD packet.