Changeset View
Changeset View
Standalone View
Standalone View
sys/net/ieee8023ad_lacp.c
Show First 20 Lines • Show All 522 Lines • ▼ Show 20 Lines | lacp_port_create(struct lagg_port *lgp) | ||||
struct lagg_softc *sc = lgp->lp_softc; | struct lagg_softc *sc = lgp->lp_softc; | ||||
struct lacp_softc *lsc = LACP_SOFTC(sc); | struct lacp_softc *lsc = LACP_SOFTC(sc); | ||||
struct lacp_port *lp; | struct lacp_port *lp; | ||||
struct ifnet *ifp = lgp->lp_ifp; | struct ifnet *ifp = lgp->lp_ifp; | ||||
struct sockaddr_dl sdl; | struct sockaddr_dl sdl; | ||||
struct ifmultiaddr *rifma = NULL; | struct ifmultiaddr *rifma = NULL; | ||||
int error; | int error; | ||||
boolean_t active = TRUE; /* XXX should be configurable */ | |||||
boolean_t fast = FALSE; /* Configurable via ioctl */ | |||||
link_init_sdl(ifp, (struct sockaddr *)&sdl, IFT_ETHER); | link_init_sdl(ifp, (struct sockaddr *)&sdl, IFT_ETHER); | ||||
sdl.sdl_alen = ETHER_ADDR_LEN; | sdl.sdl_alen = ETHER_ADDR_LEN; | ||||
bcopy(ðermulticastaddr_slowprotocols, | bcopy(ðermulticastaddr_slowprotocols, | ||||
LLADDR(&sdl), ETHER_ADDR_LEN); | LLADDR(&sdl), ETHER_ADDR_LEN); | ||||
error = if_addmulti(ifp, (struct sockaddr *)&sdl, &rifma); | error = if_addmulti(ifp, (struct sockaddr *)&sdl, &rifma); | ||||
if (error) { | if (error) { | ||||
printf("%s: ADDMULTI failed on %s\n", __func__, | printf("%s: ADDMULTI failed on %s\n", __func__, | ||||
Show All 12 Lines | lacp_port_create(struct lagg_port *lgp) | ||||
lp->lp_lagg = lgp; | lp->lp_lagg = lgp; | ||||
lp->lp_lsc = lsc; | lp->lp_lsc = lsc; | ||||
lp->lp_ifma = rifma; | lp->lp_ifma = rifma; | ||||
LIST_INSERT_HEAD(&lsc->lsc_ports, lp, lp_next); | LIST_INSERT_HEAD(&lsc->lsc_ports, lp, lp_next); | ||||
lacp_fill_actorinfo(lp, &lp->lp_actor); | lacp_fill_actorinfo(lp, &lp->lp_actor); | ||||
lacp_fill_markerinfo(lp, &lp->lp_marker); | lacp_fill_markerinfo(lp, &lp->lp_marker); | ||||
lp->lp_state = | lp->lp_state = LACP_STATE_ACTIVITY; | ||||
(active ? LACP_STATE_ACTIVITY : 0) | | |||||
(fast ? LACP_STATE_TIMEOUT : 0); | |||||
lp->lp_aggregator = NULL; | lp->lp_aggregator = NULL; | ||||
lacp_sm_rx_set_expired(lp); | lacp_sm_rx_set_expired(lp); | ||||
LACP_UNLOCK(lsc); | LACP_UNLOCK(lsc); | ||||
lacp_linkstate(lgp); | lacp_linkstate(lgp); | ||||
return (0); | return (0); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 1,528 Lines • Show Last 20 Lines |