diff options
author | William Allen Simpson <william.allen.simpson@gmail.com> | 2009-12-02 13:07:39 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-12-03 01:07:23 -0500 |
commit | e6b4d11367519bc71729c09d05a126b133c755be (patch) | |
tree | b5d99b115a6ca9564d367b243a826d8b09da237e /include/net | |
parent | e00484023ebe94dce03fdd1270edf3e191c2bc79 (diff) |
TCPCT part 1a: add request_values parameter for sending SYNACK
Add optional function parameters associated with sending SYNACK.
These parameters are not needed after sending SYNACK, and are not
used for retransmission. Avoids extending struct tcp_request_sock,
and avoids allocating kernel memory.
Also affects DCCP as it uses common struct request_sock_ops,
but this parameter is currently reserved for future use.
Signed-off-by: William.Allen.Simpson@gmail.com
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/request_sock.h | 8 | ||||
-rw-r--r-- | include/net/tcp.h | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/include/net/request_sock.h b/include/net/request_sock.h index c7190846e128..c9b50ebd9ce9 100644 --- a/include/net/request_sock.h +++ b/include/net/request_sock.h | |||
@@ -27,13 +27,19 @@ struct sk_buff; | |||
27 | struct dst_entry; | 27 | struct dst_entry; |
28 | struct proto; | 28 | struct proto; |
29 | 29 | ||
30 | /* empty to "strongly type" an otherwise void parameter. | ||
31 | */ | ||
32 | struct request_values { | ||
33 | }; | ||
34 | |||
30 | struct request_sock_ops { | 35 | struct request_sock_ops { |
31 | int family; | 36 | int family; |
32 | int obj_size; | 37 | int obj_size; |
33 | struct kmem_cache *slab; | 38 | struct kmem_cache *slab; |
34 | char *slab_name; | 39 | char *slab_name; |
35 | int (*rtx_syn_ack)(struct sock *sk, | 40 | int (*rtx_syn_ack)(struct sock *sk, |
36 | struct request_sock *req); | 41 | struct request_sock *req, |
42 | struct request_values *rvp); | ||
37 | void (*send_ack)(struct sock *sk, struct sk_buff *skb, | 43 | void (*send_ack)(struct sock *sk, struct sk_buff *skb, |
38 | struct request_sock *req); | 44 | struct request_sock *req); |
39 | void (*send_reset)(struct sock *sk, | 45 | void (*send_reset)(struct sock *sk, |
diff --git a/include/net/tcp.h b/include/net/tcp.h index 325bfcf5c934..ec183fda05d0 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
@@ -440,7 +440,8 @@ extern int tcp_connect(struct sock *sk); | |||
440 | 440 | ||
441 | extern struct sk_buff * tcp_make_synack(struct sock *sk, | 441 | extern struct sk_buff * tcp_make_synack(struct sock *sk, |
442 | struct dst_entry *dst, | 442 | struct dst_entry *dst, |
443 | struct request_sock *req); | 443 | struct request_sock *req, |
444 | struct request_values *rvp); | ||
444 | 445 | ||
445 | extern int tcp_disconnect(struct sock *sk, int flags); | 446 | extern int tcp_disconnect(struct sock *sk, int flags); |
446 | 447 | ||