if you can tune the ipv4 queue lengths you should be able to tune
the v6 ones too.
Index: sys/netinet6/in6.h
===================================================================
RCS file: /cvs/src/sys/netinet6/in6.h,v
retrieving revision 1.78
diff -u -p -r1.78 in6.h
--- sys/netinet6/in6.h 10 Jan 2015 11:43:37 -0000 1.78
+++ sys/netinet6/in6.h 8 Feb 2015 12:39:37 -0000
@@ -606,7 +606,8 @@ ifatoia6(struct ifaddr *ifa)
#define IPV6CTL_MAXDYNROUTES 48
#define IPV6CTL_DAD_PENDING 49
#define IPV6CTL_MTUDISCTIMEOUT 50
-#define IPV6CTL_MAXID 51
+#define IPV6CTL_IFQUEUE 51
+#define IPV6CTL_MAXID 52
/* New entries should be added here from current IPV6CTL_MAXID value. */
/* to define items, should talk with KAME guys first, for *BSD compatibility */
@@ -663,6 +664,7 @@ ifatoia6(struct ifaddr *ifa)
{ "maxdynroutes", CTLTYPE_INT }, \
{ "dad_pending", CTLTYPE_INT }, \
{ "mtudisctimeout", CTLTYPE_INT }, \
+ { "ifq", CTLTYPE_NODE }, \
}
#define IPV6CTL_VARS { \
Index: sys/netinet6/ip6_input.c
===================================================================
RCS file: /cvs/src/sys/netinet6/ip6_input.c,v
retrieving revision 1.136
diff -u -p -r1.136 ip6_input.c
--- sys/netinet6/ip6_input.c 5 Feb 2015 01:10:57 -0000 1.136
+++ sys/netinet6/ip6_input.c 8 Feb 2015 12:39:37 -0000
@@ -1417,9 +1417,9 @@ ip6_sysctl(int *name, u_int namelen, voi
#endif
int error, s;
- /* All sysctl names at this level are terminal. */
- if (namelen != 1)
- return ENOTDIR;
+ /* Almost all sysctl names at this level are terminal. */
+ if (namelen != 1 && name[0] != IPV6CTL_IFQUEUE)
+ return (ENOTDIR);
switch (name[0]) {
case IPV6CTL_V6ONLY:
@@ -1456,6 +1456,9 @@ ip6_sysctl(int *name, u_int namelen, voi
splx(s);
}
return (error);
+ case IPV6CTL_IFQUEUE:
+ return (sysctl_ifq(name + 1, namelen - 1,
+ oldp, oldlenp, newp, newlen, &ip6intrq));
default:
if (name[0] < IPV6CTL_MAXID)
return (sysctl_int_arr(ipv6ctl_vars, name, namelen,
Index: sbin/sysctl/sysctl.c
===================================================================
RCS file: /cvs/src/sbin/sysctl/sysctl.c,v
retrieving revision 1.208
diff -u -p -r1.208 sysctl.c
--- sbin/sysctl/sysctl.c 16 Jan 2015 06:40:01 -0000 1.208
+++ sbin/sysctl/sysctl.c 8 Feb 2015 12:39:37 -0000
@@ -2129,6 +2138,20 @@ sysctl_inet6(char *string, char **bufpp,
return (-1);
mib[3] = indx;
*typep = lp->list[indx].ctl_type;
+ if (*typep == CTLTYPE_NODE) {
+ int tindx;
+
+ if (*bufpp == NULL) {
+ listall(string, &ifqlist);
+ return(-1);
+ }
+ lp = &ifqlist;
+ if ((tindx = findname(string, "fifth", bufpp, lp)) == -1)
+ return (-1);
+ mib[4] = tindx;
+ *typep = lp->list[tindx].ctl_type;
+ return(5);
+ }
return (4);
}
#endif