FreeBSD/sys/net/bridgestp.c
/*
 * Flush the routes on the bridge port, we need to do this from a
 * taskqueue to avoid a LOR.
 */
Flush the routes on the bridge port, we need to do this from a
taskqueue to avoid a LOR.
Flush the routes on the bridge port we need to do this from a taskqueue to avoid a LOR .
static void
bstp_notify_rtage(void *arg, int pending)
{
	struct bstp_port *bp = (struct bstp_port *)arg;
	struct bstp_state *bs = bp->bp_bs;
	int age = 0;
	BSTP_LOCK(bs);
	switch (bp->bp_protover) {
		case BSTP_PROTO_STP:
			age = bp->bp_desg_fdelay / BSTP_TICK_VAL;
			break;
		case BSTP_PROTO_RSTP:
			age = 0;
			break;
	}
	BSTP_UNLOCK(bs);
	if (bp->bp_active == 1 && bs->bs_rtage_cb != NULL)
		(*bs->bs_rtage_cb)(bp->bp_ifp, age);
	BSTP_LOCK(bs);
	bp->bp_fdbflush = 0;
	BSTP_UNLOCK(bs);
}
static void bstp_notify_rtage ( void * arg , int pending ) { struct bstp_port * bp = ( struct bstp_port * ) arg ; struct bstp_state * bs = bp -> bp_bs ; int age = 0 ; BSTP_LOCK ( bs ) ; switch ( bp -> bp_protover ) { case BSTP_PROTO_STP : age = bp -> bp_desg_fdelay / BSTP_TICK_VAL ; break ; case BSTP_PROTO_RSTP : age = 0 ; break ; } BSTP_UNLOCK ( bs ) ; if ( bp -> bp_active == 1 && bs -> bs_rtage_cb != NULL ) ( * bs -> bs_rtage_cb ) ( bp -> bp_ifp , age ) ; BSTP_LOCK ( bs ) ; bp -> bp_fdbflush = 0 ; BSTP_UNLOCK ( bs ) ; }
Flush the routes on the bridge port, we need to do this from a
 taskqueue to avoid a LOR.
Flush the routes on the bridge port we need to do this from a taskqueue to avoid a LOR .
/* convert to seconds */ /* flush is complete */