diff options
Diffstat (limited to 'include/net')
| -rw-r--r-- | include/net/llc_pdu.h | 31 | ||||
| -rw-r--r-- | include/net/sctp/structs.h | 5 | ||||
| -rw-r--r-- | include/net/tcp.h | 1 | 
3 files changed, 26 insertions, 11 deletions
diff --git a/include/net/llc_pdu.h b/include/net/llc_pdu.h index c0f0a13ed818..49aa79c7b278 100644 --- a/include/net/llc_pdu.h +++ b/include/net/llc_pdu.h @@ -15,9 +15,11 @@  #include <linux/if_ether.h>  /* Lengths of frame formats */ -#define LLC_PDU_LEN_I	4       /* header and 2 control bytes */ -#define LLC_PDU_LEN_S	4 -#define LLC_PDU_LEN_U	3       /* header and 1 control byte */ +#define LLC_PDU_LEN_I		4       /* header and 2 control bytes */ +#define LLC_PDU_LEN_S		4 +#define LLC_PDU_LEN_U		3       /* header and 1 control byte */ +/* header and 1 control byte and XID info */ +#define LLC_PDU_LEN_U_XID	(LLC_PDU_LEN_U + sizeof(struct llc_xid_info))  /* Known SAP addresses */  #define LLC_GLOBAL_SAP	0xFF  #define LLC_NULL_SAP	0x00	/* not network-layer visible */ @@ -50,9 +52,10 @@  #define LLC_PDU_TYPE_U_MASK    0x03	/* 8-bit control field */  #define LLC_PDU_TYPE_MASK      0x03 -#define LLC_PDU_TYPE_I	0	/* first bit */ -#define LLC_PDU_TYPE_S	1	/* first two bits */ -#define LLC_PDU_TYPE_U	3	/* first two bits */ +#define LLC_PDU_TYPE_I		0	/* first bit */ +#define LLC_PDU_TYPE_S		1	/* first two bits */ +#define LLC_PDU_TYPE_U		3	/* first two bits */ +#define LLC_PDU_TYPE_U_XID	4	/* private type for detecting XID commands */  #define LLC_PDU_TYPE_IS_I(pdu) \  	((!(pdu->ctrl_1 & LLC_PDU_TYPE_I_MASK)) ? 1 : 0) @@ -230,9 +233,18 @@ static inline struct llc_pdu_un *llc_pdu_un_hdr(struct sk_buff *skb)  static inline void llc_pdu_header_init(struct sk_buff *skb, u8 type,  				       u8 ssap, u8 dsap, u8 cr)  { -	const int hlen = type == LLC_PDU_TYPE_U ? 3 : 4; +	int hlen = 4; /* default value for I and S types */  	struct llc_pdu_un *pdu; +	switch (type) { +	case LLC_PDU_TYPE_U: +		hlen = 3; +		break; +	case LLC_PDU_TYPE_U_XID: +		hlen = 6; +		break; +	} +  	skb_push(skb, hlen);  	skb_reset_network_header(skb);  	pdu = llc_pdu_un_hdr(skb); @@ -374,7 +386,10 @@ static inline void llc_pdu_init_as_xid_cmd(struct sk_buff *skb,  	xid_info->fmt_id = LLC_XID_FMT_ID;	/* 0x81 */  	xid_info->type	 = svcs_supported;  	xid_info->rw	 = rx_window << 1;	/* size of receive window */ -	skb_put(skb, sizeof(struct llc_xid_info)); + +	/* no need to push/put since llc_pdu_header_init() has already +	 * pushed 3 + 3 bytes +	 */  }  /** diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index 32fc4a309df5..651bba654d77 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h @@ -984,6 +984,7 @@ struct sctp_transport {  	} cacc;  	struct { +		__u32 last_rtx_chunks;  		__u16 pmtu;  		__u16 probe_size;  		__u16 probe_high; @@ -1024,8 +1025,8 @@ bool sctp_transport_update_pmtu(struct sctp_transport *t, u32 pmtu);  void sctp_transport_immediate_rtx(struct sctp_transport *);  void sctp_transport_dst_release(struct sctp_transport *t);  void sctp_transport_dst_confirm(struct sctp_transport *t); -void sctp_transport_pl_send(struct sctp_transport *t); -void sctp_transport_pl_recv(struct sctp_transport *t); +bool sctp_transport_pl_send(struct sctp_transport *t); +bool sctp_transport_pl_recv(struct sctp_transport *t);  /* This is the structure we use to queue packets as they come into diff --git a/include/net/tcp.h b/include/net/tcp.h index 17df9b047ee4..784d5c3ef1c5 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -1709,7 +1709,6 @@ struct tcp_fastopen_context {  	struct rcu_head	rcu;  }; -extern unsigned int sysctl_tcp_fastopen_blackhole_timeout;  void tcp_fastopen_active_disable(struct sock *sk);  bool tcp_fastopen_active_should_disable(struct sock *sk);  void tcp_fastopen_active_disable_ofo_check(struct sock *sk);  | 
