summaryrefslogtreecommitdiffstats
path: root/sys/net
diff options
context:
space:
mode:
authorsobomax <sobomax@FreeBSD.org>2010-05-03 07:32:50 +0000
committersobomax <sobomax@FreeBSD.org>2010-05-03 07:32:50 +0000
commit213eac1f2c265b68ddb7cb7bbcb289f8e054c161 (patch)
tree66ca2ebd19fbb3af659fe11c4a5999a6fb1fc68f /sys/net
parent305cdfaf86fcdb4aa91519ed8096ab361cb28970 (diff)
downloadFreeBSD-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.c4
-rw-r--r--sys/net/if_ef.c2
-rw-r--r--sys/net/if_gif.c2
-rw-r--r--sys/net/if_gre.c2
-rw-r--r--sys/net/if_stf.c2
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);
OpenPOWER on IntegriCloud