Change most of the bridge and stp funtions to static. This has highlighted

that the following funtions are not used, wrap in '#ifdef noused' for the
moment.

 bstp_enable_change_detection
 bstp_disable_change_detection
 bstp_set_bridge_priority
 bstp_set_port_priority
 bstp_set_path_cost
This commit is contained in:
Andrew Thompson 2005-10-14 10:38:12 +00:00
parent 106e9401db
commit 6b32f3d3f2
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=151313
2 changed files with 215 additions and 198 deletions

View File

@ -121,64 +121,75 @@ struct bstp_tbpdu {
const uint8_t bstp_etheraddr[] = { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x00 };
void bstp_initialize_port(struct bridge_softc *, struct bridge_iflist *);
void bstp_ifupdstatus(struct bridge_softc *, struct bridge_iflist *);
void bstp_enable_port(struct bridge_softc *, struct bridge_iflist *);
void bstp_disable_port(struct bridge_softc *, struct bridge_iflist *);
void bstp_enable_change_detection(struct bridge_iflist *);
void bstp_disable_change_detection(struct bridge_iflist *);
int bstp_root_bridge(struct bridge_softc *sc);
int bstp_supersedes_port_info(struct bridge_softc *,
struct bridge_iflist *, struct bstp_config_unit *);
int bstp_designated_port(struct bridge_softc *, struct bridge_iflist *);
int bstp_designated_for_some_port(struct bridge_softc *);
void bstp_transmit_config(struct bridge_softc *, struct bridge_iflist *);
void bstp_transmit_tcn(struct bridge_softc *);
void bstp_received_config_bpdu(struct bridge_softc *,
struct bridge_iflist *, struct bstp_config_unit *);
void bstp_received_tcn_bpdu(struct bridge_softc *, struct bridge_iflist *,
struct bstp_tcn_unit *);
void bstp_record_config_information(struct bridge_softc *,
struct bridge_iflist *, struct bstp_config_unit *);
void bstp_record_config_timeout_values(struct bridge_softc *,
struct bstp_config_unit *);
void bstp_config_bpdu_generation(struct bridge_softc *);
void bstp_send_config_bpdu(struct bridge_softc *, struct bridge_iflist *,
struct bstp_config_unit *);
void bstp_configuration_update(struct bridge_softc *);
void bstp_root_selection(struct bridge_softc *);
void bstp_designated_port_selection(struct bridge_softc *);
void bstp_become_designated_port(struct bridge_softc *,
struct bridge_iflist *);
void bstp_port_state_selection(struct bridge_softc *);
void bstp_make_forwarding(struct bridge_softc *, struct bridge_iflist *);
void bstp_make_blocking(struct bridge_softc *, struct bridge_iflist *);
void bstp_set_port_state(struct bridge_iflist *, uint8_t);
void bstp_set_bridge_priority(struct bridge_softc *, uint64_t);
void bstp_set_port_priority(struct bridge_softc *, struct bridge_iflist *,
uint16_t);
void bstp_set_path_cost(struct bridge_softc *, struct bridge_iflist *,
uint32_t);
void bstp_topology_change_detection(struct bridge_softc *);
void bstp_topology_change_acknowledged(struct bridge_softc *);
void bstp_acknowledge_topology_change(struct bridge_softc *,
struct bridge_iflist *);
static void bstp_initialize_port(struct bridge_softc *,
struct bridge_iflist *);
static void bstp_ifupdstatus(struct bridge_softc *, struct bridge_iflist *);
static void bstp_enable_port(struct bridge_softc *, struct bridge_iflist *);
static void bstp_disable_port(struct bridge_softc *,
struct bridge_iflist *);
#ifdef notused
static void bstp_enable_change_detection(struct bridge_iflist *);
static void bstp_disable_change_detection(struct bridge_iflist *);
#endif /* notused */
static int bstp_root_bridge(struct bridge_softc *sc);
static int bstp_supersedes_port_info(struct bridge_softc *,
struct bridge_iflist *, struct bstp_config_unit *);
static int bstp_designated_port(struct bridge_softc *,
struct bridge_iflist *);
static int bstp_designated_for_some_port(struct bridge_softc *);
static void bstp_transmit_config(struct bridge_softc *,
struct bridge_iflist *);
static void bstp_transmit_tcn(struct bridge_softc *);
static void bstp_received_config_bpdu(struct bridge_softc *,
struct bridge_iflist *, struct bstp_config_unit *);
static void bstp_received_tcn_bpdu(struct bridge_softc *,
struct bridge_iflist *, struct bstp_tcn_unit *);
static void bstp_record_config_information(struct bridge_softc *,
struct bridge_iflist *, struct bstp_config_unit *);
static void bstp_record_config_timeout_values(struct bridge_softc *,
struct bstp_config_unit *);
static void bstp_config_bpdu_generation(struct bridge_softc *);
static void bstp_send_config_bpdu(struct bridge_softc *,
struct bridge_iflist *, struct bstp_config_unit *);
static void bstp_configuration_update(struct bridge_softc *);
static void bstp_root_selection(struct bridge_softc *);
static void bstp_designated_port_selection(struct bridge_softc *);
static void bstp_become_designated_port(struct bridge_softc *,
struct bridge_iflist *);
static void bstp_port_state_selection(struct bridge_softc *);
static void bstp_make_forwarding(struct bridge_softc *,
struct bridge_iflist *);
static void bstp_make_blocking(struct bridge_softc *,
struct bridge_iflist *);
static void bstp_set_port_state(struct bridge_iflist *, uint8_t);
#ifdef notused
static void bstp_set_bridge_priority(struct bridge_softc *, uint64_t);
static void bstp_set_port_priority(struct bridge_softc *,
struct bridge_iflist *, uint16_t);
static void bstp_set_path_cost(struct bridge_softc *,
struct bridge_iflist *, uint32_t);
#endif /* notused */
static void bstp_topology_change_detection(struct bridge_softc *);
static void bstp_topology_change_acknowledged(struct bridge_softc *);
static void bstp_acknowledge_topology_change(struct bridge_softc *,
struct bridge_iflist *);
void bstp_tick(void *);
void bstp_timer_start(struct bridge_timer *, uint16_t);
void bstp_timer_stop(struct bridge_timer *);
int bstp_timer_expired(struct bridge_timer *, uint16_t);
static void bstp_tick(void *);
static void bstp_timer_start(struct bridge_timer *, uint16_t);
static void bstp_timer_stop(struct bridge_timer *);
static int bstp_timer_expired(struct bridge_timer *, uint16_t);
void bstp_hold_timer_expiry(struct bridge_softc *, struct bridge_iflist *);
void bstp_message_age_timer_expiry(struct bridge_softc *,
struct bridge_iflist *);
void bstp_forward_delay_timer_expiry(struct bridge_softc *,
struct bridge_iflist *);
void bstp_topology_change_timer_expiry(struct bridge_softc *);
void bstp_tcn_timer_expiry(struct bridge_softc *);
void bstp_hello_timer_expiry(struct bridge_softc *);
static void bstp_hold_timer_expiry(struct bridge_softc *,
struct bridge_iflist *);
static void bstp_message_age_timer_expiry(struct bridge_softc *,
struct bridge_iflist *);
static void bstp_forward_delay_timer_expiry(struct bridge_softc *,
struct bridge_iflist *);
static void bstp_topology_change_timer_expiry(struct bridge_softc *);
static void bstp_tcn_timer_expiry(struct bridge_softc *);
static void bstp_hello_timer_expiry(struct bridge_softc *);
void
static void
bstp_transmit_config(struct bridge_softc *sc, struct bridge_iflist *bif)
{
if (bif->bif_hold_timer.active) {
@ -214,7 +225,7 @@ bstp_transmit_config(struct bridge_softc *sc, struct bridge_iflist *bif)
}
}
void
static void
bstp_send_config_bpdu(struct bridge_softc *sc, struct bridge_iflist *bif,
struct bstp_config_unit *cu)
{
@ -284,13 +295,13 @@ bstp_send_config_bpdu(struct bridge_softc *sc, struct bridge_iflist *bif,
BRIDGE_LOCK(sc);
}
int
static int
bstp_root_bridge(struct bridge_softc *sc)
{
return (sc->sc_designated_root == sc->sc_bridge_id);
}
int
static int
bstp_supersedes_port_info(struct bridge_softc *sc, struct bridge_iflist *bif,
struct bstp_config_unit *cu)
{
@ -316,7 +327,7 @@ bstp_supersedes_port_info(struct bridge_softc *sc, struct bridge_iflist *bif,
return (0);
}
void
static void
bstp_record_config_information(struct bridge_softc *sc,
struct bridge_iflist *bif, struct bstp_config_unit *cu)
{
@ -327,7 +338,7 @@ bstp_record_config_information(struct bridge_softc *sc,
bstp_timer_start(&bif->bif_message_age_timer, cu->cu_message_age);
}
void
static void
bstp_record_config_timeout_values(struct bridge_softc *sc,
struct bstp_config_unit *config)
{
@ -337,7 +348,7 @@ bstp_record_config_timeout_values(struct bridge_softc *sc,
sc->sc_topology_change = config->cu_topology_change;
}
void
static void
bstp_config_bpdu_generation(struct bridge_softc *sc)
{
struct bridge_iflist *bif;
@ -351,14 +362,14 @@ bstp_config_bpdu_generation(struct bridge_softc *sc)
}
}
int
static int
bstp_designated_port(struct bridge_softc *sc, struct bridge_iflist *bif)
{
return ((bif->bif_designated_bridge == sc->sc_bridge_id)
&& (bif->bif_designated_port == bif->bif_port_id));
}
void
static void
bstp_transmit_tcn(struct bridge_softc *sc)
{
struct bstp_tbpdu bpdu;
@ -400,7 +411,7 @@ bstp_transmit_tcn(struct bridge_softc *sc)
BRIDGE_LOCK(sc);
}
void
static void
bstp_configuration_update(struct bridge_softc *sc)
{
BRIDGE_LOCK_ASSERT(sc);
@ -409,7 +420,7 @@ bstp_configuration_update(struct bridge_softc *sc)
bstp_designated_port_selection(sc);
}
void
static void
bstp_root_selection(struct bridge_softc *sc)
{
struct bridge_iflist *root_port = NULL, *bif;
@ -469,7 +480,7 @@ bstp_root_selection(struct bridge_softc *sc)
}
}
void
static void
bstp_designated_port_selection(struct bridge_softc *sc)
{
struct bridge_iflist *bif;
@ -501,7 +512,7 @@ bstp_designated_port_selection(struct bridge_softc *sc)
}
}
void
static void
bstp_become_designated_port(struct bridge_softc *sc, struct bridge_iflist *bif)
{
bif->bif_designated_root = sc->sc_designated_root;
@ -510,7 +521,7 @@ bstp_become_designated_port(struct bridge_softc *sc, struct bridge_iflist *bif)
bif->bif_designated_port = bif->bif_port_id;
}
void
static void
bstp_port_state_selection(struct bridge_softc *sc)
{
struct bridge_iflist *bif;
@ -533,7 +544,7 @@ bstp_port_state_selection(struct bridge_softc *sc)
}
}
void
static void
bstp_make_forwarding(struct bridge_softc *sc, struct bridge_iflist *bif)
{
if (bif->bif_state == BSTP_IFSTATE_BLOCKING) {
@ -542,7 +553,7 @@ bstp_make_forwarding(struct bridge_softc *sc, struct bridge_iflist *bif)
}
}
void
static void
bstp_make_blocking(struct bridge_softc *sc, struct bridge_iflist *bif)
{
BRIDGE_LOCK_ASSERT(sc);
@ -561,13 +572,13 @@ bstp_make_blocking(struct bridge_softc *sc, struct bridge_iflist *bif)
}
}
void
static void
bstp_set_port_state(struct bridge_iflist *bif, uint8_t state)
{
bif->bif_state = state;
}
void
static void
bstp_topology_change_detection(struct bridge_softc *sc)
{
if (bstp_root_bridge(sc)) {
@ -580,14 +591,14 @@ bstp_topology_change_detection(struct bridge_softc *sc)
sc->sc_topology_change_detected = 1;
}
void
static void
bstp_topology_change_acknowledged(struct bridge_softc *sc)
{
sc->sc_topology_change_detected = 0;
bstp_timer_stop(&sc->sc_tcn_timer);
}
void
static void
bstp_acknowledge_topology_change(struct bridge_softc *sc,
struct bridge_iflist *bif)
{
@ -693,7 +704,7 @@ bstp_input(struct ifnet *ifp, struct mbuf *m)
return (NULL);
}
void
static void
bstp_received_config_bpdu(struct bridge_softc *sc, struct bridge_iflist *bif,
struct bstp_config_unit *cu)
{
@ -732,7 +743,7 @@ bstp_received_config_bpdu(struct bridge_softc *sc, struct bridge_iflist *bif,
}
}
void
static void
bstp_received_tcn_bpdu(struct bridge_softc *sc, struct bridge_iflist *bif,
struct bstp_tcn_unit *tcn)
{
@ -743,14 +754,14 @@ bstp_received_tcn_bpdu(struct bridge_softc *sc, struct bridge_iflist *bif,
}
}
void
static void
bstp_hello_timer_expiry(struct bridge_softc *sc)
{
bstp_config_bpdu_generation(sc);
bstp_timer_start(&sc->sc_hello_timer, 0);
}
void
static void
bstp_message_age_timer_expiry(struct bridge_softc *sc,
struct bridge_iflist *bif)
{
@ -773,7 +784,7 @@ bstp_message_age_timer_expiry(struct bridge_softc *sc,
}
}
void
static void
bstp_forward_delay_timer_expiry(struct bridge_softc *sc,
struct bridge_iflist *bif)
{
@ -788,7 +799,7 @@ bstp_forward_delay_timer_expiry(struct bridge_softc *sc,
}
}
int
static int
bstp_designated_for_some_port(struct bridge_softc *sc)
{
@ -803,21 +814,21 @@ bstp_designated_for_some_port(struct bridge_softc *sc)
return (0);
}
void
static void
bstp_tcn_timer_expiry(struct bridge_softc *sc)
{
bstp_transmit_tcn(sc);
bstp_timer_start(&sc->sc_tcn_timer, 0);
}
void
static void
bstp_topology_change_timer_expiry(struct bridge_softc *sc)
{
sc->sc_topology_change_detected = 0;
sc->sc_topology_change = 0;
}
void
static void
bstp_hold_timer_expiry(struct bridge_softc *sc, struct bridge_iflist *bif)
{
if (bif->bif_config_pending)
@ -914,7 +925,7 @@ bstp_stop(struct bridge_softc *sc)
}
void
static void
bstp_initialize_port(struct bridge_softc *sc, struct bridge_iflist *bif)
{
bstp_become_designated_port(sc, bif);
@ -927,14 +938,14 @@ bstp_initialize_port(struct bridge_softc *sc, struct bridge_iflist *bif)
bstp_timer_stop(&bif->bif_hold_timer);
}
void
static void
bstp_enable_port(struct bridge_softc *sc, struct bridge_iflist *bif)
{
bstp_initialize_port(sc, bif);
bstp_port_state_selection(sc);
}
void
static void
bstp_disable_port(struct bridge_softc *sc, struct bridge_iflist *bif)
{
int root;
@ -964,7 +975,8 @@ bstp_disable_port(struct bridge_softc *sc, struct bridge_iflist *bif)
}
}
void
#ifdef notused
static void
bstp_set_bridge_priority(struct bridge_softc *sc, uint64_t new_bridge_id)
{
struct bridge_iflist *bif;
@ -998,7 +1010,7 @@ bstp_set_bridge_priority(struct bridge_softc *sc, uint64_t new_bridge_id)
}
}
void
static void
bstp_set_port_priority(struct bridge_softc *sc, struct bridge_iflist *bif,
uint16_t new_port_id)
{
@ -1014,7 +1026,7 @@ bstp_set_port_priority(struct bridge_softc *sc, struct bridge_iflist *bif,
}
}
void
static void
bstp_set_path_cost(struct bridge_softc *sc, struct bridge_iflist *bif,
uint32_t path_cost)
{
@ -1023,17 +1035,18 @@ bstp_set_path_cost(struct bridge_softc *sc, struct bridge_iflist *bif,
bstp_port_state_selection(sc);
}
void
static void
bstp_enable_change_detection(struct bridge_iflist *bif)
{
bif->bif_change_detection_enabled = 1;
}
void
static void
bstp_disable_change_detection(struct bridge_iflist *bif)
{
bif->bif_change_detection_enabled = 0;
}
#endif /* notused */
void
bstp_linkstate(struct ifnet *ifp, int state)
@ -1057,7 +1070,7 @@ bstp_linkstate(struct ifnet *ifp, int state)
BRIDGE_UNLOCK(sc);
}
void
static void
bstp_ifupdstatus(struct bridge_softc *sc, struct bridge_iflist *bif)
{
struct ifnet *ifp = bif->bif_ifp;
@ -1085,7 +1098,7 @@ bstp_ifupdstatus(struct bridge_softc *sc, struct bridge_iflist *bif)
bstp_disable_port(sc, bif);
}
void
static void
bstp_tick(void *arg)
{
struct bridge_softc *sc = arg;
@ -1142,21 +1155,21 @@ bstp_tick(void *arg)
callout_reset(&sc->sc_bstpcallout, hz, bstp_tick, sc);
}
void
static void
bstp_timer_start(struct bridge_timer *t, uint16_t v)
{
t->value = v;
t->active = 1;
}
void
static void
bstp_timer_stop(struct bridge_timer *t)
{
t->value = 0;
t->active = 0;
}
int
static int
bstp_timer_expired(struct bridge_timer *t, uint16_t v)
{
if (t->active == 0)

View File

@ -176,75 +176,79 @@ int bridge_rtable_prune_period = BRIDGE_RTABLE_PRUNE_PERIOD;
uma_zone_t bridge_rtnode_zone;
int bridge_clone_create(struct if_clone *, int);
void bridge_clone_destroy(struct ifnet *);
static int bridge_clone_create(struct if_clone *, int);
static void bridge_clone_destroy(struct ifnet *);
int bridge_ioctl(struct ifnet *, u_long, caddr_t);
void bridge_ifdetach(struct ifnet *);
static int bridge_ioctl(struct ifnet *, u_long, caddr_t);
static void bridge_ifdetach(struct ifnet *);
static void bridge_init(void *);
void bridge_dummynet(struct mbuf *, struct ifnet *);
void bridge_stop(struct ifnet *, int);
void bridge_start(struct ifnet *);
struct mbuf *bridge_input(struct ifnet *, struct mbuf *);
int bridge_output(struct ifnet *, struct mbuf *, struct sockaddr *,
struct rtentry *);
static void bridge_dummynet(struct mbuf *, struct ifnet *);
static void bridge_stop(struct ifnet *, int);
static void bridge_start(struct ifnet *);
static struct mbuf *bridge_input(struct ifnet *, struct mbuf *);
static int bridge_output(struct ifnet *, struct mbuf *, struct sockaddr *,
struct rtentry *);
void bridge_forward(struct bridge_softc *, struct mbuf *m);
static void bridge_forward(struct bridge_softc *, struct mbuf *m);
void bridge_timer(void *);
static void bridge_timer(void *);
void bridge_broadcast(struct bridge_softc *, struct ifnet *, struct mbuf *,
int);
static void bridge_broadcast(struct bridge_softc *, struct ifnet *,
struct mbuf *, int);
int bridge_rtupdate(struct bridge_softc *, const uint8_t *,
struct ifnet *, int, uint8_t);
struct ifnet *bridge_rtlookup(struct bridge_softc *, const uint8_t *);
void bridge_rttrim(struct bridge_softc *);
void bridge_rtage(struct bridge_softc *);
void bridge_rtflush(struct bridge_softc *, int);
int bridge_rtdaddr(struct bridge_softc *, const uint8_t *);
static int bridge_rtupdate(struct bridge_softc *, const uint8_t *,
struct ifnet *, int, uint8_t);
static struct ifnet *bridge_rtlookup(struct bridge_softc *, const uint8_t *);
static void bridge_rttrim(struct bridge_softc *);
static void bridge_rtage(struct bridge_softc *);
static void bridge_rtflush(struct bridge_softc *, int);
static int bridge_rtdaddr(struct bridge_softc *, const uint8_t *);
int bridge_rtable_init(struct bridge_softc *);
void bridge_rtable_fini(struct bridge_softc *);
static int bridge_rtable_init(struct bridge_softc *);
static void bridge_rtable_fini(struct bridge_softc *);
struct bridge_rtnode *bridge_rtnode_lookup(struct bridge_softc *,
const uint8_t *);
int bridge_rtnode_insert(struct bridge_softc *, struct bridge_rtnode *);
void bridge_rtnode_destroy(struct bridge_softc *, struct bridge_rtnode *);
static struct bridge_rtnode *bridge_rtnode_lookup(struct bridge_softc *,
const uint8_t *);
static int bridge_rtnode_insert(struct bridge_softc *,
struct bridge_rtnode *);
static void bridge_rtnode_destroy(struct bridge_softc *,
struct bridge_rtnode *);
struct bridge_iflist *bridge_lookup_member(struct bridge_softc *,
const char *name);
struct bridge_iflist *bridge_lookup_member_if(struct bridge_softc *,
struct ifnet *ifp);
void bridge_delete_member(struct bridge_softc *, struct bridge_iflist *);
static struct bridge_iflist *bridge_lookup_member(struct bridge_softc *,
const char *name);
static struct bridge_iflist *bridge_lookup_member_if(struct bridge_softc *,
struct ifnet *ifp);
static void bridge_delete_member(struct bridge_softc *,
struct bridge_iflist *);
int bridge_ioctl_add(struct bridge_softc *, void *);
int bridge_ioctl_del(struct bridge_softc *, void *);
int bridge_ioctl_gifflags(struct bridge_softc *, void *);
int bridge_ioctl_sifflags(struct bridge_softc *, void *);
int bridge_ioctl_scache(struct bridge_softc *, void *);
int bridge_ioctl_gcache(struct bridge_softc *, void *);
int bridge_ioctl_gifs(struct bridge_softc *, void *);
int bridge_ioctl_rts(struct bridge_softc *, void *);
int bridge_ioctl_saddr(struct bridge_softc *, void *);
int bridge_ioctl_sto(struct bridge_softc *, void *);
int bridge_ioctl_gto(struct bridge_softc *, void *);
int bridge_ioctl_daddr(struct bridge_softc *, void *);
int bridge_ioctl_flush(struct bridge_softc *, void *);
int bridge_ioctl_gpri(struct bridge_softc *, void *);
int bridge_ioctl_spri(struct bridge_softc *, void *);
int bridge_ioctl_ght(struct bridge_softc *, void *);
int bridge_ioctl_sht(struct bridge_softc *, void *);
int bridge_ioctl_gfd(struct bridge_softc *, void *);
int bridge_ioctl_sfd(struct bridge_softc *, void *);
int bridge_ioctl_gma(struct bridge_softc *, void *);
int bridge_ioctl_sma(struct bridge_softc *, void *);
int bridge_ioctl_sifprio(struct bridge_softc *, void *);
int bridge_ioctl_sifcost(struct bridge_softc *, void *);
static int bridge_pfil(struct mbuf **, struct ifnet *, struct ifnet *, int);
static int bridge_ip_checkbasic(struct mbuf **mp);
static int bridge_ioctl_add(struct bridge_softc *, void *);
static int bridge_ioctl_del(struct bridge_softc *, void *);
static int bridge_ioctl_gifflags(struct bridge_softc *, void *);
static int bridge_ioctl_sifflags(struct bridge_softc *, void *);
static int bridge_ioctl_scache(struct bridge_softc *, void *);
static int bridge_ioctl_gcache(struct bridge_softc *, void *);
static int bridge_ioctl_gifs(struct bridge_softc *, void *);
static int bridge_ioctl_rts(struct bridge_softc *, void *);
static int bridge_ioctl_saddr(struct bridge_softc *, void *);
static int bridge_ioctl_sto(struct bridge_softc *, void *);
static int bridge_ioctl_gto(struct bridge_softc *, void *);
static int bridge_ioctl_daddr(struct bridge_softc *, void *);
static int bridge_ioctl_flush(struct bridge_softc *, void *);
static int bridge_ioctl_gpri(struct bridge_softc *, void *);
static int bridge_ioctl_spri(struct bridge_softc *, void *);
static int bridge_ioctl_ght(struct bridge_softc *, void *);
static int bridge_ioctl_sht(struct bridge_softc *, void *);
static int bridge_ioctl_gfd(struct bridge_softc *, void *);
static int bridge_ioctl_sfd(struct bridge_softc *, void *);
static int bridge_ioctl_gma(struct bridge_softc *, void *);
static int bridge_ioctl_sma(struct bridge_softc *, void *);
static int bridge_ioctl_sifprio(struct bridge_softc *, void *);
static int bridge_ioctl_sifcost(struct bridge_softc *, void *);
static int bridge_pfil(struct mbuf **, struct ifnet *, struct ifnet *,
int);
static int bridge_ip_checkbasic(struct mbuf **mp);
# ifdef INET6
static int bridge_ip6_checkbasic(struct mbuf **mp);
static int bridge_ip6_checkbasic(struct mbuf **mp);
# endif /* INET6 */
SYSCTL_DECL(_net_link);
@ -419,7 +423,7 @@ SYSCTL_PROC(_net_link_bridge, OID_AUTO, ipfw, CTLTYPE_INT|CTLFLAG_RW,
*
* Create a new bridge instance.
*/
int
static int
bridge_clone_create(struct if_clone *ifc, int unit)
{
struct bridge_softc *sc;
@ -490,7 +494,7 @@ bridge_clone_create(struct if_clone *ifc, int unit)
*
* Destroy a bridge instance.
*/
void
static void
bridge_clone_destroy(struct ifnet *ifp)
{
struct bridge_softc *sc = ifp->if_softc;
@ -528,7 +532,7 @@ bridge_clone_destroy(struct ifnet *ifp)
*
* Handle a control request from the operator.
*/
int
static int
bridge_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
{
struct bridge_softc *sc = ifp->if_softc;
@ -685,7 +689,7 @@ bridge_lookup_member_if(struct bridge_softc *sc, struct ifnet *member_ifp)
*
* Delete the specified member interface.
*/
void
static void
bridge_delete_member(struct bridge_softc *sc, struct bridge_iflist *bif)
{
struct ifnet *ifs = bif->bif_ifp;
@ -721,7 +725,7 @@ bridge_delete_member(struct bridge_softc *sc, struct bridge_iflist *bif)
bstp_initialization(sc);
}
int
static int
bridge_ioctl_add(struct bridge_softc *sc, void *arg)
{
struct ifbreq *req = arg;
@ -795,7 +799,7 @@ bridge_ioctl_add(struct bridge_softc *sc, void *arg)
return (error);
}
int
static int
bridge_ioctl_del(struct bridge_softc *sc, void *arg)
{
struct ifbreq *req = arg;
@ -812,7 +816,7 @@ bridge_ioctl_del(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_gifflags(struct bridge_softc *sc, void *arg)
{
struct ifbreq *req = arg;
@ -833,7 +837,7 @@ bridge_ioctl_gifflags(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_sifflags(struct bridge_softc *sc, void *arg)
{
struct ifbreq *req = arg;
@ -865,7 +869,7 @@ bridge_ioctl_sifflags(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_scache(struct bridge_softc *sc, void *arg)
{
struct ifbrparam *param = arg;
@ -878,7 +882,7 @@ bridge_ioctl_scache(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_gcache(struct bridge_softc *sc, void *arg)
{
struct ifbrparam *param = arg;
@ -890,7 +894,7 @@ bridge_ioctl_gcache(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_gifs(struct bridge_softc *sc, void *arg)
{
struct ifbifconf *bifc = arg;
@ -933,7 +937,7 @@ bridge_ioctl_gifs(struct bridge_softc *sc, void *arg)
return (error);
}
int
static int
bridge_ioctl_rts(struct bridge_softc *sc, void *arg)
{
struct ifbaconf *bac = arg;
@ -974,7 +978,7 @@ bridge_ioctl_rts(struct bridge_softc *sc, void *arg)
return (error);
}
int
static int
bridge_ioctl_saddr(struct bridge_softc *sc, void *arg)
{
struct ifbareq *req = arg;
@ -993,7 +997,7 @@ bridge_ioctl_saddr(struct bridge_softc *sc, void *arg)
return (error);
}
int
static int
bridge_ioctl_sto(struct bridge_softc *sc, void *arg)
{
struct ifbrparam *param = arg;
@ -1005,7 +1009,7 @@ bridge_ioctl_sto(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_gto(struct bridge_softc *sc, void *arg)
{
struct ifbrparam *param = arg;
@ -1017,7 +1021,7 @@ bridge_ioctl_gto(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_daddr(struct bridge_softc *sc, void *arg)
{
struct ifbareq *req = arg;
@ -1027,7 +1031,7 @@ bridge_ioctl_daddr(struct bridge_softc *sc, void *arg)
return (bridge_rtdaddr(sc, req->ifba_dst));
}
int
static int
bridge_ioctl_flush(struct bridge_softc *sc, void *arg)
{
struct ifbreq *req = arg;
@ -1039,7 +1043,7 @@ bridge_ioctl_flush(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_gpri(struct bridge_softc *sc, void *arg)
{
struct ifbrparam *param = arg;
@ -1051,7 +1055,7 @@ bridge_ioctl_gpri(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_spri(struct bridge_softc *sc, void *arg)
{
struct ifbrparam *param = arg;
@ -1066,7 +1070,7 @@ bridge_ioctl_spri(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_ght(struct bridge_softc *sc, void *arg)
{
struct ifbrparam *param = arg;
@ -1078,7 +1082,7 @@ bridge_ioctl_ght(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_sht(struct bridge_softc *sc, void *arg)
{
struct ifbrparam *param = arg;
@ -1095,7 +1099,7 @@ bridge_ioctl_sht(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_gfd(struct bridge_softc *sc, void *arg)
{
struct ifbrparam *param = arg;
@ -1107,7 +1111,7 @@ bridge_ioctl_gfd(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_sfd(struct bridge_softc *sc, void *arg)
{
struct ifbrparam *param = arg;
@ -1124,7 +1128,7 @@ bridge_ioctl_sfd(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_gma(struct bridge_softc *sc, void *arg)
{
struct ifbrparam *param = arg;
@ -1136,7 +1140,7 @@ bridge_ioctl_gma(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_sma(struct bridge_softc *sc, void *arg)
{
struct ifbrparam *param = arg;
@ -1153,7 +1157,7 @@ bridge_ioctl_sma(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_sifprio(struct bridge_softc *sc, void *arg)
{
struct ifbreq *req = arg;
@ -1173,7 +1177,7 @@ bridge_ioctl_sifprio(struct bridge_softc *sc, void *arg)
return (0);
}
int
static int
bridge_ioctl_sifcost(struct bridge_softc *sc, void *arg)
{
struct ifbreq *req = arg;
@ -1199,7 +1203,7 @@ bridge_ioctl_sifcost(struct bridge_softc *sc, void *arg)
* Detach an interface from a bridge. Called when a member
* interface is detaching.
*/
void
static void
bridge_ifdetach(struct ifnet *ifp)
{
struct bridge_softc *sc = ifp->if_bridge;
@ -1243,7 +1247,7 @@ bridge_init(void *xsc)
*
* Stop the bridge interface.
*/
void
static void
bridge_stop(struct ifnet *ifp, int disable)
{
struct bridge_softc *sc = ifp->if_softc;
@ -1307,7 +1311,7 @@ bridge_enqueue(struct bridge_softc *sc, struct ifnet *dst_ifp, struct mbuf *m)
*
* The mbuf has the Ethernet header already attached.
*/
void
static void
bridge_dummynet(struct mbuf *m, struct ifnet *ifp)
{
struct bridge_softc *sc;
@ -1348,7 +1352,7 @@ bridge_dummynet(struct mbuf *m, struct ifnet *ifp)
* The mbuf has the Ethernet header already attached. We must
* enqueue or free the mbuf before returning.
*/
int
static int
bridge_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *sa,
struct rtentry *rt)
{
@ -1457,7 +1461,7 @@ bridge_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *sa,
* Start output on a bridge.
*
*/
void
static void
bridge_start(struct ifnet *ifp)
{
struct bridge_softc *sc;
@ -1501,7 +1505,7 @@ bridge_start(struct ifnet *ifp)
*
* NOTE: Releases the lock on return.
*/
void
static void
bridge_forward(struct bridge_softc *sc, struct mbuf *m)
{
struct bridge_iflist *bif;
@ -1811,7 +1815,7 @@ bridge_input(struct ifnet *ifp, struct mbuf *m)
*
* NOTE: Releases the lock on return.
*/
void
static void
bridge_broadcast(struct bridge_softc *sc, struct ifnet *src_if,
struct mbuf *m, int runfilt)
{
@ -1899,7 +1903,7 @@ bridge_broadcast(struct bridge_softc *sc, struct ifnet *src_if,
*
* Add a bridge routing entry.
*/
int
static int
bridge_rtupdate(struct bridge_softc *sc, const uint8_t *dst,
struct ifnet *dst_if, int setflags, uint8_t flags)
{
@ -1972,7 +1976,7 @@ bridge_rtlookup(struct bridge_softc *sc, const uint8_t *addr)
* of routing entries less than or equal to the
* maximum number.
*/
void
static void
bridge_rttrim(struct bridge_softc *sc)
{
struct bridge_rtnode *brt, *nbrt;
@ -2003,7 +2007,7 @@ bridge_rttrim(struct bridge_softc *sc)
*
* Aging timer for the bridge.
*/
void
static void
bridge_timer(void *arg)
{
struct bridge_softc *sc = arg;
@ -2022,7 +2026,7 @@ bridge_timer(void *arg)
*
* Perform an aging cycle.
*/
void
static void
bridge_rtage(struct bridge_softc *sc)
{
struct bridge_rtnode *brt, *nbrt;
@ -2046,7 +2050,7 @@ bridge_rtage(struct bridge_softc *sc)
*
* Remove all dynamic addresses from the bridge.
*/
void
static void
bridge_rtflush(struct bridge_softc *sc, int full)
{
struct bridge_rtnode *brt, *nbrt;
@ -2065,7 +2069,7 @@ bridge_rtflush(struct bridge_softc *sc, int full)
*
* Remove an address from the table.
*/
int
static int
bridge_rtdaddr(struct bridge_softc *sc, const uint8_t *addr)
{
struct bridge_rtnode *brt;
@ -2104,7 +2108,7 @@ bridge_rtdelete(struct bridge_softc *sc, struct ifnet *ifp, int full)
*
* Initialize the route table for this bridge.
*/
int
static int
bridge_rtable_init(struct bridge_softc *sc)
{
int i;
@ -2129,7 +2133,7 @@ bridge_rtable_init(struct bridge_softc *sc)
*
* Deconstruct the route table for this bridge.
*/
void
static void
bridge_rtable_fini(struct bridge_softc *sc)
{
@ -2204,7 +2208,7 @@ bridge_rtnode_lookup(struct bridge_softc *sc, const uint8_t *addr)
* Insert the specified bridge node into the route table. We
* assume the entry is not already in the table.
*/
int
static int
bridge_rtnode_insert(struct bridge_softc *sc, struct bridge_rtnode *brt)
{
struct bridge_rtnode *lbrt;
@ -2252,7 +2256,7 @@ bridge_rtnode_insert(struct bridge_softc *sc, struct bridge_rtnode *brt)
*
* Destroy a bridge rtnode.
*/
void
static void
bridge_rtnode_destroy(struct bridge_softc *sc, struct bridge_rtnode *brt)
{
BRIDGE_LOCK_ASSERT(sc);