diff options
author | sobomax <sobomax@FreeBSD.org> | 2010-05-03 07:32:50 +0000 |
---|---|---|
committer | sobomax <sobomax@FreeBSD.org> | 2010-05-03 07:32:50 +0000 |
commit | 213eac1f2c265b68ddb7cb7bbcb289f8e054c161 (patch) | |
tree | 66ca2ebd19fbb3af659fe11c4a5999a6fb1fc68f /sys/net | |
parent | 305cdfaf86fcdb4aa91519ed8096ab361cb28970 (diff) | |
download | FreeBSD-src-213eac1f2c265b68ddb7cb7bbcb289f8e054c161.zip FreeBSD-src-213eac1f2c265b68ddb7cb7bbcb289f8e054c161.tar.gz |
Add new tunable 'net.link.ifqmaxlen' to set default send interface
queue length. The default value for this parameter is 50, which is
quite low for many of today's uses and the only way to modify this
parameter right now is to edit if_var.h file. Also add read-only
sysctl with the same name, so that it's possible to retrieve the
current value.
MFC after: 1 month
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/if.c | 4 | ||||
-rw-r--r-- | sys/net/if_ef.c | 2 | ||||
-rw-r--r-- | sys/net/if_gif.c | 2 | ||||
-rw-r--r-- | sys/net/if_gre.c | 2 | ||||
-rw-r--r-- | sys/net/if_stf.c | 2 |
5 files changed, 8 insertions, 4 deletions
diff --git a/sys/net/if.c b/sys/net/if.c index 1acfb24..780f2c2 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -104,6 +104,10 @@ struct ifindex_entry { SYSCTL_NODE(_net, PF_LINK, link, CTLFLAG_RW, 0, "Link layers"); SYSCTL_NODE(_net_link, 0, generic, CTLFLAG_RW, 0, "Generic link-management"); +TUNABLE_INT("net.link.ifqmaxlen", &ifqmaxlen); +SYSCTL_UINT(_net_link, OID_AUTO, ifqmaxlen, CTLFLAG_RDTUN, + &ifqmaxlen, 0, "max send queue size"); + /* Log link state change events */ static int log_link_state_change = 1; diff --git a/sys/net/if_ef.c b/sys/net/if_ef.c index 94fb03d..61f7cb7 100644 --- a/sys/net/if_ef.c +++ b/sys/net/if_ef.c @@ -129,7 +129,7 @@ ef_attach(struct efnet *sc) ifp->if_start = ef_start; ifp->if_init = ef_init; - ifp->if_snd.ifq_maxlen = IFQ_MAXLEN; + ifp->if_snd.ifq_maxlen = ifqmaxlen; ifp->if_flags = (IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST); /* * Attach the interface diff --git a/sys/net/if_gif.c b/sys/net/if_gif.c index ae0ff4e..7683839 100644 --- a/sys/net/if_gif.c +++ b/sys/net/if_gif.c @@ -185,7 +185,7 @@ gif_clone_create(ifc, unit, params) GIF2IFP(sc)->if_ioctl = gif_ioctl; GIF2IFP(sc)->if_start = gif_start; GIF2IFP(sc)->if_output = gif_output; - GIF2IFP(sc)->if_snd.ifq_maxlen = IFQ_MAXLEN; + GIF2IFP(sc)->if_snd.ifq_maxlen = ifqmaxlen; if_attach(GIF2IFP(sc)); bpfattach(GIF2IFP(sc), DLT_NULL, sizeof(u_int32_t)); if (ng_gif_attach_p != NULL) diff --git a/sys/net/if_gre.c b/sys/net/if_gre.c index bac3d795..1f1e108 100644 --- a/sys/net/if_gre.c +++ b/sys/net/if_gre.c @@ -184,7 +184,7 @@ gre_clone_create(ifc, unit, params) GRE2IFP(sc)->if_softc = sc; if_initname(GRE2IFP(sc), ifc->ifc_name, unit); - GRE2IFP(sc)->if_snd.ifq_maxlen = IFQ_MAXLEN; + GRE2IFP(sc)->if_snd.ifq_maxlen = ifqmaxlen; GRE2IFP(sc)->if_addrlen = 0; GRE2IFP(sc)->if_hdrlen = 24; /* IP + GRE */ GRE2IFP(sc)->if_mtu = GREMTU; diff --git a/sys/net/if_stf.c b/sys/net/if_stf.c index 5c082c4..1ef5581 100644 --- a/sys/net/if_stf.c +++ b/sys/net/if_stf.c @@ -252,7 +252,7 @@ stf_clone_create(struct if_clone *ifc, char *name, size_t len, caddr_t params) ifp->if_mtu = IPV6_MMTU; ifp->if_ioctl = stf_ioctl; ifp->if_output = stf_output; - ifp->if_snd.ifq_maxlen = IFQ_MAXLEN; + ifp->if_snd.ifq_maxlen = ifqmaxlen; if_attach(ifp); bpfattach(ifp, DLT_NULL, sizeof(u_int32_t)); return (0); |