Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bce94327 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'pending' of master.kernel.org:/pub/scm/linux/kernel/git/vxy/lksctp-dev

parents 91cf45f0 9abed245
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -103,6 +103,7 @@ typedef enum {
	SCTP_CMD_ASSOC_CHANGE,	 /* generate and send assoc_change event */
	SCTP_CMD_ASSOC_CHANGE,	 /* generate and send assoc_change event */
	SCTP_CMD_ADAPTATION_IND, /* generate and send adaptation event */
	SCTP_CMD_ADAPTATION_IND, /* generate and send adaptation event */
	SCTP_CMD_ASSOC_SHKEY,    /* generate the association shared keys */
	SCTP_CMD_ASSOC_SHKEY,    /* generate the association shared keys */
	SCTP_CMD_T1_RETRAN,	 /* Mark for retransmission after T1 timeout  */
	SCTP_CMD_LAST
	SCTP_CMD_LAST
} sctp_verb_t;
} sctp_verb_t;


+3 −0
Original line number Original line Diff line number Diff line
@@ -186,6 +186,8 @@ typedef enum {
	SCTP_IERROR_AUTH_BAD_HMAC,
	SCTP_IERROR_AUTH_BAD_HMAC,
	SCTP_IERROR_AUTH_BAD_KEYID,
	SCTP_IERROR_AUTH_BAD_KEYID,
	SCTP_IERROR_PROTO_VIOLATION,
	SCTP_IERROR_PROTO_VIOLATION,
	SCTP_IERROR_ERROR,
	SCTP_IERROR_ABORT,
} sctp_ierror_t;
} sctp_ierror_t;




@@ -407,6 +409,7 @@ typedef enum {
	SCTP_RTXR_T3_RTX,
	SCTP_RTXR_T3_RTX,
	SCTP_RTXR_FAST_RTX,
	SCTP_RTXR_FAST_RTX,
	SCTP_RTXR_PMTUD,
	SCTP_RTXR_PMTUD,
	SCTP_RTXR_T1_RTX,
} sctp_retransmit_reason_t;
} sctp_retransmit_reason_t;


/* Reasons to lower cwnd. */
/* Reasons to lower cwnd. */
+4 −1
Original line number Original line Diff line number Diff line
@@ -65,7 +65,6 @@




#ifdef TEST_FRAME
#ifdef TEST_FRAME
#undef CONFIG_PROC_FS
#undef CONFIG_SCTP_DBG_OBJCNT
#undef CONFIG_SCTP_DBG_OBJCNT
#undef CONFIG_SYSCTL
#undef CONFIG_SYSCTL
#endif /* TEST_FRAME */
#endif /* TEST_FRAME */
@@ -267,6 +266,7 @@ enum
	SCTP_MIB_T5_SHUTDOWN_GUARD_EXPIREDS,
	SCTP_MIB_T5_SHUTDOWN_GUARD_EXPIREDS,
	SCTP_MIB_DELAY_SACK_EXPIREDS,
	SCTP_MIB_DELAY_SACK_EXPIREDS,
	SCTP_MIB_AUTOCLOSE_EXPIREDS,
	SCTP_MIB_AUTOCLOSE_EXPIREDS,
	SCTP_MIB_T1_RETRANSMITS,
	SCTP_MIB_T3_RETRANSMITS,
	SCTP_MIB_T3_RETRANSMITS,
	SCTP_MIB_PMTUD_RETRANSMITS,
	SCTP_MIB_PMTUD_RETRANSMITS,
	SCTP_MIB_FAST_RETRANSMITS,
	SCTP_MIB_FAST_RETRANSMITS,
@@ -664,6 +664,9 @@ static inline int sctp_vtag_hashfn(__u16 lport, __u16 rport, __u32 vtag)
	return (h & (sctp_assoc_hashsize-1));
	return (h & (sctp_assoc_hashsize-1));
}
}


#define sctp_for_each_hentry(epb, node, head) \
	hlist_for_each_entry(epb, node, head, node)

/* Is a socket of this style? */
/* Is a socket of this style? */
#define sctp_style(sk, style) __sctp_style((sk), (SCTP_SOCKET_##style))
#define sctp_style(sk, style) __sctp_style((sk), (SCTP_SOCKET_##style))
static inline int __sctp_style(const struct sock *sk, sctp_socket_type_t style)
static inline int __sctp_style(const struct sock *sk, sctp_socket_type_t style)
+10 −12
Original line number Original line Diff line number Diff line
@@ -100,20 +100,19 @@ struct crypto_hash;
struct sctp_bind_bucket {
struct sctp_bind_bucket {
	unsigned short	port;
	unsigned short	port;
	unsigned short	fastreuse;
	unsigned short	fastreuse;
	struct sctp_bind_bucket *next;
	struct hlist_node	node;
	struct sctp_bind_bucket **pprev;
	struct hlist_head	owner;
	struct hlist_head	owner;
};
};


struct sctp_bind_hashbucket {
struct sctp_bind_hashbucket {
	spinlock_t	lock;
	spinlock_t	lock;
	struct sctp_bind_bucket	*chain;
	struct hlist_head	chain;
};
};


