diff options
author | Arnaldo Carvalho de Melo <acme@mandriva.com> | 2005-12-14 02:26:10 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-01-03 16:10:58 -0500 |
commit | d83d8461f902c672bc1bd8fbc6a94e19f092da97 (patch) | |
tree | 0534c553ab92baa2eb9dbb5bba64f2c4540b1e89 /include/net | |
parent | 22712813620fa8e682dbfb253a60ca0131da1e07 (diff) |
[IP_SOCKGLUE]: Remove most of the tcp specific calls
As DCCP needs to be called in the same spots.
Now we have a member in inet_sock (is_icsk), set at sock creation time from
struct inet_protosw->flags (if INET_PROTOSW_ICSK is set, like for TCP and
DCCP) to see if a struct sock instance is a inet_connection_sock for places
like the ones in ip_sockglue.c (v4 and v6) where we previously were looking if
sk_type was SOCK_STREAM, that is insufficient because we now use the same code
for DCCP, that has sk_type SOCK_DCCP.
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/inet_connection_sock.h | 6 | ||||
-rw-r--r-- | include/net/protocol.h | 1 |
2 files changed, 6 insertions, 1 deletions
diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h index e50e2b890c6d..91888967d3e3 100644 --- a/include/net/inet_connection_sock.h +++ b/include/net/inet_connection_sock.h | |||
@@ -60,6 +60,7 @@ struct inet_connection_sock_af_ops { | |||
60 | * @icsk_timeout: Timeout | 60 | * @icsk_timeout: Timeout |
61 | * @icsk_retransmit_timer: Resend (no ack) | 61 | * @icsk_retransmit_timer: Resend (no ack) |
62 | * @icsk_rto: Retransmit timeout | 62 | * @icsk_rto: Retransmit timeout |
63 | * @icsk_pmtu_cookie Last pmtu seen by socket | ||
63 | * @icsk_ca_ops Pluggable congestion control hook | 64 | * @icsk_ca_ops Pluggable congestion control hook |
64 | * @icsk_af_ops Operations which are AF_INET{4,6} specific | 65 | * @icsk_af_ops Operations which are AF_INET{4,6} specific |
65 | * @icsk_ca_state: Congestion control state | 66 | * @icsk_ca_state: Congestion control state |
@@ -68,6 +69,7 @@ struct inet_connection_sock_af_ops { | |||
68 | * @icsk_backoff: Backoff | 69 | * @icsk_backoff: Backoff |
69 | * @icsk_syn_retries: Number of allowed SYN (or equivalent) retries | 70 | * @icsk_syn_retries: Number of allowed SYN (or equivalent) retries |
70 | * @icsk_probes_out: unanswered 0 window probes | 71 | * @icsk_probes_out: unanswered 0 window probes |
72 | * @icsk_ext_hdr_len: Network protocol overhead (IP/IPv6 options) | ||
71 | * @icsk_ack: Delayed ACK control data | 73 | * @icsk_ack: Delayed ACK control data |
72 | */ | 74 | */ |
73 | struct inet_connection_sock { | 75 | struct inet_connection_sock { |
@@ -79,15 +81,17 @@ struct inet_connection_sock { | |||
79 | struct timer_list icsk_retransmit_timer; | 81 | struct timer_list icsk_retransmit_timer; |
80 | struct timer_list icsk_delack_timer; | 82 | struct timer_list icsk_delack_timer; |
81 | __u32 icsk_rto; | 83 | __u32 icsk_rto; |
84 | __u32 icsk_pmtu_cookie; | ||
82 | struct tcp_congestion_ops *icsk_ca_ops; | 85 | struct tcp_congestion_ops *icsk_ca_ops; |
83 | struct inet_connection_sock_af_ops *icsk_af_ops; | 86 | struct inet_connection_sock_af_ops *icsk_af_ops; |
87 | unsigned int (*icsk_sync_mss)(struct sock *sk, u32 pmtu); | ||
84 | __u8 icsk_ca_state; | 88 | __u8 icsk_ca_state; |
85 | __u8 icsk_retransmits; | 89 | __u8 icsk_retransmits; |
86 | __u8 icsk_pending; | 90 | __u8 icsk_pending; |
87 | __u8 icsk_backoff; | 91 | __u8 icsk_backoff; |
88 | __u8 icsk_syn_retries; | 92 | __u8 icsk_syn_retries; |
89 | __u8 icsk_probes_out; | 93 | __u8 icsk_probes_out; |
90 | /* 2 BYTES HOLE, TRY TO PACK! */ | 94 | __u16 icsk_ext_hdr_len; |
91 | struct { | 95 | struct { |
92 | __u8 pending; /* ACK is pending */ | 96 | __u8 pending; /* ACK is pending */ |
93 | __u8 quick; /* Scheduled number of quick acks */ | 97 | __u8 quick; /* Scheduled number of quick acks */ |
diff --git a/include/net/protocol.h b/include/net/protocol.h index 357691f6a45f..a29cb29647d0 100644 --- a/include/net/protocol.h +++ b/include/net/protocol.h | |||
@@ -76,6 +76,7 @@ struct inet_protosw { | |||
76 | }; | 76 | }; |
77 | #define INET_PROTOSW_REUSE 0x01 /* Are ports automatically reusable? */ | 77 | #define INET_PROTOSW_REUSE 0x01 /* Are ports automatically reusable? */ |
78 | #define INET_PROTOSW_PERMANENT 0x02 /* Permanent protocols are unremovable. */ | 78 | #define INET_PROTOSW_PERMANENT 0x02 /* Permanent protocols are unremovable. */ |
79 | #define INET_PROTOSW_ICSK 0x04 /* Is this an inet_connection_sock? */ | ||
79 | 80 | ||
80 | extern struct net_protocol *inet_protocol_base; | 81 | extern struct net_protocol *inet_protocol_base; |
81 | extern struct net_protocol *inet_protos[MAX_INET_PROTOS]; | 82 | extern struct net_protocol *inet_protos[MAX_INET_PROTOS]; |