aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_lro.c
diff options
context:
space:
mode:
authorSepherosa Ziehau <sephe@FreeBSD.org>2016-08-16 06:40:27 +0000
committerSepherosa Ziehau <sephe@FreeBSD.org>2016-08-16 06:40:27 +0000
commit8452c1b345ae98bf2fbd249a81917d64d3ce8531 (patch)
tree1d968d8b7c63b72134226545de1924960d9e5a22 /sys/netinet/tcp_lro.c
parent5968c001542bec9d0e873710c35a72f6decfe76c (diff)
downloadsrc-8452c1b345ae98bf2fbd249a81917d64d3ce8531.tar.gz
src-8452c1b345ae98bf2fbd249a81917d64d3ce8531.zip
tcp/lro: Make # of LRO entries tunable
Reviewed by: hps, gallatin Obtained from: rrs, gallatin MFC after: 2 weeks Sponsored by: Netflix (rrs, gallatin), Microsoft (sephe) Differential Revision: https://reviews.freebsd.org/D7499
Notes
Notes: svn path=/head/; revision=304202
Diffstat (limited to 'sys/netinet/tcp_lro.c')
-rw-r--r--sys/netinet/tcp_lro.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/netinet/tcp_lro.c b/sys/netinet/tcp_lro.c
index c09b8b9aa1d2..01d5c0adeae5 100644
--- a/sys/netinet/tcp_lro.c
+++ b/sys/netinet/tcp_lro.c
@@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$");
#include <sys/malloc.h>
#include <sys/mbuf.h>
#include <sys/socket.h>
+#include <sys/sysctl.h>
#include <net/if.h>
#include <net/if_var.h>
@@ -55,6 +56,7 @@ __FBSDID("$FreeBSD$");
#include <netinet/ip_var.h>
#include <netinet/tcp.h>
#include <netinet/tcp_lro.h>
+#include <netinet/tcp_var.h>
#include <netinet6/ip6_var.h>
@@ -71,6 +73,14 @@ static void tcp_lro_rx_done(struct lro_ctrl *lc);
static int tcp_lro_rx2(struct lro_ctrl *lc, struct mbuf *m,
uint32_t csum, int use_hash);
+SYSCTL_NODE(_net_inet_tcp, OID_AUTO, lro, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
+ "TCP LRO");
+
+static unsigned tcp_lro_entries = TCP_LRO_ENTRIES;
+SYSCTL_UINT(_net_inet_tcp_lro, OID_AUTO, entries,
+ CTLFLAG_RDTUN | CTLFLAG_MPSAFE, &tcp_lro_entries, 0,
+ "default number of LRO entries");
+
static __inline void
tcp_lro_active_insert(struct lro_ctrl *lc, struct lro_head *bucket,
struct lro_entry *le)
@@ -91,7 +101,7 @@ tcp_lro_active_remove(struct lro_entry *le)
int
tcp_lro_init(struct lro_ctrl *lc)
{
- return (tcp_lro_init_args(lc, NULL, TCP_LRO_ENTRIES, 0));
+ return (tcp_lro_init_args(lc, NULL, tcp_lro_entries, 0));
}
int