diff options
author | Christoph Paasch <christoph.paasch@uclouvain.be> | 2013-03-17 04:23:34 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-03-17 14:35:13 -0400 |
commit | 1a2c6181c4a1922021b4d7df373bba612c3e5f04 (patch) | |
tree | 1346c9b1db83495a98fbcf95f8e521c67fc55cb9 /net/dccp | |
parent | 94d8f2b133c9ff97105adc1233d1a35e16e1e7a6 (diff) |
tcp: Remove TCPCT
TCPCT uses option-number 253, reserved for experimental use and should
not be used in production environments.
Further, TCPCT does not fully implement RFC 6013.
As a nice side-effect, removing TCPCT increases TCP's performance for
very short flows:
Doing an apache-benchmark with -c 100 -n 100000, sending HTTP-requests
for files of 1KB size.
before this patch:
average (among 7 runs) of 20845.5 Requests/Second
after:
average (among 7 runs) of 21403.6 Requests/Second
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp')
-rw-r--r-- | net/dccp/ipv4.c | 5 | ||||
-rw-r--r-- | net/dccp/ipv6.c | 5 |
2 files changed, 4 insertions, 6 deletions
diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c index 4f9f5eb478f1..ebc54fef85a5 100644 --- a/net/dccp/ipv4.c +++ b/net/dccp/ipv4.c | |||
@@ -500,8 +500,7 @@ static struct dst_entry* dccp_v4_route_skb(struct net *net, struct sock *sk, | |||
500 | return &rt->dst; | 500 | return &rt->dst; |
501 | } | 501 | } |
502 | 502 | ||
503 | static int dccp_v4_send_response(struct sock *sk, struct request_sock *req, | 503 | static int dccp_v4_send_response(struct sock *sk, struct request_sock *req) |
504 | struct request_values *rv_unused) | ||
505 | { | 504 | { |
506 | int err = -1; | 505 | int err = -1; |
507 | struct sk_buff *skb; | 506 | struct sk_buff *skb; |
@@ -658,7 +657,7 @@ int dccp_v4_conn_request(struct sock *sk, struct sk_buff *skb) | |||
658 | dreq->dreq_gss = dreq->dreq_iss; | 657 | dreq->dreq_gss = dreq->dreq_iss; |
659 | dreq->dreq_service = service; | 658 | dreq->dreq_service = service; |
660 | 659 | ||
661 | if (dccp_v4_send_response(sk, req, NULL)) | 660 | if (dccp_v4_send_response(sk, req)) |
662 | goto drop_and_free; | 661 | goto drop_and_free; |
663 | 662 | ||
664 | inet_csk_reqsk_queue_hash_add(sk, req, DCCP_TIMEOUT_INIT); | 663 | inet_csk_reqsk_queue_hash_add(sk, req, DCCP_TIMEOUT_INIT); |
diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c index 6e05981f271e..9c61f9c02fdb 100644 --- a/net/dccp/ipv6.c +++ b/net/dccp/ipv6.c | |||
@@ -213,8 +213,7 @@ out: | |||
213 | } | 213 | } |
214 | 214 | ||
215 | 215 | ||
216 | static int dccp_v6_send_response(struct sock *sk, struct request_sock *req, | 216 | static int dccp_v6_send_response(struct sock *sk, struct request_sock *req) |
217 | struct request_values *rv_unused) | ||
218 | { | 217 | { |
219 | struct inet6_request_sock *ireq6 = inet6_rsk(req); | 218 | struct inet6_request_sock *ireq6 = inet6_rsk(req); |
220 | struct ipv6_pinfo *np = inet6_sk(sk); | 219 | struct ipv6_pinfo *np = inet6_sk(sk); |
@@ -428,7 +427,7 @@ static int dccp_v6_conn_request(struct sock *sk, struct sk_buff *skb) | |||
428 | dreq->dreq_gss = dreq->dreq_iss; | 427 | dreq->dreq_gss = dreq->dreq_iss; |
429 | dreq->dreq_service = service; | 428 | dreq->dreq_service = service; |
430 | 429 | ||
431 | if (dccp_v6_send_response(sk, req, NULL)) | 430 | if (dccp_v6_send_response(sk, req)) |
432 | goto drop_and_free; | 431 | goto drop_and_free; |
433 | 432 | ||
434 | inet6_csk_reqsk_queue_hash_add(sk, req, DCCP_TIMEOUT_INIT); | 433 | inet6_csk_reqsk_queue_hash_add(sk, req, DCCP_TIMEOUT_INIT); |