Changeset View
Changeset View
Standalone View
Standalone View
head/sys/net/if_lagg.c
Show First 20 Lines • Show All 1,240 Lines • ▼ Show 20 Lines | if (sc->sc_proto == LAGG_PROTO_LACP) { | ||||
lsc = (struct lacp_softc *)sc->sc_psc; | lsc = (struct lacp_softc *)sc->sc_psc; | ||||
if (lsc->lsc_debug.lsc_tx_test != 0) | if (lsc->lsc_debug.lsc_tx_test != 0) | ||||
ro->ro_opts |= LAGG_OPT_LACP_TXTEST; | ro->ro_opts |= LAGG_OPT_LACP_TXTEST; | ||||
if (lsc->lsc_debug.lsc_rx_test != 0) | if (lsc->lsc_debug.lsc_rx_test != 0) | ||||
ro->ro_opts |= LAGG_OPT_LACP_RXTEST; | ro->ro_opts |= LAGG_OPT_LACP_RXTEST; | ||||
if (lsc->lsc_strict_mode != 0) | if (lsc->lsc_strict_mode != 0) | ||||
ro->ro_opts |= LAGG_OPT_LACP_STRICT; | ro->ro_opts |= LAGG_OPT_LACP_STRICT; | ||||
if (lsc->lsc_fast_timeout != 0) | if (lsc->lsc_fast_timeout != 0) | ||||
ro->ro_opts |= LAGG_OPT_LACP_TIMEOUT; | ro->ro_opts |= LAGG_OPT_LACP_FAST_TIMO; | ||||
ro->ro_active = sc->sc_active; | ro->ro_active = sc->sc_active; | ||||
} else { | } else { | ||||
ro->ro_active = 0; | ro->ro_active = 0; | ||||
CK_SLIST_FOREACH(lp, &sc->sc_ports, lp_entries) | CK_SLIST_FOREACH(lp, &sc->sc_ports, lp_entries) | ||||
ro->ro_active += LAGG_PORTACTIVE(lp); | ro->ro_active += LAGG_PORTACTIVE(lp); | ||||
} | } | ||||
ro->ro_bkt = sc->sc_stride; | ro->ro_bkt = sc->sc_stride; | ||||
▲ Show 20 Lines • Show All 42 Lines • ▼ Show 20 Lines | case LAGG_OPT_RR_LIMIT: | ||||
lacp = 0; | lacp = 0; | ||||
break; | break; | ||||
case LAGG_OPT_LACP_TXTEST: | case LAGG_OPT_LACP_TXTEST: | ||||
case -LAGG_OPT_LACP_TXTEST: | case -LAGG_OPT_LACP_TXTEST: | ||||
case LAGG_OPT_LACP_RXTEST: | case LAGG_OPT_LACP_RXTEST: | ||||
case -LAGG_OPT_LACP_RXTEST: | case -LAGG_OPT_LACP_RXTEST: | ||||
case LAGG_OPT_LACP_STRICT: | case LAGG_OPT_LACP_STRICT: | ||||
case -LAGG_OPT_LACP_STRICT: | case -LAGG_OPT_LACP_STRICT: | ||||
case LAGG_OPT_LACP_TIMEOUT: | case LAGG_OPT_LACP_FAST_TIMO: | ||||
case -LAGG_OPT_LACP_TIMEOUT: | case -LAGG_OPT_LACP_FAST_TIMO: | ||||
valid = lacp = 1; | valid = lacp = 1; | ||||
break; | break; | ||||
default: | default: | ||||
valid = lacp = 0; | valid = lacp = 0; | ||||
break; | break; | ||||
} | } | ||||
if (valid == 0 || | if (valid == 0 || | ||||
▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | if (lacp == 0) { | ||||
lsc->lsc_debug.lsc_rx_test = 0; | lsc->lsc_debug.lsc_rx_test = 0; | ||||
break; | break; | ||||
case LAGG_OPT_LACP_STRICT: | case LAGG_OPT_LACP_STRICT: | ||||
lsc->lsc_strict_mode = 1; | lsc->lsc_strict_mode = 1; | ||||
break; | break; | ||||
case -LAGG_OPT_LACP_STRICT: | case -LAGG_OPT_LACP_STRICT: | ||||
lsc->lsc_strict_mode = 0; | lsc->lsc_strict_mode = 0; | ||||
break; | break; | ||||
case LAGG_OPT_LACP_TIMEOUT: | case LAGG_OPT_LACP_FAST_TIMO: | ||||
LACP_LOCK(lsc); | LACP_LOCK(lsc); | ||||
LIST_FOREACH(lp, &lsc->lsc_ports, lp_next) | LIST_FOREACH(lp, &lsc->lsc_ports, lp_next) | ||||
lp->lp_state |= LACP_STATE_TIMEOUT; | lp->lp_state |= LACP_STATE_TIMEOUT; | ||||
LACP_UNLOCK(lsc); | LACP_UNLOCK(lsc); | ||||
lsc->lsc_fast_timeout = 1; | lsc->lsc_fast_timeout = 1; | ||||
break; | break; | ||||
case -LAGG_OPT_LACP_TIMEOUT: | case -LAGG_OPT_LACP_FAST_TIMO: | ||||
LACP_LOCK(lsc); | LACP_LOCK(lsc); | ||||
LIST_FOREACH(lp, &lsc->lsc_ports, lp_next) | LIST_FOREACH(lp, &lsc->lsc_ports, lp_next) | ||||
lp->lp_state &= ~LACP_STATE_TIMEOUT; | lp->lp_state &= ~LACP_STATE_TIMEOUT; | ||||
LACP_UNLOCK(lsc); | LACP_UNLOCK(lsc); | ||||
lsc->lsc_fast_timeout = 0; | lsc->lsc_fast_timeout = 0; | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
▲ Show 20 Lines • Show All 1,039 Lines • Show Last 20 Lines |