mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 14:13:01 -04:00
[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>
This commit is contained in:
parent
2271281362
commit
d83d8461f9
20 changed files with 97 additions and 83 deletions
|
|
@ -408,8 +408,6 @@ struct dccp_ackvec;
|
|||
* @dccps_gar - greatest valid ack number received on a non-Sync; initialized to %dccps_iss
|
||||
* @dccps_timestamp_time - time of latest TIMESTAMP option
|
||||
* @dccps_timestamp_echo - latest timestamp received on a TIMESTAMP option
|
||||
* @dccps_ext_header_len - network protocol overhead (IP/IPv6 options)
|
||||
* @dccps_pmtu_cookie - Last pmtu seen by socket
|
||||
* @dccps_packet_size - Set thru setsockopt
|
||||
* @dccps_role - Role of this sock, one of %dccp_role
|
||||
* @dccps_ndp_count - number of Non Data Packets since last data packet
|
||||
|
|
@ -434,8 +432,6 @@ struct dccp_sock {
|
|||
__u32 dccps_timestamp_echo;
|
||||
__u32 dccps_packet_size;
|
||||
unsigned long dccps_ndp_count;
|
||||
__u16 dccps_ext_header_len;
|
||||
__u32 dccps_pmtu_cookie;
|
||||
__u32 dccps_mss_cache;
|
||||
struct dccp_options dccps_options;
|
||||
struct dccp_ackvec *dccps_hc_rx_ackvec;
|
||||
|
|
|
|||
|
|
@ -155,6 +155,7 @@ struct inet_sock {
|
|||
__u8 mc_ttl; /* Multicasting TTL */
|
||||
__u8 pmtudisc;
|
||||
unsigned recverr : 1,
|
||||
is_icsk : 1, /* inet_connection_sock? */
|
||||
freebind : 1,
|
||||
hdrincl : 1,
|
||||
mc_loop : 1;
|
||||
|
|
|
|||
|
|
@ -238,10 +238,9 @@ struct tcp_sock {
|
|||
__u32 snd_wl1; /* Sequence for window update */
|
||||
__u32 snd_wnd; /* The window we expect to receive */
|
||||
__u32 max_window; /* Maximal window ever seen from peer */
|
||||
__u32 pmtu_cookie; /* Last pmtu seen by socket */
|
||||
__u32 mss_cache; /* Cached effective mss, not including SACKS */
|
||||
__u16 xmit_size_goal; /* Goal for segmenting output packets */
|
||||
__u16 ext_header_len; /* Network protocol overhead (IP/IPv6 options) */
|
||||
/* XXX Two bytes hole, try to pack */
|
||||
|
||||
__u32 window_clamp; /* Maximal window to advertise */
|
||||
__u32 rcv_ssthresh; /* Current window clamp */
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ struct inet_connection_sock_af_ops {
|
|||
* @icsk_timeout: Timeout
|
||||
* @icsk_retransmit_timer: Resend (no ack)
|
||||
* @icsk_rto: Retransmit timeout
|
||||
* @icsk_pmtu_cookie Last pmtu seen by socket
|
||||
* @icsk_ca_ops Pluggable congestion control hook
|
||||
* @icsk_af_ops Operations which are AF_INET{4,6} specific
|
||||
* @icsk_ca_state: Congestion control state
|
||||
|
|
@ -68,6 +69,7 @@ struct inet_connection_sock_af_ops {
|
|||
* @icsk_backoff: Backoff
|
||||
* @icsk_syn_retries: Number of allowed SYN (or equivalent) retries
|
||||
* @icsk_probes_out: unanswered 0 window probes
|
||||
* @icsk_ext_hdr_len: Network protocol overhead (IP/IPv6 options)
|
||||
* @icsk_ack: Delayed ACK control data
|
||||
*/
|
||||
struct inet_connection_sock {
|
||||
|
|
@ -79,15 +81,17 @@ struct inet_connection_sock {
|
|||
struct timer_list icsk_retransmit_timer;
|
||||
struct timer_list icsk_delack_timer;
|
||||
__u32 icsk_rto;
|
||||
__u32 icsk_pmtu_cookie;
|
||||
struct tcp_congestion_ops *icsk_ca_ops;
|
||||
struct inet_connection_sock_af_ops *icsk_af_ops;
|
||||
unsigned int (*icsk_sync_mss)(struct sock *sk, u32 pmtu);
|
||||
__u8 icsk_ca_state;
|
||||
__u8 icsk_retransmits;
|
||||
__u8 icsk_pending;
|
||||
__u8 icsk_backoff;
|
||||
__u8 icsk_syn_retries;
|
||||
__u8 icsk_probes_out;
|
||||
/* 2 BYTES HOLE, TRY TO PACK! */
|
||||
__u16 icsk_ext_hdr_len;
|
||||
struct {
|
||||
__u8 pending; /* ACK is pending */
|
||||
__u8 quick; /* Scheduled number of quick acks */
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@ struct inet_protosw {
|
|||
};
|
||||
#define INET_PROTOSW_REUSE 0x01 /* Are ports automatically reusable? */
|
||||
#define INET_PROTOSW_PERMANENT 0x02 /* Permanent protocols are unremovable. */
|
||||
#define INET_PROTOSW_ICSK 0x04 /* Is this an inet_connection_sock? */
|
||||
|
||||
extern struct net_protocol *inet_protocol_base;
|
||||
extern struct net_protocol *inet_protos[MAX_INET_PROTOS];
|
||||
|
|
|
|||
Loading…
Reference in a new issue