MCPcopy Create free account
hub / github.com/F-Stack/f-stack / bstp_pdu_flags

Function bstp_pdu_flags

freebsd/net/bridgestp.c:396–451  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

394}
395
396static int
397bstp_pdu_flags(struct bstp_port *bp)
398{
399 int flags = 0;
400
401 if (bp->bp_proposing && bp->bp_state != BSTP_IFSTATE_FORWARDING)
402 flags |= BSTP_PDU_F_P;
403
404 if (bp->bp_agree)
405 flags |= BSTP_PDU_F_A;
406
407 if (bp->bp_tc_timer.active)
408 flags |= BSTP_PDU_F_TC;
409
410 if (bp->bp_tc_ack)
411 flags |= BSTP_PDU_F_TCA;
412
413 switch (bp->bp_state) {
414 case BSTP_IFSTATE_LEARNING:
415 flags |= BSTP_PDU_F_L;
416 break;
417
418 case BSTP_IFSTATE_FORWARDING:
419 flags |= (BSTP_PDU_F_L | BSTP_PDU_F_F);
420 break;
421 }
422
423 switch (bp->bp_role) {
424 case BSTP_ROLE_ROOT:
425 flags |=
426 (BSTP_PDU_F_ROOT << BSTP_PDU_PRSHIFT);
427 break;
428
429 case BSTP_ROLE_ALTERNATE:
430 case BSTP_ROLE_BACKUP: /* fall through */
431 flags |=
432 (BSTP_PDU_F_ALT << BSTP_PDU_PRSHIFT);
433 break;
434
435 case BSTP_ROLE_DESIGNATED:
436 flags |=
437 (BSTP_PDU_F_DESG << BSTP_PDU_PRSHIFT);
438 break;
439 }
440
441 /* Strip off unused flags in either mode */
442 switch (bp->bp_protover) {
443 case BSTP_PROTO_STP:
444 flags &= BSTP_PDU_STPMASK;
445 break;
446 case BSTP_PROTO_RSTP:
447 flags &= BSTP_PDU_RSTPMASK;
448 break;
449 }
450 return (flags);
451}
452
453void

Callers 1

bstp_transmit_bpduFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected