aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
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/net
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/net')
-rw-r--r--include/net/inet_connection_sock.h6
-rw-r--r--include/net/protocol.h1
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 */
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];