aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@mandriva.com>2005-12-14 02:26:10 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-01-03 16:10:58 -0500
commitd83d8461f902c672bc1bd8fbc6a94e19f092da97 (patch)
tree0534c553ab92baa2eb9dbb5bba64f2c4540b1e89 /include
parent22712813620fa8e682dbfb253a60ca0131da1e07 (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')
-rw-r--r--include/linux/dccp.h4
-rw-r--r--include/linux/ip.h1
-rw-r--r--include/linux/tcp.h3
-rw-r--r--include/net/inet_connection_sock.h6
-rw-r--r--include/net/protocol.h1
5 files changed, 8 insertions, 7 deletions
diff --git a/include/linux/dccp.h b/include/linux/dccp.h
index 71fab4311e92..d0bdb499cf8d 100644
--- a/include/linux/dccp.h
+++ b/include/linux/dccp.h
@@ -408,8 +408,6 @@ struct dccp_ackvec;
408 * @dccps_gar - greatest valid ack number received on a non-Sync; initialized to %dccps_iss 408 * @dccps_gar - greatest valid ack number received on a non-Sync; initialized to %dccps_iss
409 * @dccps_timestamp_time - time of latest TIMESTAMP option 409 * @dccps_timestamp_time - time of latest TIMESTAMP option
410 * @dccps_timestamp_echo - latest timestamp received on a TIMESTAMP option 410 * @dccps_timestamp_echo - latest timestamp received on a TIMESTAMP option
411 * @dccps_ext_header_len - network protocol overhead (IP/IPv6 options)
412 * @dccps_pmtu_cookie - Last pmtu seen by socket
413 * @dccps_packet_size - Set thru setsockopt 411 * @dccps_packet_size - Set thru setsockopt
414 * @dccps_role - Role of this sock, one of %dccp_role 412 * @dccps_role - Role of this sock, one of %dccp_role
415 * @dccps_ndp_count - number of Non Data Packets since last data packet 413 * @dccps_ndp_count - number of Non Data Packets since last data packet
@@ -434,8 +432,6 @@ struct dccp_sock {
434 __u32 dccps_timestamp_echo; 432 __u32 dccps_timestamp_echo;
435 __u32 dccps_packet_size; 433 __u32 dccps_packet_size;
436 unsigned long dccps_ndp_count; 434 unsigned long dccps_ndp_count;
437 __u16 dccps_ext_header_len;
438 __u32 dccps_pmtu_cookie;
439 __u32 dccps_mss_cache; 435 __u32 dccps_mss_cache;
440 struct dccp_options dccps_options; 436 struct dccp_options dccps_options;
441 struct dccp_ackvec *dccps_hc_rx_ackvec; 437 struct dccp_ackvec *dccps_hc_rx_ackvec;
diff --git a/include/linux/ip.h b/include/linux/ip.h
index 5a560daeade5..6ccc596c19c8 100644
--- a/include/linux/ip.h
+++ b/include/linux/ip.h
@@ -155,6 +155,7 @@ struct inet_sock {
155 __u8 mc_ttl; /* Multicasting TTL */ 155 __u8 mc_ttl; /* Multicasting TTL */
156 __u8 pmtudisc; 156 __u8 pmtudisc;
157 unsigned recverr : 1, 157 unsigned recverr : 1,
158 is_icsk : 1, /* inet_connection_sock? */
158 freebind : 1, 159 freebind : 1,
159 hdrincl : 1, 160 hdrincl : 1,
160 mc_loop : 1; 161 mc_loop : 1;
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index da38eea1994b..f2bb2396853f 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -238,10 +238,9 @@ struct tcp_sock {
238 __u32 snd_wl1; /* Sequence for window update */ 238 __u32 snd_wl1; /* Sequence for window update */
239 __u32 snd_wnd; /* The window we expect to receive */ 239 __u32 snd_wnd; /* The window we expect to receive */
240 __u32 max_window; /* Maximal window ever seen from peer */ 240 __u32 max_window; /* Maximal window ever seen from peer */
241 __u32 pmtu_cookie; /* Last pmtu seen by socket */
242 __u32 mss_cache; /* Cached effective mss, not including SACKS */ 241 __u32 mss_cache; /* Cached effective mss, not including SACKS */
243 __u16 xmit_size_goal; /* Goal for segmenting output packets */ 242 __u16 xmit_size_goal; /* Goal for segmenting output packets */
244 __u16 ext_header_len; /* Network protocol overhead (IP/IPv6 options) */ 243 /* XXX Two bytes hole, try to pack */
245 244
246 __u32 window_clamp; /* Maximal window to advertise */ 245 __u32 window_clamp; /* Maximal window to advertise */
247 __u32 rcv_ssthresh; /* Current window clamp */ 246 __u32 rcv_ssthresh; /* Current window clamp */
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 */
73struct inet_connection_sock { 75struct 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
80extern struct net_protocol *inet_protocol_base; 81extern struct net_protocol *inet_protocol_base;
81extern struct net_protocol *inet_protos[MAX_INET_PROTOS]; 82extern struct net_protocol *inet_protos[MAX_INET_PROTOS];