/* Used for hashing all associations.  */
/* Used for hashing all associations.  */
struct sctp_hashbucket {
struct sctp_hashbucket {
	rwlock_t	lock;
	rwlock_t	lock;
	struct sctp_ep_common  *chain;
	struct hlist_head	chain;
} __attribute__((__aligned__(8)));
} __attribute__((__aligned__(8)));




@@ -212,6 +211,7 @@ extern struct sctp_globals {
	
	
	/* Flag to indicate if addip is enabled. */
	/* Flag to indicate if addip is enabled. */
	int addip_enable;
	int addip_enable;
	int addip_noauth_enable;


	/* Flag to indicate if PR-SCTP is enabled. */
	/* Flag to indicate if PR-SCTP is enabled. */
	int prsctp_enable;
	int prsctp_enable;
@@ -249,6 +249,7 @@ extern struct sctp_globals {
#define sctp_local_addr_list		(sctp_globals.local_addr_list)
#define sctp_local_addr_list		(sctp_globals.local_addr_list)
#define sctp_local_addr_lock		(sctp_globals.addr_list_lock)
#define sctp_local_addr_lock		(sctp_globals.addr_list_lock)
#define sctp_addip_enable		(sctp_globals.addip_enable)
#define sctp_addip_enable		(sctp_globals.addip_enable)
#define sctp_addip_noauth		(sctp_globals.addip_noauth_enable)
#define sctp_prsctp_enable		(sctp_globals.prsctp_enable)
#define sctp_prsctp_enable		(sctp_globals.prsctp_enable)
#define sctp_auth_enable		(sctp_globals.auth_enable)
#define sctp_auth_enable		(sctp_globals.auth_enable)


@@ -873,10 +874,11 @@ struct sctp_transport {
	 * address list derived from the INIT or INIT ACK chunk, a
	 * address list derived from the INIT or INIT ACK chunk, a
	 * number of data elements needs to be maintained including:
	 * number of data elements needs to be maintained including:
	 */
	 */
	__u32 rtt;		/* This is the most recent RTT.	 */

	/* RTO	       : The current retransmission timeout value.  */
	/* RTO	       : The current retransmission timeout value.  */
	unsigned long rto;
	unsigned long rto;
	unsigned long last_rto;

	__u32 rtt;		/* This is the most recent RTT.	 */


	/* RTTVAR      : The current RTT variation.  */
	/* RTTVAR      : The current RTT variation.  */
	__u32 rttvar;
	__u32 rttvar;
@@ -1184,9 +1186,7 @@ int sctp_bind_addr_copy(struct sctp_bind_addr *dest,
			int flags);
			int flags);
int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *,
int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *,
		       __u8 use_as_src, gfp_t gfp);
		       __u8 use_as_src, gfp_t gfp);
int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *,
int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *);
			void fastcall (*rcu_call)(struct rcu_head *,
					  void (*func)(struct rcu_head *)));
int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *,
int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *,
			 struct sctp_sock *);
			 struct sctp_sock *);
union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr	*bp,
union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr	*bp,
@@ -1229,8 +1229,7 @@ typedef enum {


struct sctp_ep_common {
struct sctp_ep_common {
	/* Fields to help us manage our entries in the hash tables. */
	/* Fields to help us manage our entries in the hash tables. */
	struct sctp_ep_common *next;
	struct hlist_node node;
	struct sctp_ep_common **pprev;
	int hashent;
	int hashent;


	/* Runtime type information.  What kind of endpoint is this? */
	/* Runtime type information.  What kind of endpoint is this? */
@@ -1541,7 +1540,6 @@ struct sctp_association {
		__u8    asconf_capable;  /* Does peer support ADDIP? */
		__u8    asconf_capable;  /* Does peer support ADDIP? */
		__u8    prsctp_capable;  /* Can peer do PR-SCTP? */
		__u8    prsctp_capable;  /* Can peer do PR-SCTP? */
		__u8	auth_capable;	 /* Is peer doing SCTP-AUTH? */
		__u8	auth_capable;	 /* Is peer doing SCTP-AUTH? */
		__u8	addip_capable;	 /* Can peer do ADD-IP */


		__u32   adaptation_ind;	 /* Adaptation Code point. */
		__u32   adaptation_ind;	 /* Adaptation Code point. */


+7 −3
Original line number Original line Diff line number Diff line
@@ -262,9 +262,13 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
	 */
	 */
	asoc->peer.sack_needed = 1;
	asoc->peer.sack_needed = 1;


	/* Assume that the peer recongizes ASCONF until reported otherwise
	/* Assume that the peer will tell us if he recognizes ASCONF
	 * via an ERROR chunk.
	 * as part of INIT exchange.
	 * The sctp_addip_noauth option is there for backward compatibilty
	 * and will revert old behavior.
	 */
	 */
	asoc->peer.asconf_capable = 0;
	if (sctp_addip_noauth)
		asoc->peer.asconf_capable = 1;
		asoc->peer.asconf_capable = 1;


	/* Create an input queue.  */
	/* Create an input queue.  */
Loading