diff options
Diffstat (limited to 'include/net/sctp/structs.h')
| -rw-r--r-- | include/net/sctp/structs.h | 85 | 
1 files changed, 38 insertions, 47 deletions
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index 2174d8da077..f38588bf346 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h @@ -19,9 +19,8 @@   * See the GNU General Public License for more details.   *   * You should have received a copy of the GNU General Public License - * along with GNU CC; see the file COPYING.  If not, write to - * the Free Software Foundation, 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * along with GNU CC; see the file COPYING.  If not, see + * <http://www.gnu.org/licenses/>.   *   * Please send any bug reports or fixes you make to the   * email addresses: @@ -629,6 +628,7 @@ struct sctp_chunk {  #define SCTP_NEED_FRTX 0x1  #define SCTP_DONT_FRTX 0x2  	__u16	rtt_in_progress:1,	/* This chunk used for RTT calc? */ +		resent:1,		/* Has this chunk ever been resent. */  		has_tsn:1,		/* Does this chunk have a TSN yet? */  		has_ssn:1,		/* Does this chunk have a SSN yet? */  		singleton:1,		/* Only chunk in the packet? */ @@ -649,7 +649,6 @@ int sctp_user_addto_chunk(struct sctp_chunk *chunk, int off, int len,  			  struct iovec *data);  void sctp_chunk_free(struct sctp_chunk *);  void  *sctp_addto_chunk(struct sctp_chunk *, int len, const void *data); -void  *sctp_addto_chunk_fixed(struct sctp_chunk *, int len, const void *data);  struct sctp_chunk *sctp_chunkify(struct sk_buff *,  				 const struct sctp_association *,  				 struct sock *); @@ -839,10 +838,10 @@ struct sctp_transport {  	unsigned long sackdelay;  	__u32 sackfreq; -	/* When was the last time (in jiffies) that we heard from this -	 * transport?  We use this to pick new active and retran paths. +	/* When was the last time that we heard from this transport? We use +	 * this to pick new active and retran paths.  	 */ -	unsigned long last_time_heard; +	ktime_t last_time_heard;  	/* Last time(in jiffies) when cwnd is reduced due to the congestion  	 * indication based on ECNE chunk. @@ -1045,9 +1044,6 @@ struct sctp_outq {  	/* Corked? */  	char cork; - -	/* Is this structure empty?  */ -	char empty;  };  void sctp_outq_init(struct sctp_association *, struct sctp_outq *); @@ -1245,6 +1241,7 @@ struct sctp_endpoint {  	/* SCTP-AUTH: endpoint shared keys */  	struct list_head endpoint_shared_keys;  	__u16 active_key_id; +	__u8  auth_enable;  };  /* Recover the outter endpoint structure. */ @@ -1273,7 +1270,8 @@ struct sctp_endpoint *sctp_endpoint_is_match(struct sctp_endpoint *,  int sctp_has_association(struct net *net, const union sctp_addr *laddr,  			 const union sctp_addr *paddr); -int sctp_verify_init(struct net *net, const struct sctp_association *asoc, +int sctp_verify_init(struct net *net, const struct sctp_endpoint *ep, +		     const struct sctp_association *asoc,  		     sctp_cid_t, sctp_init_chunk_t *peer_init,  		     struct sctp_chunk *chunk, struct sctp_chunk **err_chunk);  int sctp_process_init(struct sctp_association *, struct sctp_chunk *chunk, @@ -1360,12 +1358,6 @@ struct sctp_association {  	/* This is all information about our peer.  */  	struct { -		/* rwnd -		 * -		 * Peer Rwnd   : Current calculated value of the peer's rwnd. -		 */ -		__u32 rwnd; -  		/* transport_addr_list  		 *  		 * Peer	       : A list of SCTP transport addresses that the @@ -1383,6 +1375,12 @@ struct sctp_association {  		 */  		struct list_head transport_addr_list; +		/* rwnd +		 * +		 * Peer Rwnd   : Current calculated value of the peer's rwnd. +		 */ +		__u32 rwnd; +  		/* transport_count  		 *  		 * Peer        : A count of the number of peer addresses @@ -1465,6 +1463,20 @@ struct sctp_association {  		 */  		struct sctp_tsnmap tsn_map; +		/* This mask is used to disable sending the ASCONF chunk +		 * with specified parameter to peer. +		 */ +		__be16 addip_disabled_mask; + +		/* These are capabilities which our peer advertised.  */ +		__u8	ecn_capable:1,      /* Can peer do ECN? */ +			ipv4_address:1,     /* Peer understands IPv4 addresses? */ +			ipv6_address:1,     /* Peer understands IPv6 addresses? */ +			hostname_address:1, /* Peer understands DNS addresses? */ +			asconf_capable:1,   /* Does peer support ADDIP? */ +			prsctp_capable:1,   /* Can peer do PR-SCTP? */ +			auth_capable:1;     /* Is peer doing SCTP-AUTH? */ +  		/* Ack State   : This flag indicates if the next received  		 *             : packet is to be responded to with a  		 *             : SACK. This is initializedto 0.  When a packet @@ -1479,25 +1491,11 @@ struct sctp_association {  		__u32	sack_cnt;  		__u32	sack_generation; -		/* These are capabilities which our peer advertised.  */ -		__u8	ecn_capable:1,	    /* Can peer do ECN? */ -			ipv4_address:1,	    /* Peer understands IPv4 addresses? */ -			ipv6_address:1,	    /* Peer understands IPv6 addresses? */ -			hostname_address:1, /* Peer understands DNS addresses? */ -			asconf_capable:1,   /* Does peer support ADDIP? */ -			prsctp_capable:1,   /* Can peer do PR-SCTP? */ -			auth_capable:1;	    /* Is peer doing SCTP-AUTH? */ -  		__u32   adaptation_ind;	 /* Adaptation Code point. */ -		/* This mask is used to disable sending the ASCONF chunk -		 * with specified parameter to peer. -		 */ -		__be16 addip_disabled_mask; -  		struct sctp_inithdr_host i; -		int cookie_len;  		void *cookie; +		int cookie_len;  		/* ADDIP Section 4.2 Upon reception of an ASCONF Chunk.  		 * C1) ... "Peer-Serial-Number'. This value MUST be initialized to the @@ -1529,14 +1527,14 @@ struct sctp_association {  	 */  	sctp_state_t state; -	/* The cookie life I award for any cookie.  */ -	ktime_t cookie_life; -  	/* Overall     : The overall association error count.  	 * Error Count : [Clear this any time I get something.]  	 */  	int overall_error_count; +	/* The cookie life I award for any cookie.  */ +	ktime_t cookie_life; +  	/* These are the association's initial, max, and min RTO values.  	 * These values will be initialized by system defaults, but can  	 * be modified via the SCTP_RTOINFO socket option. @@ -1591,10 +1589,9 @@ struct sctp_association {  	/* Flags controlling Heartbeat, SACK delay, and Path MTU Discovery. */  	__u32 param_flags; +	__u32 sackfreq;  	/* SACK delay timeout */  	unsigned long sackdelay; -	__u32 sackfreq; -  	unsigned long timeouts[SCTP_NUM_TIMEOUT_TYPES];  	struct timer_list timers[SCTP_NUM_TIMEOUT_TYPES]; @@ -1602,12 +1599,12 @@ struct sctp_association {  	/* Transport to which SHUTDOWN chunk was last sent.  */  	struct sctp_transport *shutdown_last_sent_to; -	/* How many times have we resent a SHUTDOWN */ -	int shutdown_retries; -  	/* Transport to which INIT chunk was last sent.  */  	struct sctp_transport *init_last_sent_to; +	/* How many times have we resent a SHUTDOWN */ +	int shutdown_retries; +  	/* Next TSN    : The next TSN number to be assigned to a new  	 *	       : DATA chunk.  This is sent in the INIT or INIT  	 *	       : ACK chunk to the peer and incremented each @@ -1725,12 +1722,6 @@ struct sctp_association {  	/* How many duplicated TSNs have we seen?  */  	int numduptsns; -	/* Number of seconds of idle time before an association is closed. -	 * In the association context, this is really used as a boolean -	 * since the real timeout is stored in the timeouts array -	 */ -	__u32 autoclose; -  	/* These are to support  	 * "SCTP Extensions for Dynamic Reconfiguration of IP Addresses  	 *  and Enforcement of Flow and Message Limits" @@ -1818,8 +1809,8 @@ struct sctp_association {  	 * after reaching 4294967295.  	 */  	__u32 addip_serial; -	union sctp_addr *asconf_addr_del_pending;  	int src_out_of_asoc_ok; +	union sctp_addr *asconf_addr_del_pending;  	struct sctp_transport *new_transport;  	/* SCTP AUTH: list of the endpoint shared keys.  These  | 
