Changeset View
Changeset View
Standalone View
Standalone View
head/sys/net/if_lagg.c
Show First 20 Lines • Show All 258 Lines • ▼ Show 20 Lines | |||||
/* Default value for using flowid */ | /* Default value for using flowid */ | ||||
VNET_DEFINE_STATIC(int, def_use_flowid) = 0; | VNET_DEFINE_STATIC(int, def_use_flowid) = 0; | ||||
#define V_def_use_flowid VNET(def_use_flowid) | #define V_def_use_flowid VNET(def_use_flowid) | ||||
SYSCTL_INT(_net_link_lagg, OID_AUTO, default_use_flowid, CTLFLAG_RWTUN, | SYSCTL_INT(_net_link_lagg, OID_AUTO, default_use_flowid, CTLFLAG_RWTUN, | ||||
&VNET_NAME(def_use_flowid), 0, | &VNET_NAME(def_use_flowid), 0, | ||||
"Default setting for using flow id for load sharing"); | "Default setting for using flow id for load sharing"); | ||||
/* Default value for using numa */ | |||||
VNET_DEFINE_STATIC(int, def_use_numa) = 1; | |||||
#define V_def_use_numa VNET(def_use_numa) | |||||
SYSCTL_INT(_net_link_lagg, OID_AUTO, default_use_numa, CTLFLAG_RWTUN, | |||||
&VNET_NAME(def_use_numa), 0, | |||||
"Use numa to steer flows"); | |||||
/* Default value for flowid shift */ | /* Default value for flowid shift */ | ||||
VNET_DEFINE_STATIC(int, def_flowid_shift) = 16; | VNET_DEFINE_STATIC(int, def_flowid_shift) = 16; | ||||
#define V_def_flowid_shift VNET(def_flowid_shift) | #define V_def_flowid_shift VNET(def_flowid_shift) | ||||
SYSCTL_INT(_net_link_lagg, OID_AUTO, default_flowid_shift, CTLFLAG_RWTUN, | SYSCTL_INT(_net_link_lagg, OID_AUTO, default_flowid_shift, CTLFLAG_RWTUN, | ||||
&VNET_NAME(def_flowid_shift), 0, | &VNET_NAME(def_flowid_shift), 0, | ||||
"Default setting for flowid shift for load sharing"); | "Default setting for flowid shift for load sharing"); | ||||
static void | static void | ||||
▲ Show 20 Lines • Show All 211 Lines • ▼ Show 20 Lines | if (ifp == NULL) { | ||||
free(sc, M_LAGG); | free(sc, M_LAGG); | ||||
return (ENOSPC); | return (ENOSPC); | ||||
} | } | ||||
LAGG_SX_INIT(sc); | LAGG_SX_INIT(sc); | ||||
LAGG_XLOCK(sc); | LAGG_XLOCK(sc); | ||||
if (V_def_use_flowid) | if (V_def_use_flowid) | ||||
sc->sc_opts |= LAGG_OPT_USE_FLOWID; | sc->sc_opts |= LAGG_OPT_USE_FLOWID; | ||||
if (V_def_use_numa) | |||||
sc->sc_opts |= LAGG_OPT_USE_NUMA; | |||||
sc->flowid_shift = V_def_flowid_shift; | sc->flowid_shift = V_def_flowid_shift; | ||||
/* Hash all layers by default */ | /* Hash all layers by default */ | ||||
sc->sc_flags = MBUF_HASHFLAG_L2|MBUF_HASHFLAG_L3|MBUF_HASHFLAG_L4; | sc->sc_flags = MBUF_HASHFLAG_L2|MBUF_HASHFLAG_L3|MBUF_HASHFLAG_L4; | ||||
lagg_proto_attach(sc, LAGG_PROTO_DEFAULT); | lagg_proto_attach(sc, LAGG_PROTO_DEFAULT); | ||||
CK_SLIST_INIT(&sc->sc_ports); | CK_SLIST_INIT(&sc->sc_ports); | ||||
▲ Show 20 Lines • Show All 740 Lines • ▼ Show 20 Lines | case SIOCSLAGGOPTS: | ||||
* Set options. LACP options are stored in sc->sc_psc, | * Set options. LACP options are stored in sc->sc_psc, | ||||
* not in sc_opts. | * not in sc_opts. | ||||
*/ | */ | ||||
int valid, lacp; | int valid, lacp; | ||||
switch (ro->ro_opts) { | switch (ro->ro_opts) { | ||||
case LAGG_OPT_USE_FLOWID: | case LAGG_OPT_USE_FLOWID: | ||||
case -LAGG_OPT_USE_FLOWID: | case -LAGG_OPT_USE_FLOWID: | ||||
case LAGG_OPT_USE_NUMA: | |||||
case -LAGG_OPT_USE_NUMA: | |||||
case LAGG_OPT_FLOWIDSHIFT: | case LAGG_OPT_FLOWIDSHIFT: | ||||
valid = 1; | valid = 1; | ||||
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: | ||||
▲ Show 20 Lines • Show All 1,010 Lines • Show Last 20 Lines |