summaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_metrics.c
Commit message (Collapse)AuthorAgeFilesLines
...
* ipv6: add ipv6_addr_hash() helperEric Dumazet2012-07-181-12/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Introduce ipv6_addr_hash() helper doing a XOR on all bits of an IPv6 address, with an optimized x86_64 version. Use it in flow dissector, as suggested by Andrew McGregor, to reduce hash collision probabilities in fq_codel (and other users of flow dissector) Use it in ip6_tunnel.c and use more bit shuffling, as suggested by David Laight, as existing hash was ignoring most of them. Use it in sunrpc and use more bit shuffling, using hash_32(). Use it in net/ipv6/addrconf.c, using hash_32() as well. As a cleanup, use it in net/ipv4/tcp_metrics.c Signed-off-by: Eric Dumazet <edumazet@google.com> Reported-by: Andrew McGregor <andrewmcgr@gmail.com> Cc: Dave Taht <dave.taht@gmail.com> Cc: Tom Herbert <therbert@google.com> Cc: David Laight <David.Laight@ACULAB.COM> Cc: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* tcp: Fix out of bounds access to tcpm_valsAlexander Duyck2012-07-111-1/+1
| | | | | | | | | | The recent patch "tcp: Maintain dynamic metrics in local cache." introduced an out of bounds access due to what appears to be a typo. I believe this change should resolve the issue by replacing the access to RTAX_CWND with TCP_METRIC_CWND. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* tcp: Move timestamps from inetpeer to metrics cache.David S. Miller2012-07-101-5/+131
| | | | | | With help from Lin Ming. Signed-off-by: David S. Miller <davem@davemloft.net>
* tcp: Maintain dynamic metrics in local cache.David S. Miller2012-07-101-93/+462
| | | | | | | | | | | | | | | | | | Maintain a local hash table of TCP dynamic metrics blobs. Computed TCP metrics are no longer maintained in the route metrics. The table uses RCU and an extremely simple hash so that it has low latency and low overhead. A simple hash is legitimate because we only make metrics blobs for fully established connections. Some tweaking of the default hash table sizes, metric timeouts, and the hash chain length limit certainly could use some tweaking. But the basic design seems sound. With help from Eric Dumazet and Joe Perches. Signed-off-by: David S. Miller <davem@davemloft.net>
* tcp: Abstract back handling peer aliveness test into helper function.David S. Miller2012-07-101-0/+10
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* tcp: Move dynamnic metrics handling into seperate file.David S. Miller2012-07-101-0/+192
Signed-off-by: David S. Miller <davem@davemloft.net>
OpenPOWER on IntegriCloud