diff options
author | Sepherosa Ziehau <sephe@FreeBSD.org> | 2016-08-16 06:40:27 +0000 |
---|---|---|
committer | Sepherosa Ziehau <sephe@FreeBSD.org> | 2016-08-16 06:40:27 +0000 |
commit | 8452c1b345ae98bf2fbd249a81917d64d3ce8531 (patch) | |
tree | 1d968d8b7c63b72134226545de1924960d9e5a22 /sys/netinet/tcp_lro.c | |
parent | 5968c001542bec9d0e873710c35a72f6decfe76c (diff) | |
download | src-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.c | 12 |
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 |