diff options
author | gallatin <gallatin@FreeBSD.org> | 2009-06-24 14:47:32 +0000 |
---|---|---|
committer | gallatin <gallatin@FreeBSD.org> | 2009-06-24 14:47:32 +0000 |
commit | 87595b5020c9053dfde375eb3905ff97f09b4014 (patch) | |
tree | d56d9cdc35e61727c379f5cb0859e90f732f8d24 | |
parent | b1ee9361a4295c3daca88aba5ce6edf2f48e8456 (diff) | |
download | FreeBSD-src-87595b5020c9053dfde375eb3905ff97f09b4014.zip FreeBSD-src-87595b5020c9053dfde375eb3905ff97f09b4014.tar.gz |
Allow admin to specify the initial mtu upon driver load
for mxge.
-rw-r--r-- | sys/dev/mxge/if_mxge.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/dev/mxge/if_mxge.c b/sys/dev/mxge/if_mxge.c index 58b1173..c5d497b 100644 --- a/sys/dev/mxge/if_mxge.c +++ b/sys/dev/mxge/if_mxge.c @@ -105,6 +105,7 @@ static int mxge_ticks; static int mxge_max_slices = 1; static int mxge_rss_hash_type = MXGEFW_RSS_HASH_TYPE_SRC_PORT; static int mxge_always_promisc = 0; +static int mxge_initial_mtu = ETHERMTU_JUMBO; static char *mxge_fw_unaligned = "mxge_ethp_z8e"; static char *mxge_fw_aligned = "mxge_eth_z8e"; static char *mxge_fw_rss_aligned = "mxge_rss_eth_z8e"; @@ -4009,6 +4010,7 @@ mxge_fetch_tunables(mxge_softc_t *sc) TUNABLE_INT_FETCH("hw.mxge.lro_cnt", &sc->lro_cnt); TUNABLE_INT_FETCH("hw.mxge.always_promisc", &mxge_always_promisc); TUNABLE_INT_FETCH("hw.mxge.rss_hash_type", &mxge_rss_hash_type); + TUNABLE_INT_FETCH("hw.mxge.initial_mtu", &mxge_initial_mtu); if (sc->lro_cnt != 0) mxge_lro_cnt = sc->lro_cnt; @@ -4023,6 +4025,9 @@ mxge_fetch_tunables(mxge_softc_t *sc) || mxge_rss_hash_type > MXGEFW_RSS_HASH_TYPE_MAX) { mxge_rss_hash_type = MXGEFW_RSS_HASH_TYPE_SRC_PORT; } + if (mxge_initial_mtu > ETHERMTU_JUMBO || + mxge_initial_mtu < ETHER_MIN_LEN) + mxge_initial_mtu = ETHERMTU_JUMBO; } @@ -4586,9 +4591,9 @@ mxge_attach(device_t dev) mxge_set_media(sc, IFM_ETHER | IFM_AUTO); mxge_media_probe(sc); ether_ifattach(ifp, sc->mac_addr); - /* ether_ifattach sets mtu to 1500 */ - if (ifp->if_capabilities & IFCAP_JUMBO_MTU) - ifp->if_mtu = 9000; + /* ether_ifattach sets mtu to ETHERMTU */ + if (mxge_initial_mtu != ETHERMTU) + mxge_change_mtu(sc, mxge_initial_mtu); mxge_add_sysctls(sc); #ifdef IFNET_BUF_RING |