asoc              731 include/linux/sctp.h 	struct sctp_association *asoc;
asoc               73 include/net/sctp/auth.h int sctp_auth_asoc_init_active_key(struct sctp_association *asoc, gfp_t gfp);
asoc               75 include/net/sctp/auth.h 				const struct sctp_association *asoc,
asoc               78 include/net/sctp/auth.h 				struct sctp_association *asoc,
asoc               83 include/net/sctp/auth.h struct sctp_hmac *sctp_auth_asoc_get_hmac(const struct sctp_association *asoc);
asoc               84 include/net/sctp/auth.h void sctp_auth_asoc_set_default_hmac(struct sctp_association *asoc,
asoc               86 include/net/sctp/auth.h int sctp_auth_asoc_verify_hmac_id(const struct sctp_association *asoc,
asoc               89 include/net/sctp/auth.h 		       const struct sctp_association *asoc);
asoc               91 include/net/sctp/auth.h 		       const struct sctp_association *asoc);
asoc               92 include/net/sctp/auth.h void sctp_auth_calculate_hmac(const struct sctp_association *asoc,
asoc              102 include/net/sctp/auth.h int sctp_auth_set_key(struct sctp_endpoint *ep, struct sctp_association *asoc,
asoc              105 include/net/sctp/auth.h 			     struct sctp_association *asoc, __u16 key_id);
asoc              107 include/net/sctp/auth.h 			 struct sctp_association *asoc, __u16 key_id);
asoc              109 include/net/sctp/auth.h 			   struct sctp_association *asoc, __u16 key_id);
asoc              117 include/net/sctp/command.h 	struct sctp_association *asoc;
asoc              158 include/net/sctp/command.h SCTP_ARG_CONSTRUCTOR(ASOC,	struct sctp_association *, asoc)
asoc              101 include/net/sctp/sctp.h 		    struct sctp_association *asoc);
asoc              120 include/net/sctp/sctp.h int sctp_get_sctp_info(struct sock *sk, struct sctp_association *asoc,
asoc              132 include/net/sctp/sctp.h int sctp_primitive_RECONF(struct net *net, struct sctp_association *asoc,
asoc              151 include/net/sctp/sctp.h 				 struct sctp_association *asoc,
asoc              185 include/net/sctp/sctp.h int sctp_send_reset_streams(struct sctp_association *asoc,
asoc              187 include/net/sctp/sctp.h int sctp_send_reset_assoc(struct sctp_association *asoc);
asoc              188 include/net/sctp/sctp.h int sctp_send_add_streams(struct sctp_association *asoc,
asoc              258 include/net/sctp/sctp.h static inline void sctp_max_rto(struct sctp_association *asoc,
asoc              261 include/net/sctp/sctp.h 	if (asoc->stats.max_obs_rto < (__u64)trans->rto) {
asoc              262 include/net/sctp/sctp.h 		asoc->stats.max_obs_rto = trans->rto;
asoc              263 include/net/sctp/sctp.h 		memset(&asoc->stats.obs_rto_ipaddr, 0,
asoc              265 include/net/sctp/sctp.h 		memcpy(&asoc->stats.obs_rto_ipaddr, &trans->ipaddr,
asoc              348 include/net/sctp/sctp.h static inline sctp_assoc_t sctp_assoc2id(const struct sctp_association *asoc)
asoc              350 include/net/sctp/sctp.h 	return asoc ? asoc->assoc_id : 0;
asoc              354 include/net/sctp/sctp.h sctp_assoc_to_state(const struct sctp_association *asoc)
asoc              363 include/net/sctp/sctp.h 	return asoc->state + 1;
asoc              521 include/net/sctp/sctp.h #define sctp_state(asoc, state) __sctp_state((asoc), (SCTP_STATE_##state))
asoc              522 include/net/sctp/sctp.h static inline int __sctp_state(const struct sctp_association *asoc,
asoc              525 include/net/sctp/sctp.h 	return asoc->state == state;
asoc              335 include/net/sctp/sm.h 	size -= sctp_datachk_len(&chunk->asoc->stream);
asoc              372 include/net/sctp/sm.h 		 const struct sctp_association *asoc)
asoc              380 include/net/sctp/sm.h         if (ntohl(chunk->sctp_hdr->vtag) == asoc->c.my_vtag)
asoc              415 include/net/sctp/sm.h              (ntohl(chunk->sctp_hdr->vtag) == asoc->c.my_vtag)) ||
asoc              416 include/net/sctp/sm.h 	    (sctp_test_T_bit(chunk) && asoc->c.peer_vtag &&
asoc              417 include/net/sctp/sm.h 	     (ntohl(chunk->sctp_hdr->vtag) == asoc->c.peer_vtag))) {
asoc               23 include/net/sctp/stream_interleave.h 	struct sctp_chunk *(*make_datafrag)(const struct sctp_association *asoc,
asoc               44 include/net/sctp/stream_sched.h int sctp_sched_set_sched(struct sctp_association *asoc,
asoc               46 include/net/sctp/stream_sched.h int sctp_sched_get_sched(struct sctp_association *asoc);
asoc               47 include/net/sctp/stream_sched.h int sctp_sched_set_value(struct sctp_association *asoc, __u16 sid,
asoc               49 include/net/sctp/stream_sched.h int sctp_sched_get_value(struct sctp_association *asoc, __u16 sid,
asoc              507 include/net/sctp/structs.h 					  struct sctp_association *asoc,
asoc              618 include/net/sctp/structs.h 	struct sctp_association *asoc;
asoc              815 include/net/sctp/structs.h 	struct sctp_association *asoc;
asoc             1057 include/net/sctp/structs.h 	struct sctp_association *asoc;
asoc             1110 include/net/sctp/structs.h void sctp_prsctp_prune(struct sctp_association *asoc,
asoc             1375 include/net/sctp/structs.h 		     const struct sctp_association *asoc,
asoc             2093 include/net/sctp/structs.h 	struct sctp_association *asoc;
asoc             2095 include/net/sctp/structs.h 	asoc = container_of(base, struct sctp_association, base);
asoc             2096 include/net/sctp/structs.h 	return asoc;
asoc             2114 include/net/sctp/structs.h int sctp_assoc_lookup_laddr(struct sctp_association *asoc,
asoc             2120 include/net/sctp/structs.h void sctp_assoc_del_peer(struct sctp_association *asoc,
asoc             2122 include/net/sctp/structs.h void sctp_assoc_rm_peer(struct sctp_association *asoc,
asoc             2124 include/net/sctp/structs.h void sctp_assoc_control_transport(struct sctp_association *asoc,
asoc             2135 include/net/sctp/structs.h void sctp_assoc_update_frag_point(struct sctp_association *asoc);
asoc             2136 include/net/sctp/structs.h void sctp_assoc_set_pmtu(struct sctp_association *asoc, __u32 pmtu);
asoc             2137 include/net/sctp/structs.h void sctp_assoc_sync_pmtu(struct sctp_association *asoc);
asoc             2144 include/net/sctp/structs.h int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *asoc,
asoc             2150 include/net/sctp/structs.h void sctp_assoc_clean_asconf_ack_cache(const struct sctp_association *asoc);
asoc             2152 include/net/sctp/structs.h 					const struct sctp_association *asoc,
asoc             2154 include/net/sctp/structs.h void sctp_asconf_queue_teardown(struct sctp_association *asoc);
asoc             2158 include/net/sctp/structs.h struct sctp_chunk *sctp_get_ecne_prepend(struct sctp_association *asoc);
asoc               39 include/net/sctp/ulpevent.h 	struct sctp_association *asoc;
asoc               74 include/net/sctp/ulpevent.h 	const struct sctp_association *asoc,
asoc               84 include/net/sctp/ulpevent.h 	const struct sctp_association *asoc,
asoc               92 include/net/sctp/ulpevent.h 	const struct sctp_association *asoc,
asoc               97 include/net/sctp/ulpevent.h 	const struct sctp_association *asoc,
asoc              104 include/net/sctp/ulpevent.h 	const struct sctp_association *asoc,
asoc              109 include/net/sctp/ulpevent.h 	const struct sctp_association *asoc,
asoc              114 include/net/sctp/ulpevent.h 	const struct sctp_association *asoc, gfp_t gfp);
asoc              116 include/net/sctp/ulpevent.h struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,
asoc              121 include/net/sctp/ulpevent.h 	const struct sctp_association *asoc, __u16 key_id,
asoc              125 include/net/sctp/ulpevent.h 	const struct sctp_association *asoc, gfp_t gfp);
asoc              128 include/net/sctp/ulpevent.h 	const struct sctp_association *asoc, __u16 flags,
asoc              132 include/net/sctp/ulpevent.h 	const struct sctp_association *asoc, __u16 flags,
asoc              136 include/net/sctp/ulpevent.h 	const struct sctp_association *asoc, __u16 flags,
asoc               31 include/net/sctp/ulpqueue.h 	struct sctp_association *asoc;
asoc               59 include/net/sctp/ulpqueue.h int sctp_clear_pd(struct sock *sk, struct sctp_association *asoc);
asoc                3 include/trace/events/asoc.h #define TRACE_SYSTEM asoc
asoc               14 include/trace/events/sctp.h 		 const struct sctp_association *asoc),
asoc               16 include/trace/events/sctp.h 	TP_ARGS(sp, asoc),
asoc               19 include/trace/events/sctp.h 		__field(__u64, asoc)
asoc               31 include/trace/events/sctp.h 		__entry->asoc = (unsigned long)asoc;
asoc               32 include/trace/events/sctp.h 		__entry->primary = (sp == asoc->peer.primary_path);
asoc               44 include/trace/events/sctp.h 		  __entry->asoc, __entry->primary ? "(*)" : "",
asoc               53 include/trace/events/sctp.h 		 const struct sctp_association *asoc,
asoc               56 include/trace/events/sctp.h 	TP_ARGS(ep, asoc, chunk),
asoc               59 include/trace/events/sctp.h 		__field(__u64, asoc)
asoc               71 include/trace/events/sctp.h 		__entry->asoc = (unsigned long)asoc;
asoc               74 include/trace/events/sctp.h 		__entry->peer_port = asoc->peer.port;
asoc               75 include/trace/events/sctp.h 		__entry->pathmtu = asoc->pathmtu;
asoc               76 include/trace/events/sctp.h 		__entry->rwnd = asoc->peer.rwnd;
asoc               77 include/trace/events/sctp.h 		__entry->unack_data = asoc->unack_data;
asoc               82 include/trace/events/sctp.h 			list_for_each_entry(sp, &asoc->peer.transport_addr_list,
asoc               84 include/trace/events/sctp.h 				trace_sctp_probe_path(sp, asoc);
asoc               91 include/trace/events/sctp.h 		  __entry->asoc, __entry->mark, __entry->bind_port,
asoc               43 net/sctp/associola.c static void sctp_select_active_and_retran_path(struct sctp_association *asoc);
asoc               45 net/sctp/associola.c static void sctp_assoc_free_asconf_acks(struct sctp_association *asoc);
asoc               46 net/sctp/associola.c static void sctp_assoc_free_asconf_queue(struct sctp_association *asoc);
asoc               52 net/sctp/associola.c 					struct sctp_association *asoc,
asoc               65 net/sctp/associola.c 	asoc->ep = (struct sctp_endpoint *)ep;
asoc               66 net/sctp/associola.c 	asoc->base.sk = (struct sock *)sk;
asoc               67 net/sctp/associola.c 	asoc->base.net = sock_net(sk);
asoc               69 net/sctp/associola.c 	sctp_endpoint_hold(asoc->ep);
asoc               70 net/sctp/associola.c 	sock_hold(asoc->base.sk);
asoc               73 net/sctp/associola.c 	asoc->base.type = SCTP_EP_TYPE_ASSOCIATION;
asoc               76 net/sctp/associola.c 	refcount_set(&asoc->base.refcnt, 1);
asoc               79 net/sctp/associola.c 	sctp_bind_addr_init(&asoc->base.bind_addr, ep->base.bind_addr.port);
asoc               81 net/sctp/associola.c 	asoc->state = SCTP_STATE_CLOSED;
asoc               82 net/sctp/associola.c 	asoc->cookie_life = ms_to_ktime(sp->assocparams.sasoc_cookie_life);
asoc               83 net/sctp/associola.c 	asoc->user_frag = sp->user_frag;
asoc               88 net/sctp/associola.c 	asoc->max_retrans = sp->assocparams.sasoc_asocmaxrxt;
asoc               89 net/sctp/associola.c 	asoc->pf_retrans  = sp->pf_retrans;
asoc               91 net/sctp/associola.c 	asoc->rto_initial = msecs_to_jiffies(sp->rtoinfo.srto_initial);
asoc               92 net/sctp/associola.c 	asoc->rto_max = msecs_to_jiffies(sp->rtoinfo.srto_max);
asoc               93 net/sctp/associola.c 	asoc->rto_min = msecs_to_jiffies(sp->rtoinfo.srto_min);
asoc               98 net/sctp/associola.c 	asoc->hbinterval = msecs_to_jiffies(sp->hbinterval);
asoc              101 net/sctp/associola.c 	asoc->pathmaxrxt = sp->pathmaxrxt;
asoc              103 net/sctp/associola.c 	asoc->flowlabel = sp->flowlabel;
asoc              104 net/sctp/associola.c 	asoc->dscp = sp->dscp;
asoc              107 net/sctp/associola.c 	asoc->sackdelay = msecs_to_jiffies(sp->sackdelay);
asoc              108 net/sctp/associola.c 	asoc->sackfreq = sp->sackfreq;
asoc              113 net/sctp/associola.c 	asoc->param_flags = sp->param_flags;
asoc              118 net/sctp/associola.c 	asoc->max_burst = sp->max_burst;
asoc              120 net/sctp/associola.c 	asoc->subscribe = sp->subscribe;
asoc              123 net/sctp/associola.c 	asoc->timeouts[SCTP_EVENT_TIMEOUT_T1_COOKIE] = asoc->rto_initial;
asoc              124 net/sctp/associola.c 	asoc->timeouts[SCTP_EVENT_TIMEOUT_T1_INIT] = asoc->rto_initial;
asoc              125 net/sctp/associola.c 	asoc->timeouts[SCTP_EVENT_TIMEOUT_T2_SHUTDOWN] = asoc->rto_initial;
asoc              131 net/sctp/associola.c 	asoc->timeouts[SCTP_EVENT_TIMEOUT_T5_SHUTDOWN_GUARD]
asoc              132 net/sctp/associola.c 		= 5 * asoc->rto_max;
asoc              134 net/sctp/associola.c 	asoc->timeouts[SCTP_EVENT_TIMEOUT_SACK] = asoc->sackdelay;
asoc              135 net/sctp/associola.c 	asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE] = sp->autoclose * HZ;
asoc              139 net/sctp/associola.c 		timer_setup(&asoc->timers[i], sctp_timer_events[i], 0);
asoc              145 net/sctp/associola.c 	asoc->c.sinit_max_instreams = sp->initmsg.sinit_max_instreams;
asoc              146 net/sctp/associola.c 	asoc->c.sinit_num_ostreams  = sp->initmsg.sinit_num_ostreams;
asoc              147 net/sctp/associola.c 	asoc->max_init_attempts	= sp->initmsg.sinit_max_attempts;
asoc              149 net/sctp/associola.c 	asoc->max_init_timeo =
asoc              158 net/sctp/associola.c 		asoc->rwnd = SCTP_DEFAULT_MINWINDOW;
asoc              160 net/sctp/associola.c 		asoc->rwnd = sk->sk_rcvbuf/2;
asoc              162 net/sctp/associola.c 	asoc->a_rwnd = asoc->rwnd;
asoc              165 net/sctp/associola.c 	asoc->peer.rwnd = SCTP_DEFAULT_MAXWINDOW;
asoc              168 net/sctp/associola.c 	atomic_set(&asoc->rmem_alloc, 0);
asoc              170 net/sctp/associola.c 	init_waitqueue_head(&asoc->wait);
asoc              172 net/sctp/associola.c 	asoc->c.my_vtag = sctp_generate_tag(ep);
asoc              173 net/sctp/associola.c 	asoc->c.my_port = ep->base.bind_addr.port;
asoc              175 net/sctp/associola.c 	asoc->c.initial_tsn = sctp_generate_tsn(ep);
asoc              177 net/sctp/associola.c 	asoc->next_tsn = asoc->c.initial_tsn;
asoc              179 net/sctp/associola.c 	asoc->ctsn_ack_point = asoc->next_tsn - 1;
asoc              180 net/sctp/associola.c 	asoc->adv_peer_ack_point = asoc->ctsn_ack_point;
asoc              181 net/sctp/associola.c 	asoc->highest_sacked = asoc->ctsn_ack_point;
asoc              182 net/sctp/associola.c 	asoc->last_cwr_tsn = asoc->ctsn_ack_point;
asoc              194 net/sctp/associola.c 	asoc->addip_serial = asoc->c.initial_tsn;
asoc              195 net/sctp/associola.c 	asoc->strreset_outseq = asoc->c.initial_tsn;
asoc              197 net/sctp/associola.c 	INIT_LIST_HEAD(&asoc->addip_chunk_list);
asoc              198 net/sctp/associola.c 	INIT_LIST_HEAD(&asoc->asconf_ack_list);
asoc              201 net/sctp/associola.c 	INIT_LIST_HEAD(&asoc->peer.transport_addr_list);
asoc              214 net/sctp/associola.c 	asoc->peer.sack_needed = 1;
asoc              215 net/sctp/associola.c 	asoc->peer.sack_generation = 1;
asoc              218 net/sctp/associola.c 	sctp_inq_init(&asoc->base.inqueue);
asoc              219 net/sctp/associola.c 	sctp_inq_set_th_handler(&asoc->base.inqueue, sctp_assoc_bh_rcv);
asoc              222 net/sctp/associola.c 	sctp_outq_init(asoc, &asoc->outqueue);
asoc              224 net/sctp/associola.c 	if (!sctp_ulpq_init(&asoc->ulpq, asoc))
asoc              227 net/sctp/associola.c 	if (sctp_stream_init(&asoc->stream, asoc->c.sinit_num_ostreams,
asoc              232 net/sctp/associola.c 	asoc->pathmtu = sp->pathmtu;
asoc              233 net/sctp/associola.c 	sctp_assoc_update_frag_point(asoc);
asoc              238 net/sctp/associola.c 	asoc->peer.ipv4_address = 1;
asoc              239 net/sctp/associola.c 	if (asoc->base.sk->sk_family == PF_INET6)
asoc              240 net/sctp/associola.c 		asoc->peer.ipv6_address = 1;
asoc              241 net/sctp/associola.c 	INIT_LIST_HEAD(&asoc->asocs);
asoc              243 net/sctp/associola.c 	asoc->default_stream = sp->default_stream;
asoc              244 net/sctp/associola.c 	asoc->default_ppid = sp->default_ppid;
asoc              245 net/sctp/associola.c 	asoc->default_flags = sp->default_flags;
asoc              246 net/sctp/associola.c 	asoc->default_context = sp->default_context;
asoc              247 net/sctp/associola.c 	asoc->default_timetolive = sp->default_timetolive;
asoc              248 net/sctp/associola.c 	asoc->default_rcv_context = sp->default_rcv_context;
asoc              251 net/sctp/associola.c 	INIT_LIST_HEAD(&asoc->endpoint_shared_keys);
asoc              252 net/sctp/associola.c 	if (sctp_auth_asoc_copy_shkeys(ep, asoc, gfp))
asoc              255 net/sctp/associola.c 	asoc->active_key_id = ep->active_key_id;
asoc              256 net/sctp/associola.c 	asoc->strreset_enable = ep->strreset_enable;
asoc              260 net/sctp/associola.c 		memcpy(asoc->c.auth_hmacs, ep->auth_hmacs_list,
asoc              263 net/sctp/associola.c 		memcpy(asoc->c.auth_chunks, ep->auth_chunk_list,
asoc              267 net/sctp/associola.c 	p = (struct sctp_paramhdr *)asoc->c.auth_random;
asoc              272 net/sctp/associola.c 	return asoc;
asoc              275 net/sctp/associola.c 	sctp_stream_free(&asoc->stream);
asoc              277 net/sctp/associola.c 	sock_put(asoc->base.sk);
asoc              278 net/sctp/associola.c 	sctp_endpoint_put(asoc->ep);
asoc              287 net/sctp/associola.c 	struct sctp_association *asoc;
asoc              289 net/sctp/associola.c 	asoc = kzalloc(sizeof(*asoc), gfp);
asoc              290 net/sctp/associola.c 	if (!asoc)
asoc              293 net/sctp/associola.c 	if (!sctp_association_init(asoc, ep, sk, scope, gfp))
asoc              298 net/sctp/associola.c 	pr_debug("Created asoc %p\n", asoc);
asoc              300 net/sctp/associola.c 	return asoc;
asoc              303 net/sctp/associola.c 	kfree(asoc);
asoc              311 net/sctp/associola.c void sctp_association_free(struct sctp_association *asoc)
asoc              313 net/sctp/associola.c 	struct sock *sk = asoc->base.sk;
asoc              321 net/sctp/associola.c 	if (!list_empty(&asoc->asocs)) {
asoc              322 net/sctp/associola.c 		list_del(&asoc->asocs);
asoc              334 net/sctp/associola.c 	asoc->base.dead = true;
asoc              337 net/sctp/associola.c 	sctp_outq_free(&asoc->outqueue);
asoc              340 net/sctp/associola.c 	sctp_ulpq_free(&asoc->ulpq);
asoc              343 net/sctp/associola.c 	sctp_inq_free(&asoc->base.inqueue);
asoc              345 net/sctp/associola.c 	sctp_tsnmap_free(&asoc->peer.tsn_map);
asoc              348 net/sctp/associola.c 	sctp_stream_free(&asoc->stream);
asoc              350 net/sctp/associola.c 	if (asoc->strreset_chunk)
asoc              351 net/sctp/associola.c 		sctp_chunk_free(asoc->strreset_chunk);
asoc              354 net/sctp/associola.c 	sctp_bind_addr_free(&asoc->base.bind_addr);
asoc              362 net/sctp/associola.c 		if (del_timer(&asoc->timers[i]))
asoc              363 net/sctp/associola.c 			sctp_association_put(asoc);
asoc              367 net/sctp/associola.c 	kfree(asoc->peer.cookie);
asoc              368 net/sctp/associola.c 	kfree(asoc->peer.peer_random);
asoc              369 net/sctp/associola.c 	kfree(asoc->peer.peer_chunks);
asoc              370 net/sctp/associola.c 	kfree(asoc->peer.peer_hmacs);
asoc              373 net/sctp/associola.c 	list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) {
asoc              380 net/sctp/associola.c 	asoc->peer.transport_count = 0;
asoc              382 net/sctp/associola.c 	sctp_asconf_queue_teardown(asoc);
asoc              385 net/sctp/associola.c 	kfree(asoc->asconf_addr_del_pending);
asoc              388 net/sctp/associola.c 	sctp_auth_destroy_keys(&asoc->endpoint_shared_keys);
asoc              391 net/sctp/associola.c 	sctp_auth_key_put(asoc->asoc_shared_key);
asoc              393 net/sctp/associola.c 	sctp_association_put(asoc);
asoc              397 net/sctp/associola.c static void sctp_association_destroy(struct sctp_association *asoc)
asoc              399 net/sctp/associola.c 	if (unlikely(!asoc->base.dead)) {
asoc              400 net/sctp/associola.c 		WARN(1, "Attempt to destroy undead association %p!\n", asoc);
asoc              404 net/sctp/associola.c 	sctp_endpoint_put(asoc->ep);
asoc              405 net/sctp/associola.c 	sock_put(asoc->base.sk);
asoc              407 net/sctp/associola.c 	if (asoc->assoc_id != 0) {
asoc              409 net/sctp/associola.c 		idr_remove(&sctp_assocs_id, asoc->assoc_id);
asoc              413 net/sctp/associola.c 	WARN_ON(atomic_read(&asoc->rmem_alloc));
asoc              415 net/sctp/associola.c 	kfree_rcu(asoc, rcu);
asoc              420 net/sctp/associola.c void sctp_assoc_set_primary(struct sctp_association *asoc,
asoc              428 net/sctp/associola.c 	if (asoc->peer.primary_path != NULL &&
asoc              429 net/sctp/associola.c 	    asoc->peer.primary_path != transport)
asoc              432 net/sctp/associola.c 	asoc->peer.primary_path = transport;
asoc              435 net/sctp/associola.c 	memcpy(&asoc->peer.primary_addr, &transport->ipaddr,
asoc              443 net/sctp/associola.c 		asoc->peer.active_path = transport;
asoc              459 net/sctp/associola.c 	if (!asoc->outqueue.outstanding_bytes && !asoc->outqueue.out_qlen)
asoc              473 net/sctp/associola.c 	transport->cacc.next_tsn_at_change = asoc->next_tsn;
asoc              477 net/sctp/associola.c void sctp_assoc_rm_peer(struct sctp_association *asoc,
asoc              485 net/sctp/associola.c 		 __func__, asoc, &peer->ipaddr.sa);
asoc              490 net/sctp/associola.c 	if (asoc->peer.retran_path == peer)
asoc              491 net/sctp/associola.c 		sctp_assoc_update_retran_path(asoc);
asoc              499 net/sctp/associola.c 	pos = asoc->peer.transport_addr_list.next;
asoc              503 net/sctp/associola.c 	if (asoc->peer.primary_path == peer)
asoc              504 net/sctp/associola.c 		sctp_assoc_set_primary(asoc, transport);
asoc              505 net/sctp/associola.c 	if (asoc->peer.active_path == peer)
asoc              506 net/sctp/associola.c 		asoc->peer.active_path = transport;
asoc              507 net/sctp/associola.c 	if (asoc->peer.retran_path == peer)
asoc              508 net/sctp/associola.c 		asoc->peer.retran_path = transport;
asoc              509 net/sctp/associola.c 	if (asoc->peer.last_data_from == peer)
asoc              510 net/sctp/associola.c 		asoc->peer.last_data_from = transport;
asoc              512 net/sctp/associola.c 	if (asoc->strreset_chunk &&
asoc              513 net/sctp/associola.c 	    asoc->strreset_chunk->transport == peer) {
asoc              514 net/sctp/associola.c 		asoc->strreset_chunk->transport = transport;
asoc              523 net/sctp/associola.c 	if (asoc->init_last_sent_to == peer)
asoc              524 net/sctp/associola.c 		asoc->init_last_sent_to = NULL;
asoc              531 net/sctp/associola.c 	if (asoc->shutdown_last_sent_to == peer)
asoc              532 net/sctp/associola.c 		asoc->shutdown_last_sent_to = NULL;
asoc              537 net/sctp/associola.c 	if (asoc->addip_last_asconf &&
asoc              538 net/sctp/associola.c 	    asoc->addip_last_asconf->transport == peer)
asoc              539 net/sctp/associola.c 		asoc->addip_last_asconf->transport = NULL;
asoc              545 net/sctp/associola.c 		struct sctp_transport *active = asoc->peer.active_path;
asoc              567 net/sctp/associola.c 	list_for_each_entry(ch, &asoc->outqueue.out_chunk_list, list)
asoc              571 net/sctp/associola.c 	asoc->peer.transport_count--;
asoc              577 net/sctp/associola.c struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc,
asoc              582 net/sctp/associola.c 	struct net *net = sock_net(asoc->base.sk);
asoc              587 net/sctp/associola.c 	sp = sctp_sk(asoc->base.sk);
asoc              593 net/sctp/associola.c 		 asoc, &addr->sa, peer_state);
asoc              596 net/sctp/associola.c 	if (0 == asoc->peer.port)
asoc              597 net/sctp/associola.c 		asoc->peer.port = port;
asoc              600 net/sctp/associola.c 	peer = sctp_assoc_lookup_paddr(asoc, addr);
asoc              616 net/sctp/associola.c 	sctp_transport_set_owner(peer, asoc);
asoc              621 net/sctp/associola.c 	peer->hbinterval = asoc->hbinterval;
asoc              624 net/sctp/associola.c 	peer->pathmaxrxt = asoc->pathmaxrxt;
asoc              627 net/sctp/associola.c 	peer->pf_retrans = asoc->pf_retrans;
asoc              632 net/sctp/associola.c 	peer->sackdelay = asoc->sackdelay;
asoc              633 net/sctp/associola.c 	peer->sackfreq = asoc->sackfreq;
asoc              642 net/sctp/associola.c 			peer->flowlabel = asoc->flowlabel;
asoc              645 net/sctp/associola.c 	peer->dscp = asoc->dscp;
asoc              650 net/sctp/associola.c 	peer->param_flags = asoc->param_flags;
asoc              660 net/sctp/associola.c 	sctp_assoc_set_pmtu(asoc, asoc->pathmtu ?
asoc              661 net/sctp/associola.c 				  min_t(int, peer->pathmtu, asoc->pathmtu) :
asoc              669 net/sctp/associola.c 	sctp_packet_init(&peer->packet, peer, asoc->base.bind_addr.port,
asoc              670 net/sctp/associola.c 			 asoc->peer.port);
asoc              682 net/sctp/associola.c 	peer->cwnd = min(4*asoc->pathmtu, max_t(__u32, 2*asoc->pathmtu, 4380));
asoc              695 net/sctp/associola.c 	peer->rto = asoc->rto_initial;
asoc              696 net/sctp/associola.c 	sctp_max_rto(asoc, peer);
asoc              708 net/sctp/associola.c 	list_add_tail_rcu(&peer->transports, &asoc->peer.transport_addr_list);
asoc              709 net/sctp/associola.c 	asoc->peer.transport_count++;
asoc              712 net/sctp/associola.c 	if (!asoc->peer.primary_path) {
asoc              713 net/sctp/associola.c 		sctp_assoc_set_primary(asoc, peer);
asoc              714 net/sctp/associola.c 		asoc->peer.retran_path = peer;
asoc              717 net/sctp/associola.c 	if (asoc->peer.active_path == asoc->peer.retran_path &&
asoc              719 net/sctp/associola.c 		asoc->peer.retran_path = peer;
asoc              726 net/sctp/associola.c void sctp_assoc_del_peer(struct sctp_association *asoc,
asoc              733 net/sctp/associola.c 	list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) {
asoc              737 net/sctp/associola.c 			sctp_assoc_rm_peer(asoc, transport);
asoc              745 net/sctp/associola.c 					const struct sctp_association *asoc,
asoc              752 net/sctp/associola.c 	list_for_each_entry(t, &asoc->peer.transport_addr_list,
asoc              762 net/sctp/associola.c void sctp_assoc_del_nonprimary_peers(struct sctp_association *asoc,
asoc              768 net/sctp/associola.c 	list_for_each_entry_safe(t, temp, &asoc->peer.transport_addr_list,
asoc              772 net/sctp/associola.c 			sctp_assoc_rm_peer(asoc, t);
asoc              780 net/sctp/associola.c void sctp_assoc_control_transport(struct sctp_association *asoc,
asoc              808 net/sctp/associola.c 			transport->cwnd = asoc->pathmtu;
asoc              845 net/sctp/associola.c 		event = sctp_ulpevent_make_peer_addr_change(asoc, &addr,
asoc              848 net/sctp/associola.c 			asoc->stream.si->enqueue_event(&asoc->ulpq, event);
asoc              852 net/sctp/associola.c 	sctp_select_active_and_retran_path(asoc);
asoc              856 net/sctp/associola.c void sctp_association_hold(struct sctp_association *asoc)
asoc              858 net/sctp/associola.c 	refcount_inc(&asoc->base.refcnt);
asoc              864 net/sctp/associola.c void sctp_association_put(struct sctp_association *asoc)
asoc              866 net/sctp/associola.c 	if (refcount_dec_and_test(&asoc->base.refcnt))
asoc              867 net/sctp/associola.c 		sctp_association_destroy(asoc);
asoc              873 net/sctp/associola.c __u32 sctp_association_get_next_tsn(struct sctp_association *asoc)
asoc              880 net/sctp/associola.c 	__u32 retval = asoc->next_tsn;
asoc              881 net/sctp/associola.c 	asoc->next_tsn++;
asoc              882 net/sctp/associola.c 	asoc->unack_data++;
asoc              906 net/sctp/associola.c struct sctp_chunk *sctp_get_ecne_prepend(struct sctp_association *asoc)
asoc              908 net/sctp/associola.c 	if (!asoc->need_ecne)
asoc              914 net/sctp/associola.c 	return sctp_make_ecne(asoc, asoc->last_ecne_tsn);
asoc              920 net/sctp/associola.c struct sctp_transport *sctp_assoc_lookup_tsn(struct sctp_association *asoc,
asoc              946 net/sctp/associola.c 	active = asoc->peer.active_path;
asoc              958 net/sctp/associola.c 	list_for_each_entry(transport, &asoc->peer.transport_addr_list,
asoc              978 net/sctp/associola.c 	struct sctp_association *asoc =
asoc              981 net/sctp/associola.c 	struct net *net = sock_net(asoc->base.sk);
asoc              991 net/sctp/associola.c 	ep = asoc->ep;
asoc              993 net/sctp/associola.c 	inqueue = &asoc->base.inqueue;
asoc              994 net/sctp/associola.c 	sctp_association_hold(asoc);
asoc              996 net/sctp/associola.c 		state = asoc->state;
asoc             1030 net/sctp/associola.c 		if (sctp_auth_recv_cid(subtype.chunk, asoc) && !chunk->auth)
asoc             1037 net/sctp/associola.c 			asoc->peer.last_data_from = chunk->transport;
asoc             1040 net/sctp/associola.c 			asoc->stats.ictrlchunks++;
asoc             1042 net/sctp/associola.c 				asoc->stats.isacks++;
asoc             1050 net/sctp/associola.c 				   state, ep, asoc, chunk, GFP_ATOMIC);
asoc             1055 net/sctp/associola.c 		if (asoc->base.dead)
asoc             1065 net/sctp/associola.c 	sctp_association_put(asoc);
asoc             1100 net/sctp/associola.c int sctp_assoc_update(struct sctp_association *asoc,
asoc             1107 net/sctp/associola.c 	asoc->c = new->c;
asoc             1108 net/sctp/associola.c 	asoc->peer.rwnd = new->peer.rwnd;
asoc             1109 net/sctp/associola.c 	asoc->peer.sack_needed = new->peer.sack_needed;
asoc             1110 net/sctp/associola.c 	asoc->peer.auth_capable = new->peer.auth_capable;
asoc             1111 net/sctp/associola.c 	asoc->peer.i = new->peer.i;
asoc             1113 net/sctp/associola.c 	if (!sctp_tsnmap_init(&asoc->peer.tsn_map, SCTP_TSN_MAP_INITIAL,
asoc             1114 net/sctp/associola.c 			      asoc->peer.i.initial_tsn, GFP_ATOMIC))
asoc             1118 net/sctp/associola.c 	list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) {
asoc             1121 net/sctp/associola.c 			sctp_assoc_rm_peer(asoc, trans);
asoc             1125 net/sctp/associola.c 		if (asoc->state >= SCTP_STATE_ESTABLISHED)
asoc             1134 net/sctp/associola.c 	if (asoc->state >= SCTP_STATE_ESTABLISHED) {
asoc             1135 net/sctp/associola.c 		asoc->next_tsn = new->next_tsn;
asoc             1136 net/sctp/associola.c 		asoc->ctsn_ack_point = new->ctsn_ack_point;
asoc             1137 net/sctp/associola.c 		asoc->adv_peer_ack_point = new->adv_peer_ack_point;
asoc             1142 net/sctp/associola.c 		sctp_stream_clear(&asoc->stream);
asoc             1148 net/sctp/associola.c 		sctp_ulpq_flush(&asoc->ulpq);
asoc             1154 net/sctp/associola.c 		asoc->overall_error_count = 0;
asoc             1160 net/sctp/associola.c 			if (!sctp_assoc_lookup_paddr(asoc, &trans->ipaddr) &&
asoc             1161 net/sctp/associola.c 			    !sctp_assoc_add_peer(asoc, &trans->ipaddr,
asoc             1165 net/sctp/associola.c 		asoc->ctsn_ack_point = asoc->next_tsn - 1;
asoc             1166 net/sctp/associola.c 		asoc->adv_peer_ack_point = asoc->ctsn_ack_point;
asoc             1168 net/sctp/associola.c 		if (sctp_state(asoc, COOKIE_WAIT))
asoc             1169 net/sctp/associola.c 			sctp_stream_update(&asoc->stream, &new->stream);
asoc             1172 net/sctp/associola.c 		if (sctp_assoc_set_id(asoc, GFP_ATOMIC))
asoc             1179 net/sctp/associola.c 	kfree(asoc->peer.peer_random);
asoc             1180 net/sctp/associola.c 	asoc->peer.peer_random = new->peer.peer_random;
asoc             1183 net/sctp/associola.c 	kfree(asoc->peer.peer_chunks);
asoc             1184 net/sctp/associola.c 	asoc->peer.peer_chunks = new->peer.peer_chunks;
asoc             1187 net/sctp/associola.c 	kfree(asoc->peer.peer_hmacs);
asoc             1188 net/sctp/associola.c 	asoc->peer.peer_hmacs = new->peer.peer_hmacs;
asoc             1191 net/sctp/associola.c 	return sctp_auth_asoc_init_active_key(asoc, GFP_ATOMIC);
asoc             1273 net/sctp/associola.c void sctp_assoc_update_retran_path(struct sctp_association *asoc)
asoc             1275 net/sctp/associola.c 	struct sctp_transport *trans = asoc->peer.retran_path;
asoc             1279 net/sctp/associola.c 	if (asoc->peer.transport_count == 1)
asoc             1284 net/sctp/associola.c 	if (asoc->peer.active_path == asoc->peer.retran_path &&
asoc             1285 net/sctp/associola.c 	    asoc->peer.active_path->state == SCTP_ACTIVE)
asoc             1292 net/sctp/associola.c 		if (&trans->transports == &asoc->peer.transport_addr_list)
asoc             1301 net/sctp/associola.c 		if (trans == asoc->peer.retran_path)
asoc             1305 net/sctp/associola.c 	asoc->peer.retran_path = trans_next;
asoc             1308 net/sctp/associola.c 		 __func__, asoc, &asoc->peer.retran_path->ipaddr.sa);
asoc             1311 net/sctp/associola.c static void sctp_select_active_and_retran_path(struct sctp_association *asoc)
asoc             1317 net/sctp/associola.c 	list_for_each_entry(trans, &asoc->peer.transport_addr_list,
asoc             1351 net/sctp/associola.c 	if ((asoc->peer.primary_path->state == SCTP_ACTIVE ||
asoc             1352 net/sctp/associola.c 	     asoc->peer.primary_path->state == SCTP_UNKNOWN) &&
asoc             1353 net/sctp/associola.c 	     asoc->peer.primary_path != trans_pri) {
asoc             1355 net/sctp/associola.c 		trans_pri = asoc->peer.primary_path;
asoc             1369 net/sctp/associola.c 		trans_pri = sctp_trans_elect_best(asoc->peer.active_path, trans_pf);
asoc             1374 net/sctp/associola.c 	asoc->peer.active_path = trans_pri;
asoc             1375 net/sctp/associola.c 	asoc->peer.retran_path = trans_sec;
asoc             1379 net/sctp/associola.c sctp_assoc_choose_alter_transport(struct sctp_association *asoc,
asoc             1387 net/sctp/associola.c 		return asoc->peer.active_path;
asoc             1389 net/sctp/associola.c 		if (last_sent_to == asoc->peer.retran_path)
asoc             1390 net/sctp/associola.c 			sctp_assoc_update_retran_path(asoc);
asoc             1392 net/sctp/associola.c 		return asoc->peer.retran_path;
asoc             1396 net/sctp/associola.c void sctp_assoc_update_frag_point(struct sctp_association *asoc)
asoc             1398 net/sctp/associola.c 	int frag = sctp_mtu_payload(sctp_sk(asoc->base.sk), asoc->pathmtu,
asoc             1399 net/sctp/associola.c 				    sctp_datachk_len(&asoc->stream));
asoc             1401 net/sctp/associola.c 	if (asoc->user_frag)
asoc             1402 net/sctp/associola.c 		frag = min_t(int, frag, asoc->user_frag);
asoc             1405 net/sctp/associola.c 				sctp_datachk_len(&asoc->stream));
asoc             1407 net/sctp/associola.c 	asoc->frag_point = SCTP_TRUNC4(frag);
asoc             1410 net/sctp/associola.c void sctp_assoc_set_pmtu(struct sctp_association *asoc, __u32 pmtu)
asoc             1412 net/sctp/associola.c 	if (asoc->pathmtu != pmtu) {
asoc             1413 net/sctp/associola.c 		asoc->pathmtu = pmtu;
asoc             1414 net/sctp/associola.c 		sctp_assoc_update_frag_point(asoc);
asoc             1417 net/sctp/associola.c 	pr_debug("%s: asoc:%p, pmtu:%d, frag_point:%d\n", __func__, asoc,
asoc             1418 net/sctp/associola.c 		 asoc->pathmtu, asoc->frag_point);
asoc             1424 net/sctp/associola.c void sctp_assoc_sync_pmtu(struct sctp_association *asoc)
asoc             1429 net/sctp/associola.c 	if (!asoc)
asoc             1433 net/sctp/associola.c 	list_for_each_entry(t, &asoc->peer.transport_addr_list, transports) {
asoc             1443 net/sctp/associola.c 	sctp_assoc_set_pmtu(asoc, pmtu);
asoc             1447 net/sctp/associola.c static inline bool sctp_peer_needs_update(struct sctp_association *asoc)
asoc             1449 net/sctp/associola.c 	struct net *net = sock_net(asoc->base.sk);
asoc             1450 net/sctp/associola.c 	switch (asoc->state) {
asoc             1455 net/sctp/associola.c 		if ((asoc->rwnd > asoc->a_rwnd) &&
asoc             1456 net/sctp/associola.c 		    ((asoc->rwnd - asoc->a_rwnd) >= max_t(__u32,
asoc             1457 net/sctp/associola.c 			   (asoc->base.sk->sk_rcvbuf >> net->sctp.rwnd_upd_shift),
asoc             1458 net/sctp/associola.c 			   asoc->pathmtu)))
asoc             1468 net/sctp/associola.c void sctp_assoc_rwnd_increase(struct sctp_association *asoc, unsigned int len)
asoc             1473 net/sctp/associola.c 	if (asoc->rwnd_over) {
asoc             1474 net/sctp/associola.c 		if (asoc->rwnd_over >= len) {
asoc             1475 net/sctp/associola.c 			asoc->rwnd_over -= len;
asoc             1477 net/sctp/associola.c 			asoc->rwnd += (len - asoc->rwnd_over);
asoc             1478 net/sctp/associola.c 			asoc->rwnd_over = 0;
asoc             1481 net/sctp/associola.c 		asoc->rwnd += len;
asoc             1489 net/sctp/associola.c 	if (asoc->rwnd_press) {
asoc             1490 net/sctp/associola.c 		int change = min(asoc->pathmtu, asoc->rwnd_press);
asoc             1491 net/sctp/associola.c 		asoc->rwnd += change;
asoc             1492 net/sctp/associola.c 		asoc->rwnd_press -= change;
asoc             1496 net/sctp/associola.c 		 __func__, asoc, len, asoc->rwnd, asoc->rwnd_over,
asoc             1497 net/sctp/associola.c 		 asoc->a_rwnd);
asoc             1504 net/sctp/associola.c 	if (sctp_peer_needs_update(asoc)) {
asoc             1505 net/sctp/associola.c 		asoc->a_rwnd = asoc->rwnd;
asoc             1508 net/sctp/associola.c 			 "a_rwnd:%u\n", __func__, asoc, asoc->rwnd,
asoc             1509 net/sctp/associola.c 			 asoc->a_rwnd);
asoc             1511 net/sctp/associola.c 		sack = sctp_make_sack(asoc);
asoc             1515 net/sctp/associola.c 		asoc->peer.sack_needed = 0;
asoc             1517 net/sctp/associola.c 		sctp_outq_tail(&asoc->outqueue, sack, GFP_ATOMIC);
asoc             1520 net/sctp/associola.c 		timer = &asoc->timers[SCTP_EVENT_TIMEOUT_SACK];
asoc             1522 net/sctp/associola.c 			sctp_association_put(asoc);
asoc             1527 net/sctp/associola.c void sctp_assoc_rwnd_decrease(struct sctp_association *asoc, unsigned int len)
asoc             1532 net/sctp/associola.c 	if (unlikely(!asoc->rwnd || asoc->rwnd_over))
asoc             1534 net/sctp/associola.c 			 "asoc->rwnd_over:%u!\n", __func__, asoc,
asoc             1535 net/sctp/associola.c 			 asoc->rwnd, asoc->rwnd_over);
asoc             1537 net/sctp/associola.c 	if (asoc->ep->rcvbuf_policy)
asoc             1538 net/sctp/associola.c 		rx_count = atomic_read(&asoc->rmem_alloc);
asoc             1540 net/sctp/associola.c 		rx_count = atomic_read(&asoc->base.sk->sk_rmem_alloc);
asoc             1547 net/sctp/associola.c 	if (rx_count >= asoc->base.sk->sk_rcvbuf)
asoc             1550 net/sctp/associola.c 	if (asoc->rwnd >= len) {
asoc             1551 net/sctp/associola.c 		asoc->rwnd -= len;
asoc             1553 net/sctp/associola.c 			asoc->rwnd_press += asoc->rwnd;
asoc             1554 net/sctp/associola.c 			asoc->rwnd = 0;
asoc             1557 net/sctp/associola.c 		asoc->rwnd_over += len - asoc->rwnd;
asoc             1558 net/sctp/associola.c 		asoc->rwnd = 0;
asoc             1562 net/sctp/associola.c 		 __func__, asoc, len, asoc->rwnd, asoc->rwnd_over,
asoc             1563 net/sctp/associola.c 		 asoc->rwnd_press);
asoc             1569 net/sctp/associola.c int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *asoc,
asoc             1577 net/sctp/associola.c 	flags = (PF_INET6 == asoc->base.sk->sk_family) ? SCTP_ADDR6_ALLOWED : 0;
asoc             1578 net/sctp/associola.c 	if (asoc->peer.ipv4_address)
asoc             1580 net/sctp/associola.c 	if (asoc->peer.ipv6_address)
asoc             1583 net/sctp/associola.c 	return sctp_bind_addr_copy(sock_net(asoc->base.sk),
asoc             1584 net/sctp/associola.c 				   &asoc->base.bind_addr,
asoc             1585 net/sctp/associola.c 				   &asoc->ep->base.bind_addr,
asoc             1590 net/sctp/associola.c int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *asoc,
asoc             1598 net/sctp/associola.c 	return sctp_raw_to_bind_addrs(&asoc->base.bind_addr, raw, var_size3,
asoc             1599 net/sctp/associola.c 				      asoc->ep->base.bind_addr.port, gfp);
asoc             1603 net/sctp/associola.c int sctp_assoc_lookup_laddr(struct sctp_association *asoc,
asoc             1608 net/sctp/associola.c 	if ((asoc->base.bind_addr.port == ntohs(laddr->v4.sin_port)) &&
asoc             1609 net/sctp/associola.c 	    sctp_bind_addr_match(&asoc->base.bind_addr, laddr,
asoc             1610 net/sctp/associola.c 				 sctp_sk(asoc->base.sk)))
asoc             1617 net/sctp/associola.c int sctp_assoc_set_id(struct sctp_association *asoc, gfp_t gfp)
asoc             1623 net/sctp/associola.c 	if (asoc->assoc_id)
asoc             1632 net/sctp/associola.c 	ret = idr_alloc_cyclic(&sctp_assocs_id, asoc, SCTP_ALL_ASSOC + 1, 0,
asoc             1640 net/sctp/associola.c 	asoc->assoc_id = (sctp_assoc_t)ret;
asoc             1645 net/sctp/associola.c static void sctp_assoc_free_asconf_queue(struct sctp_association *asoc)
asoc             1650 net/sctp/associola.c 	list_for_each_entry_safe(asconf, tmp, &asoc->addip_chunk_list, list) {
asoc             1657 net/sctp/associola.c static void sctp_assoc_free_asconf_acks(struct sctp_association *asoc)
asoc             1662 net/sctp/associola.c 	list_for_each_entry_safe(ack, tmp, &asoc->asconf_ack_list,
asoc             1670 net/sctp/associola.c void sctp_assoc_clean_asconf_ack_cache(const struct sctp_association *asoc)
asoc             1678 net/sctp/associola.c 	list_for_each_entry_safe(ack, tmp, &asoc->asconf_ack_list,
asoc             1681 net/sctp/associola.c 				htonl(asoc->peer.addip_serial))
asoc             1691 net/sctp/associola.c 					const struct sctp_association *asoc,
asoc             1699 net/sctp/associola.c 	list_for_each_entry(ack, &asoc->asconf_ack_list, transmitted_list) {
asoc             1711 net/sctp/associola.c void sctp_asconf_queue_teardown(struct sctp_association *asoc)
asoc             1714 net/sctp/associola.c 	sctp_assoc_free_asconf_acks(asoc);
asoc             1717 net/sctp/associola.c 	sctp_assoc_free_asconf_queue(asoc);
asoc             1720 net/sctp/associola.c 	if (asoc->addip_last_asconf)
asoc             1721 net/sctp/associola.c 		sctp_chunk_free(asoc->addip_last_asconf);
asoc              222 net/sctp/auth.c 				    const struct sctp_association *asoc,
asoc              226 net/sctp/auth.c 			(struct sctp_random_param *)asoc->c.auth_random,
asoc              227 net/sctp/auth.c 			(struct sctp_chunks_param *)asoc->c.auth_chunks,
asoc              228 net/sctp/auth.c 			(struct sctp_hmac_algo_param *)asoc->c.auth_hmacs, gfp);
asoc              233 net/sctp/auth.c 				    const struct sctp_association *asoc,
asoc              236 net/sctp/auth.c 	return sctp_auth_make_key_vector(asoc->peer.peer_random,
asoc              237 net/sctp/auth.c 					 asoc->peer.peer_chunks,
asoc              238 net/sctp/auth.c 					 asoc->peer.peer_hmacs,
asoc              287 net/sctp/auth.c 				 const struct sctp_association *asoc,
asoc              311 net/sctp/auth.c 	local_key_vector = sctp_auth_make_local_vector(asoc, gfp);
asoc              312 net/sctp/auth.c 	peer_key_vector = sctp_auth_make_peer_vector(asoc, gfp);
asoc              354 net/sctp/auth.c 				struct sctp_association *asoc,
asoc              360 net/sctp/auth.c 	BUG_ON(!list_empty(&asoc->endpoint_shared_keys));
asoc              369 net/sctp/auth.c 		list_add(&new->key_list, &asoc->endpoint_shared_keys);
asoc              375 net/sctp/auth.c 	sctp_auth_destroy_keys(&asoc->endpoint_shared_keys);
asoc              383 net/sctp/auth.c int sctp_auth_asoc_init_active_key(struct sctp_association *asoc, gfp_t gfp)
asoc              392 net/sctp/auth.c 	if (!asoc->peer.auth_capable)
asoc              400 net/sctp/auth.c 	ep_key = sctp_auth_get_shkey(asoc, asoc->active_key_id);
asoc              403 net/sctp/auth.c 	secret = sctp_auth_asoc_create_secret(asoc, ep_key, gfp);
asoc              407 net/sctp/auth.c 	sctp_auth_key_put(asoc->asoc_shared_key);
asoc              408 net/sctp/auth.c 	asoc->asoc_shared_key = secret;
asoc              409 net/sctp/auth.c 	asoc->shkey = ep_key;
asoc              414 net/sctp/auth.c 	list_for_each_entry(chunk, &asoc->outqueue.out_chunk_list, list) {
asoc              415 net/sctp/auth.c 		if (sctp_auth_send_cid(chunk->chunk_hdr->type, asoc)) {
asoc              418 net/sctp/auth.c 				chunk->shkey = asoc->shkey;
asoc              430 net/sctp/auth.c 				const struct sctp_association *asoc,
asoc              436 net/sctp/auth.c 	key_for_each(key, &asoc->endpoint_shared_keys) {
asoc              523 net/sctp/auth.c struct sctp_hmac *sctp_auth_asoc_get_hmac(const struct sctp_association *asoc)
asoc              531 net/sctp/auth.c 	if (asoc->default_hmac_id)
asoc              532 net/sctp/auth.c 		return &sctp_hmac_list[asoc->default_hmac_id];
asoc              537 net/sctp/auth.c 	hmacs = asoc->peer.peer_hmacs;
asoc              583 net/sctp/auth.c int sctp_auth_asoc_verify_hmac_id(const struct sctp_association *asoc,
asoc              589 net/sctp/auth.c 	if (!asoc)
asoc              592 net/sctp/auth.c 	hmacs = (struct sctp_hmac_algo_param *)asoc->c.auth_hmacs;
asoc              605 net/sctp/auth.c void sctp_auth_asoc_set_default_hmac(struct sctp_association *asoc,
asoc              614 net/sctp/auth.c 	if (asoc->default_hmac_id)
asoc              619 net/sctp/auth.c 	ep = asoc->ep;
asoc              629 net/sctp/auth.c 			asoc->default_hmac_id = id;
asoc              673 net/sctp/auth.c int sctp_auth_send_cid(enum sctp_cid chunk, const struct sctp_association *asoc)
asoc              675 net/sctp/auth.c 	if (!asoc)
asoc              678 net/sctp/auth.c 	if (!asoc->peer.auth_capable)
asoc              681 net/sctp/auth.c 	return __sctp_auth_cid(chunk, asoc->peer.peer_chunks);
asoc              685 net/sctp/auth.c int sctp_auth_recv_cid(enum sctp_cid chunk, const struct sctp_association *asoc)
asoc              687 net/sctp/auth.c 	if (!asoc)
asoc              690 net/sctp/auth.c 	if (!asoc->peer.auth_capable)
asoc              694 net/sctp/auth.c 			      (struct sctp_chunks_param *)asoc->c.auth_chunks);
asoc              706 net/sctp/auth.c void sctp_auth_calculate_hmac(const struct sctp_association *asoc,
asoc              724 net/sctp/auth.c 	if (key_id == asoc->active_key_id)
asoc              725 net/sctp/auth.c 		asoc_key = asoc->asoc_shared_key;
asoc              728 net/sctp/auth.c 		asoc_key = sctp_auth_asoc_create_secret(asoc, ep_key, gfp);
asoc              738 net/sctp/auth.c 	tfm = asoc->ep->auth_hmacs[hmac_id];
asoc              823 net/sctp/auth.c 		      struct sctp_association *asoc,
asoc              834 net/sctp/auth.c 	if (asoc) {
asoc              835 net/sctp/auth.c 		if (!asoc->peer.auth_capable)
asoc              837 net/sctp/auth.c 		sh_keys = &asoc->endpoint_shared_keys;
asoc              875 net/sctp/auth.c 			     struct sctp_association *asoc,
asoc              883 net/sctp/auth.c 	if (asoc) {
asoc              884 net/sctp/auth.c 		if (!asoc->peer.auth_capable)
asoc              886 net/sctp/auth.c 		sh_keys = &asoc->endpoint_shared_keys;
asoc              903 net/sctp/auth.c 	if (asoc) {
asoc              904 net/sctp/auth.c 		asoc->active_key_id = key_id;
asoc              905 net/sctp/auth.c 		sctp_auth_asoc_init_active_key(asoc, GFP_KERNEL);
asoc              913 net/sctp/auth.c 			 struct sctp_association *asoc,
asoc              923 net/sctp/auth.c 	if (asoc) {
asoc              924 net/sctp/auth.c 		if (!asoc->peer.auth_capable)
asoc              926 net/sctp/auth.c 		if (asoc->active_key_id == key_id)
asoc              929 net/sctp/auth.c 		sh_keys = &asoc->endpoint_shared_keys;
asoc              957 net/sctp/auth.c 			   struct sctp_association *asoc, __u16  key_id)
asoc              966 net/sctp/auth.c 	if (asoc) {
asoc              967 net/sctp/auth.c 		if (!asoc->peer.auth_capable)
asoc              969 net/sctp/auth.c 		if (asoc->active_key_id == key_id)
asoc              972 net/sctp/auth.c 		sh_keys = &asoc->endpoint_shared_keys;
asoc              996 net/sctp/auth.c 	if (asoc && !list_empty(&key->key_list) &&
asoc             1000 net/sctp/auth.c 		ev = sctp_ulpevent_make_authkey(asoc, key->key_id,
asoc             1003 net/sctp/auth.c 			asoc->stream.si->enqueue_event(&asoc->ulpq, ev);
asoc               74 net/sctp/chunk.c 	struct sctp_association *asoc = NULL;
asoc               89 net/sctp/chunk.c 			asoc = chunk->asoc;
asoc               93 net/sctp/chunk.c 				error = asoc->outqueue.error;
asoc               95 net/sctp/chunk.c 			notify = sctp_ulpevent_type_enabled(asoc->subscribe,
asoc              107 net/sctp/chunk.c 			ev = sctp_ulpevent_make_send_failed(asoc, chunk, sent,
asoc              110 net/sctp/chunk.c 				asoc->stream.si->enqueue_event(&asoc->ulpq, ev);
asoc              148 net/sctp/chunk.c struct sctp_datamsg *sctp_datamsg_from_user(struct sctp_association *asoc,
asoc              167 net/sctp/chunk.c 	if (asoc->peer.prsctp_capable && sinfo->sinfo_timetolive &&
asoc              176 net/sctp/chunk.c 	max_data = asoc->frag_point;
asoc              178 net/sctp/chunk.c 		max_data = sctp_min_frag_point(sctp_sk(asoc->base.sk),
asoc              179 net/sctp/chunk.c 					       sctp_datachk_len(&asoc->stream));
asoc              181 net/sctp/chunk.c 				    __func__, asoc, max_data);
asoc              188 net/sctp/chunk.c 	if (sctp_auth_send_cid(SCTP_CID_DATA, asoc)) {
asoc              189 net/sctp/chunk.c 		struct sctp_hmac *hmac_desc = sctp_auth_asoc_get_hmac(asoc);
asoc              196 net/sctp/chunk.c 		    sinfo->sinfo_ssn != asoc->active_key_id) {
asoc              197 net/sctp/chunk.c 			shkey = sctp_auth_get_shkey(asoc, sinfo->sinfo_ssn);
asoc              203 net/sctp/chunk.c 			shkey = asoc->shkey;
asoc              216 net/sctp/chunk.c 	if (timer_pending(&asoc->timers[SCTP_EVENT_TIMEOUT_SACK]) &&
asoc              217 net/sctp/chunk.c 	    asoc->outqueue.out_qlen == 0 &&
asoc              218 net/sctp/chunk.c 	    list_empty(&asoc->outqueue.retransmit) &&
asoc              223 net/sctp/chunk.c 	if (asoc->state < SCTP_STATE_COOKIE_ECHOED)
asoc              230 net/sctp/chunk.c 			SCTP_INC_STATS(sock_net(asoc->base.sk),
asoc              264 net/sctp/chunk.c 		chunk = asoc->stream.si->make_datafrag(asoc, sinfo, len, frag,
asoc              304 net/sctp/chunk.c 	if (!chunk->asoc->peer.prsctp_capable)
asoc              317 net/sctp/chunk.c 			SCTP_SO(&chunk->asoc->stream,
asoc              321 net/sctp/chunk.c 			chunk->asoc->abandoned_sent[SCTP_PR_INDEX(TTL)]++;
asoc              324 net/sctp/chunk.c 			chunk->asoc->abandoned_unsent[SCTP_PR_INDEX(TTL)]++;
asoc              332 net/sctp/chunk.c 			SCTP_SO(&chunk->asoc->stream,
asoc              335 net/sctp/chunk.c 		chunk->asoc->abandoned_sent[SCTP_PR_INDEX(RTX)]++;
asoc               28 net/sctp/diag.c 					struct sctp_association *asoc)
asoc               32 net/sctp/diag.c 	struct timer_list *t3_rtx = &asoc->peer.primary_path->T3_rtx_timer;
asoc               34 net/sctp/diag.c 	laddr = list_entry(asoc->base.bind_addr.address_list.next,
asoc               36 net/sctp/diag.c 	paddr = asoc->peer.primary_path->ipaddr;
asoc               37 net/sctp/diag.c 	dst = asoc->peer.primary_path->dst;
asoc               40 net/sctp/diag.c 	r->id.idiag_sport = htons(asoc->base.bind_addr.port);
asoc               41 net/sctp/diag.c 	r->id.idiag_dport = htons(asoc->peer.port);
asoc               59 net/sctp/diag.c 	r->idiag_state = asoc->state;
asoc               62 net/sctp/diag.c 		r->idiag_retrans = asoc->rtx_data_chunks;
asoc               98 net/sctp/diag.c 					struct sctp_association *asoc)
asoc              106 net/sctp/diag.c 			   addrlen * asoc->peer.transport_count);
asoc              111 net/sctp/diag.c 	list_for_each_entry(from, &asoc->peer.transport_addr_list,
asoc              123 net/sctp/diag.c static int inet_sctp_diag_fill(struct sock *sk, struct sctp_association *asoc,
asoc              147 net/sctp/diag.c 	if (asoc) {
asoc              148 net/sctp/diag.c 		inet_diag_msg_sctpasoc_fill(r, sk, asoc);
asoc              163 net/sctp/diag.c 		if (asoc && asoc->ep->sndbuf_policy)
asoc              164 net/sctp/diag.c 			amt = asoc->sndbuf_used;
asoc              168 net/sctp/diag.c 		if (asoc && asoc->ep->rcvbuf_policy)
asoc              169 net/sctp/diag.c 			amt = atomic_read(&asoc->rmem_alloc);
asoc              197 net/sctp/diag.c 	infox.asoc = asoc;
asoc              200 net/sctp/diag.c 	addr_list = asoc ? &asoc->base.bind_addr.address_list
asoc              205 net/sctp/diag.c 	if (asoc && (ext & (1 << (INET_DIAG_CONG - 1))))
asoc              209 net/sctp/diag.c 	if (asoc && inet_diag_msg_sctpaddrs_fill(skb, asoc))
asoc              229 net/sctp/diag.c static size_t inet_assoc_attr_size(struct sctp_association *asoc)
asoc              235 net/sctp/diag.c 	list_for_each_entry_rcu(laddr, &asoc->base.bind_addr.address_list,
asoc              240 net/sctp/diag.c 		+ nla_total_size(addrlen * asoc->peer.transport_count)
asoc              250 net/sctp/diag.c 	struct sctp_association *assoc = tsp->asoc;
asoc              251 net/sctp/diag.c 	struct sock *sk = tsp->asoc->base.sk;
asoc              297 net/sctp/diag.c 	struct sctp_endpoint *ep = tsp->asoc->ep;
asoc              351 net/sctp/diag.c 	struct sctp_endpoint *ep = tsp->asoc->ep;
asoc              359 net/sctp/diag.c 	if (tsp->asoc != assoc)
asoc              420 net/sctp/diag.c 	if (infox->asoc) {
asoc              421 net/sctp/diag.c 		r->idiag_rqueue = atomic_read(&infox->asoc->rmem_alloc);
asoc              422 net/sctp/diag.c 		r->idiag_wqueue = infox->asoc->sndbuf_used;
asoc              428 net/sctp/diag.c 		sctp_get_sctp_info(sk, infox->asoc, infox->sctpinfo);
asoc              152 net/sctp/endpointola.c 			    struct sctp_association *asoc)
asoc              160 net/sctp/endpointola.c 	if (asoc->temp)
asoc              164 net/sctp/endpointola.c 	list_add_tail(&asoc->asocs, &ep->asocs);
asoc              265 net/sctp/endpointola.c 	struct sctp_association *asoc = NULL;
asoc              282 net/sctp/endpointola.c 	asoc = t->asoc;
asoc              285 net/sctp/endpointola.c 	return asoc;
asoc              318 net/sctp/endpointola.c 	struct sctp_association *asoc;
asoc              332 net/sctp/endpointola.c 	asoc = NULL;
asoc              369 net/sctp/endpointola.c 		if (NULL == chunk->asoc) {
asoc              370 net/sctp/endpointola.c 			asoc = sctp_endpoint_lookup_assoc(ep,
asoc              373 net/sctp/endpointola.c 			chunk->asoc = asoc;
asoc              377 net/sctp/endpointola.c 		state = asoc ? asoc->state : SCTP_STATE_CLOSED;
asoc              378 net/sctp/endpointola.c 		if (sctp_auth_recv_cid(subtype.chunk, asoc) && !chunk->auth)
asoc              384 net/sctp/endpointola.c 		if (asoc && sctp_chunk_is_data(chunk))
asoc              385 net/sctp/endpointola.c 			asoc->peer.last_data_from = chunk->transport;
asoc              388 net/sctp/endpointola.c 			if (asoc)
asoc              389 net/sctp/endpointola.c 				asoc->stats.ictrlchunks++;
asoc              396 net/sctp/endpointola.c 				   ep, asoc, chunk, GFP_ATOMIC);
asoc               88 net/sctp/input.c 	struct sctp_association *asoc;
asoc              159 net/sctp/input.c 	asoc = __sctp_rcv_lookup(net, skb, &src, &dest, &transport);
asoc              161 net/sctp/input.c 	if (!asoc)
asoc              165 net/sctp/input.c 	rcvr = asoc ? &asoc->base : &ep->base;
asoc              175 net/sctp/input.c 			asoc = NULL;
asoc              195 net/sctp/input.c 	if (!asoc) {
asoc              210 net/sctp/input.c 	chunk = sctp_chunkify(skb, asoc, sk, GFP_ATOMIC);
asoc              385 net/sctp/input.c void sctp_icmp_frag_needed(struct sock *sk, struct sctp_association *asoc,
asoc              393 net/sctp/input.c 		asoc->pmtu_pending = 1;
asoc              413 net/sctp/input.c 	sctp_assoc_sync_pmtu(asoc);
asoc              416 net/sctp/input.c 	sctp_retransmit(&asoc->outqueue, t, SCTP_RTXR_PMTUD);
asoc              443 net/sctp/input.c 			   struct sctp_association *asoc,
asoc              452 net/sctp/input.c 				sctp_association_hold(asoc);
asoc              461 net/sctp/input.c 			sctp_association_put(asoc);
asoc              465 net/sctp/input.c 			   asoc->state, asoc->ep, asoc, t,
asoc              481 net/sctp/input.c 	struct sctp_association *asoc;
asoc              499 net/sctp/input.c 	asoc = __sctp_lookup_association(net, &saddr, &daddr, &transport);
asoc              500 net/sctp/input.c 	if (!asoc)
asoc              503 net/sctp/input.c 	sk = asoc->base.sk;
asoc              525 net/sctp/input.c 		    ntohl(chunkhdr->init_hdr.init_tag) != asoc->c.my_vtag)
asoc              528 net/sctp/input.c 	} else if (vtag != asoc->c.peer_vtag) {
asoc              540 net/sctp/input.c 	*app = asoc;
asoc              578 net/sctp/input.c 	struct sctp_association *asoc = NULL;
asoc              590 net/sctp/input.c 	sk = sctp_err_lookup(net, AF_INET, skb, sctp_hdr(skb), &asoc, &transport);
asoc              612 net/sctp/input.c 			sctp_icmp_frag_needed(sk, asoc, transport,
asoc              617 net/sctp/input.c 				sctp_icmp_proto_unreachable(sk, asoc,
asoc              885 net/sctp/input.c 	if (!net_eq(t->asoc->base.net, x->net))
asoc              887 net/sctp/input.c 	if (x->lport != htons(t->asoc->base.bind_addr.port))
asoc              900 net/sctp/input.c 	return sctp_hashfn(t->asoc->base.net,
asoc              901 net/sctp/input.c 			   htons(t->asoc->base.bind_addr.port),
asoc              937 net/sctp/input.c 	if (t->asoc->temp)
asoc              940 net/sctp/input.c 	arg.net   = sock_net(t->asoc->base.sk);
asoc              942 net/sctp/input.c 	arg.lport = htons(t->asoc->base.bind_addr.port);
asoc              949 net/sctp/input.c 		if (transport->asoc->ep == t->asoc->ep) {
asoc              965 net/sctp/input.c 	if (t->asoc->temp)
asoc              993 net/sctp/input.c 		if (sctp_bind_addr_match(&t->asoc->base.bind_addr,
asoc              994 net/sctp/input.c 					 laddr, sctp_sk(t->asoc->base.sk)))
asoc             1020 net/sctp/input.c 		if (ep == t->asoc->ep)
asoc             1034 net/sctp/input.c 	struct sctp_association *asoc = NULL;
asoc             1040 net/sctp/input.c 	asoc = t->asoc;
asoc             1044 net/sctp/input.c 	return asoc;
asoc             1054 net/sctp/input.c 	struct sctp_association *asoc;
asoc             1057 net/sctp/input.c 	asoc = __sctp_lookup_association(net, laddr, paddr, transportp);
asoc             1060 net/sctp/input.c 	return asoc;
asoc             1100 net/sctp/input.c 	struct sctp_association *asoc;
asoc             1136 net/sctp/input.c 		asoc = __sctp_lookup_association(net, laddr, paddr, transportp);
asoc             1137 net/sctp/input.c 		if (asoc)
asoc             1138 net/sctp/input.c 			return asoc;
asoc             1197 net/sctp/input.c 	struct sctp_association *asoc = NULL;
asoc             1235 net/sctp/input.c 				asoc = __sctp_rcv_asconf_lookup(
asoc             1243 net/sctp/input.c 		if (asoc)
asoc             1250 net/sctp/input.c 	return asoc;
asoc             1298 net/sctp/input.c 	struct sctp_association *asoc;
asoc             1300 net/sctp/input.c 	asoc = __sctp_lookup_association(net, laddr, paddr, transportp);
asoc             1301 net/sctp/input.c 	if (asoc)
asoc             1308 net/sctp/input.c 	asoc = __sctp_rcv_lookup_harder(net, skb, laddr, transportp);
asoc             1309 net/sctp/input.c 	if (asoc)
asoc             1322 net/sctp/input.c 	return asoc;
asoc               78 net/sctp/inqueue.c 	if (chunk->asoc)
asoc               79 net/sctp/inqueue.c 		chunk->asoc->stats.ipackets++;
asoc              176 net/sctp/inqueue.c 		if (chunk->asoc)
asoc              177 net/sctp/inqueue.c 			sock_rps_save_rxhash(chunk->asoc->base.sk, chunk->skb);
asoc              130 net/sctp/ipv6.c 	struct sctp_association *asoc;
asoc              144 net/sctp/ipv6.c 	sk = sctp_err_lookup(net, AF_INET6, skb, sctp_hdr(skb), &asoc, &transport);
asoc              161 net/sctp/ipv6.c 			sctp_icmp_frag_needed(sk, asoc, transport, ntohl(info));
asoc              165 net/sctp/ipv6.c 			sctp_icmp_proto_unreachable(sk, asoc, transport);
asoc              229 net/sctp/ipv6.c 	struct sctp_association *asoc = t->asoc;
asoc              248 net/sctp/ipv6.c 	else if (asoc)
asoc              249 net/sctp/ipv6.c 		fl6->flowi6_oif = asoc->base.sk->sk_bound_dev_if;
asoc              264 net/sctp/ipv6.c 	if (asoc)
asoc              265 net/sctp/ipv6.c 		fl6->fl6_sport = htons(asoc->base.bind_addr.port);
asoc              280 net/sctp/ipv6.c 	if (!asoc || saddr) {
asoc              286 net/sctp/ipv6.c 	bp = &asoc->base.bind_addr;
asoc              300 net/sctp/ipv6.c 			     !asoc->src_out_of_asoc_ok))
asoc              401 net/sctp/ipv6.c 	pr_debug("%s: asoc:%p dst:%p\n", __func__, t->asoc, t->dst);
asoc              712 net/sctp/ipv6.c 					     struct sctp_association *asoc,
asoc              725 net/sctp/ipv6.c 	sctp_copy_sock(newsk, sk, asoc);
asoc              745 net/sctp/ipv6.c 	sctp_v6_to_sk_daddr(&asoc->peer.primary_addr, newsk);
asoc              809 net/sctp/ipv6.c 	struct sctp_association *asoc;
asoc              816 net/sctp/ipv6.c 	asoc = event->asoc;
asoc              817 net/sctp/ipv6.c 	paddr = &asoc->peer.primary_addr;
asoc              821 net/sctp/ipv6.c 		addr->v4.sin_port = htons(asoc->peer.port);
asoc              830 net/sctp/ipv6.c 		addr->v6.sin6_port = htons(asoc->peer.port);
asoc              834 net/sctp/ipv6.c 	*addrlen = sctp_v6_addr_to_user(sctp_sk(asoc->base.sk), addr);
asoc               77 net/sctp/output.c 	struct sctp_association *asoc = tp->asoc;
asoc               91 net/sctp/output.c 	if (asoc) {
asoc               92 net/sctp/output.c 		sk = asoc->base.sk;
asoc               98 net/sctp/output.c 	if (!asoc)
asoc              104 net/sctp/output.c 		if (asoc->param_flags & SPP_PMTUD_ENABLE)
asoc              105 net/sctp/output.c 			sctp_assoc_sync_pmtu(asoc);
asoc              107 net/sctp/output.c 		if (asoc->param_flags & SPP_PMTUD_ENABLE)
asoc              108 net/sctp/output.c 			sctp_assoc_sync_pmtu(asoc);
asoc              111 net/sctp/output.c 	if (asoc->pmtu_pending) {
asoc              112 net/sctp/output.c 		if (asoc->param_flags & SPP_PMTUD_ENABLE)
asoc              113 net/sctp/output.c 			sctp_assoc_sync_pmtu(asoc);
asoc              114 net/sctp/output.c 		asoc->pmtu_pending = 0;
asoc              121 net/sctp/output.c 		struct sctp_chunk *chunk = sctp_get_ecne_prepend(asoc);
asoc              137 net/sctp/output.c 					  : asoc->pathmtu;
asoc              218 net/sctp/output.c 	struct sctp_association *asoc = pkt->transport->asoc;
asoc              223 net/sctp/output.c 	if (!asoc)
asoc              238 net/sctp/output.c 	auth = sctp_make_auth(asoc, chunk->shkey->key_id);
asoc              264 net/sctp/output.c 		struct sctp_association *asoc;
asoc              266 net/sctp/output.c 		asoc = pkt->transport->asoc;
asoc              267 net/sctp/output.c 		timer = &asoc->timers[SCTP_EVENT_TIMEOUT_SACK];
asoc              274 net/sctp/output.c 			    pkt->transport->asoc->peer.sack_generation)
asoc              277 net/sctp/output.c 			asoc->a_rwnd = asoc->rwnd;
asoc              278 net/sctp/output.c 			sack = sctp_make_sack(asoc);
asoc              285 net/sctp/output.c 				SCTP_INC_STATS(sock_net(asoc->base.sk),
asoc              287 net/sctp/output.c 				asoc->stats.octrlchunks++;
asoc              288 net/sctp/output.c 				asoc->peer.sack_needed = 0;
asoc              290 net/sctp/output.c 					sctp_association_put(asoc);
asoc              336 net/sctp/output.c 		if (chunk->asoc)
asoc              337 net/sctp/output.c 			chunk->asoc->stats.osacks++;
asoc              490 net/sctp/output.c 			sctp_auth_calculate_hmac(tp->asoc, nskb, auth,
asoc              548 net/sctp/output.c 	struct sctp_association *asoc = tp->asoc;
asoc              605 net/sctp/output.c 	if (packet->has_data && sctp_state(asoc, ESTABLISHED) &&
asoc              606 net/sctp/output.c 	    asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE]) {
asoc              608 net/sctp/output.c 			&asoc->timers[SCTP_EVENT_TIMEOUT_AUTOCLOSE];
asoc              610 net/sctp/output.c 			asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE];
asoc              613 net/sctp/output.c 			sctp_association_hold(asoc);
asoc              618 net/sctp/output.c 	if (asoc) {
asoc              619 net/sctp/output.c 		asoc->stats.opackets += pkt_count;
asoc              620 net/sctp/output.c 		if (asoc->peer.last_sent_to != tp)
asoc              621 net/sctp/output.c 			asoc->peer.last_sent_to = tp;
asoc              653 net/sctp/output.c 	struct sctp_association *asoc = transport->asoc;
asoc              654 net/sctp/output.c 	struct sctp_outq *q = &asoc->outqueue;
asoc              669 net/sctp/output.c 	rwnd = asoc->peer.rwnd;
asoc              703 net/sctp/output.c 	if ((sctp_sk(asoc->base.sk)->nodelay || inflight == 0) &&
asoc              704 net/sctp/output.c 	    !asoc->force_delay)
asoc              712 net/sctp/output.c 	if (!sctp_state(asoc, ESTABLISHED))
asoc              719 net/sctp/output.c 	    packet->overhead - sctp_datachk_len(&chunk->asoc->stream) - 4)
asoc              737 net/sctp/output.c 	struct sctp_association *asoc = transport->asoc;
asoc              738 net/sctp/output.c 	u32 rwnd = asoc->peer.rwnd;
asoc              744 net/sctp/output.c 	asoc->outqueue.outstanding_bytes += datasize;
asoc              752 net/sctp/output.c 	asoc->peer.rwnd = rwnd;
asoc              754 net/sctp/output.c 	asoc->stream.si->assign_number(chunk);
asoc              775 net/sctp/output.c 	if (packet->transport->asoc)
asoc              776 net/sctp/output.c 		pmtu = packet->transport->asoc->pathmtu;
asoc               68 net/sctp/outqueue.c 	oute = SCTP_SO(&q->asoc->stream, stream)->ext;
asoc               89 net/sctp/outqueue.c 	oute = SCTP_SO(&q->asoc->stream, stream)->ext;
asoc              190 net/sctp/outqueue.c void sctp_outq_init(struct sctp_association *asoc, struct sctp_outq *q)
asoc              194 net/sctp/outqueue.c 	q->asoc = asoc;
asoc              200 net/sctp/outqueue.c 	sctp_sched_set_sched(asoc, sctp_sk(asoc->base.sk)->default_ss);
asoc              212 net/sctp/outqueue.c 	list_for_each_entry(transport, &q->asoc->peer.transport_addr_list,
asoc              269 net/sctp/outqueue.c 	sctp_outq_init(q->asoc, q);
asoc              282 net/sctp/outqueue.c 	struct net *net = sock_net(q->asoc->base.sk);
asoc              299 net/sctp/outqueue.c 		if (chunk->asoc->peer.prsctp_capable &&
asoc              301 net/sctp/outqueue.c 			chunk->asoc->sent_cnt_removable++;
asoc              341 net/sctp/outqueue.c static int sctp_prsctp_prune_sent(struct sctp_association *asoc,
asoc              357 net/sctp/outqueue.c 		sctp_insert_list(&asoc->outqueue.abandoned,
asoc              360 net/sctp/outqueue.c 		streamout = SCTP_SO(&asoc->stream, chk->sinfo.sinfo_stream);
asoc              361 net/sctp/outqueue.c 		asoc->sent_cnt_removable--;
asoc              362 net/sctp/outqueue.c 		asoc->abandoned_sent[SCTP_PR_INDEX(PRIO)]++;
asoc              365 net/sctp/outqueue.c 		if (queue != &asoc->outqueue.retransmit &&
asoc              370 net/sctp/outqueue.c 			asoc->outqueue.outstanding_bytes -= sctp_data_size(chk);
asoc              381 net/sctp/outqueue.c static int sctp_prsctp_prune_unsent(struct sctp_association *asoc,
asoc              384 net/sctp/outqueue.c 	struct sctp_outq *q = &asoc->outqueue;
asoc              387 net/sctp/outqueue.c 	q->sched->unsched_all(&asoc->stream);
asoc              398 net/sctp/outqueue.c 		asoc->sent_cnt_removable--;
asoc              399 net/sctp/outqueue.c 		asoc->abandoned_unsent[SCTP_PR_INDEX(PRIO)]++;
asoc              400 net/sctp/outqueue.c 		if (chk->sinfo.sinfo_stream < asoc->stream.outcnt) {
asoc              402 net/sctp/outqueue.c 				SCTP_SO(&asoc->stream, chk->sinfo.sinfo_stream);
asoc              413 net/sctp/outqueue.c 	q->sched->sched_all(&asoc->stream);
asoc              419 net/sctp/outqueue.c void sctp_prsctp_prune(struct sctp_association *asoc,
asoc              424 net/sctp/outqueue.c 	if (!asoc->peer.prsctp_capable || !asoc->sent_cnt_removable)
asoc              427 net/sctp/outqueue.c 	msg_len = sctp_prsctp_prune_sent(asoc, sinfo,
asoc              428 net/sctp/outqueue.c 					 &asoc->outqueue.retransmit,
asoc              433 net/sctp/outqueue.c 	list_for_each_entry(transport, &asoc->peer.transport_addr_list,
asoc              435 net/sctp/outqueue.c 		msg_len = sctp_prsctp_prune_sent(asoc, sinfo,
asoc              442 net/sctp/outqueue.c 	sctp_prsctp_prune_unsent(asoc, sinfo, msg_len);
asoc              473 net/sctp/outqueue.c 				q->asoc->peer.rwnd += sctp_data_size(chunk);
asoc              493 net/sctp/outqueue.c 			q->asoc->peer.rwnd += sctp_data_size(chunk);
asoc              536 net/sctp/outqueue.c 	struct net *net = sock_net(q->asoc->base.sk);
asoc              545 net/sctp/outqueue.c 		if (transport == transport->asoc->peer.retran_path)
asoc              546 net/sctp/outqueue.c 			sctp_assoc_update_retran_path(transport->asoc);
asoc              547 net/sctp/outqueue.c 		transport->asoc->rtx_data_chunks +=
asoc              548 net/sctp/outqueue.c 			transport->asoc->unack_data;
asoc              560 net/sctp/outqueue.c 		transport->asoc->init_retries++;
asoc              573 net/sctp/outqueue.c 		q->asoc->stream.si->generate_ftsn(q, q->asoc->ctsn_ack_point);
asoc              718 net/sctp/outqueue.c 			q->asoc->stats.rtxchunks++;
asoc              763 net/sctp/outqueue.c 	const struct sctp_association *asoc = transport->asoc;
asoc              764 net/sctp/outqueue.c 	const __u16 sport = asoc->base.bind_addr.port;
asoc              765 net/sctp/outqueue.c 	const __u16 dport = asoc->peer.port;
asoc              766 net/sctp/outqueue.c 	const __u32 vtag = asoc->peer.i.init_tag;
asoc              782 net/sctp/outqueue.c 	struct sctp_association *asoc;
asoc              809 net/sctp/outqueue.c 				new_transport = sctp_assoc_lookup_paddr(ctx->asoc,
asoc              817 net/sctp/outqueue.c 			new_transport = ctx->asoc->peer.active_path;
asoc              842 net/sctp/outqueue.c 				new_transport = ctx->asoc->peer.active_path;
asoc              859 net/sctp/outqueue.c 				   ctx->asoc->peer.i.init_tag,
asoc              860 net/sctp/outqueue.c 				   ctx->asoc->peer.ecn_capable);
asoc              883 net/sctp/outqueue.c 		if (ctx->asoc->src_out_of_asoc_ok &&
asoc              906 net/sctp/outqueue.c 				ctx->asoc->base.sk->sk_err = -error;
asoc              913 net/sctp/outqueue.c 				ctx->packet->vtag = ctx->asoc->c.my_vtag;
asoc              947 net/sctp/outqueue.c 			ctx->asoc->stats.octrlchunks++;
asoc              958 net/sctp/outqueue.c 			if (chunk == ctx->asoc->strreset_chunk)
asoc              976 net/sctp/outqueue.c 	if (ctx->asoc->peer.retran_path->state == SCTP_UNCONFIRMED)
asoc              979 net/sctp/outqueue.c 	if (ctx->transport != ctx->asoc->peer.retran_path) {
asoc              981 net/sctp/outqueue.c 		ctx->transport = ctx->asoc->peer.retran_path;
asoc              988 net/sctp/outqueue.c 		sctp_packet_config(ctx->packet, ctx->asoc->peer.i.init_tag,
asoc              989 net/sctp/outqueue.c 				   ctx->asoc->peer.ecn_capable);
asoc              995 net/sctp/outqueue.c 		ctx->asoc->base.sk->sk_err = -error;
asoc             1024 net/sctp/outqueue.c 	switch (ctx->asoc->state) {
asoc             1066 net/sctp/outqueue.c 		__u8 stream_state = SCTP_SO(&ctx->asoc->stream, sid)->state;
asoc             1109 net/sctp/outqueue.c 		if (ctx->asoc->state == SCTP_STATE_SHUTDOWN_PENDING)
asoc             1112 net/sctp/outqueue.c 			ctx->asoc->stats.ouodchunks++;
asoc             1114 net/sctp/outqueue.c 			ctx->asoc->stats.oodchunks++;
asoc             1148 net/sctp/outqueue.c 				ctx->q->asoc->base.sk->sk_err = -error;
asoc             1171 net/sctp/outqueue.c 		.asoc = q->asoc,
asoc             1187 net/sctp/outqueue.c 	if (q->asoc->src_out_of_asoc_ok)
asoc             1223 net/sctp/outqueue.c 	struct sctp_association *asoc = q->asoc;
asoc             1233 net/sctp/outqueue.c 	struct sctp_transport *primary = asoc->peer.primary_path;
asoc             1239 net/sctp/outqueue.c 	transport_list = &asoc->peer.transport_addr_list;
asoc             1243 net/sctp/outqueue.c 	asoc->stats.gapcnt += gap_ack_blocks;
asoc             1286 net/sctp/outqueue.c 	if (TSN_lt(asoc->highest_sacked, highest_tsn))
asoc             1287 net/sctp/outqueue.c 		asoc->highest_sacked = highest_tsn;
asoc             1315 net/sctp/outqueue.c 	if (TSN_lt(asoc->ctsn_ack_point, sack_ctsn)) {
asoc             1316 net/sctp/outqueue.c 		asoc->ctsn_ack_point = sack_ctsn;
asoc             1322 net/sctp/outqueue.c 		if (asoc->fast_recovery && accum_moved)
asoc             1331 net/sctp/outqueue.c 	sctp_sack_update_unack_data(asoc, sack);
asoc             1333 net/sctp/outqueue.c 	ctsn = asoc->ctsn_ack_point;
asoc             1342 net/sctp/outqueue.c 			if (asoc->peer.prsctp_capable &&
asoc             1344 net/sctp/outqueue.c 				asoc->sent_cnt_removable--;
asoc             1355 net/sctp/outqueue.c 	asoc->peer.zero_window_announced = !sack_a_rwnd;
asoc             1363 net/sctp/outqueue.c 	asoc->peer.rwnd = sack_a_rwnd;
asoc             1365 net/sctp/outqueue.c 	asoc->stream.si->generate_ftsn(q, sack_ctsn);
asoc             1369 net/sctp/outqueue.c 		 "advertised peer ack point:0x%x\n", __func__, asoc, ctsn,
asoc             1370 net/sctp/outqueue.c 		 asoc->adv_peer_ack_point);
asoc             1485 net/sctp/outqueue.c 					    q->asoc->peer.primary_path->cacc.
asoc             1569 net/sctp/outqueue.c 			struct sctp_association *asoc = transport->asoc;
asoc             1587 net/sctp/outqueue.c 			transport->asoc->overall_error_count = 0;
asoc             1596 net/sctp/outqueue.c 			if (asoc->state == SCTP_STATE_SHUTDOWN_PENDING &&
asoc             1597 net/sctp/outqueue.c 			    del_timer(&asoc->timers
asoc             1599 net/sctp/outqueue.c 					sctp_association_put(asoc);
asoc             1608 net/sctp/outqueue.c 					transport->asoc,
asoc             1636 net/sctp/outqueue.c 			if (!q->asoc->peer.rwnd &&
asoc             1638 net/sctp/outqueue.c 			    (sack_ctsn+2 == q->asoc->next_tsn) &&
asoc             1639 net/sctp/outqueue.c 			    q->asoc->state < SCTP_STATE_SHUTDOWN_PENDING) {
asoc             1643 net/sctp/outqueue.c 				q->asoc->overall_error_count = 0;
asoc             1682 net/sctp/outqueue.c 	struct sctp_association *asoc = q->asoc;
asoc             1683 net/sctp/outqueue.c 	struct sctp_transport *primary = asoc->peer.primary_path;
asoc             1788 net/sctp/outqueue.c 	struct sctp_association *asoc = q->asoc;
asoc             1797 net/sctp/outqueue.c 	if (!asoc->peer.prsctp_capable)
asoc             1806 net/sctp/outqueue.c 	if (TSN_lt(asoc->adv_peer_ack_point, ctsn))
asoc             1807 net/sctp/outqueue.c 		asoc->adv_peer_ack_point = ctsn;
asoc             1842 net/sctp/outqueue.c 			if (TSN_lte(tsn, asoc->adv_peer_ack_point+1)) {
asoc             1843 net/sctp/outqueue.c 				asoc->adv_peer_ack_point = tsn;
asoc             1881 net/sctp/outqueue.c 	if (asoc->adv_peer_ack_point > ctsn)
asoc             1882 net/sctp/outqueue.c 		ftsn_chunk = sctp_make_fwdtsn(asoc, asoc->adv_peer_ack_point,
asoc             1887 net/sctp/outqueue.c 		SCTP_INC_STATS(sock_net(asoc->base.sk), SCTP_MIB_OUTCTRLCHUNKS);
asoc               38 net/sctp/primitive.c int sctp_primitive_ ## name(struct net *net, struct sctp_association *asoc, \
asoc               47 net/sctp/primitive.c 	state = asoc ? asoc->state : SCTP_STATE_CLOSED; \
asoc               48 net/sctp/primitive.c 	ep = asoc ? asoc->ep : NULL; \
asoc               50 net/sctp/primitive.c 	error = sctp_do_sm(net, event_type, subtype, state, ep, asoc,	\
asoc               79 net/sctp/proc.c 	struct sctp_association *asoc;
asoc               86 net/sctp/proc.c 		asoc = sctp_assoc(epb);
asoc               88 net/sctp/proc.c 		peer = asoc->peer.primary_path;
asoc               90 net/sctp/proc.c 			WARN(1, "Association %p with NULL primary path!\n", asoc);
asoc              248 net/sctp/proc.c 	assoc = transport->asoc;
asoc              304 net/sctp/proc.c 	assoc = transport->asoc;
asoc              316 net/sctp/proc.c 		seq_printf(seq, "%d ", tsp->asoc->assoc_id);
asoc              410 net/sctp/protocol.c 	struct sctp_association *asoc = t->asoc;
asoc              427 net/sctp/protocol.c 	if (asoc) {
asoc              428 net/sctp/protocol.c 		fl4->flowi4_tos = RT_CONN_FLAGS_TOS(asoc->base.sk, tos);
asoc              429 net/sctp/protocol.c 		fl4->flowi4_oif = asoc->base.sk->sk_bound_dev_if;
asoc              430 net/sctp/protocol.c 		fl4->fl4_sport = htons(asoc->base.bind_addr.port);
asoc              451 net/sctp/protocol.c 	if (!asoc || saddr)
asoc              454 net/sctp/protocol.c 	bp = &asoc->base.bind_addr;
asoc              465 net/sctp/protocol.c 			    !asoc->src_out_of_asoc_ok))
asoc              494 net/sctp/protocol.c 				     asoc->base.sk->sk_bound_dev_if,
asoc              495 net/sctp/protocol.c 				     RT_CONN_FLAGS_TOS(asoc->base.sk, tos),
asoc              568 net/sctp/protocol.c 					     struct sctp_association *asoc,
asoc              580 net/sctp/protocol.c 	sctp_copy_sock(newsk, sk, asoc);
asoc              587 net/sctp/protocol.c 	newinet->inet_daddr = asoc->peer.primary_addr.v4.sin_addr.s_addr;
asoc              898 net/sctp/protocol.c 		struct sctp_association *asoc;
asoc              900 net/sctp/protocol.c 		asoc = event->asoc;
asoc              903 net/sctp/protocol.c 		sinfrom = &asoc->peer.primary_addr.v4;
asoc              904 net/sctp/protocol.c 		sin->sin_port = htons(asoc->peer.port);
asoc               49 net/sctp/sm_make_chunk.c static struct sctp_chunk *sctp_make_control(const struct sctp_association *asoc,
asoc               52 net/sctp/sm_make_chunk.c static struct sctp_chunk *sctp_make_data(const struct sctp_association *asoc,
asoc               54 net/sctp/sm_make_chunk.c static struct sctp_chunk *_sctp_make_chunk(const struct sctp_association *asoc,
asoc               59 net/sctp/sm_make_chunk.c 					const struct sctp_association *asoc,
asoc               63 net/sctp/sm_make_chunk.c static int sctp_process_param(struct sctp_association *asoc,
asoc               77 net/sctp/sm_make_chunk.c 		struct sctp_association *asoc = chunk->asoc;
asoc               87 net/sctp/sm_make_chunk.c 			ev = sctp_ulpevent_make_authkey(asoc, shkey->key_id,
asoc               91 net/sctp/sm_make_chunk.c 				asoc->stream.si->enqueue_event(&asoc->ulpq, ev);
asoc               99 net/sctp/sm_make_chunk.c 	struct sctp_association *asoc = chunk->asoc;
asoc              110 net/sctp/sm_make_chunk.c 		chunk->shkey = asoc->shkey;
asoc              113 net/sctp/sm_make_chunk.c 	skb->sk = asoc ? asoc->base.sk : NULL;
asoc              206 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
asoc              215 net/sctp/sm_make_chunk.c 	struct sctp_endpoint *ep = asoc->ep;
asoc              235 net/sctp/sm_make_chunk.c 	init.init_tag		   = htonl(asoc->c.my_vtag);
asoc              236 net/sctp/sm_make_chunk.c 	init.a_rwnd		   = htonl(asoc->rwnd);
asoc              237 net/sctp/sm_make_chunk.c 	init.num_outbound_streams  = htons(asoc->c.sinit_num_ostreams);
asoc              238 net/sctp/sm_make_chunk.c 	init.num_inbound_streams   = htons(asoc->c.sinit_max_instreams);
asoc              239 net/sctp/sm_make_chunk.c 	init.initial_tsn	   = htonl(asoc->c.initial_tsn);
asoc              242 net/sctp/sm_make_chunk.c 	sp = sctp_sk(asoc->base.sk);
asoc              248 net/sctp/sm_make_chunk.c 	if (asoc->ep->ecn_enable)
asoc              251 net/sctp/sm_make_chunk.c 	if (asoc->ep->prsctp_enable)
asoc              259 net/sctp/sm_make_chunk.c 	if (asoc->ep->asconf_enable) {
asoc              265 net/sctp/sm_make_chunk.c 	if (asoc->ep->reconf_enable) {
asoc              273 net/sctp/sm_make_chunk.c 	if (asoc->ep->intl_enable) {
asoc              283 net/sctp/sm_make_chunk.c 		chunksize += sizeof(asoc->c.auth_random);
asoc              286 net/sctp/sm_make_chunk.c 		auth_hmacs = (struct sctp_paramhdr *)asoc->c.auth_hmacs;
asoc              293 net/sctp/sm_make_chunk.c 		auth_chunks = (struct sctp_paramhdr *)asoc->c.auth_chunks;
asoc              319 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_INIT, 0, chunksize, gfp);
asoc              340 net/sctp/sm_make_chunk.c 	if (asoc->ep->ecn_enable)
asoc              353 net/sctp/sm_make_chunk.c 	if (asoc->ep->prsctp_enable)
asoc              365 net/sctp/sm_make_chunk.c 		sctp_addto_chunk(retval, sizeof(asoc->c.auth_random),
asoc              366 net/sctp/sm_make_chunk.c 				 asoc->c.auth_random);
asoc              379 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc,
asoc              400 net/sctp/sm_make_chunk.c 	addrs = sctp_bind_addrs_to_raw(&asoc->base.bind_addr, &addrs_len, gfp);
asoc              402 net/sctp/sm_make_chunk.c 	initack.init_tag	        = htonl(asoc->c.my_vtag);
asoc              403 net/sctp/sm_make_chunk.c 	initack.a_rwnd			= htonl(asoc->rwnd);
asoc              404 net/sctp/sm_make_chunk.c 	initack.num_outbound_streams	= htons(asoc->c.sinit_num_ostreams);
asoc              405 net/sctp/sm_make_chunk.c 	initack.num_inbound_streams	= htons(asoc->c.sinit_max_instreams);
asoc              406 net/sctp/sm_make_chunk.c 	initack.initial_tsn		= htonl(asoc->c.initial_tsn);
asoc              411 net/sctp/sm_make_chunk.c 	cookie = sctp_pack_cookie(asoc->ep, asoc, chunk, &cookie_len,
asoc              419 net/sctp/sm_make_chunk.c 	sp = sctp_sk(asoc->base.sk);
asoc              423 net/sctp/sm_make_chunk.c 	if (asoc->peer.ecn_capable)
asoc              426 net/sctp/sm_make_chunk.c 	if (asoc->peer.prsctp_capable)
asoc              429 net/sctp/sm_make_chunk.c 	if (asoc->peer.asconf_capable) {
asoc              435 net/sctp/sm_make_chunk.c 	if (asoc->peer.reconf_capable) {
asoc              443 net/sctp/sm_make_chunk.c 	if (asoc->peer.intl_capable) {
asoc              448 net/sctp/sm_make_chunk.c 	if (asoc->peer.auth_capable) {
asoc              449 net/sctp/sm_make_chunk.c 		auth_random = (struct sctp_paramhdr *)asoc->c.auth_random;
asoc              452 net/sctp/sm_make_chunk.c 		auth_hmacs = (struct sctp_paramhdr *)asoc->c.auth_hmacs;
asoc              458 net/sctp/sm_make_chunk.c 		auth_chunks = (struct sctp_paramhdr *)asoc->c.auth_chunks;
asoc              472 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_INIT_ACK, 0, chunksize, gfp);
asoc              487 net/sctp/sm_make_chunk.c 			sctp_assoc_lookup_paddr(asoc,
asoc              494 net/sctp/sm_make_chunk.c 	if (asoc->peer.ecn_capable)
asoc              502 net/sctp/sm_make_chunk.c 	if (asoc->peer.prsctp_capable)
asoc              512 net/sctp/sm_make_chunk.c 	if (asoc->peer.auth_capable) {
asoc              524 net/sctp/sm_make_chunk.c 	retval->asoc = (struct sctp_association *) asoc;
asoc              567 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_cookie_echo(const struct sctp_association *asoc,
asoc              574 net/sctp/sm_make_chunk.c 	cookie = asoc->peer.cookie;
asoc              575 net/sctp/sm_make_chunk.c 	cookie_len = asoc->peer.cookie_len;
asoc              578 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_COOKIE_ECHO, 0,
asoc              619 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_cookie_ack(const struct sctp_association *asoc,
asoc              624 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_COOKIE_ACK, 0, 0, GFP_ATOMIC);
asoc              637 net/sctp/sm_make_chunk.c 			sctp_assoc_lookup_paddr(asoc,
asoc              666 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_cwr(const struct sctp_association *asoc,
asoc              674 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_ECN_CWR, 0,
asoc              701 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_ecne(const struct sctp_association *asoc,
asoc              708 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_ECN_ECNE, 0,
asoc              722 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_datafrag_empty(const struct sctp_association *asoc,
asoc              740 net/sctp/sm_make_chunk.c 	retval = sctp_make_data(asoc, flags, sizeof(dp) + len, gfp);
asoc              754 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_sack(struct sctp_association *asoc)
asoc              756 net/sctp/sm_make_chunk.c 	struct sctp_tsnmap *map = (struct sctp_tsnmap *)&asoc->peer.tsn_map;
asoc              776 net/sctp/sm_make_chunk.c 	sack.a_rwnd 		    = htonl(asoc->a_rwnd);
asoc              785 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_SACK, 0, len, GFP_ATOMIC);
asoc              819 net/sctp/sm_make_chunk.c 	retval->transport = asoc->peer.last_data_from;
asoc              831 net/sctp/sm_make_chunk.c 		asoc->stats.idupchunks += num_dup_tsns;
asoc              843 net/sctp/sm_make_chunk.c 	if (++asoc->peer.sack_generation == 0) {
asoc              844 net/sctp/sm_make_chunk.c 		list_for_each_entry(trans, &asoc->peer.transport_addr_list,
asoc              847 net/sctp/sm_make_chunk.c 		asoc->peer.sack_generation = 1;
asoc              854 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_shutdown(const struct sctp_association *asoc,
asoc              861 net/sctp/sm_make_chunk.c 	if (chunk && chunk->asoc)
asoc              862 net/sctp/sm_make_chunk.c 		ctsn = sctp_tsnmap_get_ctsn(&chunk->asoc->peer.tsn_map);
asoc              864 net/sctp/sm_make_chunk.c 		ctsn = sctp_tsnmap_get_ctsn(&asoc->peer.tsn_map);
asoc              868 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_SHUTDOWN, 0,
asoc              882 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_shutdown_ack(const struct sctp_association *asoc,
asoc              887 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_SHUTDOWN_ACK, 0, 0,
asoc              906 net/sctp/sm_make_chunk.c 					const struct sctp_association *asoc,
asoc              915 net/sctp/sm_make_chunk.c 	flags |= asoc ? 0 : SCTP_CHUNK_FLAG_T;
asoc              917 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_SHUTDOWN_COMPLETE, flags,
asoc              939 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_abort(const struct sctp_association *asoc,
asoc              949 net/sctp/sm_make_chunk.c 	if (!asoc) {
asoc              957 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_ABORT, flags, hint,
asoc              977 net/sctp/sm_make_chunk.c 					const struct sctp_association *asoc,
asoc              984 net/sctp/sm_make_chunk.c 	retval = sctp_make_abort(asoc, chunk,
asoc             1012 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_abort_user(const struct sctp_association *asoc,
asoc             1020 net/sctp/sm_make_chunk.c 	retval = sctp_make_abort(asoc, NULL,
asoc             1078 net/sctp/sm_make_chunk.c 					const struct sctp_association *asoc,
asoc             1086 net/sctp/sm_make_chunk.c 	retval = sctp_make_abort(asoc, chunk, sizeof(struct sctp_errhdr) +
asoc             1104 net/sctp/sm_make_chunk.c 					const struct sctp_association *asoc,
asoc             1113 net/sctp/sm_make_chunk.c 	retval = sctp_make_abort(asoc, chunk, payload_len);
asoc             1127 net/sctp/sm_make_chunk.c 					const struct sctp_association *asoc,
asoc             1134 net/sctp/sm_make_chunk.c 	retval = sctp_make_abort(asoc, chunk, payload_len);
asoc             1146 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_heartbeat(const struct sctp_association *asoc,
asoc             1152 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_HEARTBEAT, 0,
asoc             1175 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_heartbeat_ack(const struct sctp_association *asoc,
asoc             1182 net/sctp/sm_make_chunk.c 	retval  = sctp_make_control(asoc, SCTP_CID_HEARTBEAT_ACK, 0, paylen,
asoc             1209 net/sctp/sm_make_chunk.c 					const struct sctp_association *asoc,
asoc             1215 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_ERROR, 0,
asoc             1244 net/sctp/sm_make_chunk.c 					const struct sctp_association *asoc,
asoc             1250 net/sctp/sm_make_chunk.c 	if (asoc) {
asoc             1251 net/sctp/sm_make_chunk.c 		size = min_t(size_t, size, asoc->pathmtu);
asoc             1252 net/sctp/sm_make_chunk.c 		sp = sctp_sk(asoc->base.sk);
asoc             1257 net/sctp/sm_make_chunk.c 	return sctp_make_op_error_space(asoc, chunk, size);
asoc             1261 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_op_error(const struct sctp_association *asoc,
asoc             1268 net/sctp/sm_make_chunk.c 	retval = sctp_make_op_error_space(asoc, chunk, paylen + reserve_tail);
asoc             1281 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_auth(const struct sctp_association *asoc,
asoc             1289 net/sctp/sm_make_chunk.c 	hmac_desc = sctp_auth_asoc_get_hmac(asoc);
asoc             1293 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_AUTH, 0,
asoc             1331 net/sctp/sm_make_chunk.c 				 const struct sctp_association *asoc,
asoc             1345 net/sctp/sm_make_chunk.c 	retval->asoc		= (struct sctp_association *)asoc;
asoc             1383 net/sctp/sm_make_chunk.c static struct sctp_chunk *_sctp_make_chunk(const struct sctp_association *asoc,
asoc             1408 net/sctp/sm_make_chunk.c 	sk = asoc ? asoc->base.sk : NULL;
asoc             1409 net/sctp/sm_make_chunk.c 	retval = sctp_chunkify(skb, asoc, sk, gfp);
asoc             1419 net/sctp/sm_make_chunk.c 	if (sctp_auth_send_cid(type, asoc))
asoc             1427 net/sctp/sm_make_chunk.c static struct sctp_chunk *sctp_make_data(const struct sctp_association *asoc,
asoc             1430 net/sctp/sm_make_chunk.c 	return _sctp_make_chunk(asoc, SCTP_CID_DATA, flags, paylen, gfp);
asoc             1433 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_idata(const struct sctp_association *asoc,
asoc             1436 net/sctp/sm_make_chunk.c 	return _sctp_make_chunk(asoc, SCTP_CID_I_DATA, flags, paylen, gfp);
asoc             1439 net/sctp/sm_make_chunk.c static struct sctp_chunk *sctp_make_control(const struct sctp_association *asoc,
asoc             1445 net/sctp/sm_make_chunk.c 	chunk = _sctp_make_chunk(asoc, type, flags, paylen, gfp);
asoc             1546 net/sctp/sm_make_chunk.c 	stream = &chunk->asoc->stream;
asoc             1577 net/sctp/sm_make_chunk.c 			htonl(sctp_association_get_next_tsn(chunk->asoc));
asoc             1587 net/sctp/sm_make_chunk.c 	struct sctp_association *asoc;
asoc             1593 net/sctp/sm_make_chunk.c 	asoc = sctp_association_new(ep, ep->base.sk, scope, gfp);
asoc             1594 net/sctp/sm_make_chunk.c 	if (!asoc)
asoc             1596 net/sctp/sm_make_chunk.c 	asoc->temp = 1;
asoc             1599 net/sctp/sm_make_chunk.c 	SCTP_INPUT_CB(skb)->af->from_skb(&asoc->c.peer_addr, skb, 1);
asoc             1602 net/sctp/sm_make_chunk.c 	return asoc;
asoc             1610 net/sctp/sm_make_chunk.c 					const struct sctp_association *asoc,
asoc             1650 net/sctp/sm_make_chunk.c 	cookie->c = asoc->c;
asoc             1655 net/sctp/sm_make_chunk.c 	cookie->c.prsctp_capable = asoc->peer.prsctp_capable;
asoc             1658 net/sctp/sm_make_chunk.c 	cookie->c.adaptation_ind = asoc->peer.adaptation_ind;
asoc             1661 net/sctp/sm_make_chunk.c 	cookie->c.expiration = ktime_add(asoc->cookie_life,
asoc             1700 net/sctp/sm_make_chunk.c 					const struct sctp_association *asoc,
asoc             1798 net/sctp/sm_make_chunk.c 	if (!asoc && ktime_before(bear_cookie->expiration, kt)) {
asoc             1810 net/sctp/sm_make_chunk.c 		*errp = sctp_make_op_error(asoc, chunk,
asoc             1885 net/sctp/sm_make_chunk.c static int sctp_process_missing_param(const struct sctp_association *asoc,
asoc             1899 net/sctp/sm_make_chunk.c 		*errp = sctp_make_op_error_space(asoc, chunk, len);
asoc             1914 net/sctp/sm_make_chunk.c static int sctp_process_inv_mandatory(const struct sctp_association *asoc,
asoc             1921 net/sctp/sm_make_chunk.c 		*errp = sctp_make_op_error_space(asoc, chunk, 0);
asoc             1930 net/sctp/sm_make_chunk.c static int sctp_process_inv_paramlength(const struct sctp_association *asoc,
asoc             1942 net/sctp/sm_make_chunk.c 	*errp = sctp_make_violation_paramlen(asoc, chunk, param);
asoc             1951 net/sctp/sm_make_chunk.c static int sctp_process_hn_param(const struct sctp_association *asoc,
asoc             1966 net/sctp/sm_make_chunk.c 	*errp = sctp_make_op_error(asoc, chunk, SCTP_ERROR_DNS_FAILED,
asoc             2008 net/sctp/sm_make_chunk.c static void sctp_process_ext_param(struct sctp_association *asoc,
asoc             2017 net/sctp/sm_make_chunk.c 			if (asoc->ep->reconf_enable)
asoc             2018 net/sctp/sm_make_chunk.c 				asoc->peer.reconf_capable = 1;
asoc             2021 net/sctp/sm_make_chunk.c 			if (asoc->ep->prsctp_enable)
asoc             2022 net/sctp/sm_make_chunk.c 				asoc->peer.prsctp_capable = 1;
asoc             2028 net/sctp/sm_make_chunk.c 			if (asoc->ep->auth_enable)
asoc             2029 net/sctp/sm_make_chunk.c 				asoc->peer.auth_capable = 1;
asoc             2033 net/sctp/sm_make_chunk.c 			if (asoc->ep->asconf_enable)
asoc             2034 net/sctp/sm_make_chunk.c 				asoc->peer.asconf_capable = 1;
asoc             2037 net/sctp/sm_make_chunk.c 			if (asoc->ep->intl_enable)
asoc             2038 net/sctp/sm_make_chunk.c 				asoc->peer.intl_capable = 1;
asoc             2072 net/sctp/sm_make_chunk.c 					const struct sctp_association *asoc,
asoc             2093 net/sctp/sm_make_chunk.c 			*errp = sctp_make_op_error_limited(asoc, chunk);
asoc             2126 net/sctp/sm_make_chunk.c 					  const struct sctp_association *asoc,
asoc             2166 net/sctp/sm_make_chunk.c 		sctp_process_hn_param(asoc, param, chunk, err_chunk);
asoc             2186 net/sctp/sm_make_chunk.c 			sctp_process_inv_paramlength(asoc, param.p,
asoc             2202 net/sctp/sm_make_chunk.c 			sctp_process_inv_paramlength(asoc, param.p,
asoc             2228 net/sctp/sm_make_chunk.c 			sctp_process_inv_paramlength(asoc, param.p, chunk,
asoc             2238 net/sctp/sm_make_chunk.c 		retval = sctp_process_unk_param(asoc, param, chunk, err_chunk);
asoc             2246 net/sctp/sm_make_chunk.c 		     const struct sctp_association *asoc, enum sctp_cid cid,
asoc             2262 net/sctp/sm_make_chunk.c 		return sctp_process_inv_mandatory(asoc, chunk, errp);
asoc             2277 net/sctp/sm_make_chunk.c 		return sctp_process_inv_paramlength(asoc, param.p, chunk, errp);
asoc             2283 net/sctp/sm_make_chunk.c 		return sctp_process_missing_param(asoc, SCTP_PARAM_STATE_COOKIE,
asoc             2288 net/sctp/sm_make_chunk.c 		result = sctp_verify_param(net, ep, asoc, param, cid,
asoc             2310 net/sctp/sm_make_chunk.c int sctp_process_init(struct sctp_association *asoc, struct sctp_chunk *chunk,
asoc             2314 net/sctp/sm_make_chunk.c 	struct net *net = sock_net(asoc->base.sk);
asoc             2332 net/sctp/sm_make_chunk.c 	if (!sctp_assoc_add_peer(asoc, peer_addr, gfp, SCTP_ACTIVE))
asoc             2349 net/sctp/sm_make_chunk.c 		if (!sctp_process_param(asoc, param, peer_addr, gfp))
asoc             2360 net/sctp/sm_make_chunk.c 	if (asoc->peer.auth_capable && (!asoc->peer.peer_random ||
asoc             2361 net/sctp/sm_make_chunk.c 					!asoc->peer.peer_hmacs))
asoc             2362 net/sctp/sm_make_chunk.c 		asoc->peer.auth_capable = 0;
asoc             2371 net/sctp/sm_make_chunk.c 	     (asoc->peer.asconf_capable && !asoc->peer.auth_capable)) {
asoc             2372 net/sctp/sm_make_chunk.c 		asoc->peer.addip_disabled_mask |= (SCTP_PARAM_ADD_IP |
asoc             2375 net/sctp/sm_make_chunk.c 		asoc->peer.asconf_capable = 0;
asoc             2380 net/sctp/sm_make_chunk.c 	list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) {
asoc             2383 net/sctp/sm_make_chunk.c 			sctp_assoc_rm_peer(asoc, transport);
asoc             2390 net/sctp/sm_make_chunk.c 	asoc->peer.i.init_tag =
asoc             2392 net/sctp/sm_make_chunk.c 	asoc->peer.i.a_rwnd =
asoc             2394 net/sctp/sm_make_chunk.c 	asoc->peer.i.num_outbound_streams =
asoc             2396 net/sctp/sm_make_chunk.c 	asoc->peer.i.num_inbound_streams =
asoc             2398 net/sctp/sm_make_chunk.c 	asoc->peer.i.initial_tsn =
asoc             2401 net/sctp/sm_make_chunk.c 	asoc->strreset_inseq = asoc->peer.i.initial_tsn;
asoc             2406 net/sctp/sm_make_chunk.c 	if (asoc->c.sinit_num_ostreams  >
asoc             2408 net/sctp/sm_make_chunk.c 		asoc->c.sinit_num_ostreams =
asoc             2412 net/sctp/sm_make_chunk.c 	if (asoc->c.sinit_max_instreams >
asoc             2414 net/sctp/sm_make_chunk.c 		asoc->c.sinit_max_instreams =
asoc             2419 net/sctp/sm_make_chunk.c 	asoc->c.peer_vtag = asoc->peer.i.init_tag;
asoc             2422 net/sctp/sm_make_chunk.c 	asoc->peer.rwnd = asoc->peer.i.a_rwnd;
asoc             2428 net/sctp/sm_make_chunk.c 	list_for_each_entry(transport, &asoc->peer.transport_addr_list,
asoc             2430 net/sctp/sm_make_chunk.c 		transport->ssthresh = asoc->peer.i.a_rwnd;
asoc             2434 net/sctp/sm_make_chunk.c 	if (!sctp_tsnmap_init(&asoc->peer.tsn_map, SCTP_TSN_MAP_INITIAL,
asoc             2435 net/sctp/sm_make_chunk.c 				asoc->peer.i.initial_tsn, gfp))
asoc             2446 net/sctp/sm_make_chunk.c 	if (sctp_stream_init(&asoc->stream, asoc->c.sinit_num_ostreams,
asoc             2447 net/sctp/sm_make_chunk.c 			     asoc->c.sinit_max_instreams, gfp))
asoc             2451 net/sctp/sm_make_chunk.c 	sctp_assoc_update_frag_point(asoc);
asoc             2453 net/sctp/sm_make_chunk.c 	if (!asoc->temp && sctp_assoc_set_id(asoc, gfp))
asoc             2466 net/sctp/sm_make_chunk.c 	asoc->peer.addip_serial = asoc->peer.i.initial_tsn - 1;
asoc             2471 net/sctp/sm_make_chunk.c 	list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) {
asoc             2474 net/sctp/sm_make_chunk.c 			sctp_assoc_rm_peer(asoc, transport);
asoc             2493 net/sctp/sm_make_chunk.c static int sctp_process_param(struct sctp_association *asoc,
asoc             2498 net/sctp/sm_make_chunk.c 	struct net *net = sock_net(asoc->base.sk);
asoc             2499 net/sctp/sm_make_chunk.c 	struct sctp_endpoint *ep = asoc->ep;
asoc             2515 net/sctp/sm_make_chunk.c 		if (PF_INET6 != asoc->base.sk->sk_family)
asoc             2521 net/sctp/sm_make_chunk.c 		if (ipv6_only_sock(asoc->base.sk))
asoc             2525 net/sctp/sm_make_chunk.c 		af->from_addr_param(&addr, param.addr, htons(asoc->peer.port), 0);
asoc             2528 net/sctp/sm_make_chunk.c 			if (!sctp_assoc_add_peer(asoc, &addr, gfp, SCTP_UNCONFIRMED))
asoc             2541 net/sctp/sm_make_chunk.c 		asoc->cookie_life = ktime_add_ms(asoc->cookie_life, stale);
asoc             2552 net/sctp/sm_make_chunk.c 		asoc->peer.ipv4_address = 0;
asoc             2553 net/sctp/sm_make_chunk.c 		asoc->peer.ipv6_address = 0;
asoc             2559 net/sctp/sm_make_chunk.c 			asoc->peer.ipv6_address = 1;
asoc             2561 net/sctp/sm_make_chunk.c 			asoc->peer.ipv4_address = 1;
asoc             2571 net/sctp/sm_make_chunk.c 				asoc->peer.ipv4_address = 1;
asoc             2575 net/sctp/sm_make_chunk.c 				if (PF_INET6 == asoc->base.sk->sk_family)
asoc             2576 net/sctp/sm_make_chunk.c 					asoc->peer.ipv6_address = 1;
asoc             2580 net/sctp/sm_make_chunk.c 				asoc->peer.hostname_address = 1;
asoc             2590 net/sctp/sm_make_chunk.c 		asoc->peer.cookie_len =
asoc             2592 net/sctp/sm_make_chunk.c 		kfree(asoc->peer.cookie);
asoc             2593 net/sctp/sm_make_chunk.c 		asoc->peer.cookie = kmemdup(param.cookie->body, asoc->peer.cookie_len, gfp);
asoc             2594 net/sctp/sm_make_chunk.c 		if (!asoc->peer.cookie)
asoc             2607 net/sctp/sm_make_chunk.c 		if (asoc->ep->ecn_enable) {
asoc             2608 net/sctp/sm_make_chunk.c 			asoc->peer.ecn_capable = 1;
asoc             2616 net/sctp/sm_make_chunk.c 		asoc->peer.adaptation_ind = ntohl(param.aind->adaptation_ind);
asoc             2630 net/sctp/sm_make_chunk.c 				    htons(asoc->peer.port), 0);
asoc             2638 net/sctp/sm_make_chunk.c 		t = sctp_assoc_lookup_paddr(asoc, &addr);
asoc             2642 net/sctp/sm_make_chunk.c 		sctp_assoc_set_primary(asoc, t);
asoc             2646 net/sctp/sm_make_chunk.c 		sctp_process_ext_param(asoc, param);
asoc             2650 net/sctp/sm_make_chunk.c 		if (asoc->ep->prsctp_enable) {
asoc             2651 net/sctp/sm_make_chunk.c 			asoc->peer.prsctp_capable = 1;
asoc             2662 net/sctp/sm_make_chunk.c 		kfree(asoc->peer.peer_random);
asoc             2663 net/sctp/sm_make_chunk.c 		asoc->peer.peer_random = kmemdup(param.p,
asoc             2665 net/sctp/sm_make_chunk.c 		if (!asoc->peer.peer_random) {
asoc             2676 net/sctp/sm_make_chunk.c 		kfree(asoc->peer.peer_hmacs);
asoc             2677 net/sctp/sm_make_chunk.c 		asoc->peer.peer_hmacs = kmemdup(param.p,
asoc             2679 net/sctp/sm_make_chunk.c 		if (!asoc->peer.peer_hmacs) {
asoc             2685 net/sctp/sm_make_chunk.c 		sctp_auth_asoc_set_default_hmac(asoc, param.hmac_algo);
asoc             2692 net/sctp/sm_make_chunk.c 		kfree(asoc->peer.peer_chunks);
asoc             2693 net/sctp/sm_make_chunk.c 		asoc->peer.peer_chunks = kmemdup(param.p,
asoc             2695 net/sctp/sm_make_chunk.c 		if (!asoc->peer.peer_chunks)
asoc             2706 net/sctp/sm_make_chunk.c 			 __func__, ntohs(param.p->type), asoc);
asoc             2759 net/sctp/sm_make_chunk.c static struct sctp_chunk *sctp_make_asconf(struct sctp_association *asoc,
asoc             2776 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_ASCONF, 0, length,
asoc             2781 net/sctp/sm_make_chunk.c 	asconf.serial = htonl(asoc->addip_serial++);
asoc             2815 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_asconf_update_ip(struct sctp_association *asoc,
asoc             2842 net/sctp/sm_make_chunk.c 		if (asoc->asconf_addr_del_pending && !del_pickup) {
asoc             2855 net/sctp/sm_make_chunk.c 	retval = sctp_make_asconf(asoc, laddr, totallen);
asoc             2875 net/sctp/sm_make_chunk.c 		addr = asoc->asconf_addr_del_pending;
asoc             2902 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_asconf_set_prim(struct sctp_association *asoc,
asoc             2918 net/sctp/sm_make_chunk.c 	retval = sctp_make_asconf(asoc, addr, len);
asoc             2951 net/sctp/sm_make_chunk.c static struct sctp_chunk *sctp_make_asconf_ack(const struct sctp_association *asoc,
asoc             2959 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_ASCONF_ACK, 0, length,
asoc             3015 net/sctp/sm_make_chunk.c static __be16 sctp_process_asconf_param(struct sctp_association *asoc,
asoc             3033 net/sctp/sm_make_chunk.c 		if (!asoc->peer.ipv6_address)
asoc             3037 net/sctp/sm_make_chunk.c 		if (!asoc->peer.ipv4_address)
asoc             3048 net/sctp/sm_make_chunk.c 	af->from_addr_param(&addr, addr_param, htons(asoc->peer.port), 0);
asoc             3067 net/sctp/sm_make_chunk.c 		if (security_sctp_bind_connect(asoc->ep->base.sk,
asoc             3080 net/sctp/sm_make_chunk.c 		peer = sctp_assoc_add_peer(asoc, &addr, GFP_ATOMIC, SCTP_UNCONFIRMED);
asoc             3086 net/sctp/sm_make_chunk.c 		asoc->new_transport = peer;
asoc             3094 net/sctp/sm_make_chunk.c 		if (asoc->peer.transport_count == 1)
asoc             3113 net/sctp/sm_make_chunk.c 			sctp_assoc_set_primary(asoc, asconf->transport);
asoc             3114 net/sctp/sm_make_chunk.c 			sctp_assoc_del_nonprimary_peers(asoc,
asoc             3124 net/sctp/sm_make_chunk.c 		peer = sctp_assoc_lookup_paddr(asoc, &addr);
asoc             3128 net/sctp/sm_make_chunk.c 		sctp_assoc_rm_peer(asoc, peer);
asoc             3139 net/sctp/sm_make_chunk.c 		if (security_sctp_bind_connect(asoc->ep->base.sk,
asoc             3145 net/sctp/sm_make_chunk.c 		peer = sctp_assoc_lookup_paddr(asoc, &addr);
asoc             3149 net/sctp/sm_make_chunk.c 		sctp_assoc_set_primary(asoc, peer);
asoc             3157 net/sctp/sm_make_chunk.c bool sctp_verify_asconf(const struct sctp_association *asoc,
asoc             3226 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_process_asconf(struct sctp_association *asoc,
asoc             3261 net/sctp/sm_make_chunk.c 	asconf_ack = sctp_make_asconf_ack(asoc, serial, chunk_len * 4);
asoc             3272 net/sctp/sm_make_chunk.c 		err_code = sctp_process_asconf_param(asoc, asconf,
asoc             3296 net/sctp/sm_make_chunk.c 	asoc->peer.addip_serial++;
asoc             3304 net/sctp/sm_make_chunk.c 			      &asoc->asconf_ack_list);
asoc             3311 net/sctp/sm_make_chunk.c static void sctp_asconf_param_success(struct sctp_association *asoc,
asoc             3314 net/sctp/sm_make_chunk.c 	struct sctp_bind_addr *bp = &asoc->base.bind_addr;
asoc             3338 net/sctp/sm_make_chunk.c 		list_for_each_entry(transport, &asoc->peer.transport_addr_list,
asoc             3346 net/sctp/sm_make_chunk.c 		if (asoc->asconf_addr_del_pending != NULL &&
asoc             3347 net/sctp/sm_make_chunk.c 		    sctp_cmp_addr_exact(asoc->asconf_addr_del_pending, &addr)) {
asoc             3348 net/sctp/sm_make_chunk.c 			kfree(asoc->asconf_addr_del_pending);
asoc             3349 net/sctp/sm_make_chunk.c 			asoc->asconf_addr_del_pending = NULL;
asoc             3352 net/sctp/sm_make_chunk.c 		list_for_each_entry(transport, &asoc->peer.transport_addr_list,
asoc             3425 net/sctp/sm_make_chunk.c int sctp_process_asconf_ack(struct sctp_association *asoc,
asoc             3428 net/sctp/sm_make_chunk.c 	struct sctp_chunk *asconf = asoc->addip_last_asconf;
asoc             3474 net/sctp/sm_make_chunk.c 			sctp_asconf_param_success(asoc, asconf_param);
asoc             3485 net/sctp/sm_make_chunk.c 			asoc->peer.addip_disabled_mask |=
asoc             3504 net/sctp/sm_make_chunk.c 	if (no_err && asoc->src_out_of_asoc_ok) {
asoc             3505 net/sctp/sm_make_chunk.c 		asoc->src_out_of_asoc_ok = 0;
asoc             3506 net/sctp/sm_make_chunk.c 		sctp_transport_immediate_rtx(asoc->peer.primary_path);
asoc             3512 net/sctp/sm_make_chunk.c 	asoc->addip_last_asconf = NULL;
asoc             3518 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_fwdtsn(const struct sctp_association *asoc,
asoc             3530 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_FWD_TSN, 0, hint, GFP_ATOMIC);
asoc             3548 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_ifwdtsn(const struct sctp_association *asoc,
asoc             3558 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_I_FWD_TSN, 0, hint,
asoc             3587 net/sctp/sm_make_chunk.c static struct sctp_chunk *sctp_make_reconf(const struct sctp_association *asoc,
asoc             3593 net/sctp/sm_make_chunk.c 	retval = sctp_make_control(asoc, SCTP_CID_RECONF, 0, length,
asoc             3639 net/sctp/sm_make_chunk.c 					const struct sctp_association *asoc,
asoc             3652 net/sctp/sm_make_chunk.c 	retval = sctp_make_reconf(asoc, outlen + inlen);
asoc             3659 net/sctp/sm_make_chunk.c 		outreq.request_seq = htonl(asoc->strreset_outseq);
asoc             3660 net/sctp/sm_make_chunk.c 		outreq.response_seq = htonl(asoc->strreset_inseq - 1);
asoc             3661 net/sctp/sm_make_chunk.c 		outreq.send_reset_at_tsn = htonl(asoc->next_tsn - 1);
asoc             3672 net/sctp/sm_make_chunk.c 		inreq.request_seq = htonl(asoc->strreset_outseq + out);
asoc             3693 net/sctp/sm_make_chunk.c 					const struct sctp_association *asoc)
asoc             3699 net/sctp/sm_make_chunk.c 	retval = sctp_make_reconf(asoc, length);
asoc             3705 net/sctp/sm_make_chunk.c 	tsnreq.request_seq = htonl(asoc->strreset_outseq);
asoc             3724 net/sctp/sm_make_chunk.c 					const struct sctp_association *asoc,
asoc             3731 net/sctp/sm_make_chunk.c 	retval = sctp_make_reconf(asoc, (!!out + !!in) * size);
asoc             3739 net/sctp/sm_make_chunk.c 		addstrm.request_seq = htonl(asoc->strreset_outseq);
asoc             3749 net/sctp/sm_make_chunk.c 		addstrm.request_seq = htonl(asoc->strreset_outseq + !!out);
asoc             3769 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_strreset_resp(const struct sctp_association *asoc,
asoc             3776 net/sctp/sm_make_chunk.c 	retval = sctp_make_reconf(asoc, length);
asoc             3805 net/sctp/sm_make_chunk.c struct sctp_chunk *sctp_make_strreset_tsnresp(struct sctp_association *asoc,
asoc             3814 net/sctp/sm_make_chunk.c 	retval = sctp_make_reconf(asoc, length);
asoc             3831 net/sctp/sm_make_chunk.c bool sctp_verify_reconf(const struct sctp_association *asoc,
asoc               44 net/sctp/sm_sideeffect.c 				struct sctp_association *asoc,
asoc               53 net/sctp/sm_sideeffect.c 			     struct sctp_association **asoc,
asoc               64 net/sctp/sm_sideeffect.c static void sctp_do_ecn_ce_work(struct sctp_association *asoc,
asoc               69 net/sctp/sm_sideeffect.c 	asoc->last_ecne_tsn = lowest_tsn;
asoc               70 net/sctp/sm_sideeffect.c 	asoc->need_ecne = 1;
asoc               85 net/sctp/sm_sideeffect.c static struct sctp_chunk *sctp_do_ecn_ecne_work(struct sctp_association *asoc,
asoc              101 net/sctp/sm_sideeffect.c 	if (TSN_lt(asoc->last_cwr_tsn, lowest_tsn)) {
asoc              107 net/sctp/sm_sideeffect.c 		transport = sctp_assoc_lookup_tsn(asoc, lowest_tsn);
asoc              113 net/sctp/sm_sideeffect.c 		asoc->last_cwr_tsn = lowest_tsn;
asoc              119 net/sctp/sm_sideeffect.c 	repl = sctp_make_cwr(asoc, asoc->last_cwr_tsn, chunk);
asoc              128 net/sctp/sm_sideeffect.c static void sctp_do_ecn_cwr_work(struct sctp_association *asoc,
asoc              134 net/sctp/sm_sideeffect.c 	asoc->need_ecne = 0;
asoc              138 net/sctp/sm_sideeffect.c static int sctp_gen_sack(struct sctp_association *asoc, int force,
asoc              141 net/sctp/sm_sideeffect.c 	struct sctp_transport *trans = asoc->peer.last_data_from;
asoc              147 net/sctp/sm_sideeffect.c 	    (!trans && (asoc->param_flags & SPP_SACKDELAY_DISABLE)) ||
asoc              149 net/sctp/sm_sideeffect.c 		asoc->peer.sack_needed = 1;
asoc              151 net/sctp/sm_sideeffect.c 	ctsn = sctp_tsnmap_get_ctsn(&asoc->peer.tsn_map);
asoc              152 net/sctp/sm_sideeffect.c 	max_tsn_seen = sctp_tsnmap_get_max_tsn_seen(&asoc->peer.tsn_map);
asoc              165 net/sctp/sm_sideeffect.c 		asoc->peer.sack_needed = 1;
asoc              175 net/sctp/sm_sideeffect.c 	if (!asoc->peer.sack_needed) {
asoc              176 net/sctp/sm_sideeffect.c 		asoc->peer.sack_cnt++;
asoc              185 net/sctp/sm_sideeffect.c 			if (asoc->peer.sack_cnt >= trans->sackfreq - 1)
asoc              186 net/sctp/sm_sideeffect.c 				asoc->peer.sack_needed = 1;
asoc              188 net/sctp/sm_sideeffect.c 			asoc->timeouts[SCTP_EVENT_TIMEOUT_SACK] =
asoc              192 net/sctp/sm_sideeffect.c 			if (asoc->peer.sack_cnt >= asoc->sackfreq - 1)
asoc              193 net/sctp/sm_sideeffect.c 				asoc->peer.sack_needed = 1;
asoc              195 net/sctp/sm_sideeffect.c 			asoc->timeouts[SCTP_EVENT_TIMEOUT_SACK] =
asoc              196 net/sctp/sm_sideeffect.c 				asoc->sackdelay;
asoc              203 net/sctp/sm_sideeffect.c 		__u32 old_a_rwnd = asoc->a_rwnd;
asoc              205 net/sctp/sm_sideeffect.c 		asoc->a_rwnd = asoc->rwnd;
asoc              206 net/sctp/sm_sideeffect.c 		sack = sctp_make_sack(asoc);
asoc              208 net/sctp/sm_sideeffect.c 			asoc->a_rwnd = old_a_rwnd;
asoc              212 net/sctp/sm_sideeffect.c 		asoc->peer.sack_needed = 0;
asoc              213 net/sctp/sm_sideeffect.c 		asoc->peer.sack_cnt = 0;
asoc              235 net/sctp/sm_sideeffect.c 	struct sctp_association *asoc = transport->asoc;
asoc              236 net/sctp/sm_sideeffect.c 	struct sock *sk = asoc->base.sk;
asoc              255 net/sctp/sm_sideeffect.c 			   asoc->state,
asoc              256 net/sctp/sm_sideeffect.c 			   asoc->ep, asoc,
asoc              270 net/sctp/sm_sideeffect.c static void sctp_generate_timeout_event(struct sctp_association *asoc,
asoc              273 net/sctp/sm_sideeffect.c 	struct sock *sk = asoc->base.sk;
asoc              283 net/sctp/sm_sideeffect.c 		if (!mod_timer(&asoc->timers[timeout_type], jiffies + (HZ/20)))
asoc              284 net/sctp/sm_sideeffect.c 			sctp_association_hold(asoc);
asoc              291 net/sctp/sm_sideeffect.c 	if (asoc->base.dead)
asoc              297 net/sctp/sm_sideeffect.c 			   asoc->state, asoc->ep, asoc,
asoc              305 net/sctp/sm_sideeffect.c 	sctp_association_put(asoc);
asoc              310 net/sctp/sm_sideeffect.c 	struct sctp_association *asoc =
asoc              311 net/sctp/sm_sideeffect.c 		from_timer(asoc, t, timers[SCTP_EVENT_TIMEOUT_T1_COOKIE]);
asoc              313 net/sctp/sm_sideeffect.c 	sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_T1_COOKIE);
asoc              318 net/sctp/sm_sideeffect.c 	struct sctp_association *asoc =
asoc              319 net/sctp/sm_sideeffect.c 		from_timer(asoc, t, timers[SCTP_EVENT_TIMEOUT_T1_INIT]);
asoc              321 net/sctp/sm_sideeffect.c 	sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_T1_INIT);
asoc              326 net/sctp/sm_sideeffect.c 	struct sctp_association *asoc =
asoc              327 net/sctp/sm_sideeffect.c 		from_timer(asoc, t, timers[SCTP_EVENT_TIMEOUT_T2_SHUTDOWN]);
asoc              329 net/sctp/sm_sideeffect.c 	sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_T2_SHUTDOWN);
asoc              334 net/sctp/sm_sideeffect.c 	struct sctp_association *asoc =
asoc              335 net/sctp/sm_sideeffect.c 		from_timer(asoc, t, timers[SCTP_EVENT_TIMEOUT_T4_RTO]);
asoc              337 net/sctp/sm_sideeffect.c 	sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_T4_RTO);
asoc              342 net/sctp/sm_sideeffect.c 	struct sctp_association *asoc =
asoc              343 net/sctp/sm_sideeffect.c 		from_timer(asoc, t,
asoc              346 net/sctp/sm_sideeffect.c 	sctp_generate_timeout_event(asoc,
asoc              353 net/sctp/sm_sideeffect.c 	struct sctp_association *asoc =
asoc              354 net/sctp/sm_sideeffect.c 		from_timer(asoc, t, timers[SCTP_EVENT_TIMEOUT_AUTOCLOSE]);
asoc              356 net/sctp/sm_sideeffect.c 	sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_AUTOCLOSE);
asoc              365 net/sctp/sm_sideeffect.c 	struct sctp_association *asoc = transport->asoc;
asoc              366 net/sctp/sm_sideeffect.c 	struct sock *sk = asoc->base.sk;
asoc              393 net/sctp/sm_sideeffect.c 			   asoc->state, asoc->ep, asoc,
asoc              411 net/sctp/sm_sideeffect.c 	struct sctp_association *asoc = transport->asoc;
asoc              412 net/sctp/sm_sideeffect.c 	struct sock *sk = asoc->base.sk;
asoc              422 net/sctp/sm_sideeffect.c 			sctp_association_hold(asoc);
asoc              429 net/sctp/sm_sideeffect.c 	if (asoc->base.dead)
asoc              434 net/sctp/sm_sideeffect.c 		   asoc->state, asoc->ep, asoc, transport, GFP_ATOMIC);
asoc              438 net/sctp/sm_sideeffect.c 	sctp_association_put(asoc);
asoc              446 net/sctp/sm_sideeffect.c 	struct sctp_association *asoc = transport->asoc;
asoc              447 net/sctp/sm_sideeffect.c 	struct sock *sk = asoc->base.sk;
asoc              463 net/sctp/sm_sideeffect.c 			   asoc->state, asoc->ep, asoc,
asoc              477 net/sctp/sm_sideeffect.c 	struct sctp_association *asoc =
asoc              478 net/sctp/sm_sideeffect.c 		from_timer(asoc, t, timers[SCTP_EVENT_TIMEOUT_SACK]);
asoc              480 net/sctp/sm_sideeffect.c 	sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_SACK);
asoc              515 net/sctp/sm_sideeffect.c 					 struct sctp_association *asoc,
asoc              519 net/sctp/sm_sideeffect.c 	struct net *net = sock_net(asoc->base.sk);
asoc              532 net/sctp/sm_sideeffect.c 		asoc->overall_error_count++;
asoc              537 net/sctp/sm_sideeffect.c 			asoc->overall_error_count++;
asoc              552 net/sctp/sm_sideeffect.c 		sctp_assoc_control_transport(asoc, transport,
asoc              563 net/sctp/sm_sideeffect.c 			 __func__, asoc, &transport->ipaddr.sa);
asoc              565 net/sctp/sm_sideeffect.c 		sctp_assoc_control_transport(asoc, transport,
asoc              580 net/sctp/sm_sideeffect.c 		transport->rto = min((transport->rto * 2), transport->asoc->rto_max);
asoc              581 net/sctp/sm_sideeffect.c 		sctp_max_rto(asoc, transport);
asoc              587 net/sctp/sm_sideeffect.c 				 struct sctp_association *asoc,
asoc              592 net/sctp/sm_sideeffect.c 	event = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_CANT_STR_ASSOC,
asoc              604 net/sctp/sm_sideeffect.c 	asoc->outqueue.error = error;
asoc              610 net/sctp/sm_sideeffect.c 				  struct sctp_association *asoc,
asoc              620 net/sctp/sm_sideeffect.c 	asoc->stream.si->abort_pd(&asoc->ulpq, GFP_ATOMIC);
asoc              623 net/sctp/sm_sideeffect.c 		event = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_COMM_LOST,
asoc              627 net/sctp/sm_sideeffect.c 		event = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_COMM_LOST,
asoc              634 net/sctp/sm_sideeffect.c 	if (asoc->overall_error_count >= asoc->max_retrans) {
asoc              635 net/sctp/sm_sideeffect.c 		abort = sctp_make_violation_max_retrans(asoc, chunk);
asoc              645 net/sctp/sm_sideeffect.c 	asoc->outqueue.error = error;
asoc              655 net/sctp/sm_sideeffect.c 				 struct sctp_association *asoc,
asoc              667 net/sctp/sm_sideeffect.c 	if (!sctp_process_init(asoc, chunk, sctp_source(chunk), peer_init, gfp))
asoc              677 net/sctp/sm_sideeffect.c 				     struct sctp_association *asoc)
asoc              685 net/sctp/sm_sideeffect.c 	list_for_each_entry(t, &asoc->peer.transport_addr_list, transports)
asoc              690 net/sctp/sm_sideeffect.c 				    struct sctp_association *asoc)
asoc              696 net/sctp/sm_sideeffect.c 	list_for_each_entry(t, &asoc->peer.transport_addr_list,
asoc              705 net/sctp/sm_sideeffect.c 					struct sctp_association *asoc)
asoc              709 net/sctp/sm_sideeffect.c 	list_for_each_entry(t, &asoc->peer.transport_addr_list,
asoc              719 net/sctp/sm_sideeffect.c 				  struct sctp_association *asoc,
asoc              740 net/sctp/sm_sideeffect.c 	if (t->asoc->state < SCTP_STATE_SHUTDOWN_PENDING)
asoc              741 net/sctp/sm_sideeffect.c 		t->asoc->overall_error_count = 0;
asoc              753 net/sctp/sm_sideeffect.c 		sctp_assoc_control_transport(asoc, t, SCTP_TRANSPORT_UP,
asoc              758 net/sctp/sm_sideeffect.c 		sctp_assoc_control_transport(asoc, t, SCTP_TRANSPORT_UP,
asoc              783 net/sctp/sm_sideeffect.c 	if (was_unconfirmed && asoc->peer.transport_count == 1)
asoc              790 net/sctp/sm_sideeffect.c 				 struct sctp_association *asoc,
asoc              795 net/sctp/sm_sideeffect.c 	if (sctp_outq_sack(&asoc->outqueue, chunk)) {
asoc              796 net/sctp/sm_sideeffect.c 		struct net *net = sock_net(asoc->base.sk);
asoc              801 net/sctp/sm_sideeffect.c 				 asoc->state, asoc->ep, asoc, NULL,
asoc              812 net/sctp/sm_sideeffect.c 			      struct sctp_association *asoc,
asoc              820 net/sctp/sm_sideeffect.c 		t = sctp_assoc_choose_alter_transport(asoc,
asoc              821 net/sctp/sm_sideeffect.c 					      asoc->shutdown_last_sent_to);
asoc              824 net/sctp/sm_sideeffect.c 	asoc->shutdown_last_sent_to = t;
asoc              825 net/sctp/sm_sideeffect.c 	asoc->timeouts[SCTP_EVENT_TIMEOUT_T2_SHUTDOWN] = t->rto;
asoc              829 net/sctp/sm_sideeffect.c 				  struct sctp_association *asoc,
asoc              832 net/sctp/sm_sideeffect.c 	struct net *net = sock_net(asoc->base.sk);
asoc              835 net/sctp/sm_sideeffect.c 	if (!sctp_assoc_update(asoc, new))
asoc              838 net/sctp/sm_sideeffect.c 	abort = sctp_make_abort(asoc, NULL, sizeof(struct sctp_errhdr));
asoc              852 net/sctp/sm_sideeffect.c 			       struct sctp_association *asoc,
asoc              855 net/sctp/sm_sideeffect.c 	struct sock *sk = asoc->base.sk;
asoc              857 net/sctp/sm_sideeffect.c 	asoc->state = state;
asoc              859 net/sctp/sm_sideeffect.c 	pr_debug("%s: asoc:%p[%s]\n", __func__, asoc, sctp_state_tbl[state]);
asoc              865 net/sctp/sm_sideeffect.c 		if (sctp_state(asoc, ESTABLISHED) && sctp_sstate(sk, CLOSED))
asoc              869 net/sctp/sm_sideeffect.c 		if (sctp_state(asoc, SHUTDOWN_RECEIVED) &&
asoc              876 net/sctp/sm_sideeffect.c 	if (sctp_state(asoc, COOKIE_WAIT)) {
asoc              880 net/sctp/sm_sideeffect.c 		asoc->timeouts[SCTP_EVENT_TIMEOUT_T1_INIT] =
asoc              881 net/sctp/sm_sideeffect.c 						asoc->rto_initial;
asoc              882 net/sctp/sm_sideeffect.c 		asoc->timeouts[SCTP_EVENT_TIMEOUT_T1_COOKIE] =
asoc              883 net/sctp/sm_sideeffect.c 						asoc->rto_initial;
asoc              886 net/sctp/sm_sideeffect.c 	if (sctp_state(asoc, ESTABLISHED)) {
asoc              887 net/sctp/sm_sideeffect.c 		kfree(asoc->peer.cookie);
asoc              888 net/sctp/sm_sideeffect.c 		asoc->peer.cookie = NULL;
asoc              891 net/sctp/sm_sideeffect.c 	if (sctp_state(asoc, ESTABLISHED) ||
asoc              892 net/sctp/sm_sideeffect.c 	    sctp_state(asoc, CLOSED) ||
asoc              893 net/sctp/sm_sideeffect.c 	    sctp_state(asoc, SHUTDOWN_RECEIVED)) {
asoc              897 net/sctp/sm_sideeffect.c 		if (waitqueue_active(&asoc->wait))
asoc              898 net/sctp/sm_sideeffect.c 			wake_up_interruptible(&asoc->wait);
asoc              910 net/sctp/sm_sideeffect.c 	if (sctp_state(asoc, SHUTDOWN_PENDING) &&
asoc              911 net/sctp/sm_sideeffect.c 	    !sctp_outq_is_empty(&asoc->outqueue))
asoc              912 net/sctp/sm_sideeffect.c 		sctp_outq_uncork(&asoc->outqueue, GFP_ATOMIC);
asoc              917 net/sctp/sm_sideeffect.c 				struct sctp_association *asoc)
asoc              919 net/sctp/sm_sideeffect.c 	struct sock *sk = asoc->base.sk;
asoc              926 net/sctp/sm_sideeffect.c 	    (!asoc->temp) && (sk->sk_shutdown != SHUTDOWN_MASK))
asoc              929 net/sctp/sm_sideeffect.c 	sctp_association_free(asoc);
asoc              939 net/sctp/sm_sideeffect.c 			      struct sctp_association *asoc,
asoc              944 net/sctp/sm_sideeffect.c 	t = sctp_assoc_choose_alter_transport(asoc, chunk->transport);
asoc              945 net/sctp/sm_sideeffect.c 	asoc->timeouts[SCTP_EVENT_TIMEOUT_T4_RTO] = t->rto;
asoc              951 net/sctp/sm_sideeffect.c 				   struct sctp_association *asoc,
asoc              960 net/sctp/sm_sideeffect.c 		ev = sctp_ulpevent_make_remote_error(asoc, chunk, 0,
asoc              965 net/sctp/sm_sideeffect.c 		asoc->stream.si->enqueue_event(&asoc->ulpq, ev);
asoc              982 net/sctp/sm_sideeffect.c 				if (asoc->peer.asconf_capable == 0)
asoc              985 net/sctp/sm_sideeffect.c 				asoc->peer.asconf_capable = 0;
asoc             1003 net/sctp/sm_sideeffect.c static void sctp_cmd_del_non_primary(struct sctp_association *asoc)
asoc             1009 net/sctp/sm_sideeffect.c 	list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) {
asoc             1012 net/sctp/sm_sideeffect.c 					 &asoc->peer.primary_addr)) {
asoc             1013 net/sctp/sm_sideeffect.c 			sctp_assoc_rm_peer(asoc, t);
asoc             1019 net/sctp/sm_sideeffect.c static void sctp_cmd_set_sk_err(struct sctp_association *asoc, int error)
asoc             1021 net/sctp/sm_sideeffect.c 	struct sock *sk = asoc->base.sk;
asoc             1029 net/sctp/sm_sideeffect.c 				  struct sctp_association *asoc,
asoc             1034 net/sctp/sm_sideeffect.c 	ev = sctp_ulpevent_make_assoc_change(asoc, 0, state, 0,
asoc             1035 net/sctp/sm_sideeffect.c 					    asoc->c.sinit_num_ostreams,
asoc             1036 net/sctp/sm_sideeffect.c 					    asoc->c.sinit_max_instreams,
asoc             1039 net/sctp/sm_sideeffect.c 		asoc->stream.si->enqueue_event(&asoc->ulpq, ev);
asoc             1043 net/sctp/sm_sideeffect.c 				  struct sctp_association *asoc)
asoc             1047 net/sctp/sm_sideeffect.c 	ev = sctp_ulpevent_make_authkey(asoc, 0, SCTP_AUTH_NO_AUTH, GFP_ATOMIC);
asoc             1049 net/sctp/sm_sideeffect.c 		asoc->stream.si->enqueue_event(&asoc->ulpq, ev);
asoc             1054 net/sctp/sm_sideeffect.c 				    struct sctp_association *asoc)
asoc             1058 net/sctp/sm_sideeffect.c 	ev = sctp_ulpevent_make_adaptation_indication(asoc, GFP_ATOMIC);
asoc             1061 net/sctp/sm_sideeffect.c 		asoc->stream.si->enqueue_event(&asoc->ulpq, ev);
asoc             1065 net/sctp/sm_sideeffect.c static void sctp_cmd_t1_timer_update(struct sctp_association *asoc,
asoc             1071 net/sctp/sm_sideeffect.c 	t = asoc->init_last_sent_to;
asoc             1072 net/sctp/sm_sideeffect.c 	asoc->init_err_counter++;
asoc             1074 net/sctp/sm_sideeffect.c 	if (t->init_sent_count > (asoc->init_cycle + 1)) {
asoc             1075 net/sctp/sm_sideeffect.c 		asoc->timeouts[timer] *= 2;
asoc             1076 net/sctp/sm_sideeffect.c 		if (asoc->timeouts[timer] > asoc->max_init_timeo) {
asoc             1077 net/sctp/sm_sideeffect.c 			asoc->timeouts[timer] = asoc->max_init_timeo;
asoc             1079 net/sctp/sm_sideeffect.c 		asoc->init_cycle++;
asoc             1083 net/sctp/sm_sideeffect.c 			 asoc->init_err_counter, asoc->init_cycle,
asoc             1084 net/sctp/sm_sideeffect.c 			 asoc->timeouts[timer]);
asoc             1093 net/sctp/sm_sideeffect.c static void sctp_cmd_send_msg(struct sctp_association *asoc,
asoc             1099 net/sctp/sm_sideeffect.c 		sctp_outq_tail(&asoc->outqueue, chunk, gfp);
asoc             1101 net/sctp/sm_sideeffect.c 	asoc->outqueue.sched->enqueue(&asoc->outqueue, msg);
asoc             1112 net/sctp/sm_sideeffect.c 		 asoc, sctp_state_tbl[state], state_fn->name)
asoc             1115 net/sctp/sm_sideeffect.c 	pr_debug("%s[post-fn]: asoc:%p, status:%s\n", __func__, asoc, \
asoc             1120 net/sctp/sm_sideeffect.c 		 asoc, sctp_state_tbl[(asoc && sctp_id2assoc(ep->base.sk, \
asoc             1121 net/sctp/sm_sideeffect.c 		 sctp_assoc2id(asoc))) ? asoc->state : SCTP_STATE_CLOSED])
asoc             1131 net/sctp/sm_sideeffect.c 	       struct sctp_endpoint *ep, struct sctp_association *asoc,
asoc             1152 net/sctp/sm_sideeffect.c 	status = state_fn->fn(net, ep, asoc, subtype, event_arg, &commands);
asoc             1156 net/sctp/sm_sideeffect.c 				  ep, &asoc, event_arg, status,
asoc             1170 net/sctp/sm_sideeffect.c 			     struct sctp_association **asoc,
asoc             1185 net/sctp/sm_sideeffect.c 					       ep, *asoc,
asoc             1210 net/sctp/sm_sideeffect.c 		*asoc = NULL;
asoc             1256 net/sctp/sm_sideeffect.c 				struct sctp_association *asoc,
asoc             1293 net/sctp/sm_sideeffect.c 				sctp_outq_uncork(&asoc->outqueue, gfp);
asoc             1298 net/sctp/sm_sideeffect.c 			asoc = cmd->obj.asoc;
asoc             1299 net/sctp/sm_sideeffect.c 			BUG_ON(asoc->peer.primary_path == NULL);
asoc             1300 net/sctp/sm_sideeffect.c 			sctp_endpoint_add_asoc(ep, asoc);
asoc             1304 net/sctp/sm_sideeffect.c 		       sctp_cmd_assoc_update(commands, asoc, cmd->obj.asoc);
asoc             1308 net/sctp/sm_sideeffect.c 		       sctp_outq_teardown(&asoc->outqueue);
asoc             1313 net/sctp/sm_sideeffect.c 				sctp_outq_uncork(&asoc->outqueue, gfp);
asoc             1317 net/sctp/sm_sideeffect.c 			sctp_cmd_delete_tcb(commands, asoc);
asoc             1318 net/sctp/sm_sideeffect.c 			asoc = NULL;
asoc             1323 net/sctp/sm_sideeffect.c 			sctp_cmd_new_state(commands, asoc, cmd->obj.state);
asoc             1328 net/sctp/sm_sideeffect.c 			error = sctp_tsnmap_mark(&asoc->peer.tsn_map,
asoc             1333 net/sctp/sm_sideeffect.c 			asoc->stream.si->report_ftsn(&asoc->ulpq, cmd->obj.u32);
asoc             1337 net/sctp/sm_sideeffect.c 			asoc->stream.si->handle_ftsn(&asoc->ulpq,
asoc             1348 net/sctp/sm_sideeffect.c 			error = sctp_gen_sack(asoc, force, commands);
asoc             1353 net/sctp/sm_sideeffect.c 			error = sctp_cmd_process_sack(commands, asoc,
asoc             1359 net/sctp/sm_sideeffect.c 			new_obj = sctp_make_init_ack(asoc, chunk, GFP_ATOMIC,
asoc             1376 net/sctp/sm_sideeffect.c 			error = sctp_cmd_process_init(commands, asoc, chunk,
asoc             1382 net/sctp/sm_sideeffect.c 			new_obj = sctp_make_cookie_echo(asoc, chunk);
asoc             1401 net/sctp/sm_sideeffect.c 				asoc->init_last_sent_to = new_obj->transport;
asoc             1416 net/sctp/sm_sideeffect.c 			if ((asoc->peer.retran_path !=
asoc             1417 net/sctp/sm_sideeffect.c 			     asoc->peer.primary_path) &&
asoc             1418 net/sctp/sm_sideeffect.c 			    (asoc->init_err_counter > 0)) {
asoc             1430 net/sctp/sm_sideeffect.c 			asoc->overall_error_count = 0;
asoc             1433 net/sctp/sm_sideeffect.c 			new_obj = sctp_make_shutdown(asoc, chunk);
asoc             1445 net/sctp/sm_sideeffect.c 				 __func__, cmd->obj.chunk, &asoc->ulpq);
asoc             1447 net/sctp/sm_sideeffect.c 			asoc->stream.si->ulpevent_data(&asoc->ulpq,
asoc             1455 net/sctp/sm_sideeffect.c 				 __func__, cmd->obj.ulpevent, &asoc->ulpq);
asoc             1457 net/sctp/sm_sideeffect.c 			asoc->stream.si->enqueue_event(&asoc->ulpq,
asoc             1463 net/sctp/sm_sideeffect.c 			if (!asoc->outqueue.cork) {
asoc             1464 net/sctp/sm_sideeffect.c 				sctp_outq_cork(&asoc->outqueue);
asoc             1468 net/sctp/sm_sideeffect.c 			sctp_outq_tail(&asoc->outqueue, cmd->obj.chunk, gfp);
asoc             1480 net/sctp/sm_sideeffect.c 			sctp_retransmit(&asoc->outqueue, cmd->obj.transport,
asoc             1486 net/sctp/sm_sideeffect.c 			sctp_retransmit(&asoc->outqueue, cmd->obj.transport,
asoc             1492 net/sctp/sm_sideeffect.c 			sctp_do_ecn_ce_work(asoc, cmd->obj.u32);
asoc             1497 net/sctp/sm_sideeffect.c 			new_obj = sctp_do_ecn_ecne_work(asoc, cmd->obj.u32,
asoc             1506 net/sctp/sm_sideeffect.c 			sctp_do_ecn_cwr_work(asoc, cmd->obj.u32);
asoc             1510 net/sctp/sm_sideeffect.c 			sctp_cmd_setup_t2(commands, asoc, cmd->obj.chunk);
asoc             1514 net/sctp/sm_sideeffect.c 			timer = &asoc->timers[cmd->obj.to];
asoc             1521 net/sctp/sm_sideeffect.c 			timer = &asoc->timers[cmd->obj.to];
asoc             1522 net/sctp/sm_sideeffect.c 			timeout = asoc->timeouts[cmd->obj.to];
asoc             1534 net/sctp/sm_sideeffect.c 				sctp_association_hold(asoc);
asoc             1539 net/sctp/sm_sideeffect.c 			timer = &asoc->timers[cmd->obj.to];
asoc             1540 net/sctp/sm_sideeffect.c 			timeout = asoc->timeouts[cmd->obj.to];
asoc             1542 net/sctp/sm_sideeffect.c 				sctp_association_hold(asoc);
asoc             1546 net/sctp/sm_sideeffect.c 			timer = &asoc->timers[cmd->obj.to];
asoc             1548 net/sctp/sm_sideeffect.c 				sctp_association_put(asoc);
asoc             1553 net/sctp/sm_sideeffect.c 			t = sctp_assoc_choose_alter_transport(asoc,
asoc             1554 net/sctp/sm_sideeffect.c 						asoc->init_last_sent_to);
asoc             1555 net/sctp/sm_sideeffect.c 			asoc->init_last_sent_to = t;
asoc             1559 net/sctp/sm_sideeffect.c 			sctp_assoc_set_primary(asoc, t);
asoc             1569 net/sctp/sm_sideeffect.c 			sctp_cmd_t1_timer_update(asoc,
asoc             1584 net/sctp/sm_sideeffect.c 			sctp_cmd_t1_timer_update(asoc,
asoc             1591 net/sctp/sm_sideeffect.c 			list_for_each_entry(t, &asoc->peer.transport_addr_list,
asoc             1593 net/sctp/sm_sideeffect.c 				sctp_retransmit_mark(&asoc->outqueue, t,
asoc             1603 net/sctp/sm_sideeffect.c 			sctp_cmd_init_failed(commands, asoc, cmd->obj.u32);
asoc             1607 net/sctp/sm_sideeffect.c 			sctp_cmd_assoc_failed(commands, asoc, event_type,
asoc             1612 net/sctp/sm_sideeffect.c 			asoc->init_err_counter++;
asoc             1616 net/sctp/sm_sideeffect.c 			asoc->init_err_counter = 0;
asoc             1617 net/sctp/sm_sideeffect.c 			asoc->init_cycle = 0;
asoc             1618 net/sctp/sm_sideeffect.c 			list_for_each_entry(t, &asoc->peer.transport_addr_list,
asoc             1625 net/sctp/sm_sideeffect.c 			sctp_tsnmap_mark_dup(&asoc->peer.tsn_map,
asoc             1635 net/sctp/sm_sideeffect.c 			sctp_do_8_2_transport_strike(commands, asoc,
asoc             1646 net/sctp/sm_sideeffect.c 			sctp_do_8_2_transport_strike(commands, asoc,
asoc             1653 net/sctp/sm_sideeffect.c 			sctp_cmd_transport_on(commands, asoc, t, chunk);
asoc             1657 net/sctp/sm_sideeffect.c 			sctp_cmd_hb_timers_start(commands, asoc);
asoc             1666 net/sctp/sm_sideeffect.c 			sctp_cmd_hb_timers_stop(commands, asoc);
asoc             1676 net/sctp/sm_sideeffect.c 			sackh.a_rwnd = htonl(asoc->peer.rwnd +
asoc             1677 net/sctp/sm_sideeffect.c 					     asoc->outqueue.outstanding_bytes);
asoc             1691 net/sctp/sm_sideeffect.c 			if (asoc) {
asoc             1692 net/sctp/sm_sideeffect.c 				sctp_outq_uncork(&asoc->outqueue, gfp);
asoc             1703 net/sctp/sm_sideeffect.c 			asoc->stream.si->start_pd(&asoc->ulpq, GFP_ATOMIC);
asoc             1707 net/sctp/sm_sideeffect.c 			asoc->stream.si->renege_events(&asoc->ulpq,
asoc             1713 net/sctp/sm_sideeffect.c 			sctp_cmd_setup_t4(commands, asoc, cmd->obj.chunk);
asoc             1717 net/sctp/sm_sideeffect.c 			sctp_cmd_process_operr(commands, asoc, chunk);
asoc             1720 net/sctp/sm_sideeffect.c 			asoc->peer.i.init_tag = 0;
asoc             1723 net/sctp/sm_sideeffect.c 			sctp_cmd_del_non_primary(asoc);
asoc             1726 net/sctp/sm_sideeffect.c 			sctp_cmd_t3_rtx_timers_stop(commands, asoc);
asoc             1729 net/sctp/sm_sideeffect.c 			t = asoc->peer.retran_path;
asoc             1730 net/sctp/sm_sideeffect.c 			asoc->peer.retran_path = asoc->peer.primary_path;
asoc             1731 net/sctp/sm_sideeffect.c 			sctp_outq_uncork(&asoc->outqueue, gfp);
asoc             1733 net/sctp/sm_sideeffect.c 			asoc->peer.retran_path = t;
asoc             1736 net/sctp/sm_sideeffect.c 			sctp_cmd_set_sk_err(asoc, cmd->obj.error);
asoc             1739 net/sctp/sm_sideeffect.c 			sctp_cmd_assoc_change(commands, asoc,
asoc             1743 net/sctp/sm_sideeffect.c 			sctp_cmd_adaptation_ind(commands, asoc);
asoc             1746 net/sctp/sm_sideeffect.c 			sctp_cmd_peer_no_auth(commands, asoc);
asoc             1750 net/sctp/sm_sideeffect.c 			error = sctp_auth_asoc_init_active_key(asoc,
asoc             1754 net/sctp/sm_sideeffect.c 			asoc->peer.i.init_tag = cmd->obj.u32;
asoc             1757 net/sctp/sm_sideeffect.c 			if (!asoc->outqueue.cork) {
asoc             1758 net/sctp/sm_sideeffect.c 				sctp_outq_cork(&asoc->outqueue);
asoc             1761 net/sctp/sm_sideeffect.c 			sctp_cmd_send_msg(asoc, cmd->obj.msg, gfp);
asoc             1764 net/sctp/sm_sideeffect.c 			sctp_asconf_queue_teardown(asoc);
asoc             1768 net/sctp/sm_sideeffect.c 			if (asoc && local_cork) {
asoc             1769 net/sctp/sm_sideeffect.c 				sctp_outq_uncork(&asoc->outqueue, gfp);
asoc             1772 net/sctp/sm_sideeffect.c 			asoc = cmd->obj.asoc;
asoc             1796 net/sctp/sm_sideeffect.c 	if (asoc && SCTP_EVENT_T_CHUNK == event_type && chunk) {
asoc             1798 net/sctp/sm_sideeffect.c 			sctp_outq_uncork(&asoc->outqueue, gfp);
asoc             1800 net/sctp/sm_sideeffect.c 		sctp_outq_uncork(&asoc->outqueue, gfp);
asoc               53 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc               56 net/sctp/sm_statefuns.c static int sctp_eat_data(const struct sctp_association *asoc,
asoc               61 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc               65 net/sctp/sm_statefuns.c 				       const struct sctp_association *asoc,
asoc               72 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc               79 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc               86 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc               96 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc              102 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc              111 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc              119 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc              127 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc              135 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc              141 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc              147 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc              220 net/sctp/sm_statefuns.c 				     const struct sctp_association *asoc,
asoc              227 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify_either(chunk, asoc))
asoc              228 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc              236 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunk(net, ep, asoc, type, arg, commands);
asoc              240 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc              250 net/sctp/sm_statefuns.c 	ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_SHUTDOWN_COMP,
asoc              305 net/sctp/sm_statefuns.c 					   const struct sctp_association *asoc,
asoc              319 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc              331 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc              338 net/sctp/sm_statefuns.c 		return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg, commands);
asoc              345 net/sctp/sm_statefuns.c 		return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg, commands);
asoc              353 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc              362 net/sctp/sm_statefuns.c 		return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg, commands);
asoc              366 net/sctp/sm_statefuns.c 	if (!sctp_verify_init(net, ep, asoc, chunk->chunk_hdr->type,
asoc              373 net/sctp/sm_statefuns.c 			packet = sctp_abort_pkt_new(net, ep, asoc, arg,
asoc              390 net/sctp/sm_statefuns.c 			return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg,
asoc              504 net/sctp/sm_statefuns.c 					  const struct sctp_association *asoc,
asoc              514 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc))
asoc              515 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc              522 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunk(net, ep, asoc, type, arg, commands);
asoc              526 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc              533 net/sctp/sm_statefuns.c 	if (!sctp_verify_init(net, ep, asoc, chunk->chunk_hdr->type,
asoc              545 net/sctp/sm_statefuns.c 			packet = sctp_abort_pkt_new(net, ep, asoc, arg,
asoc              572 net/sctp/sm_statefuns.c 		if (sctp_auth_recv_cid(SCTP_CID_ABORT, asoc))
asoc              573 net/sctp/sm_statefuns.c 			return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc              577 net/sctp/sm_statefuns.c 						asoc, chunk->transport);
asoc              622 net/sctp/sm_statefuns.c 				   const struct sctp_association *asoc)
asoc              637 net/sctp/sm_statefuns.c 	if (!net->sctp.auth_enable || !asoc->peer.auth_capable)
asoc              642 net/sctp/sm_statefuns.c 	auth.asoc = chunk->asoc;
asoc              650 net/sctp/sm_statefuns.c 	return sctp_sf_authenticate(asoc, &auth) == SCTP_IERROR_NO_ERROR;
asoc              686 net/sctp/sm_statefuns.c 					 const struct sctp_association *asoc,
asoc              705 net/sctp/sm_statefuns.c 		return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg, commands);
asoc              714 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc              723 net/sctp/sm_statefuns.c 		return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg, commands);
asoc              738 net/sctp/sm_statefuns.c 	new_asoc = sctp_unpack_cookie(ep, asoc, chunk, GFP_ATOMIC, &error,
asoc              756 net/sctp/sm_statefuns.c 			sctp_send_stale_cookie_err(net, ep, asoc, chunk, commands,
asoc              758 net/sctp/sm_statefuns.c 			return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc              762 net/sctp/sm_statefuns.c 			return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc              792 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc              900 net/sctp/sm_statefuns.c 					 const struct sctp_association *asoc,
asoc              908 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc))
asoc              909 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc              915 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc              942 net/sctp/sm_statefuns.c 	if (asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE])
asoc              950 net/sctp/sm_statefuns.c 	ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_COMM_UP,
asoc              951 net/sctp/sm_statefuns.c 					     0, asoc->c.sinit_num_ostreams,
asoc              952 net/sctp/sm_statefuns.c 					     asoc->c.sinit_max_instreams,
asoc              965 net/sctp/sm_statefuns.c 	if (asoc->peer.adaptation_ind) {
asoc              966 net/sctp/sm_statefuns.c 		ev = sctp_ulpevent_make_adaptation_indication(asoc, GFP_ATOMIC);
asoc              974 net/sctp/sm_statefuns.c 	if (!asoc->peer.auth_capable) {
asoc              975 net/sctp/sm_statefuns.c 		ev = sctp_ulpevent_make_authkey(asoc, 0, SCTP_AUTH_NO_AUTH,
asoc              991 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             1000 net/sctp/sm_statefuns.c 	reply = sctp_make_heartbeat(asoc, transport);
asoc             1017 net/sctp/sm_statefuns.c 					   const struct sctp_association *asoc,
asoc             1024 net/sctp/sm_statefuns.c 	if (asoc->overall_error_count >= asoc->max_retrans) {
asoc             1044 net/sctp/sm_statefuns.c 				sctp_sf_heartbeat(ep, asoc, type, arg,
asoc             1065 net/sctp/sm_statefuns.c 					  const struct sctp_association *asoc,
asoc             1072 net/sctp/sm_statefuns.c 	if (asoc->overall_error_count >= asoc->max_retrans) {
asoc             1083 net/sctp/sm_statefuns.c 	sctp_chunk_hold(asoc->strreset_chunk);
asoc             1085 net/sctp/sm_statefuns.c 			SCTP_CHUNK(asoc->strreset_chunk));
asoc             1117 net/sctp/sm_statefuns.c 				       const struct sctp_association *asoc,
asoc             1126 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc))
asoc             1127 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             1132 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             1144 net/sctp/sm_statefuns.c 		return sctp_sf_violation_paramlen(net, ep, asoc, type, arg,
asoc             1150 net/sctp/sm_statefuns.c 	reply = sctp_make_heartbeat_ack(asoc, chunk, param_hdr, paylen);
asoc             1191 net/sctp/sm_statefuns.c 					   const struct sctp_association *asoc,
asoc             1202 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc))
asoc             1203 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             1208 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             1217 net/sctp/sm_statefuns.c 	link = sctp_assoc_lookup_paddr(asoc, &from_addr);
asoc             1224 net/sctp/sm_statefuns.c 					     asoc,
asoc             1229 net/sctp/sm_statefuns.c 					     asoc,
asoc             1329 net/sctp/sm_statefuns.c 				       const struct sctp_association *asoc,
asoc             1350 net/sctp/sm_statefuns.c 		if (!list_has_sctp_addr(&asoc->peer.transport_addr_list,
asoc             1369 net/sctp/sm_statefuns.c 				  const struct sctp_association *asoc)
asoc             1371 net/sctp/sm_statefuns.c 	switch (asoc->state) {
asoc             1376 net/sctp/sm_statefuns.c 		new_asoc->c.my_vtag     = asoc->c.my_vtag;
asoc             1377 net/sctp/sm_statefuns.c 		new_asoc->c.my_ttag     = asoc->c.my_vtag;
asoc             1382 net/sctp/sm_statefuns.c 		new_asoc->c.my_vtag     = asoc->c.my_vtag;
asoc             1383 net/sctp/sm_statefuns.c 		new_asoc->c.my_ttag     = asoc->c.my_vtag;
asoc             1384 net/sctp/sm_statefuns.c 		new_asoc->c.peer_ttag   = asoc->c.peer_vtag;
asoc             1391 net/sctp/sm_statefuns.c 		new_asoc->c.my_ttag   = asoc->c.my_vtag;
asoc             1392 net/sctp/sm_statefuns.c 		new_asoc->c.peer_ttag = asoc->c.peer_vtag;
asoc             1400 net/sctp/sm_statefuns.c 	new_asoc->rwnd                  = asoc->rwnd;
asoc             1401 net/sctp/sm_statefuns.c 	new_asoc->c.sinit_num_ostreams  = asoc->c.sinit_num_ostreams;
asoc             1402 net/sctp/sm_statefuns.c 	new_asoc->c.sinit_max_instreams = asoc->c.sinit_max_instreams;
asoc             1403 net/sctp/sm_statefuns.c 	new_asoc->c.initial_tsn         = asoc->c.initial_tsn;
asoc             1416 net/sctp/sm_statefuns.c 				 const struct sctp_association *asoc)
asoc             1419 net/sctp/sm_statefuns.c 	if ((asoc->c.my_vtag != new_asoc->c.my_vtag) &&
asoc             1420 net/sctp/sm_statefuns.c 	    (asoc->c.peer_vtag != new_asoc->c.peer_vtag) &&
asoc             1421 net/sctp/sm_statefuns.c 	    (asoc->c.my_vtag == new_asoc->c.my_ttag) &&
asoc             1422 net/sctp/sm_statefuns.c 	    (asoc->c.peer_vtag == new_asoc->c.peer_ttag))
asoc             1426 net/sctp/sm_statefuns.c 	if ((asoc->c.my_vtag == new_asoc->c.my_vtag) &&
asoc             1427 net/sctp/sm_statefuns.c 	    ((asoc->c.peer_vtag != new_asoc->c.peer_vtag) ||
asoc             1428 net/sctp/sm_statefuns.c 	     (0 == asoc->c.peer_vtag))) {
asoc             1433 net/sctp/sm_statefuns.c 	if ((asoc->c.my_vtag == new_asoc->c.my_vtag) &&
asoc             1434 net/sctp/sm_statefuns.c 	    (asoc->c.peer_vtag == new_asoc->c.peer_vtag))
asoc             1438 net/sctp/sm_statefuns.c 	if ((asoc->c.my_vtag != new_asoc->c.my_vtag) &&
asoc             1439 net/sctp/sm_statefuns.c 	    (asoc->c.peer_vtag == new_asoc->c.peer_vtag) &&
asoc             1454 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             1469 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             1481 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             1487 net/sctp/sm_statefuns.c 		return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg, commands);
asoc             1494 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             1504 net/sctp/sm_statefuns.c 	if (!sctp_verify_init(net, ep, asoc, chunk->chunk_hdr->type,
asoc             1511 net/sctp/sm_statefuns.c 			packet = sctp_abort_pkt_new(net, ep, asoc, arg,
asoc             1527 net/sctp/sm_statefuns.c 			return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg,
asoc             1561 net/sctp/sm_statefuns.c 	if (!sctp_state(asoc, COOKIE_WAIT)) {
asoc             1562 net/sctp/sm_statefuns.c 		if (!sctp_sf_check_restart_addrs(new_asoc, asoc, chunk,
asoc             1569 net/sctp/sm_statefuns.c 	sctp_tietags_populate(new_asoc, asoc);
asoc             1672 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             1680 net/sctp/sm_statefuns.c 	return sctp_sf_do_unexpected_init(net, ep, asoc, type, arg, commands);
asoc             1727 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             1735 net/sctp/sm_statefuns.c 	return sctp_sf_do_unexpected_init(net, ep, asoc, type, arg, commands);
asoc             1751 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             1760 net/sctp/sm_statefuns.c 		return sctp_sf_ootb(net, ep, asoc, type, arg, commands);
asoc             1762 net/sctp/sm_statefuns.c 		return sctp_sf_discard_chunk(net, ep, asoc, type, arg, commands);
asoc             1773 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             1803 net/sctp/sm_statefuns.c 	if (!sctp_sf_check_restart_addrs(new_asoc, asoc, chunk, commands))
asoc             1812 net/sctp/sm_statefuns.c 	if (sctp_state(asoc, SHUTDOWN_ACK_SENT)) {
asoc             1813 net/sctp/sm_statefuns.c 		disposition = sctp_sf_do_9_2_reshutack(net, ep, asoc,
asoc             1819 net/sctp/sm_statefuns.c 		err = sctp_make_op_error(asoc, chunk,
asoc             1849 net/sctp/sm_statefuns.c 	ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_RESTART, 0,
asoc             1859 net/sctp/sm_statefuns.c 	if ((sctp_state(asoc, SHUTDOWN_PENDING) ||
asoc             1860 net/sctp/sm_statefuns.c 	     sctp_state(asoc, SHUTDOWN_SENT)) &&
asoc             1861 net/sctp/sm_statefuns.c 	    (sctp_sstate(asoc->base.sk, CLOSING) ||
asoc             1862 net/sctp/sm_statefuns.c 	     sock_flag(asoc->base.sk, SOCK_DEAD))) {
asoc             1868 net/sctp/sm_statefuns.c 		return sctp_sf_do_9_2_start_shutdown(net, ep, asoc,
asoc             1895 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             1952 net/sctp/sm_statefuns.c 	if (asoc->peer.adaptation_ind)
asoc             1955 net/sctp/sm_statefuns.c 	if (!asoc->peer.auth_capable)
asoc             1976 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             1999 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             2014 net/sctp/sm_statefuns.c 	if (!sctp_auth_chunk_verify(net, chunk, asoc))
asoc             2018 net/sctp/sm_statefuns.c 	if (asoc->state < SCTP_STATE_ESTABLISHED) {
asoc             2034 net/sctp/sm_statefuns.c 		ev = sctp_ulpevent_make_assoc_change(asoc, 0,
asoc             2036 net/sctp/sm_statefuns.c 					     asoc->c.sinit_num_ostreams,
asoc             2037 net/sctp/sm_statefuns.c 					     asoc->c.sinit_max_instreams,
asoc             2047 net/sctp/sm_statefuns.c 		if (asoc->peer.adaptation_ind) {
asoc             2048 net/sctp/sm_statefuns.c 			ai_ev = sctp_ulpevent_make_adaptation_indication(asoc,
asoc             2055 net/sctp/sm_statefuns.c 		if (!asoc->peer.auth_capable) {
asoc             2056 net/sctp/sm_statefuns.c 			auth_ev = sctp_ulpevent_make_authkey(asoc, 0,
asoc             2064 net/sctp/sm_statefuns.c 	repl = sctp_make_cookie_ack(asoc, chunk);
asoc             2111 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             2129 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             2145 net/sctp/sm_statefuns.c 	new_asoc = sctp_unpack_cookie(ep, asoc, chunk, GFP_ATOMIC, &error,
asoc             2163 net/sctp/sm_statefuns.c 			sctp_send_stale_cookie_err(net, ep, asoc, chunk, commands,
asoc             2165 net/sctp/sm_statefuns.c 			return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2168 net/sctp/sm_statefuns.c 			return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2176 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2185 net/sctp/sm_statefuns.c 	action = sctp_tietags_compare(new_asoc, asoc);
asoc             2189 net/sctp/sm_statefuns.c 		retval = sctp_sf_do_dupcook_a(net, ep, asoc, chunk, commands,
asoc             2194 net/sctp/sm_statefuns.c 		retval = sctp_sf_do_dupcook_b(net, ep, asoc, chunk, commands,
asoc             2199 net/sctp/sm_statefuns.c 		retval = sctp_sf_do_dupcook_c(net, ep, asoc, chunk, commands,
asoc             2204 net/sctp/sm_statefuns.c 		retval = sctp_sf_do_dupcook_d(net, ep, asoc, chunk, commands,
asoc             2209 net/sctp/sm_statefuns.c 		retval = sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2221 net/sctp/sm_statefuns.c 			 SCTP_ASOC((struct sctp_association *)asoc));
asoc             2237 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             2244 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify_either(chunk, asoc))
asoc             2245 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2258 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2266 net/sctp/sm_statefuns.c 		    sctp_bind_addr_state(&asoc->base.bind_addr, &chunk->dest))
asoc             2267 net/sctp/sm_statefuns.c 		return sctp_sf_discard_chunk(net, ep, asoc, type, arg, commands);
asoc             2270 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2272 net/sctp/sm_statefuns.c 	return __sctp_sf_do_9_1_abort(net, ep, asoc, type, arg, commands);
asoc             2283 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             2290 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify_either(chunk, asoc))
asoc             2291 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2304 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2312 net/sctp/sm_statefuns.c 		    sctp_bind_addr_state(&asoc->base.bind_addr, &chunk->dest))
asoc             2313 net/sctp/sm_statefuns.c 		return sctp_sf_discard_chunk(net, ep, asoc, type, arg, commands);
asoc             2316 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2326 net/sctp/sm_statefuns.c 	return __sctp_sf_do_9_1_abort(net, ep, asoc, type, arg, commands);
asoc             2337 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             2345 net/sctp/sm_statefuns.c 	return sctp_sf_shutdown_sent_abort(net, ep, asoc, type, arg, commands);
asoc             2365 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             2373 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc))
asoc             2374 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2380 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             2390 net/sctp/sm_statefuns.c 			return sctp_sf_do_5_2_6_stale(net, ep, asoc, type,
asoc             2399 net/sctp/sm_statefuns.c 	return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2430 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             2435 net/sctp/sm_statefuns.c 	int attempts = asoc->init_err_counter + 1;
asoc             2442 net/sctp/sm_statefuns.c 	if (attempts > asoc->max_init_attempts) {
asoc             2474 net/sctp/sm_statefuns.c 	bp = (struct sctp_bind_addr *) &asoc->base.bind_addr;
asoc             2475 net/sctp/sm_statefuns.c 	reply = sctp_make_init(asoc, bp, GFP_ATOMIC, sizeof(bht));
asoc             2497 net/sctp/sm_statefuns.c 			SCTP_TRANSPORT(asoc->peer.primary_path));
asoc             2553 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             2560 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify_either(chunk, asoc))
asoc             2561 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2574 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2582 net/sctp/sm_statefuns.c 		    sctp_bind_addr_state(&asoc->base.bind_addr, &chunk->dest))
asoc             2583 net/sctp/sm_statefuns.c 		return sctp_sf_discard_chunk(net, ep, asoc, type, arg, commands);
asoc             2586 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2588 net/sctp/sm_statefuns.c 	return __sctp_sf_do_9_1_abort(net, ep, asoc, type, arg, commands);
asoc             2594 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             2625 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             2634 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify_either(chunk, asoc))
asoc             2635 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2648 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2655 net/sctp/sm_statefuns.c 	return sctp_stop_t1_and_abort(net, commands, error, ECONNREFUSED, asoc,
asoc             2665 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             2671 net/sctp/sm_statefuns.c 				      ENOPROTOOPT, asoc,
asoc             2681 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             2689 net/sctp/sm_statefuns.c 	return sctp_sf_cookie_wait_abort(net, ep, asoc, type, arg, commands);
asoc             2701 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             2755 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             2766 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc))
asoc             2767 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2771 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             2780 net/sctp/sm_statefuns.c 	if (TSN_lt(ctsn, asoc->ctsn_ack_point)) {
asoc             2782 net/sctp/sm_statefuns.c 			 asoc->ctsn_ack_point);
asoc             2791 net/sctp/sm_statefuns.c 	if (!TSN_lt(ctsn, asoc->next_tsn))
asoc             2792 net/sctp/sm_statefuns.c 		return sctp_sf_violation_ctsn(net, ep, asoc, type, arg, commands);
asoc             2798 net/sctp/sm_statefuns.c 	ev = sctp_ulpevent_make_shutdown_event(asoc, 0, GFP_ATOMIC);
asoc             2815 net/sctp/sm_statefuns.c 	if (sctp_outq_is_empty(&asoc->outqueue)) {
asoc             2816 net/sctp/sm_statefuns.c 		disposition = sctp_sf_do_9_2_shutdown_ack(net, ep, asoc, type,
asoc             2845 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             2854 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc))
asoc             2855 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2859 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             2865 net/sctp/sm_statefuns.c 	if (TSN_lt(ctsn, asoc->ctsn_ack_point)) {
asoc             2867 net/sctp/sm_statefuns.c 			 asoc->ctsn_ack_point);
asoc             2876 net/sctp/sm_statefuns.c 	if (!TSN_lt(ctsn, asoc->next_tsn))
asoc             2877 net/sctp/sm_statefuns.c 		return sctp_sf_violation_ctsn(net, ep, asoc, type, arg, commands);
asoc             2899 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             2909 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             2916 net/sctp/sm_statefuns.c 	reply = sctp_make_shutdown_ack(asoc, chunk);
asoc             2963 net/sctp/sm_statefuns.c 					 const struct sctp_association *asoc,
asoc             2972 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc))
asoc             2973 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             2976 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             2985 net/sctp/sm_statefuns.c 	if (TSN_lte(asoc->last_ecne_tsn, lowest_tsn)) {
asoc             3019 net/sctp/sm_statefuns.c 				      const struct sctp_association *asoc,
asoc             3026 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc))
asoc             3027 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             3030 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             3075 net/sctp/sm_statefuns.c 					   const struct sctp_association *asoc,
asoc             3084 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc)) {
asoc             3087 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             3090 net/sctp/sm_statefuns.c 	if (!sctp_chunk_length_valid(chunk, sctp_datachk_len(&asoc->stream)))
asoc             3091 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             3094 net/sctp/sm_statefuns.c 	error = sctp_eat_data(asoc, chunk, commands);
asoc             3109 net/sctp/sm_statefuns.c 		return sctp_sf_abort_violation(net, ep, asoc, chunk, commands,
asoc             3111 net/sctp/sm_statefuns.c 					       sctp_datahdr_len(&asoc->stream));
asoc             3119 net/sctp/sm_statefuns.c 	if (asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE]) {
asoc             3196 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             3204 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc)) {
asoc             3207 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             3210 net/sctp/sm_statefuns.c 	if (!sctp_chunk_length_valid(chunk, sctp_datachk_len(&asoc->stream)))
asoc             3211 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             3214 net/sctp/sm_statefuns.c 	error = sctp_eat_data(asoc, chunk, commands);
asoc             3225 net/sctp/sm_statefuns.c 		return sctp_sf_abort_violation(net, ep, asoc, chunk, commands,
asoc             3227 net/sctp/sm_statefuns.c 					       sctp_datahdr_len(&asoc->stream));
asoc             3287 net/sctp/sm_statefuns.c 					   const struct sctp_association *asoc,
asoc             3296 net/sctp/sm_statefuns.c 	trace_sctp_probe(ep, asoc, chunk);
asoc             3298 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc))
asoc             3299 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             3303 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             3310 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             3320 net/sctp/sm_statefuns.c 	if (TSN_lt(ctsn, asoc->ctsn_ack_point)) {
asoc             3322 net/sctp/sm_statefuns.c 			 asoc->ctsn_ack_point);
asoc             3331 net/sctp/sm_statefuns.c 	if (!TSN_lt(ctsn, asoc->next_tsn))
asoc             3332 net/sctp/sm_statefuns.c 		return sctp_sf_violation_ctsn(net, ep, asoc, type, arg, commands);
asoc             3364 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             3373 net/sctp/sm_statefuns.c 	packet = sctp_ootb_pkt_new(net, asoc, chunk);
asoc             3380 net/sctp/sm_statefuns.c 	abort = sctp_make_abort(asoc, chunk, 0);
asoc             3400 net/sctp/sm_statefuns.c 	sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             3414 net/sctp/sm_statefuns.c 					   const struct sctp_association *asoc,
asoc             3422 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc))
asoc             3423 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             3427 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             3431 net/sctp/sm_statefuns.c 		return sctp_sf_violation_paramlen(net, ep, asoc, type, arg,
asoc             3452 net/sctp/sm_statefuns.c 					   const struct sctp_association *asoc,
asoc             3461 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc))
asoc             3462 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             3466 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             3473 net/sctp/sm_statefuns.c 	ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_SHUTDOWN_COMP,
asoc             3479 net/sctp/sm_statefuns.c 	reply = sctp_make_shutdown_complete(asoc, chunk);
asoc             3535 net/sctp/sm_statefuns.c 				   const struct sctp_association *asoc,
asoc             3553 net/sctp/sm_statefuns.c 			return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             3559 net/sctp/sm_statefuns.c 			return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             3574 net/sctp/sm_statefuns.c 			return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             3597 net/sctp/sm_statefuns.c 		return sctp_sf_shut_8_4_5(net, ep, asoc, type, arg, commands);
asoc             3599 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             3601 net/sctp/sm_statefuns.c 		return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg, commands);
asoc             3628 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             3637 net/sctp/sm_statefuns.c 	packet = sctp_ootb_pkt_new(net, asoc, chunk);
asoc             3644 net/sctp/sm_statefuns.c 	shut = sctp_make_shutdown_complete(asoc, chunk);
asoc             3668 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             3674 net/sctp/sm_statefuns.c 	return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             3690 net/sctp/sm_statefuns.c 					    const struct sctp_association *asoc,
asoc             3699 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             3715 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             3726 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc)) {
asoc             3729 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             3738 net/sctp/sm_statefuns.c 	if (!asoc->peer.asconf_capable ||
asoc             3740 net/sctp/sm_statefuns.c 		return sctp_sf_discard_chunk(net, ep, asoc, type, arg,
asoc             3745 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             3752 net/sctp/sm_statefuns.c 	if (!sctp_verify_asconf(asoc, chunk, true, &err_param))
asoc             3753 net/sctp/sm_statefuns.c 		return sctp_sf_violation_paramlen(net, ep, asoc, type, arg,
asoc             3760 net/sctp/sm_statefuns.c 	if (serial == asoc->peer.addip_serial + 1) {
asoc             3765 net/sctp/sm_statefuns.c 			sctp_assoc_clean_asconf_ack_cache(asoc);
asoc             3776 net/sctp/sm_statefuns.c 						 asoc, chunk);
asoc             3779 net/sctp/sm_statefuns.c 	} else if (serial < asoc->peer.addip_serial + 1) {
asoc             3792 net/sctp/sm_statefuns.c 		asconf_ack = sctp_assoc_lookup_asconf_ack(asoc, hdr->serial);
asoc             3819 net/sctp/sm_statefuns.c 	if (asoc->new_transport) {
asoc             3820 net/sctp/sm_statefuns.c 		sctp_sf_heartbeat(ep, asoc, type, asoc->new_transport, commands);
asoc             3821 net/sctp/sm_statefuns.c 		((struct sctp_association *)asoc)->new_transport = NULL;
asoc             3830 net/sctp/sm_statefuns.c 					struct sctp_association *asoc,
asoc             3837 net/sctp/sm_statefuns.c 	if (list_empty(&asoc->addip_chunk_list))
asoc             3840 net/sctp/sm_statefuns.c 	entry = asoc->addip_chunk_list.next;
asoc             3845 net/sctp/sm_statefuns.c 	asoc->addip_last_asconf = asconf;
asoc             3847 net/sctp/sm_statefuns.c 	return sctp_sf_do_prm_asconf(net, ep, asoc, type, asconf, commands);
asoc             3857 net/sctp/sm_statefuns.c 					    const struct sctp_association *asoc,
asoc             3862 net/sctp/sm_statefuns.c 	struct sctp_chunk *last_asconf = asoc->addip_last_asconf;
asoc             3869 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(asconf_ack, asoc)) {
asoc             3872 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             3881 net/sctp/sm_statefuns.c 	if (!asoc->peer.asconf_capable ||
asoc             3883 net/sctp/sm_statefuns.c 		return sctp_sf_discard_chunk(net, ep, asoc, type, arg,
asoc             3889 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             3896 net/sctp/sm_statefuns.c 	if (!sctp_verify_asconf(asoc, asconf_ack, false, &err_param))
asoc             3897 net/sctp/sm_statefuns.c 		return sctp_sf_violation_paramlen(net, ep, asoc, type, arg,
asoc             3904 net/sctp/sm_statefuns.c 		sent_serial = asoc->addip_serial - 1;
asoc             3914 net/sctp/sm_statefuns.c 	    !(asoc->addip_last_asconf)) {
asoc             3915 net/sctp/sm_statefuns.c 		abort = sctp_make_abort(asoc, asconf_ack,
asoc             3937 net/sctp/sm_statefuns.c 	if ((rcvd_serial == sent_serial) && asoc->addip_last_asconf) {
asoc             3941 net/sctp/sm_statefuns.c 		if (!sctp_process_asconf_ack((struct sctp_association *)asoc,
asoc             3944 net/sctp/sm_statefuns.c 					(struct sctp_association *)asoc,
asoc             3947 net/sctp/sm_statefuns.c 		abort = sctp_make_abort(asoc, asconf_ack,
asoc             3973 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             3983 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc)) {
asoc             3986 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             3991 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             3994 net/sctp/sm_statefuns.c 	if (!sctp_verify_reconf(asoc, chunk, &err_param))
asoc             3995 net/sctp/sm_statefuns.c 		return sctp_sf_violation_paramlen(net, ep, asoc, type, arg,
asoc             4005 net/sctp/sm_statefuns.c 				(struct sctp_association *)asoc, param, &ev);
asoc             4008 net/sctp/sm_statefuns.c 				(struct sctp_association *)asoc, param, &ev);
asoc             4011 net/sctp/sm_statefuns.c 				(struct sctp_association *)asoc, param, &ev);
asoc             4014 net/sctp/sm_statefuns.c 				(struct sctp_association *)asoc, param, &ev);
asoc             4017 net/sctp/sm_statefuns.c 				(struct sctp_association *)asoc, param, &ev);
asoc             4020 net/sctp/sm_statefuns.c 				(struct sctp_association *)asoc, param, &ev);
asoc             4050 net/sctp/sm_statefuns.c 					  const struct sctp_association *asoc,
asoc             4060 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc)) {
asoc             4063 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             4066 net/sctp/sm_statefuns.c 	if (!asoc->peer.prsctp_capable)
asoc             4067 net/sctp/sm_statefuns.c 		return sctp_sf_unk_chunk(net, ep, asoc, type, arg, commands);
asoc             4070 net/sctp/sm_statefuns.c 	if (!sctp_chunk_length_valid(chunk, sctp_ftsnchk_len(&asoc->stream)))
asoc             4071 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             4086 net/sctp/sm_statefuns.c 	if (sctp_tsnmap_check(&asoc->peer.tsn_map, tsn) < 0)
asoc             4089 net/sctp/sm_statefuns.c 	if (!asoc->stream.si->validate_ftsn(chunk))
asoc             4093 net/sctp/sm_statefuns.c 	if (len > sctp_ftsnhdr_len(&asoc->stream))
asoc             4098 net/sctp/sm_statefuns.c 	if (asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE]) {
asoc             4117 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             4127 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc)) {
asoc             4130 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             4133 net/sctp/sm_statefuns.c 	if (!asoc->peer.prsctp_capable)
asoc             4134 net/sctp/sm_statefuns.c 		return sctp_sf_unk_chunk(net, ep, asoc, type, arg, commands);
asoc             4137 net/sctp/sm_statefuns.c 	if (!sctp_chunk_length_valid(chunk, sctp_ftsnchk_len(&asoc->stream)))
asoc             4138 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             4153 net/sctp/sm_statefuns.c 	if (sctp_tsnmap_check(&asoc->peer.tsn_map, tsn) < 0)
asoc             4156 net/sctp/sm_statefuns.c 	if (!asoc->stream.si->validate_ftsn(chunk))
asoc             4160 net/sctp/sm_statefuns.c 	if (len > sctp_ftsnhdr_len(&asoc->stream))
asoc             4203 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             4221 net/sctp/sm_statefuns.c 	if (!sctp_auth_asoc_verify_hmac_id(asoc, auth_hdr->hmac_id))
asoc             4228 net/sctp/sm_statefuns.c 	if (key_id != asoc->active_key_id) {
asoc             4229 net/sctp/sm_statefuns.c 		sh_key = sctp_auth_get_shkey(asoc, key_id);
asoc             4259 net/sctp/sm_statefuns.c 	sctp_auth_calculate_hmac(asoc, chunk->skb,
asoc             4279 net/sctp/sm_statefuns.c 				       const struct sctp_association *asoc,
asoc             4289 net/sctp/sm_statefuns.c 	if (!asoc->peer.auth_capable)
asoc             4290 net/sctp/sm_statefuns.c 		return sctp_sf_unk_chunk(net, ep, asoc, type, arg, commands);
asoc             4292 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(chunk, asoc)) {
asoc             4295 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             4300 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             4304 net/sctp/sm_statefuns.c 	error = sctp_sf_authenticate(asoc, chunk);
asoc             4310 net/sctp/sm_statefuns.c 		err_chunk = sctp_make_op_error(asoc, chunk,
asoc             4321 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             4324 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             4334 net/sctp/sm_statefuns.c 	if (asoc->active_key_id != ntohs(auth_hdr->shkey_id)) {
asoc             4337 net/sctp/sm_statefuns.c 		ev = sctp_ulpevent_make_authkey(asoc, ntohs(auth_hdr->shkey_id),
asoc             4375 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             4386 net/sctp/sm_statefuns.c 	if (!sctp_vtag_verify(unk_chunk, asoc))
asoc             4387 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             4394 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             4400 net/sctp/sm_statefuns.c 		return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             4404 net/sctp/sm_statefuns.c 		err_chunk = sctp_make_op_error(asoc, unk_chunk,
asoc             4414 net/sctp/sm_statefuns.c 		sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
asoc             4422 net/sctp/sm_statefuns.c 		err_chunk = sctp_make_op_error(asoc, unk_chunk,
asoc             4455 net/sctp/sm_statefuns.c 					    const struct sctp_association *asoc,
asoc             4467 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             4495 net/sctp/sm_statefuns.c 				       const struct sctp_association *asoc,
asoc             4522 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             4531 net/sctp/sm_statefuns.c 		return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,
asoc             4543 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             4564 net/sctp/sm_statefuns.c 	if (sctp_auth_recv_cid(SCTP_CID_ABORT, asoc))
asoc             4568 net/sctp/sm_statefuns.c 	abort = sctp_make_abort_violation(asoc, chunk, payload, paylen);
asoc             4572 net/sctp/sm_statefuns.c 	if (asoc) {
asoc             4575 net/sctp/sm_statefuns.c 		    !asoc->peer.i.init_tag) {
asoc             4593 net/sctp/sm_statefuns.c 		if (asoc->state <= SCTP_STATE_COOKIE_ECHOED) {
asoc             4608 net/sctp/sm_statefuns.c 		packet = sctp_ootb_pkt_new(net, asoc, chunk);
asoc             4629 net/sctp/sm_statefuns.c 	sctp_sf_pdiscard(net, ep, asoc, SCTP_ST_CHUNK(0), arg, commands);
asoc             4660 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             4667 net/sctp/sm_statefuns.c 	return sctp_sf_abort_violation(net, ep, asoc, arg, commands, err_str,
asoc             4680 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             4689 net/sctp/sm_statefuns.c 	if (sctp_auth_recv_cid(SCTP_CID_ABORT, asoc))
asoc             4693 net/sctp/sm_statefuns.c 	abort = sctp_make_violation_paramlen(asoc, chunk, param);
asoc             4708 net/sctp/sm_statefuns.c 	sctp_sf_pdiscard(net, ep, asoc, SCTP_ST_CHUNK(0), arg, commands);
asoc             4723 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             4730 net/sctp/sm_statefuns.c 	return sctp_sf_abort_violation(net, ep, asoc, arg, commands, err_str,
asoc             4743 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             4750 net/sctp/sm_statefuns.c 	if (!asoc)
asoc             4751 net/sctp/sm_statefuns.c 		return sctp_sf_violation(net, ep, asoc, type, arg, commands);
asoc             4753 net/sctp/sm_statefuns.c 	return sctp_sf_abort_violation(net, ep, asoc, arg, commands, err_str,
asoc             4818 net/sctp/sm_statefuns.c 					  const struct sctp_association *asoc,
asoc             4841 net/sctp/sm_statefuns.c 	repl = sctp_make_init(asoc, &asoc->base.bind_addr, GFP_ATOMIC, 0);
asoc             4852 net/sctp/sm_statefuns.c 	my_asoc = (struct sctp_association *)asoc;
asoc             4930 net/sctp/sm_statefuns.c 					  const struct sctp_association *asoc,
asoc             4970 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             4989 net/sctp/sm_statefuns.c 	if (sctp_outq_is_empty(&asoc->outqueue)) {
asoc             4990 net/sctp/sm_statefuns.c 		disposition = sctp_sf_do_9_2_start_shutdown(net, ep, asoc, type,
asoc             5027 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5064 net/sctp/sm_statefuns.c 					   const struct sctp_association *asoc,
asoc             5079 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5106 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5141 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5149 net/sctp/sm_statefuns.c 	return sctp_sf_cookie_wait_prm_shutdown(net, ep, asoc, type, arg, commands);
asoc             5169 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5218 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5226 net/sctp/sm_statefuns.c 	return sctp_sf_cookie_wait_prm_abort(net, ep, asoc, type, arg, commands);
asoc             5244 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5253 net/sctp/sm_statefuns.c 	return sctp_sf_do_9_1_prm_abort(net, ep, asoc, type, arg, commands);
asoc             5271 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5284 net/sctp/sm_statefuns.c 	return sctp_sf_do_9_1_prm_abort(net, ep, asoc, type, arg, commands);
asoc             5302 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5310 net/sctp/sm_statefuns.c 	return sctp_sf_shutdown_sent_prm_abort(net, ep, asoc, type, arg, commands);
asoc             5338 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5343 net/sctp/sm_statefuns.c 	if (SCTP_DISPOSITION_NOMEM == sctp_sf_heartbeat(ep, asoc, type,
asoc             5370 net/sctp/sm_statefuns.c 					    const struct sctp_association *asoc,
asoc             5387 net/sctp/sm_statefuns.c 					    const struct sctp_association *asoc,
asoc             5406 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5430 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5437 net/sctp/sm_statefuns.c 	event = sctp_ulpevent_make_sender_dry_event(asoc, GFP_ATOMIC);
asoc             5462 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5474 net/sctp/sm_statefuns.c 	reply = sctp_make_shutdown(asoc, arg);
asoc             5494 net/sctp/sm_statefuns.c 	if (asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE])
asoc             5532 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5548 net/sctp/sm_statefuns.c 		if (!sctp_vtag_verify(chunk, asoc))
asoc             5549 net/sctp/sm_statefuns.c 			return sctp_sf_pdiscard(net, ep, asoc, type, arg,
asoc             5555 net/sctp/sm_statefuns.c 			return sctp_sf_violation_chunklen(net, ep, asoc, type,
asoc             5562 net/sctp/sm_statefuns.c 	reply = sctp_make_shutdown_ack(asoc, chunk);
asoc             5575 net/sctp/sm_statefuns.c 	if (asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE])
asoc             5605 net/sctp/sm_statefuns.c 					   const struct sctp_association *asoc,
asoc             5633 net/sctp/sm_statefuns.c 					   const struct sctp_association *asoc,
asoc             5642 net/sctp/sm_statefuns.c 	if (asoc->overall_error_count >= asoc->max_retrans) {
asoc             5643 net/sctp/sm_statefuns.c 		if (asoc->peer.zero_window_announced &&
asoc             5644 net/sctp/sm_statefuns.c 		    asoc->state == SCTP_STATE_SHUTDOWN_PENDING) {
asoc             5721 net/sctp/sm_statefuns.c 					  const struct sctp_association *asoc,
asoc             5753 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5758 net/sctp/sm_statefuns.c 	int attempts = asoc->init_err_counter + 1;
asoc             5766 net/sctp/sm_statefuns.c 	if (attempts <= asoc->max_init_attempts) {
asoc             5767 net/sctp/sm_statefuns.c 		bp = (struct sctp_bind_addr *) &asoc->base.bind_addr;
asoc             5768 net/sctp/sm_statefuns.c 		repl = sctp_make_init(asoc, bp, GFP_ATOMIC, 0);
asoc             5784 net/sctp/sm_statefuns.c 			 asoc->max_init_attempts);
asoc             5818 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5823 net/sctp/sm_statefuns.c 	int attempts = asoc->init_err_counter + 1;
asoc             5830 net/sctp/sm_statefuns.c 	if (attempts <= asoc->max_init_attempts) {
asoc             5831 net/sctp/sm_statefuns.c 		repl = sctp_make_cookie_echo(asoc, NULL);
asoc             5869 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5880 net/sctp/sm_statefuns.c 	((struct sctp_association *)asoc)->shutdown_retries++;
asoc             5882 net/sctp/sm_statefuns.c 	if (asoc->overall_error_count >= asoc->max_retrans) {
asoc             5893 net/sctp/sm_statefuns.c 	switch (asoc->state) {
asoc             5895 net/sctp/sm_statefuns.c 		reply = sctp_make_shutdown(asoc, NULL);
asoc             5899 net/sctp/sm_statefuns.c 		reply = sctp_make_shutdown_ack(asoc, NULL);
asoc             5914 net/sctp/sm_statefuns.c 	if (asoc->shutdown_last_sent_to)
asoc             5916 net/sctp/sm_statefuns.c 				SCTP_TRANSPORT(asoc->shutdown_last_sent_to));
asoc             5940 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             5945 net/sctp/sm_statefuns.c 	struct sctp_chunk *chunk = asoc->addip_last_asconf;
asoc             5966 net/sctp/sm_statefuns.c 	if (asoc->overall_error_count >= asoc->max_retrans) {
asoc             5989 net/sctp/sm_statefuns.c 	sctp_chunk_hold(asoc->addip_last_asconf);
asoc             5991 net/sctp/sm_statefuns.c 			SCTP_CHUNK(asoc->addip_last_asconf));
asoc             6012 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             6023 net/sctp/sm_statefuns.c 	reply = sctp_make_abort(asoc, NULL, 0);
asoc             6049 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             6070 net/sctp/sm_statefuns.c 	if (sctp_outq_is_empty(&asoc->outqueue)) {
asoc             6071 net/sctp/sm_statefuns.c 		disposition = sctp_sf_do_9_2_start_shutdown(net, ep, asoc, type,
asoc             6092 net/sctp/sm_statefuns.c 				       const struct sctp_association *asoc,
asoc             6109 net/sctp/sm_statefuns.c 				  const struct sctp_association *asoc,
asoc             6129 net/sctp/sm_statefuns.c 					   const struct sctp_association *asoc,
asoc             6174 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             6181 net/sctp/sm_statefuns.c 	packet = sctp_ootb_pkt_new(net, asoc, chunk);
asoc             6187 net/sctp/sm_statefuns.c 		abort = sctp_make_abort(asoc, chunk, paylen);
asoc             6215 net/sctp/sm_statefuns.c 					const struct sctp_association *asoc,
asoc             6230 net/sctp/sm_statefuns.c 	if (asoc) {
asoc             6244 net/sctp/sm_statefuns.c 			vtag = asoc->peer.i.init_tag;
asoc             6296 net/sctp/sm_statefuns.c 				       const struct sctp_association *asoc,
asoc             6304 net/sctp/sm_statefuns.c 		packet = sctp_ootb_pkt_new(net, asoc, chunk);
asoc             6325 net/sctp/sm_statefuns.c static int sctp_eat_data(const struct sctp_association *asoc,
asoc             6329 net/sctp/sm_statefuns.c 	struct sctp_tsnmap *map = (struct sctp_tsnmap *)&asoc->peer.tsn_map;
asoc             6330 net/sctp/sm_statefuns.c 	struct sock *sk = asoc->base.sk;
asoc             6341 net/sctp/sm_statefuns.c 	skb_pull(chunk->skb, sctp_datahdr_len(&asoc->stream));
asoc             6358 net/sctp/sm_statefuns.c 	if (asoc->peer.ecn_capable && !chunk->ecn_ce_done) {
asoc             6369 net/sctp/sm_statefuns.c 	tmp = sctp_tsnmap_check(&asoc->peer.tsn_map, tsn);
asoc             6374 net/sctp/sm_statefuns.c 		if (chunk->asoc)
asoc             6375 net/sctp/sm_statefuns.c 			chunk->asoc->stats.outofseqtsns++;
asoc             6389 net/sctp/sm_statefuns.c 	datalen -= sctp_datachk_len(&asoc->stream);
asoc             6394 net/sctp/sm_statefuns.c 	if ((datalen >= asoc->rwnd) && (!asoc->ulpq.pd_mode)) {
asoc             6407 net/sctp/sm_statefuns.c 	if ((!chunk->data_accepted) && (!asoc->rwnd || asoc->rwnd_over ||
asoc             6408 net/sctp/sm_statefuns.c 	    (datalen > asoc->rwnd + asoc->frag_point))) {
asoc             6422 net/sctp/sm_statefuns.c 				 __func__, tsn, datalen, asoc->rwnd);
asoc             6455 net/sctp/sm_statefuns.c 		err = sctp_make_abort_no_data(asoc, chunk, tsn);
asoc             6480 net/sctp/sm_statefuns.c 		if (chunk->asoc)
asoc             6481 net/sctp/sm_statefuns.c 			chunk->asoc->stats.iuodchunks++;
asoc             6484 net/sctp/sm_statefuns.c 		if (chunk->asoc)
asoc             6485 net/sctp/sm_statefuns.c 			chunk->asoc->stats.iodchunks++;
asoc             6496 net/sctp/sm_statefuns.c 	if (ntohs(data_hdr->stream) >= asoc->stream.incnt) {
asoc             6500 net/sctp/sm_statefuns.c 		err = sctp_make_op_error(asoc, chunk, SCTP_ERROR_INV_STRM,
asoc             6517 net/sctp/sm_statefuns.c 	if (!asoc->stream.si->validate_data(chunk))
asoc               73 net/sctp/socket.c static int sctp_wait_for_sndbuf(struct sctp_association *asoc, long *timeo_p,
asoc               86 net/sctp/socket.c static int sctp_send_asconf(struct sctp_association *asoc,
asoc              105 net/sctp/socket.c static inline int sctp_wspace(struct sctp_association *asoc)
asoc              107 net/sctp/socket.c 	struct sock *sk = asoc->base.sk;
asoc              109 net/sctp/socket.c 	return asoc->ep->sndbuf_policy ? sk->sk_sndbuf - asoc->sndbuf_used
asoc              124 net/sctp/socket.c 	struct sctp_association *asoc = chunk->asoc;
asoc              125 net/sctp/socket.c 	struct sock *sk = asoc->base.sk;
asoc              128 net/sctp/socket.c 	sctp_association_hold(asoc);
asoc              140 net/sctp/socket.c 	asoc->sndbuf_used += chunk->skb->truesize + sizeof(struct sctp_chunk);
asoc              156 net/sctp/socket.c 		if ((clear && asoc->base.sk == c->skb->sk) ||	\
asoc              157 net/sctp/socket.c 		    (!clear && asoc->base.sk != c->skb->sk))	\
asoc              163 net/sctp/socket.c static void sctp_for_each_tx_datachunk(struct sctp_association *asoc,
asoc              169 net/sctp/socket.c 	struct sctp_outq *q = &asoc->outqueue;
asoc              173 net/sctp/socket.c 	list_for_each_entry(t, &asoc->peer.transport_addr_list, transports)
asoc              190 net/sctp/socket.c static void sctp_for_each_rx_skb(struct sctp_association *asoc, struct sock *sk,
asoc              196 net/sctp/socket.c 	sctp_skb_for_each(skb, &asoc->ulpq.lobby, tmp)
asoc              199 net/sctp/socket.c 	sctp_skb_for_each(skb, &asoc->ulpq.reasm, tmp)
asoc              202 net/sctp/socket.c 	sctp_skb_for_each(skb, &asoc->ulpq.reasm_uo, tmp)
asoc              232 net/sctp/socket.c 	struct sctp_association *asoc = NULL;
asoc              245 net/sctp/socket.c 			asoc = list_entry(sctp_sk(sk)->ep->asocs.next,
asoc              247 net/sctp/socket.c 		return asoc;
asoc              255 net/sctp/socket.c 	asoc = (struct sctp_association *)idr_find(&sctp_assocs_id, (int)id);
asoc              256 net/sctp/socket.c 	if (asoc && (asoc->base.sk != sk || asoc->base.dead))
asoc              257 net/sctp/socket.c 		asoc = NULL;
asoc              260 net/sctp/socket.c 	return asoc;
asoc              451 net/sctp/socket.c static int sctp_send_asconf(struct sctp_association *asoc,
asoc              454 net/sctp/socket.c 	struct net 	*net = sock_net(asoc->base.sk);
asoc              460 net/sctp/socket.c 	if (asoc->addip_last_asconf) {
asoc              461 net/sctp/socket.c 		list_add_tail(&chunk->list, &asoc->addip_chunk_list);
asoc              467 net/sctp/socket.c 	retval = sctp_primitive_ASCONF(net, asoc, chunk);
asoc              471 net/sctp/socket.c 		asoc->addip_last_asconf = chunk;
asoc              545 net/sctp/socket.c 	struct sctp_association		*asoc;
asoc              566 net/sctp/socket.c 	list_for_each_entry(asoc, &ep->asocs, asocs) {
asoc              567 net/sctp/socket.c 		if (!asoc->peer.asconf_capable)
asoc              570 net/sctp/socket.c 		if (asoc->peer.addip_disabled_mask & SCTP_PARAM_ADD_IP)
asoc              573 net/sctp/socket.c 		if (!sctp_state(asoc, ESTABLISHED))
asoc              590 net/sctp/socket.c 			if (sctp_assoc_lookup_laddr(asoc, addr))
asoc              601 net/sctp/socket.c 		bp = &asoc->base.bind_addr;
asoc              604 net/sctp/socket.c 		chunk = sctp_make_asconf_update_ip(asoc, &laddr->a, addrs,
asoc              624 net/sctp/socket.c 		if (asoc->src_out_of_asoc_ok) {
asoc              628 net/sctp/socket.c 			    &asoc->peer.transport_addr_list, transports) {
asoc              629 net/sctp/socket.c 				trans->cwnd = min(4*asoc->pathmtu, max_t(__u32,
asoc              630 net/sctp/socket.c 				    2*asoc->pathmtu, 4380));
asoc              631 net/sctp/socket.c 				trans->ssthresh = asoc->peer.i.a_rwnd;
asoc              632 net/sctp/socket.c 				trans->rto = asoc->rto_initial;
asoc              633 net/sctp/socket.c 				sctp_max_rto(asoc, trans);
asoc              637 net/sctp/socket.c 						     sctp_sk(asoc->base.sk));
asoc              640 net/sctp/socket.c 		retval = sctp_send_asconf(asoc, chunk);
asoc              747 net/sctp/socket.c 	struct sctp_association	*asoc;
asoc              769 net/sctp/socket.c 	list_for_each_entry(asoc, &ep->asocs, asocs) {
asoc              771 net/sctp/socket.c 		if (!asoc->peer.asconf_capable)
asoc              774 net/sctp/socket.c 		if (asoc->peer.addip_disabled_mask & SCTP_PARAM_DEL_IP)
asoc              777 net/sctp/socket.c 		if (!sctp_state(asoc, ESTABLISHED))
asoc              794 net/sctp/socket.c 			if (!sctp_assoc_lookup_laddr(asoc, laddr))
asoc              807 net/sctp/socket.c 		bp = &asoc->base.bind_addr;
asoc              811 net/sctp/socket.c 			if (asoc->asconf_addr_del_pending)
asoc              813 net/sctp/socket.c 			asoc->asconf_addr_del_pending =
asoc              815 net/sctp/socket.c 			if (asoc->asconf_addr_del_pending == NULL) {
asoc              819 net/sctp/socket.c 			asoc->asconf_addr_del_pending->sa.sa_family =
asoc              821 net/sctp/socket.c 			asoc->asconf_addr_del_pending->v4.sin_port =
asoc              827 net/sctp/socket.c 				asoc->asconf_addr_del_pending->v4.sin_addr.s_addr = sin->sin_addr.s_addr;
asoc              832 net/sctp/socket.c 				asoc->asconf_addr_del_pending->v6.sin6_addr = sin6->sin6_addr;
asoc              836 net/sctp/socket.c 				 __func__, asoc, &asoc->asconf_addr_del_pending->sa,
asoc              837 net/sctp/socket.c 				 asoc->asconf_addr_del_pending);
asoc              839 net/sctp/socket.c 			asoc->src_out_of_asoc_ok = 1;
asoc              851 net/sctp/socket.c 		chunk = sctp_make_asconf_update_ip(asoc, laddr, addrs, addrcnt,
asoc              877 net/sctp/socket.c 		list_for_each_entry(transport, &asoc->peer.transport_addr_list,
asoc              880 net/sctp/socket.c 					     sctp_sk(asoc->base.sk));
asoc              886 net/sctp/socket.c 		retval = sctp_send_asconf(asoc, chunk);
asoc             1066 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             1085 net/sctp/socket.c 	asoc = sctp_association_new(ep, sk, scope, GFP_KERNEL);
asoc             1086 net/sctp/socket.c 	if (!asoc)
asoc             1089 net/sctp/socket.c 	err = sctp_assoc_set_bind_addr_from_ep(asoc, scope, GFP_KERNEL);
asoc             1093 net/sctp/socket.c 	*tp = sctp_assoc_add_peer(asoc, daddr, GFP_KERNEL, SCTP_UNKNOWN);
asoc             1105 net/sctp/socket.c 		asoc->c.sinit_num_ostreams = outcnt;
asoc             1107 net/sctp/socket.c 		err = sctp_stream_init(&asoc->stream, outcnt, 0, GFP_KERNEL);
asoc             1113 net/sctp/socket.c 		asoc->c.sinit_max_instreams = init->sinit_max_instreams;
asoc             1116 net/sctp/socket.c 		asoc->max_init_attempts = init->sinit_max_attempts;
asoc             1119 net/sctp/socket.c 		asoc->max_init_timeo =
asoc             1124 net/sctp/socket.c 	sctp_association_free(asoc);
asoc             1128 net/sctp/socket.c static int sctp_connect_add_peer(struct sctp_association *asoc,
asoc             1131 net/sctp/socket.c 	struct sctp_endpoint *ep = asoc->ep;
asoc             1141 net/sctp/socket.c 	if (old && old != asoc)
asoc             1148 net/sctp/socket.c 	t = sctp_assoc_add_peer(asoc, daddr, GFP_KERNEL, SCTP_UNKNOWN);
asoc             1166 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             1186 net/sctp/socket.c 	asoc = sctp_endpoint_lookup_assoc(ep, daddr, &transport);
asoc             1187 net/sctp/socket.c 	if (asoc)
asoc             1188 net/sctp/socket.c 		return asoc->state >= SCTP_STATE_ESTABLISHED ? -EISCONN
asoc             1194 net/sctp/socket.c 	asoc = transport->asoc;
asoc             1208 net/sctp/socket.c 		if (asoc->peer.port != ntohs(daddr->v4.sin_port))
asoc             1211 net/sctp/socket.c 		err = sctp_connect_add_peer(asoc, daddr, af->sockaddr_len);
asoc             1223 net/sctp/socket.c 		err = sctp_assoc_set_id(asoc, GFP_KERNEL);
asoc             1228 net/sctp/socket.c 	err = sctp_primitive_ASSOCIATE(sock_net(sk), asoc, NULL);
asoc             1233 net/sctp/socket.c 	inet_sk(sk)->inet_dport = htons(asoc->peer.port);
asoc             1238 net/sctp/socket.c 		*assoc_id = asoc->assoc_id;
asoc             1241 net/sctp/socket.c 	return sctp_wait_for_connect(asoc, &timeo);
asoc             1245 net/sctp/socket.c 		 __func__, asoc, kaddrs, err);
asoc             1246 net/sctp/socket.c 	sctp_association_free(asoc);
asoc             1489 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             1507 net/sctp/socket.c 		asoc = list_entry(pos, struct sctp_association, asocs);
asoc             1515 net/sctp/socket.c 			if (sctp_state(asoc, CLOSED)) {
asoc             1516 net/sctp/socket.c 				sctp_association_free(asoc);
asoc             1521 net/sctp/socket.c 		if (data_was_unread || !skb_queue_empty(&asoc->ulpq.lobby) ||
asoc             1522 net/sctp/socket.c 		    !skb_queue_empty(&asoc->ulpq.reasm) ||
asoc             1523 net/sctp/socket.c 		    !skb_queue_empty(&asoc->ulpq.reasm_uo) ||
asoc             1527 net/sctp/socket.c 			chunk = sctp_make_abort_user(asoc, NULL, 0);
asoc             1528 net/sctp/socket.c 			sctp_primitive_ABORT(net, asoc, chunk);
asoc             1530 net/sctp/socket.c 			sctp_primitive_SHUTDOWN(net, asoc, NULL);
asoc             1665 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             1698 net/sctp/socket.c 	asoc = (*tp)->asoc;
asoc             1727 net/sctp/socket.c 			daddr->v4.sin_port = htons(asoc->peer.port);
asoc             1738 net/sctp/socket.c 			daddr->v6.sin6_port = htons(asoc->peer.port);
asoc             1742 net/sctp/socket.c 		err = sctp_connect_add_peer(asoc, daddr, sizeof(*daddr));
asoc             1750 net/sctp/socket.c 	sctp_association_free(asoc);
asoc             1754 net/sctp/socket.c static int sctp_sendmsg_check_sflags(struct sctp_association *asoc,
asoc             1758 net/sctp/socket.c 	struct sock *sk = asoc->base.sk;
asoc             1761 net/sctp/socket.c 	if (sctp_state(asoc, CLOSED) && sctp_style(sk, TCP))
asoc             1765 net/sctp/socket.c 	    !sctp_state(asoc, ESTABLISHED))
asoc             1769 net/sctp/socket.c 		pr_debug("%s: shutting down association:%p\n", __func__, asoc);
asoc             1770 net/sctp/socket.c 		sctp_primitive_SHUTDOWN(net, asoc, NULL);
asoc             1778 net/sctp/socket.c 		chunk = sctp_make_abort_user(asoc, msg, msg_len);
asoc             1782 net/sctp/socket.c 		pr_debug("%s: aborting association:%p\n", __func__, asoc);
asoc             1783 net/sctp/socket.c 		sctp_primitive_ABORT(net, asoc, chunk);
asoc             1792 net/sctp/socket.c static int sctp_sendmsg_to_asoc(struct sctp_association *asoc,
asoc             1797 net/sctp/socket.c 	struct sock *sk = asoc->base.sk;
asoc             1806 net/sctp/socket.c 	if (sinfo->sinfo_stream >= asoc->stream.outcnt) {
asoc             1811 net/sctp/socket.c 	if (unlikely(!SCTP_SO(&asoc->stream, sinfo->sinfo_stream)->ext)) {
asoc             1812 net/sctp/socket.c 		err = sctp_stream_init_ext(&asoc->stream, sinfo->sinfo_stream);
asoc             1817 net/sctp/socket.c 	if (sp->disable_fragments && msg_len > asoc->frag_point) {
asoc             1822 net/sctp/socket.c 	if (asoc->pmtu_pending) {
asoc             1824 net/sctp/socket.c 			sctp_assoc_sync_pmtu(asoc);
asoc             1825 net/sctp/socket.c 		asoc->pmtu_pending = 0;
asoc             1828 net/sctp/socket.c 	if (sctp_wspace(asoc) < (int)msg_len)
asoc             1829 net/sctp/socket.c 		sctp_prsctp_prune(asoc, sinfo, msg_len - sctp_wspace(asoc));
asoc             1834 net/sctp/socket.c 	if (sctp_wspace(asoc) <= 0 || !sk_wmem_schedule(sk, msg_len)) {
asoc             1836 net/sctp/socket.c 		err = sctp_wait_for_sndbuf(asoc, &timeo, msg_len);
asoc             1841 net/sctp/socket.c 	if (sctp_state(asoc, CLOSED)) {
asoc             1842 net/sctp/socket.c 		err = sctp_primitive_ASSOCIATE(net, asoc, NULL);
asoc             1846 net/sctp/socket.c 		if (asoc->ep->intl_enable) {
asoc             1848 net/sctp/socket.c 			err = sctp_wait_for_connect(asoc, &timeo);
asoc             1860 net/sctp/socket.c 	datamsg = sctp_datamsg_from_user(asoc, sinfo, &msg->msg_iter);
asoc             1866 net/sctp/socket.c 	asoc->force_delay = !!(msg->msg_flags & MSG_MORE);
asoc             1874 net/sctp/socket.c 	err = sctp_primitive_SEND(net, asoc, datamsg);
asoc             1886 net/sctp/socket.c 		sctp_wait_for_connect(asoc, &timeo);
asoc             1918 net/sctp/socket.c static void sctp_sendmsg_update_sinfo(struct sctp_association *asoc,
asoc             1923 net/sctp/socket.c 		sinfo->sinfo_stream = asoc->default_stream;
asoc             1924 net/sctp/socket.c 		sinfo->sinfo_ppid = asoc->default_ppid;
asoc             1925 net/sctp/socket.c 		sinfo->sinfo_context = asoc->default_context;
asoc             1926 net/sctp/socket.c 		sinfo->sinfo_assoc_id = sctp_assoc2id(asoc);
asoc             1929 net/sctp/socket.c 			sinfo->sinfo_flags = asoc->default_flags;
asoc             1933 net/sctp/socket.c 		sinfo->sinfo_timetolive = asoc->default_timetolive;
asoc             1949 net/sctp/socket.c 	struct sctp_association *asoc, *tmp;
asoc             1975 net/sctp/socket.c 		list_for_each_entry_safe(asoc, tmp, &ep->asocs, asocs) {
asoc             1976 net/sctp/socket.c 			err = sctp_sendmsg_check_sflags(asoc, sflags, msg,
asoc             1983 net/sctp/socket.c 			sctp_sendmsg_update_sinfo(asoc, sinfo, &cmsgs);
asoc             1985 net/sctp/socket.c 			err = sctp_sendmsg_to_asoc(asoc, msg, msg_len,
asoc             1998 net/sctp/socket.c 		asoc = sctp_endpoint_lookup_assoc(ep, daddr, &transport);
asoc             1999 net/sctp/socket.c 		if (asoc) {
asoc             2000 net/sctp/socket.c 			err = sctp_sendmsg_check_sflags(asoc, sflags, msg,
asoc             2010 net/sctp/socket.c 			asoc = transport->asoc;
asoc             2017 net/sctp/socket.c 		asoc = sctp_id2assoc(sk, sinfo->sinfo_assoc_id);
asoc             2018 net/sctp/socket.c 		if (!asoc) {
asoc             2023 net/sctp/socket.c 		err = sctp_sendmsg_check_sflags(asoc, sflags, msg, msg_len);
asoc             2029 net/sctp/socket.c 	sctp_sendmsg_update_sinfo(asoc, sinfo, &cmsgs);
asoc             2032 net/sctp/socket.c 	err = sctp_sendmsg_to_asoc(asoc, msg, msg_len, transport, sinfo);
asoc             2034 net/sctp/socket.c 		sctp_association_free(asoc);
asoc             2173 net/sctp/socket.c 			sctp_assoc_rwnd_increase(event->asoc, copied);
asoc             2229 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             2242 net/sctp/socket.c 	list_for_each_entry(asoc, &sp->ep->asocs, asocs)
asoc             2243 net/sctp/socket.c 		asoc->subscribe = sctp_sk(sk)->subscribe;
asoc             2252 net/sctp/socket.c 		asoc = sctp_id2assoc(sk, 0);
asoc             2253 net/sctp/socket.c 		if (asoc && sctp_outq_is_empty(&asoc->outqueue)) {
asoc             2254 net/sctp/socket.c 			event = sctp_ulpevent_make_sender_dry_event(asoc,
asoc             2259 net/sctp/socket.c 			asoc->stream.si->enqueue_event(&asoc->ulpq, event);
asoc             2437 net/sctp/socket.c 				       struct sctp_association *asoc,
asoc             2446 net/sctp/socket.c 		struct net *net = sock_net(trans->asoc->base.sk);
asoc             2448 net/sctp/socket.c 		error = sctp_primitive_REQUESTHEARTBEAT(net, trans->asoc, trans);
asoc             2471 net/sctp/socket.c 			} else if (asoc) {
asoc             2472 net/sctp/socket.c 				asoc->hbinterval =
asoc             2484 net/sctp/socket.c 		} else if (asoc) {
asoc             2485 net/sctp/socket.c 			asoc->param_flags =
asoc             2486 net/sctp/socket.c 				(asoc->param_flags & ~SPP_HB) | hb_change;
asoc             2501 net/sctp/socket.c 			sctp_assoc_sync_pmtu(asoc);
asoc             2502 net/sctp/socket.c 		} else if (asoc) {
asoc             2503 net/sctp/socket.c 			sctp_assoc_set_pmtu(asoc, params->spp_pathmtu);
asoc             2517 net/sctp/socket.c 				sctp_assoc_sync_pmtu(asoc);
asoc             2519 net/sctp/socket.c 		} else if (asoc) {
asoc             2520 net/sctp/socket.c 			asoc->param_flags =
asoc             2521 net/sctp/socket.c 				(asoc->param_flags & ~SPP_PMTUD) | pmtud_change;
asoc             2536 net/sctp/socket.c 		} else if (asoc) {
asoc             2537 net/sctp/socket.c 			asoc->sackdelay =
asoc             2549 net/sctp/socket.c 		} else if (asoc) {
asoc             2550 net/sctp/socket.c 			asoc->param_flags =
asoc             2551 net/sctp/socket.c 				(asoc->param_flags & ~SPP_SACKDELAY) |
asoc             2566 net/sctp/socket.c 		} else if (asoc) {
asoc             2567 net/sctp/socket.c 			asoc->pathmaxrxt = params->spp_pathmaxrxt;
asoc             2580 net/sctp/socket.c 		} else if (asoc) {
asoc             2583 net/sctp/socket.c 			list_for_each_entry(t, &asoc->peer.transport_addr_list,
asoc             2591 net/sctp/socket.c 			asoc->flowlabel = params->spp_ipv6_flowlabel &
asoc             2593 net/sctp/socket.c 			asoc->flowlabel |= SCTP_FLOWLABEL_SET_MASK;
asoc             2605 net/sctp/socket.c 		} else if (asoc) {
asoc             2608 net/sctp/socket.c 			list_for_each_entry(t, &asoc->peer.transport_addr_list,
asoc             2614 net/sctp/socket.c 			asoc->dscp = params->spp_dscp & SCTP_DSCP_VAL_MASK;
asoc             2615 net/sctp/socket.c 			asoc->dscp |= SCTP_DSCP_SET_MASK;
asoc             2631 net/sctp/socket.c 	struct sctp_association *asoc = NULL;
asoc             2676 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.spp_assoc_id);
asoc             2677 net/sctp/socket.c 	if (!asoc && params.spp_assoc_id != SCTP_FUTURE_ASSOC &&
asoc             2684 net/sctp/socket.c 	if (params.spp_flags & SPP_HB_DEMAND && !trans && !asoc)
asoc             2688 net/sctp/socket.c 	error = sctp_apply_peer_addr_params(&params, trans, asoc, sp,
asoc             2698 net/sctp/socket.c 	if (!trans && asoc) {
asoc             2699 net/sctp/socket.c 		list_for_each_entry(trans, &asoc->peer.transport_addr_list,
asoc             2701 net/sctp/socket.c 			sctp_apply_peer_addr_params(&params, trans, asoc, sp,
asoc             2721 net/sctp/socket.c 					struct sctp_association *asoc)
asoc             2726 net/sctp/socket.c 		asoc->sackdelay = msecs_to_jiffies(params->sack_delay);
asoc             2727 net/sctp/socket.c 		asoc->param_flags =
asoc             2728 net/sctp/socket.c 			sctp_spp_sackdelay_enable(asoc->param_flags);
asoc             2731 net/sctp/socket.c 		asoc->param_flags =
asoc             2732 net/sctp/socket.c 			sctp_spp_sackdelay_disable(asoc->param_flags);
asoc             2734 net/sctp/socket.c 		asoc->sackfreq = params->sack_freq;
asoc             2735 net/sctp/socket.c 		asoc->param_flags =
asoc             2736 net/sctp/socket.c 			sctp_spp_sackdelay_enable(asoc->param_flags);
asoc             2739 net/sctp/socket.c 	list_for_each_entry(trans, &asoc->peer.transport_addr_list,
asoc             2797 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             2830 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.sack_assoc_id);
asoc             2831 net/sctp/socket.c 	if (!asoc && params.sack_assoc_id > SCTP_ALL_ASSOC &&
asoc             2835 net/sctp/socket.c 	if (asoc) {
asoc             2836 net/sctp/socket.c 		sctp_apply_asoc_delayed_ack(&params, asoc);
asoc             2863 net/sctp/socket.c 		list_for_each_entry(asoc, &sp->ep->asocs, asocs)
asoc             2864 net/sctp/socket.c 			sctp_apply_asoc_delayed_ack(&params, asoc);
asoc             2921 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             2933 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, info.sinfo_assoc_id);
asoc             2934 net/sctp/socket.c 	if (!asoc && info.sinfo_assoc_id > SCTP_ALL_ASSOC &&
asoc             2938 net/sctp/socket.c 	if (asoc) {
asoc             2939 net/sctp/socket.c 		asoc->default_stream = info.sinfo_stream;
asoc             2940 net/sctp/socket.c 		asoc->default_flags = info.sinfo_flags;
asoc             2941 net/sctp/socket.c 		asoc->default_ppid = info.sinfo_ppid;
asoc             2942 net/sctp/socket.c 		asoc->default_context = info.sinfo_context;
asoc             2943 net/sctp/socket.c 		asoc->default_timetolive = info.sinfo_timetolive;
asoc             2962 net/sctp/socket.c 		list_for_each_entry(asoc, &sp->ep->asocs, asocs) {
asoc             2963 net/sctp/socket.c 			asoc->default_stream = info.sinfo_stream;
asoc             2964 net/sctp/socket.c 			asoc->default_flags = info.sinfo_flags;
asoc             2965 net/sctp/socket.c 			asoc->default_ppid = info.sinfo_ppid;
asoc             2966 net/sctp/socket.c 			asoc->default_context = info.sinfo_context;
asoc             2967 net/sctp/socket.c 			asoc->default_timetolive = info.sinfo_timetolive;
asoc             2982 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             2994 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, info.snd_assoc_id);
asoc             2995 net/sctp/socket.c 	if (!asoc && info.snd_assoc_id > SCTP_ALL_ASSOC &&
asoc             2999 net/sctp/socket.c 	if (asoc) {
asoc             3000 net/sctp/socket.c 		asoc->default_stream = info.snd_sid;
asoc             3001 net/sctp/socket.c 		asoc->default_flags = info.snd_flags;
asoc             3002 net/sctp/socket.c 		asoc->default_ppid = info.snd_ppid;
asoc             3003 net/sctp/socket.c 		asoc->default_context = info.snd_context;
asoc             3021 net/sctp/socket.c 		list_for_each_entry(asoc, &sp->ep->asocs, asocs) {
asoc             3022 net/sctp/socket.c 			asoc->default_stream = info.snd_sid;
asoc             3023 net/sctp/socket.c 			asoc->default_flags = info.snd_flags;
asoc             3024 net/sctp/socket.c 			asoc->default_ppid = info.snd_ppid;
asoc             3025 net/sctp/socket.c 			asoc->default_context = info.snd_context;
asoc             3067 net/sctp/socket.c 	sctp_assoc_set_primary(trans->asoc, trans);
asoc             3109 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             3119 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, rtoinfo.srto_assoc_id);
asoc             3122 net/sctp/socket.c 	if (!asoc && rtoinfo.srto_assoc_id != SCTP_FUTURE_ASSOC &&
asoc             3130 net/sctp/socket.c 		rto_max = asoc ? msecs_to_jiffies(rto_max) : rto_max;
asoc             3132 net/sctp/socket.c 		rto_max = asoc ? asoc->rto_max : sp->rtoinfo.srto_max;
asoc             3135 net/sctp/socket.c 		rto_min = asoc ? msecs_to_jiffies(rto_min) : rto_min;
asoc             3137 net/sctp/socket.c 		rto_min = asoc ? asoc->rto_min : sp->rtoinfo.srto_min;
asoc             3142 net/sctp/socket.c 	if (asoc) {
asoc             3144 net/sctp/socket.c 			asoc->rto_initial =
asoc             3146 net/sctp/socket.c 		asoc->rto_max = rto_max;
asoc             3147 net/sctp/socket.c 		asoc->rto_min = rto_min;
asoc             3176 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             3183 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, assocparams.sasoc_assoc_id);
asoc             3185 net/sctp/socket.c 	if (!asoc && assocparams.sasoc_assoc_id != SCTP_FUTURE_ASSOC &&
asoc             3190 net/sctp/socket.c 	if (asoc) {
asoc             3196 net/sctp/socket.c 			list_for_each_entry(peer_addr, &asoc->peer.transport_addr_list,
asoc             3211 net/sctp/socket.c 			asoc->max_retrans = assocparams.sasoc_asocmaxrxt;
asoc             3215 net/sctp/socket.c 			asoc->cookie_life = ms_to_ktime(assocparams.sasoc_cookie_life);
asoc             3288 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             3308 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             3309 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             3315 net/sctp/socket.c 		__u16 datasize = asoc ? sctp_datachk_len(&asoc->stream) :
asoc             3325 net/sctp/socket.c 	if (asoc) {
asoc             3326 net/sctp/socket.c 		asoc->user_frag = val;
asoc             3327 net/sctp/socket.c 		sctp_assoc_update_frag_point(asoc);
asoc             3348 net/sctp/socket.c 	struct sctp_association	*asoc = NULL;
asoc             3365 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, prim.sspp_assoc_id);
asoc             3366 net/sctp/socket.c 	if (!asoc)
asoc             3369 net/sctp/socket.c 	if (!asoc->peer.asconf_capable)
asoc             3372 net/sctp/socket.c 	if (asoc->peer.addip_disabled_mask & SCTP_PARAM_SET_PRIMARY)
asoc             3375 net/sctp/socket.c 	if (!sctp_state(asoc, ESTABLISHED))
asoc             3385 net/sctp/socket.c 	if (!sctp_assoc_lookup_laddr(asoc, (union sctp_addr *)&prim.sspp_addr))
asoc             3396 net/sctp/socket.c 	chunk = sctp_make_asconf_set_prim(asoc,
asoc             3401 net/sctp/socket.c 	err = sctp_send_asconf(asoc, chunk);
asoc             3442 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             3449 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             3450 net/sctp/socket.c 	if (!asoc && params.assoc_id > SCTP_ALL_ASSOC &&
asoc             3454 net/sctp/socket.c 	if (asoc) {
asoc             3455 net/sctp/socket.c 		asoc->default_rcv_context = params.assoc_value;
asoc             3469 net/sctp/socket.c 		list_for_each_entry(asoc, &sp->ep->asocs, asocs)
asoc             3470 net/sctp/socket.c 			asoc->default_rcv_context = params.assoc_value;
asoc             3574 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             3591 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             3592 net/sctp/socket.c 	if (!asoc && params.assoc_id > SCTP_ALL_ASSOC &&
asoc             3596 net/sctp/socket.c 	if (asoc) {
asoc             3597 net/sctp/socket.c 		asoc->max_burst = params.assoc_value;
asoc             3611 net/sctp/socket.c 		list_for_each_entry(asoc, &sp->ep->asocs, asocs)
asoc             3612 net/sctp/socket.c 			asoc->max_burst = params.assoc_value;
asoc             3703 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             3720 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, authkey->sca_assoc_id);
asoc             3721 net/sctp/socket.c 	if (!asoc && authkey->sca_assoc_id > SCTP_ALL_ASSOC &&
asoc             3725 net/sctp/socket.c 	if (asoc) {
asoc             3726 net/sctp/socket.c 		ret = sctp_auth_set_key(ep, asoc, authkey);
asoc             3735 net/sctp/socket.c 		ret = sctp_auth_set_key(ep, asoc, authkey);
asoc             3744 net/sctp/socket.c 		list_for_each_entry(asoc, &ep->asocs, asocs) {
asoc             3745 net/sctp/socket.c 			int res = sctp_auth_set_key(ep, asoc, authkey);
asoc             3768 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             3777 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, val.scact_assoc_id);
asoc             3778 net/sctp/socket.c 	if (!asoc && val.scact_assoc_id > SCTP_ALL_ASSOC &&
asoc             3782 net/sctp/socket.c 	if (asoc)
asoc             3783 net/sctp/socket.c 		return sctp_auth_set_active_key(ep, asoc, val.scact_keynumber);
asoc             3790 net/sctp/socket.c 		ret = sctp_auth_set_active_key(ep, asoc, val.scact_keynumber);
asoc             3797 net/sctp/socket.c 		list_for_each_entry(asoc, &ep->asocs, asocs) {
asoc             3798 net/sctp/socket.c 			int res = sctp_auth_set_active_key(ep, asoc,
asoc             3819 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             3828 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, val.scact_assoc_id);
asoc             3829 net/sctp/socket.c 	if (!asoc && val.scact_assoc_id > SCTP_ALL_ASSOC &&
asoc             3833 net/sctp/socket.c 	if (asoc)
asoc             3834 net/sctp/socket.c 		return sctp_auth_del_key_id(ep, asoc, val.scact_keynumber);
asoc             3841 net/sctp/socket.c 		ret = sctp_auth_del_key_id(ep, asoc, val.scact_keynumber);
asoc             3848 net/sctp/socket.c 		list_for_each_entry(asoc, &ep->asocs, asocs) {
asoc             3849 net/sctp/socket.c 			int res = sctp_auth_del_key_id(ep, asoc,
asoc             3869 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             3878 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, val.scact_assoc_id);
asoc             3879 net/sctp/socket.c 	if (!asoc && val.scact_assoc_id > SCTP_ALL_ASSOC &&
asoc             3883 net/sctp/socket.c 	if (asoc)
asoc             3884 net/sctp/socket.c 		return sctp_auth_deact_key_id(ep, asoc, val.scact_keynumber);
asoc             3891 net/sctp/socket.c 		ret = sctp_auth_deact_key_id(ep, asoc, val.scact_keynumber);
asoc             3898 net/sctp/socket.c 		list_for_each_entry(asoc, &ep->asocs, asocs) {
asoc             3899 net/sctp/socket.c 			int res = sctp_auth_deact_key_id(ep, asoc,
asoc             3965 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             3986 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, val.spt_assoc_id);
asoc             3987 net/sctp/socket.c 	if (!asoc && val.spt_assoc_id != SCTP_FUTURE_ASSOC &&
asoc             3991 net/sctp/socket.c 	if (asoc) {
asoc             3992 net/sctp/socket.c 		list_for_each_entry(trans, &asoc->peer.transport_addr_list,
asoc             4000 net/sctp/socket.c 			asoc->pathmaxrxt = val.spt_pathmaxrxt;
asoc             4001 net/sctp/socket.c 		asoc->pf_retrans = val.spt_pathpfthld;
asoc             4050 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             4058 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             4059 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             4074 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             4091 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, info.pr_assoc_id);
asoc             4092 net/sctp/socket.c 	if (!asoc && info.pr_assoc_id > SCTP_ALL_ASSOC &&
asoc             4098 net/sctp/socket.c 	if (asoc) {
asoc             4099 net/sctp/socket.c 		SCTP_PR_SET_POLICY(asoc->default_flags, info.pr_policy);
asoc             4100 net/sctp/socket.c 		asoc->default_timetolive = info.pr_value;
asoc             4115 net/sctp/socket.c 		list_for_each_entry(asoc, &sp->ep->asocs, asocs) {
asoc             4116 net/sctp/socket.c 			SCTP_PR_SET_POLICY(asoc->default_flags, info.pr_policy);
asoc             4117 net/sctp/socket.c 			asoc->default_timetolive = info.pr_value;
asoc             4130 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             4141 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             4142 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             4160 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             4174 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             4175 net/sctp/socket.c 	if (!asoc && params.assoc_id > SCTP_ALL_ASSOC &&
asoc             4181 net/sctp/socket.c 	if (asoc) {
asoc             4182 net/sctp/socket.c 		asoc->strreset_enable = params.assoc_value;
asoc             4195 net/sctp/socket.c 		list_for_each_entry(asoc, &ep->asocs, asocs)
asoc             4196 net/sctp/socket.c 			asoc->strreset_enable = params.assoc_value;
asoc             4207 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             4224 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params->srs_assoc_id);
asoc             4225 net/sctp/socket.c 	if (!asoc)
asoc             4228 net/sctp/socket.c 	retval = sctp_send_reset_streams(asoc, params);
asoc             4239 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             4251 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, associd);
asoc             4252 net/sctp/socket.c 	if (!asoc)
asoc             4255 net/sctp/socket.c 	retval = sctp_send_reset_assoc(asoc);
asoc             4265 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             4277 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.sas_assoc_id);
asoc             4278 net/sctp/socket.c 	if (!asoc)
asoc             4281 net/sctp/socket.c 	retval = sctp_send_add_streams(asoc, &params);
asoc             4292 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             4306 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             4307 net/sctp/socket.c 	if (!asoc && params.assoc_id > SCTP_ALL_ASSOC &&
asoc             4311 net/sctp/socket.c 	if (asoc)
asoc             4312 net/sctp/socket.c 		return sctp_sched_set_sched(asoc, params.assoc_value);
asoc             4323 net/sctp/socket.c 		list_for_each_entry(asoc, &sp->ep->asocs, asocs) {
asoc             4324 net/sctp/socket.c 			int ret = sctp_sched_set_sched(asoc,
asoc             4340 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             4352 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             4353 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_CURRENT_ASSOC &&
asoc             4357 net/sctp/socket.c 	if (asoc) {
asoc             4358 net/sctp/socket.c 		retval = sctp_sched_set_value(asoc, params.stream_id,
asoc             4365 net/sctp/socket.c 	list_for_each_entry(asoc, &sctp_sk(sk)->ep->asocs, asocs) {
asoc             4366 net/sctp/socket.c 		int ret = sctp_sched_set_value(asoc, params.stream_id,
asoc             4382 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             4394 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             4395 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             4435 net/sctp/socket.c 					struct sctp_association *asoc)
asoc             4439 net/sctp/socket.c 	sctp_ulpevent_type_set(&asoc->subscribe, param->se_type, param->se_on);
asoc             4442 net/sctp/socket.c 		if (sctp_outq_is_empty(&asoc->outqueue)) {
asoc             4443 net/sctp/socket.c 			event = sctp_ulpevent_make_sender_dry_event(asoc,
asoc             4448 net/sctp/socket.c 			asoc->stream.si->enqueue_event(&asoc->ulpq, event);
asoc             4459 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             4474 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, param.se_assoc_id);
asoc             4475 net/sctp/socket.c 	if (!asoc && param.se_assoc_id > SCTP_ALL_ASSOC &&
asoc             4479 net/sctp/socket.c 	if (asoc)
asoc             4480 net/sctp/socket.c 		return sctp_assoc_ulpevent_type_set(&param, asoc);
asoc             4492 net/sctp/socket.c 		list_for_each_entry(asoc, &sp->ep->asocs, asocs) {
asoc             4493 net/sctp/socket.c 			int ret = sctp_assoc_ulpevent_type_set(&param, asoc);
asoc             4508 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             4520 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             4521 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             4544 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             4556 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             4557 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             4584 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             4595 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             4596 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             4892 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             4920 net/sctp/socket.c 	asoc = list_entry(ep->asocs.next, struct sctp_association, asocs);
asoc             4922 net/sctp/socket.c 	newsk = sp->pf->create_accept_sk(sk, asoc, kern);
asoc             4931 net/sctp/socket.c 	error = sctp_sock_migrate(sk, newsk, asoc, SCTP_SOCKET_TCP);
asoc             5201 net/sctp/socket.c 		struct sctp_association *asoc;
asoc             5204 net/sctp/socket.c 		asoc = list_entry(ep->asocs.next,
asoc             5206 net/sctp/socket.c 		sctp_primitive_SHUTDOWN(net, asoc, NULL);
asoc             5210 net/sctp/socket.c int sctp_get_sctp_info(struct sock *sk, struct sctp_association *asoc,
asoc             5218 net/sctp/socket.c 	if (!asoc) {
asoc             5233 net/sctp/socket.c 	info->sctpi_tag = asoc->c.my_vtag;
asoc             5234 net/sctp/socket.c 	info->sctpi_state = asoc->state;
asoc             5235 net/sctp/socket.c 	info->sctpi_rwnd = asoc->a_rwnd;
asoc             5236 net/sctp/socket.c 	info->sctpi_unackdata = asoc->unack_data;
asoc             5237 net/sctp/socket.c 	info->sctpi_penddata = sctp_tsnmap_pending(&asoc->peer.tsn_map);
asoc             5238 net/sctp/socket.c 	info->sctpi_instrms = asoc->stream.incnt;
asoc             5239 net/sctp/socket.c 	info->sctpi_outstrms = asoc->stream.outcnt;
asoc             5240 net/sctp/socket.c 	list_for_each(pos, &asoc->base.inqueue.in_chunk_list)
asoc             5242 net/sctp/socket.c 	list_for_each(pos, &asoc->outqueue.out_chunk_list)
asoc             5244 net/sctp/socket.c 	info->sctpi_overall_error = asoc->overall_error_count;
asoc             5245 net/sctp/socket.c 	info->sctpi_max_burst = asoc->max_burst;
asoc             5246 net/sctp/socket.c 	info->sctpi_maxseg = asoc->frag_point;
asoc             5247 net/sctp/socket.c 	info->sctpi_peer_rwnd = asoc->peer.rwnd;
asoc             5248 net/sctp/socket.c 	info->sctpi_peer_tag = asoc->c.peer_vtag;
asoc             5250 net/sctp/socket.c 	mask = asoc->peer.ecn_capable << 1;
asoc             5251 net/sctp/socket.c 	mask = (mask | asoc->peer.ipv4_address) << 1;
asoc             5252 net/sctp/socket.c 	mask = (mask | asoc->peer.ipv6_address) << 1;
asoc             5253 net/sctp/socket.c 	mask = (mask | asoc->peer.hostname_address) << 1;
asoc             5254 net/sctp/socket.c 	mask = (mask | asoc->peer.asconf_capable) << 1;
asoc             5255 net/sctp/socket.c 	mask = (mask | asoc->peer.prsctp_capable) << 1;
asoc             5256 net/sctp/socket.c 	mask = (mask | asoc->peer.auth_capable);
asoc             5258 net/sctp/socket.c 	mask = asoc->peer.sack_needed << 1;
asoc             5259 net/sctp/socket.c 	mask = (mask | asoc->peer.sack_generation) << 1;
asoc             5260 net/sctp/socket.c 	mask = (mask | asoc->peer.zero_window_announced);
asoc             5263 net/sctp/socket.c 	info->sctpi_isacks = asoc->stats.isacks;
asoc             5264 net/sctp/socket.c 	info->sctpi_osacks = asoc->stats.osacks;
asoc             5265 net/sctp/socket.c 	info->sctpi_opackets = asoc->stats.opackets;
asoc             5266 net/sctp/socket.c 	info->sctpi_ipackets = asoc->stats.ipackets;
asoc             5267 net/sctp/socket.c 	info->sctpi_rtxchunks = asoc->stats.rtxchunks;
asoc             5268 net/sctp/socket.c 	info->sctpi_outofseqtsns = asoc->stats.outofseqtsns;
asoc             5269 net/sctp/socket.c 	info->sctpi_idupchunks = asoc->stats.idupchunks;
asoc             5270 net/sctp/socket.c 	info->sctpi_gapcnt = asoc->stats.gapcnt;
asoc             5271 net/sctp/socket.c 	info->sctpi_ouodchunks = asoc->stats.ouodchunks;
asoc             5272 net/sctp/socket.c 	info->sctpi_iuodchunks = asoc->stats.iuodchunks;
asoc             5273 net/sctp/socket.c 	info->sctpi_oodchunks = asoc->stats.oodchunks;
asoc             5274 net/sctp/socket.c 	info->sctpi_iodchunks = asoc->stats.iodchunks;
asoc             5275 net/sctp/socket.c 	info->sctpi_octrlchunks = asoc->stats.octrlchunks;
asoc             5276 net/sctp/socket.c 	info->sctpi_ictrlchunks = asoc->stats.ictrlchunks;
asoc             5278 net/sctp/socket.c 	prim = asoc->peer.primary_path;
asoc             5326 net/sctp/socket.c 		if (net_eq(sock_net(t->asoc->base.sk), net) &&
asoc             5327 net/sctp/socket.c 		    t->asoc->peer.primary_path == t)
asoc             5443 net/sctp/socket.c 	struct sctp_association *asoc = NULL;
asoc             5460 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, associd);
asoc             5461 net/sctp/socket.c 	if (!asoc) {
asoc             5466 net/sctp/socket.c 	transport = asoc->peer.primary_path;
asoc             5468 net/sctp/socket.c 	status.sstat_assoc_id = sctp_assoc2id(asoc);
asoc             5469 net/sctp/socket.c 	status.sstat_state = sctp_assoc_to_state(asoc);
asoc             5470 net/sctp/socket.c 	status.sstat_rwnd =  asoc->peer.rwnd;
asoc             5471 net/sctp/socket.c 	status.sstat_unackdata = asoc->unack_data;
asoc             5473 net/sctp/socket.c 	status.sstat_penddata = sctp_tsnmap_pending(&asoc->peer.tsn_map);
asoc             5474 net/sctp/socket.c 	status.sstat_instrms = asoc->stream.incnt;
asoc             5475 net/sctp/socket.c 	status.sstat_outstrms = asoc->stream.outcnt;
asoc             5476 net/sctp/socket.c 	status.sstat_fragmentation_point = asoc->frag_point;
asoc             5477 net/sctp/socket.c 	status.sstat_primary.spinfo_assoc_id = sctp_assoc2id(transport->asoc);
asoc             5542 net/sctp/socket.c 	pinfo.spinfo_assoc_id = sctp_assoc2id(transport->asoc);
asoc             5648 net/sctp/socket.c 	struct sctp_association *asoc = sctp_id2assoc(sk, id);
asoc             5657 net/sctp/socket.c 	if (!asoc)
asoc             5671 net/sctp/socket.c 	sctp_copy_sock(sock->sk, sk, asoc);
asoc             5677 net/sctp/socket.c 	sp->pf->to_sk_daddr(&asoc->peer.primary_addr, sk);
asoc             5683 net/sctp/socket.c 	err = sctp_sock_migrate(sk, sock->sk, asoc,
asoc             5937 net/sctp/socket.c 	struct sctp_association *asoc = NULL;
asoc             5968 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.spp_assoc_id);
asoc             5969 net/sctp/socket.c 	if (!asoc && params.spp_assoc_id != SCTP_FUTURE_ASSOC &&
asoc             5993 net/sctp/socket.c 	} else if (asoc) {
asoc             5995 net/sctp/socket.c 		params.spp_hbinterval = jiffies_to_msecs(asoc->hbinterval);
asoc             5996 net/sctp/socket.c 		params.spp_pathmtu    = asoc->pathmtu;
asoc             5997 net/sctp/socket.c 		params.spp_pathmaxrxt = asoc->pathmaxrxt;
asoc             5998 net/sctp/socket.c 		params.spp_sackdelay  = jiffies_to_msecs(asoc->sackdelay);
asoc             6001 net/sctp/socket.c 		params.spp_flags      = asoc->param_flags;
asoc             6002 net/sctp/socket.c 		if (asoc->flowlabel & SCTP_FLOWLABEL_SET_MASK) {
asoc             6003 net/sctp/socket.c 			params.spp_ipv6_flowlabel = asoc->flowlabel &
asoc             6007 net/sctp/socket.c 		if (asoc->dscp & SCTP_DSCP_SET_MASK) {
asoc             6008 net/sctp/socket.c 			params.spp_dscp	= asoc->dscp & SCTP_DSCP_VAL_MASK;
asoc             6080 net/sctp/socket.c 	struct sctp_association *asoc = NULL;
asoc             6103 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.sack_assoc_id);
asoc             6104 net/sctp/socket.c 	if (!asoc && params.sack_assoc_id != SCTP_FUTURE_ASSOC &&
asoc             6108 net/sctp/socket.c 	if (asoc) {
asoc             6110 net/sctp/socket.c 		if (asoc->param_flags & SPP_SACKDELAY_ENABLE) {
asoc             6111 net/sctp/socket.c 			params.sack_delay = jiffies_to_msecs(asoc->sackdelay);
asoc             6112 net/sctp/socket.c 			params.sack_freq = asoc->sackfreq;
asoc             6165 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             6183 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, getaddrs.assoc_id);
asoc             6184 net/sctp/socket.c 	if (!asoc)
asoc             6190 net/sctp/socket.c 	list_for_each_entry(from, &asoc->peer.transport_addr_list,
asoc             6262 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             6291 net/sctp/socket.c 		asoc = sctp_id2assoc(sk, getaddrs.assoc_id);
asoc             6292 net/sctp/socket.c 		if (!asoc)
asoc             6294 net/sctp/socket.c 		bp = &asoc->base.bind_addr;
asoc             6370 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             6381 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, prim.ssp_assoc_id);
asoc             6382 net/sctp/socket.c 	if (!asoc)
asoc             6385 net/sctp/socket.c 	if (!asoc->peer.primary_path)
asoc             6388 net/sctp/socket.c 	memcpy(&prim.ssp_addr, &asoc->peer.primary_path->ipaddr,
asoc             6389 net/sctp/socket.c 		asoc->peer.primary_path->af_specific->sockaddr_len);
asoc             6452 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             6463 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, info.sinfo_assoc_id);
asoc             6464 net/sctp/socket.c 	if (!asoc && info.sinfo_assoc_id != SCTP_FUTURE_ASSOC &&
asoc             6468 net/sctp/socket.c 	if (asoc) {
asoc             6469 net/sctp/socket.c 		info.sinfo_stream = asoc->default_stream;
asoc             6470 net/sctp/socket.c 		info.sinfo_flags = asoc->default_flags;
asoc             6471 net/sctp/socket.c 		info.sinfo_ppid = asoc->default_ppid;
asoc             6472 net/sctp/socket.c 		info.sinfo_context = asoc->default_context;
asoc             6473 net/sctp/socket.c 		info.sinfo_timetolive = asoc->default_timetolive;
asoc             6498 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             6509 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, info.snd_assoc_id);
asoc             6510 net/sctp/socket.c 	if (!asoc && info.snd_assoc_id != SCTP_FUTURE_ASSOC &&
asoc             6514 net/sctp/socket.c 	if (asoc) {
asoc             6515 net/sctp/socket.c 		info.snd_sid = asoc->default_stream;
asoc             6516 net/sctp/socket.c 		info.snd_flags = asoc->default_flags;
asoc             6517 net/sctp/socket.c 		info.snd_ppid = asoc->default_ppid;
asoc             6518 net/sctp/socket.c 		info.snd_context = asoc->default_context;
asoc             6577 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             6587 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, rtoinfo.srto_assoc_id);
asoc             6589 net/sctp/socket.c 	if (!asoc && rtoinfo.srto_assoc_id != SCTP_FUTURE_ASSOC &&
asoc             6594 net/sctp/socket.c 	if (asoc) {
asoc             6595 net/sctp/socket.c 		rtoinfo.srto_initial = jiffies_to_msecs(asoc->rto_initial);
asoc             6596 net/sctp/socket.c 		rtoinfo.srto_max = jiffies_to_msecs(asoc->rto_max);
asoc             6597 net/sctp/socket.c 		rtoinfo.srto_min = jiffies_to_msecs(asoc->rto_min);
asoc             6633 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             6645 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, assocparams.sasoc_assoc_id);
asoc             6647 net/sctp/socket.c 	if (!asoc && assocparams.sasoc_assoc_id != SCTP_FUTURE_ASSOC &&
asoc             6652 net/sctp/socket.c 	if (asoc) {
asoc             6653 net/sctp/socket.c 		assocparams.sasoc_asocmaxrxt = asoc->max_retrans;
asoc             6654 net/sctp/socket.c 		assocparams.sasoc_peer_rwnd = asoc->peer.rwnd;
asoc             6655 net/sctp/socket.c 		assocparams.sasoc_local_rwnd = asoc->a_rwnd;
asoc             6656 net/sctp/socket.c 		assocparams.sasoc_cookie_life = ktime_to_ms(asoc->cookie_life);
asoc             6658 net/sctp/socket.c 		list_for_each(pos, &asoc->peer.transport_addr_list) {
asoc             6723 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             6733 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             6734 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             6738 net/sctp/socket.c 	params.assoc_value = asoc ? asoc->default_rcv_context
asoc             6780 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             6796 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             6797 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             6801 net/sctp/socket.c 	if (asoc)
asoc             6802 net/sctp/socket.c 		params.assoc_value = asoc->frag_point;
asoc             6875 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             6891 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             6892 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             6896 net/sctp/socket.c 	params.assoc_value = asoc ? asoc->max_burst : sctp_sk(sk)->max_burst;
asoc             6951 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             6960 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, val.scact_assoc_id);
asoc             6961 net/sctp/socket.c 	if (!asoc && val.scact_assoc_id && sctp_style(sk, UDP))
asoc             6964 net/sctp/socket.c 	if (asoc) {
asoc             6965 net/sctp/socket.c 		if (!asoc->peer.auth_capable)
asoc             6967 net/sctp/socket.c 		val.scact_keynumber = asoc->active_key_id;
asoc             6987 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             6999 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, val.gauth_assoc_id);
asoc             7000 net/sctp/socket.c 	if (!asoc)
asoc             7003 net/sctp/socket.c 	if (!asoc->peer.auth_capable)
asoc             7006 net/sctp/socket.c 	ch = asoc->peer.peer_chunks;
asoc             7032 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7044 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, val.gauth_assoc_id);
asoc             7045 net/sctp/socket.c 	if (!asoc && val.gauth_assoc_id != SCTP_FUTURE_ASSOC &&
asoc             7049 net/sctp/socket.c 	if (asoc) {
asoc             7050 net/sctp/socket.c 		if (!asoc->peer.auth_capable)
asoc             7052 net/sctp/socket.c 		ch = (struct sctp_chunks_param *)asoc->c.auth_chunks;
asoc             7086 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7097 net/sctp/socket.c 	list_for_each_entry(asoc, &(sp->ep->asocs), asocs) {
asoc             7142 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7152 net/sctp/socket.c 	list_for_each_entry(asoc, &(sp->ep->asocs), asocs) {
asoc             7167 net/sctp/socket.c 	list_for_each_entry(asoc, &(sp->ep->asocs), asocs) {
asoc             7168 net/sctp/socket.c 		ids->gaids_assoc_id[num++] = asoc->assoc_id;
asoc             7194 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7214 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, val.spt_assoc_id);
asoc             7215 net/sctp/socket.c 	if (!asoc && val.spt_assoc_id != SCTP_FUTURE_ASSOC &&
asoc             7219 net/sctp/socket.c 	if (asoc) {
asoc             7220 net/sctp/socket.c 		val.spt_pathpfthld = asoc->pf_retrans;
asoc             7221 net/sctp/socket.c 		val.spt_pathmaxrxt = asoc->pathmaxrxt;
asoc             7247 net/sctp/socket.c 	struct sctp_association *asoc = NULL;
asoc             7259 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, sas.sas_assoc_id);
asoc             7260 net/sctp/socket.c 	if (!asoc)
asoc             7263 net/sctp/socket.c 	sas.sas_rtxchunks = asoc->stats.rtxchunks;
asoc             7264 net/sctp/socket.c 	sas.sas_gapcnt = asoc->stats.gapcnt;
asoc             7265 net/sctp/socket.c 	sas.sas_outofseqtsns = asoc->stats.outofseqtsns;
asoc             7266 net/sctp/socket.c 	sas.sas_osacks = asoc->stats.osacks;
asoc             7267 net/sctp/socket.c 	sas.sas_isacks = asoc->stats.isacks;
asoc             7268 net/sctp/socket.c 	sas.sas_octrlchunks = asoc->stats.octrlchunks;
asoc             7269 net/sctp/socket.c 	sas.sas_ictrlchunks = asoc->stats.ictrlchunks;
asoc             7270 net/sctp/socket.c 	sas.sas_oodchunks = asoc->stats.oodchunks;
asoc             7271 net/sctp/socket.c 	sas.sas_iodchunks = asoc->stats.iodchunks;
asoc             7272 net/sctp/socket.c 	sas.sas_ouodchunks = asoc->stats.ouodchunks;
asoc             7273 net/sctp/socket.c 	sas.sas_iuodchunks = asoc->stats.iuodchunks;
asoc             7274 net/sctp/socket.c 	sas.sas_idupchunks = asoc->stats.idupchunks;
asoc             7275 net/sctp/socket.c 	sas.sas_opackets = asoc->stats.opackets;
asoc             7276 net/sctp/socket.c 	sas.sas_ipackets = asoc->stats.ipackets;
asoc             7282 net/sctp/socket.c 	sas.sas_maxrto = asoc->stats.max_obs_rto;
asoc             7283 net/sctp/socket.c 	memcpy(&sas.sas_obs_rto_ipaddr, &asoc->stats.obs_rto_ipaddr,
asoc             7287 net/sctp/socket.c 	asoc->stats.max_obs_rto = asoc->rto_min;
asoc             7345 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7357 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             7358 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             7364 net/sctp/socket.c 	params.assoc_value = asoc ? asoc->peer.prsctp_capable
asoc             7384 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7396 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, info.pr_assoc_id);
asoc             7397 net/sctp/socket.c 	if (!asoc && info.pr_assoc_id != SCTP_FUTURE_ASSOC &&
asoc             7403 net/sctp/socket.c 	if (asoc) {
asoc             7404 net/sctp/socket.c 		info.pr_policy = SCTP_PR_POLICY(asoc->default_flags);
asoc             7405 net/sctp/socket.c 		info.pr_value = asoc->default_timetolive;
asoc             7430 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7448 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.sprstat_assoc_id);
asoc             7449 net/sctp/socket.c 	if (!asoc)
asoc             7457 net/sctp/socket.c 				asoc->abandoned_unsent[policy];
asoc             7459 net/sctp/socket.c 				asoc->abandoned_sent[policy];
asoc             7463 net/sctp/socket.c 			asoc->abandoned_unsent[__SCTP_PR_INDEX(policy)];
asoc             7465 net/sctp/socket.c 			asoc->abandoned_sent[__SCTP_PR_INDEX(policy)];
asoc             7489 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7508 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.sprstat_assoc_id);
asoc             7509 net/sctp/socket.c 	if (!asoc || params.sprstat_sid >= asoc->stream.outcnt)
asoc             7512 net/sctp/socket.c 	streamoute = SCTP_SO(&asoc->stream, params.sprstat_sid)->ext;
asoc             7553 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7565 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             7566 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             7572 net/sctp/socket.c 	params.assoc_value = asoc ? asoc->peer.reconf_capable
asoc             7592 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7604 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             7605 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             7611 net/sctp/socket.c 	params.assoc_value = asoc ? asoc->strreset_enable
asoc             7631 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7643 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             7644 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             7650 net/sctp/socket.c 	params.assoc_value = asoc ? sctp_sched_get_sched(asoc)
asoc             7670 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7682 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             7683 net/sctp/socket.c 	if (!asoc) {
asoc             7688 net/sctp/socket.c 	retval = sctp_sched_get_value(asoc, params.stream_id,
asoc             7712 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7724 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             7725 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             7731 net/sctp/socket.c 	params.assoc_value = asoc ? asoc->peer.intl_capable
asoc             7769 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7784 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, param.se_assoc_id);
asoc             7785 net/sctp/socket.c 	if (!asoc && param.se_assoc_id != SCTP_FUTURE_ASSOC &&
asoc             7789 net/sctp/socket.c 	subscribe = asoc ? asoc->subscribe : sctp_sk(sk)->subscribe;
asoc             7806 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7818 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             7819 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             7825 net/sctp/socket.c 	params.assoc_value = asoc ? asoc->peer.asconf_capable
asoc             7845 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7857 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             7858 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             7864 net/sctp/socket.c 	params.assoc_value = asoc ? asoc->peer.auth_capable
asoc             7884 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             7896 net/sctp/socket.c 	asoc = sctp_id2assoc(sk, params.assoc_id);
asoc             7897 net/sctp/socket.c 	if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
asoc             7903 net/sctp/socket.c 	params.assoc_value = asoc ? asoc->peer.ecn_capable
asoc             8907 net/sctp/socket.c static void __sctp_write_space(struct sctp_association *asoc)
asoc             8909 net/sctp/socket.c 	struct sock *sk = asoc->base.sk;
asoc             8911 net/sctp/socket.c 	if (sctp_wspace(asoc) <= 0)
asoc             8914 net/sctp/socket.c 	if (waitqueue_active(&asoc->wait))
asoc             8915 net/sctp/socket.c 		wake_up_interruptible(&asoc->wait);
asoc             8938 net/sctp/socket.c 				 struct sctp_association *asoc)
asoc             8940 net/sctp/socket.c 	struct sctp_association *tmp = asoc;
asoc             8945 net/sctp/socket.c 	if (asoc->ep->sndbuf_policy)
asoc             8946 net/sctp/socket.c 		return __sctp_write_space(asoc);
asoc             8951 net/sctp/socket.c 	if (asoc->base.dead)
asoc             8972 net/sctp/socket.c 		if (tmp == asoc)
asoc             8984 net/sctp/socket.c 	struct sctp_association *asoc = chunk->asoc;
asoc             8985 net/sctp/socket.c 	struct sock *sk = asoc->base.sk;
asoc             8989 net/sctp/socket.c 	asoc->sndbuf_used -= skb->truesize + sizeof(struct sctp_chunk);
asoc             9004 net/sctp/socket.c 			ev = sctp_ulpevent_make_authkey(asoc, shkey->key_id,
asoc             9008 net/sctp/socket.c 				asoc->stream.si->enqueue_event(&asoc->ulpq, ev);
asoc             9014 net/sctp/socket.c 	sctp_wake_up_waiters(sk, asoc);
asoc             9016 net/sctp/socket.c 	sctp_association_put(asoc);
asoc             9039 net/sctp/socket.c static int sctp_wait_for_sndbuf(struct sctp_association *asoc, long *timeo_p,
asoc             9042 net/sctp/socket.c 	struct sock *sk = asoc->base.sk;
asoc             9047 net/sctp/socket.c 	pr_debug("%s: asoc:%p, timeo:%ld, msg_len:%zu\n", __func__, asoc,
asoc             9051 net/sctp/socket.c 	sctp_association_hold(asoc);
asoc             9055 net/sctp/socket.c 		prepare_to_wait_exclusive(&asoc->wait, &wait,
asoc             9057 net/sctp/socket.c 		if (asoc->base.dead)
asoc             9061 net/sctp/socket.c 		if (sk->sk_err || asoc->state >= SCTP_STATE_SHUTDOWN_PENDING)
asoc             9067 net/sctp/socket.c 		if ((int)msg_len <= sctp_wspace(asoc) &&
asoc             9077 net/sctp/socket.c 		if (sk != asoc->base.sk)
asoc             9084 net/sctp/socket.c 	finish_wait(&asoc->wait, &wait);
asoc             9087 net/sctp/socket.c 	sctp_association_put(asoc);
asoc             9124 net/sctp/socket.c 	struct sctp_association *asoc;
asoc             9127 net/sctp/socket.c 	list_for_each_entry(asoc, &((sctp_sk(sk))->ep->asocs), asocs) {
asoc             9128 net/sctp/socket.c 		__sctp_write_space(asoc);
asoc             9151 net/sctp/socket.c static int sctp_wait_for_connect(struct sctp_association *asoc, long *timeo_p)
asoc             9153 net/sctp/socket.c 	struct sock *sk = asoc->base.sk;
asoc             9158 net/sctp/socket.c 	pr_debug("%s: asoc:%p, timeo:%ld\n", __func__, asoc, *timeo_p);
asoc             9161 net/sctp/socket.c 	sctp_association_hold(asoc);
asoc             9164 net/sctp/socket.c 		prepare_to_wait_exclusive(&asoc->wait, &wait,
asoc             9170 net/sctp/socket.c 		if (sk->sk_err || asoc->state >= SCTP_STATE_SHUTDOWN_PENDING ||
asoc             9171 net/sctp/socket.c 		    asoc->base.dead)
asoc             9176 net/sctp/socket.c 		if (sctp_state(asoc, ESTABLISHED))
asoc             9190 net/sctp/socket.c 	finish_wait(&asoc->wait, &wait);
asoc             9193 net/sctp/socket.c 	sctp_association_put(asoc);
asoc             9198 net/sctp/socket.c 	if (asoc->init_err_counter + 1 > asoc->max_init_attempts)
asoc             9286 net/sctp/socket.c 		    struct sctp_association *asoc)
asoc             9322 net/sctp/socket.c 	newinet->inet_dport = htons(asoc->peer.port);
asoc             9417 net/sctp/socket.c 		if (event->asoc == assoc) {
asoc             9446 net/sctp/socket.c 			if (event->asoc == assoc) {
asoc               32 net/sctp/stream.c 	struct sctp_association *asoc;
asoc               37 net/sctp/stream.c 	asoc = container_of(stream, struct sctp_association, stream);
asoc               38 net/sctp/stream.c 	outq = &asoc->outqueue;
asoc               53 net/sctp/stream.c 		if (asoc->peer.prsctp_capable &&
asoc               55 net/sctp/stream.c 			asoc->sent_cnt_removable--;
asoc              222 net/sctp/stream.c static int sctp_send_reconf(struct sctp_association *asoc,
asoc              225 net/sctp/stream.c 	struct net *net = sock_net(asoc->base.sk);
asoc              228 net/sctp/stream.c 	retval = sctp_primitive_RECONF(net, asoc, chunk);
asoc              238 net/sctp/stream.c 	struct sctp_association *asoc;
asoc              241 net/sctp/stream.c 	asoc = container_of(stream, struct sctp_association, stream);
asoc              242 net/sctp/stream.c 	if (!asoc->outqueue.out_qlen)
asoc              259 net/sctp/stream.c int sctp_send_reset_streams(struct sctp_association *asoc,
asoc              262 net/sctp/stream.c 	struct sctp_stream *stream = &asoc->stream;
asoc              269 net/sctp/stream.c 	if (!asoc->peer.reconf_capable ||
asoc              270 net/sctp/stream.c 	    !(asoc->strreset_enable & SCTP_ENABLE_RESET_STREAM_REQ)) {
asoc              275 net/sctp/stream.c 	if (asoc->strreset_outstanding) {
asoc              328 net/sctp/stream.c 	chunk = sctp_make_strreset_req(asoc, str_nums, nstr_list, out, in);
asoc              347 net/sctp/stream.c 	asoc->strreset_chunk = chunk;
asoc              348 net/sctp/stream.c 	sctp_chunk_hold(asoc->strreset_chunk);
asoc              350 net/sctp/stream.c 	retval = sctp_send_reconf(asoc, chunk);
asoc              352 net/sctp/stream.c 		sctp_chunk_put(asoc->strreset_chunk);
asoc              353 net/sctp/stream.c 		asoc->strreset_chunk = NULL;
asoc              368 net/sctp/stream.c 	asoc->strreset_outstanding = out + in;
asoc              374 net/sctp/stream.c int sctp_send_reset_assoc(struct sctp_association *asoc)
asoc              376 net/sctp/stream.c 	struct sctp_stream *stream = &asoc->stream;
asoc              381 net/sctp/stream.c 	if (!asoc->peer.reconf_capable ||
asoc              382 net/sctp/stream.c 	    !(asoc->strreset_enable & SCTP_ENABLE_RESET_ASSOC_REQ))
asoc              385 net/sctp/stream.c 	if (asoc->strreset_outstanding)
asoc              388 net/sctp/stream.c 	if (!sctp_outq_is_empty(&asoc->outqueue))
asoc              391 net/sctp/stream.c 	chunk = sctp_make_strreset_tsnreq(asoc);
asoc              399 net/sctp/stream.c 	asoc->strreset_chunk = chunk;
asoc              400 net/sctp/stream.c 	sctp_chunk_hold(asoc->strreset_chunk);
asoc              402 net/sctp/stream.c 	retval = sctp_send_reconf(asoc, chunk);
asoc              404 net/sctp/stream.c 		sctp_chunk_put(asoc->strreset_chunk);
asoc              405 net/sctp/stream.c 		asoc->strreset_chunk = NULL;
asoc              413 net/sctp/stream.c 	asoc->strreset_outstanding = 1;
asoc              418 net/sctp/stream.c int sctp_send_add_streams(struct sctp_association *asoc,
asoc              421 net/sctp/stream.c 	struct sctp_stream *stream = &asoc->stream;
asoc              427 net/sctp/stream.c 	if (!asoc->peer.reconf_capable ||
asoc              428 net/sctp/stream.c 	    !(asoc->strreset_enable & SCTP_ENABLE_CHANGE_ASSOC_REQ)) {
asoc              433 net/sctp/stream.c 	if (asoc->strreset_outstanding) {
asoc              454 net/sctp/stream.c 	chunk = sctp_make_strreset_addstrm(asoc, out, in);
asoc              460 net/sctp/stream.c 	asoc->strreset_chunk = chunk;
asoc              461 net/sctp/stream.c 	sctp_chunk_hold(asoc->strreset_chunk);
asoc              463 net/sctp/stream.c 	retval = sctp_send_reconf(asoc, chunk);
asoc              465 net/sctp/stream.c 		sctp_chunk_put(asoc->strreset_chunk);
asoc              466 net/sctp/stream.c 		asoc->strreset_chunk = NULL;
asoc              470 net/sctp/stream.c 	asoc->strreset_outstanding = !!out + !!in;
asoc              477 net/sctp/stream.c 			struct sctp_association *asoc, __be32 resp_seq,
asoc              480 net/sctp/stream.c 	struct sctp_chunk *chunk = asoc->strreset_chunk;
asoc              503 net/sctp/stream.c static void sctp_update_strreset_result(struct sctp_association *asoc,
asoc              506 net/sctp/stream.c 	asoc->strreset_result[1] = asoc->strreset_result[0];
asoc              507 net/sctp/stream.c 	asoc->strreset_result[0] = result;
asoc              511 net/sctp/stream.c 				struct sctp_association *asoc,
asoc              516 net/sctp/stream.c 	struct sctp_stream *stream = &asoc->stream;
asoc              525 net/sctp/stream.c 	    sctp_tsnmap_get_ctsn(&asoc->peer.tsn_map)) {
asoc              530 net/sctp/stream.c 	if (TSN_lt(asoc->strreset_inseq, request_seq) ||
asoc              531 net/sctp/stream.c 	    TSN_lt(request_seq, asoc->strreset_inseq - 2)) {
asoc              534 net/sctp/stream.c 	} else if (TSN_lt(request_seq, asoc->strreset_inseq)) {
asoc              535 net/sctp/stream.c 		i = asoc->strreset_inseq - request_seq - 1;
asoc              536 net/sctp/stream.c 		result = asoc->strreset_result[i];
asoc              539 net/sctp/stream.c 	asoc->strreset_inseq++;
asoc              545 net/sctp/stream.c 	if (!(asoc->strreset_enable & SCTP_ENABLE_RESET_STREAM_REQ))
asoc              557 net/sctp/stream.c 	if (asoc->strreset_chunk) {
asoc              559 net/sctp/stream.c 				asoc, outreq->response_seq,
asoc              566 net/sctp/stream.c 		asoc->strreset_outstanding--;
asoc              567 net/sctp/stream.c 		asoc->strreset_outseq++;
asoc              569 net/sctp/stream.c 		if (!asoc->strreset_outstanding) {
asoc              572 net/sctp/stream.c 			t = asoc->strreset_chunk->transport;
asoc              576 net/sctp/stream.c 			sctp_chunk_put(asoc->strreset_chunk);
asoc              577 net/sctp/stream.c 			asoc->strreset_chunk = NULL;
asoc              590 net/sctp/stream.c 	*evp = sctp_ulpevent_make_stream_reset_event(asoc,
asoc              594 net/sctp/stream.c 	sctp_update_strreset_result(asoc, result);
asoc              596 net/sctp/stream.c 	return sctp_make_strreset_resp(asoc, result, request_seq);
asoc              600 net/sctp/stream.c 				struct sctp_association *asoc,
asoc              605 net/sctp/stream.c 	struct sctp_stream *stream = &asoc->stream;
asoc              613 net/sctp/stream.c 	if (TSN_lt(asoc->strreset_inseq, request_seq) ||
asoc              614 net/sctp/stream.c 	    TSN_lt(request_seq, asoc->strreset_inseq - 2)) {
asoc              617 net/sctp/stream.c 	} else if (TSN_lt(request_seq, asoc->strreset_inseq)) {
asoc              618 net/sctp/stream.c 		i = asoc->strreset_inseq - request_seq - 1;
asoc              619 net/sctp/stream.c 		result = asoc->strreset_result[i];
asoc              624 net/sctp/stream.c 	asoc->strreset_inseq++;
asoc              626 net/sctp/stream.c 	if (!(asoc->strreset_enable & SCTP_ENABLE_RESET_STREAM_REQ))
asoc              629 net/sctp/stream.c 	if (asoc->strreset_outstanding) {
asoc              645 net/sctp/stream.c 		asoc->strreset_inseq--;
asoc              649 net/sctp/stream.c 	chunk = sctp_make_strreset_req(asoc, nums, str_p, 1, 0);
asoc              661 net/sctp/stream.c 	asoc->strreset_chunk = chunk;
asoc              662 net/sctp/stream.c 	asoc->strreset_outstanding = 1;
asoc              663 net/sctp/stream.c 	sctp_chunk_hold(asoc->strreset_chunk);
asoc              668 net/sctp/stream.c 	sctp_update_strreset_result(asoc, result);
asoc              671 net/sctp/stream.c 		chunk =  sctp_make_strreset_resp(asoc, result, request_seq);
asoc              677 net/sctp/stream.c 				struct sctp_association *asoc,
asoc              683 net/sctp/stream.c 	struct sctp_stream *stream = &asoc->stream;
asoc              689 net/sctp/stream.c 	if (TSN_lt(asoc->strreset_inseq, request_seq) ||
asoc              690 net/sctp/stream.c 	    TSN_lt(request_seq, asoc->strreset_inseq - 2)) {
asoc              693 net/sctp/stream.c 	} else if (TSN_lt(request_seq, asoc->strreset_inseq)) {
asoc              694 net/sctp/stream.c 		i = asoc->strreset_inseq - request_seq - 1;
asoc              695 net/sctp/stream.c 		result = asoc->strreset_result[i];
asoc              697 net/sctp/stream.c 			next_tsn = asoc->ctsn_ack_point + 1;
asoc              699 net/sctp/stream.c 				sctp_tsnmap_get_ctsn(&asoc->peer.tsn_map) + 1;
asoc              704 net/sctp/stream.c 	if (!sctp_outq_is_empty(&asoc->outqueue)) {
asoc              709 net/sctp/stream.c 	asoc->strreset_inseq++;
asoc              711 net/sctp/stream.c 	if (!(asoc->strreset_enable & SCTP_ENABLE_RESET_ASSOC_REQ))
asoc              714 net/sctp/stream.c 	if (asoc->strreset_outstanding) {
asoc              724 net/sctp/stream.c 	max_tsn_seen = sctp_tsnmap_get_max_tsn_seen(&asoc->peer.tsn_map);
asoc              725 net/sctp/stream.c 	asoc->stream.si->report_ftsn(&asoc->ulpq, max_tsn_seen);
asoc              732 net/sctp/stream.c 	init_tsn = sctp_tsnmap_get_ctsn(&asoc->peer.tsn_map) + (1 << 31);
asoc              733 net/sctp/stream.c 	sctp_tsnmap_init(&asoc->peer.tsn_map, SCTP_TSN_MAP_INITIAL,
asoc              740 net/sctp/stream.c 	sctp_outq_free(&asoc->outqueue);
asoc              747 net/sctp/stream.c 	next_tsn = asoc->next_tsn;
asoc              748 net/sctp/stream.c 	asoc->ctsn_ack_point = next_tsn - 1;
asoc              749 net/sctp/stream.c 	asoc->adv_peer_ack_point = asoc->ctsn_ack_point;
asoc              763 net/sctp/stream.c 	*evp = sctp_ulpevent_make_assoc_reset_event(asoc, 0, init_tsn,
asoc              767 net/sctp/stream.c 	sctp_update_strreset_result(asoc, result);
asoc              769 net/sctp/stream.c 	return sctp_make_strreset_tsnresp(asoc, result, request_seq,
asoc              774 net/sctp/stream.c 				struct sctp_association *asoc,
asoc              779 net/sctp/stream.c 	struct sctp_stream *stream = &asoc->stream;
asoc              785 net/sctp/stream.c 	if (TSN_lt(asoc->strreset_inseq, request_seq) ||
asoc              786 net/sctp/stream.c 	    TSN_lt(request_seq, asoc->strreset_inseq - 2)) {
asoc              789 net/sctp/stream.c 	} else if (TSN_lt(request_seq, asoc->strreset_inseq)) {
asoc              790 net/sctp/stream.c 		i = asoc->strreset_inseq - request_seq - 1;
asoc              791 net/sctp/stream.c 		result = asoc->strreset_result[i];
asoc              794 net/sctp/stream.c 	asoc->strreset_inseq++;
asoc              796 net/sctp/stream.c 	if (!(asoc->strreset_enable & SCTP_ENABLE_CHANGE_ASSOC_REQ))
asoc              807 net/sctp/stream.c 	if (asoc->strreset_chunk) {
asoc              809 net/sctp/stream.c 			asoc, 0, SCTP_PARAM_RESET_ADD_IN_STREAMS)) {
asoc              815 net/sctp/stream.c 		asoc->strreset_outstanding--;
asoc              816 net/sctp/stream.c 		asoc->strreset_outseq++;
asoc              818 net/sctp/stream.c 		if (!asoc->strreset_outstanding) {
asoc              821 net/sctp/stream.c 			t = asoc->strreset_chunk->transport;
asoc              825 net/sctp/stream.c 			sctp_chunk_put(asoc->strreset_chunk);
asoc              826 net/sctp/stream.c 			asoc->strreset_chunk = NULL;
asoc              834 net/sctp/stream.c 	*evp = sctp_ulpevent_make_stream_change_event(asoc,
asoc              838 net/sctp/stream.c 	sctp_update_strreset_result(asoc, result);
asoc              840 net/sctp/stream.c 	return sctp_make_strreset_resp(asoc, result, request_seq);
asoc              844 net/sctp/stream.c 				struct sctp_association *asoc,
asoc              849 net/sctp/stream.c 	struct sctp_stream *stream = &asoc->stream;
asoc              857 net/sctp/stream.c 	if (TSN_lt(asoc->strreset_inseq, request_seq) ||
asoc              858 net/sctp/stream.c 	    TSN_lt(request_seq, asoc->strreset_inseq - 2)) {
asoc              861 net/sctp/stream.c 	} else if (TSN_lt(request_seq, asoc->strreset_inseq)) {
asoc              862 net/sctp/stream.c 		i = asoc->strreset_inseq - request_seq - 1;
asoc              863 net/sctp/stream.c 		result = asoc->strreset_result[i];
asoc              868 net/sctp/stream.c 	asoc->strreset_inseq++;
asoc              870 net/sctp/stream.c 	if (!(asoc->strreset_enable & SCTP_ENABLE_CHANGE_ASSOC_REQ))
asoc              873 net/sctp/stream.c 	if (asoc->strreset_outstanding) {
asoc              887 net/sctp/stream.c 	chunk = sctp_make_strreset_addstrm(asoc, out, 0);
asoc              891 net/sctp/stream.c 	asoc->strreset_chunk = chunk;
asoc              892 net/sctp/stream.c 	asoc->strreset_outstanding = 1;
asoc              893 net/sctp/stream.c 	sctp_chunk_hold(asoc->strreset_chunk);
asoc              900 net/sctp/stream.c 	sctp_update_strreset_result(asoc, result);
asoc              903 net/sctp/stream.c 		chunk = sctp_make_strreset_resp(asoc, result, request_seq);
asoc              909 net/sctp/stream.c 				struct sctp_association *asoc,
asoc              913 net/sctp/stream.c 	struct sctp_stream *stream = &asoc->stream;
asoc              920 net/sctp/stream.c 	req = sctp_chunk_lookup_strreset_param(asoc, resp->response_seq, 0);
asoc              966 net/sctp/stream.c 		*evp = sctp_ulpevent_make_stream_reset_event(asoc, flags,
asoc              983 net/sctp/stream.c 		*evp = sctp_ulpevent_make_stream_reset_event(asoc, flags,
asoc              999 net/sctp/stream.c 						&asoc->peer.tsn_map);
asoc             1002 net/sctp/stream.c 			asoc->stream.si->report_ftsn(&asoc->ulpq, mtsn);
asoc             1004 net/sctp/stream.c 			sctp_tsnmap_init(&asoc->peer.tsn_map,
asoc             1012 net/sctp/stream.c 			list_splice_init(&asoc->outqueue.out_chunk_list, &temp);
asoc             1013 net/sctp/stream.c 			sctp_outq_free(&asoc->outqueue);
asoc             1014 net/sctp/stream.c 			list_splice_init(&temp, &asoc->outqueue.out_chunk_list);
asoc             1016 net/sctp/stream.c 			asoc->next_tsn = rtsn;
asoc             1017 net/sctp/stream.c 			asoc->ctsn_ack_point = asoc->next_tsn - 1;
asoc             1018 net/sctp/stream.c 			asoc->adv_peer_ack_point = asoc->ctsn_ack_point;
asoc             1031 net/sctp/stream.c 		*evp = sctp_ulpevent_make_assoc_reset_event(asoc, flags,
asoc             1047 net/sctp/stream.c 		*evp = sctp_ulpevent_make_stream_change_event(asoc, flags,
asoc             1061 net/sctp/stream.c 		*evp = sctp_ulpevent_make_stream_change_event(asoc, flags,
asoc             1065 net/sctp/stream.c 	asoc->strreset_outstanding--;
asoc             1066 net/sctp/stream.c 	asoc->strreset_outseq++;
asoc             1069 net/sctp/stream.c 	if (!asoc->strreset_outstanding) {
asoc             1070 net/sctp/stream.c 		t = asoc->strreset_chunk->transport;
asoc             1074 net/sctp/stream.c 		sctp_chunk_put(asoc->strreset_chunk);
asoc             1075 net/sctp/stream.c 		asoc->strreset_chunk = NULL;
asoc               25 net/sctp/stream_interleave.c 					const struct sctp_association *asoc,
asoc               38 net/sctp/stream_interleave.c 	retval = sctp_make_idata(asoc, flags, sizeof(dp) + len, gfp);
asoc               59 net/sctp/stream_interleave.c 	stream = &chunk->asoc->stream;
asoc               98 net/sctp/stream_interleave.c 	stream = &chunk->asoc->stream;
asoc              117 net/sctp/stream_interleave.c 	stream = &chunk->asoc->stream;
asoc              192 net/sctp/stream_interleave.c 	sin = sctp_stream_in(&ulpq->asoc->stream, event->stream);
asoc              244 net/sctp/stream_interleave.c 	retval = sctp_make_reassembled_event(sock_net(ulpq->asoc->base.sk),
asoc              262 net/sctp/stream_interleave.c 	struct sctp_association *asoc = ulpq->asoc;
asoc              273 net/sctp/stream_interleave.c 	sin = sctp_stream_in(&ulpq->asoc->stream, event->stream);
asoc              327 net/sctp/stream_interleave.c 	pd_point = sctp_sk(asoc->base.sk)->pd_point;
asoc              329 net/sctp/stream_interleave.c 		retval = sctp_make_reassembled_event(sock_net(asoc->base.sk),
asoc              340 net/sctp/stream_interleave.c 	retval = sctp_make_reassembled_event(sock_net(asoc->base.sk),
asoc              363 net/sctp/stream_interleave.c 	sin = sctp_stream_in(&ulpq->asoc->stream, event->stream);
asoc              427 net/sctp/stream_interleave.c 	stream  = &ulpq->asoc->stream;
asoc              456 net/sctp/stream_interleave.c 	stream  = &ulpq->asoc->stream;
asoc              474 net/sctp/stream_interleave.c 	struct sock *sk = ulpq->asoc->base.sk;
asoc              492 net/sctp/stream_interleave.c 	if (!sctp_ulpevent_is_enabled(event, ulpq->asoc->subscribe))
asoc              578 net/sctp/stream_interleave.c 	sin = sctp_stream_in(&ulpq->asoc->stream, event->stream);
asoc              633 net/sctp/stream_interleave.c 	retval = sctp_make_reassembled_event(sock_net(ulpq->asoc->base.sk),
asoc              651 net/sctp/stream_interleave.c 	struct sctp_association *asoc = ulpq->asoc;
asoc              662 net/sctp/stream_interleave.c 	sin = sctp_stream_in(&ulpq->asoc->stream, event->stream);
asoc              717 net/sctp/stream_interleave.c 	pd_point = sctp_sk(asoc->base.sk)->pd_point;
asoc              719 net/sctp/stream_interleave.c 		retval = sctp_make_reassembled_event(sock_net(asoc->base.sk),
asoc              730 net/sctp/stream_interleave.c 	retval = sctp_make_reassembled_event(sock_net(asoc->base.sk),
asoc              753 net/sctp/stream_interleave.c 	sin = sctp_stream_in(&ulpq->asoc->stream, event->stream);
asoc              777 net/sctp/stream_interleave.c 		csin = sctp_stream_in(&ulpq->asoc->stream, cevent->stream);
asoc              817 net/sctp/stream_interleave.c 	retval = sctp_make_reassembled_event(sock_net(ulpq->asoc->base.sk),
asoc              835 net/sctp/stream_interleave.c 	event = sctp_ulpevent_make_rcvmsg(chunk->asoc, chunk, gfp);
asoc              883 net/sctp/stream_interleave.c 		csin = sctp_stream_in(&ulpq->asoc->stream, cevent->stream);
asoc              924 net/sctp/stream_interleave.c 	retval = sctp_make_reassembled_event(sock_net(ulpq->asoc->base.sk),
asoc              966 net/sctp/stream_interleave.c 	struct sctp_association *asoc = ulpq->asoc;
asoc              973 net/sctp/stream_interleave.c 	if (skb_queue_empty(&asoc->base.sk->sk_receive_queue)) {
asoc              986 net/sctp/stream_interleave.c 	sk_mem_reclaim(asoc->base.sk);
asoc              992 net/sctp/stream_interleave.c 	struct sock *sk = ulpq->asoc->base.sk;
asoc              995 net/sctp/stream_interleave.c 	if (!sctp_ulpevent_type_enabled(ulpq->asoc->subscribe,
asoc              999 net/sctp/stream_interleave.c 	ev = sctp_ulpevent_make_pdapi(ulpq->asoc, SCTP_PARTIAL_DELIVERY_ABORTED,
asoc             1015 net/sctp/stream_interleave.c 	struct sctp_stream *stream = &ulpq->asoc->stream;
asoc             1066 net/sctp/stream_interleave.c 	struct sctp_stream *stream = &ulpq->asoc->stream;
asoc             1112 net/sctp/stream_interleave.c 	struct sctp_association *asoc = q->asoc;
asoc             1119 net/sctp/stream_interleave.c 	if (!asoc->peer.prsctp_capable)
asoc             1122 net/sctp/stream_interleave.c 	if (TSN_lt(asoc->adv_peer_ack_point, ctsn))
asoc             1123 net/sctp/stream_interleave.c 		asoc->adv_peer_ack_point = ctsn;
asoc             1132 net/sctp/stream_interleave.c 		} else if (TSN_lte(tsn, asoc->adv_peer_ack_point + 1)) {
asoc             1140 net/sctp/stream_interleave.c 			asoc->adv_peer_ack_point = tsn;
asoc             1156 net/sctp/stream_interleave.c 	if (asoc->adv_peer_ack_point > ctsn)
asoc             1157 net/sctp/stream_interleave.c 		ftsn_chunk = sctp_make_ifwdtsn(asoc, asoc->adv_peer_ack_point,
asoc             1162 net/sctp/stream_interleave.c 		SCTP_INC_STATS(sock_net(asoc->base.sk), SCTP_MIB_OUTCTRLCHUNKS);
asoc             1182 net/sctp/stream_interleave.c 	incnt = chunk->asoc->stream.incnt;
asoc             1198 net/sctp/stream_interleave.c 	incnt = chunk->asoc->stream.incnt;
asoc             1209 net/sctp/stream_interleave.c 	sctp_tsnmap_skip(&ulpq->asoc->peer.tsn_map, ftsn);
asoc             1244 net/sctp/stream_interleave.c 	sctp_tsnmap_skip(&ulpq->asoc->peer.tsn_map, ftsn);
asoc             1248 net/sctp/stream_interleave.c 	if (ftsn == sctp_tsnmap_get_max_tsn_seen(&ulpq->asoc->peer.tsn_map))
asoc             1264 net/sctp/stream_interleave.c 	struct sctp_stream_in *sin = sctp_stream_in(&ulpq->asoc->stream, sid);
asoc             1265 net/sctp/stream_interleave.c 	struct sctp_stream *stream  = &ulpq->asoc->stream;
asoc             1358 net/sctp/stream_interleave.c 	struct sctp_association *asoc;
asoc             1360 net/sctp/stream_interleave.c 	asoc = container_of(stream, struct sctp_association, stream);
asoc             1361 net/sctp/stream_interleave.c 	stream->si = asoc->peer.intl_capable ? &sctp_stream_interleave_1
asoc               60 net/sctp/stream_sched.c 	struct sctp_stream *stream = &q->asoc->stream;
asoc              129 net/sctp/stream_sched.c int sctp_sched_set_sched(struct sctp_association *asoc,
asoc              133 net/sctp/stream_sched.c 	struct sctp_sched_ops *old = asoc->outqueue.sched;
asoc              145 net/sctp/stream_sched.c 		old->free(&asoc->stream);
asoc              148 net/sctp/stream_sched.c 		for (i = 0; i < asoc->stream.outcnt; i++) {
asoc              149 net/sctp/stream_sched.c 			void *p = SCTP_SO(&asoc->stream, i)->ext;
asoc              160 net/sctp/stream_sched.c 	asoc->outqueue.sched = n;
asoc              161 net/sctp/stream_sched.c 	n->init(&asoc->stream);
asoc              162 net/sctp/stream_sched.c 	for (i = 0; i < asoc->stream.outcnt; i++) {
asoc              163 net/sctp/stream_sched.c 		if (!SCTP_SO(&asoc->stream, i)->ext)
asoc              166 net/sctp/stream_sched.c 		ret = n->init_sid(&asoc->stream, i, GFP_KERNEL);
asoc              172 net/sctp/stream_sched.c 	list_for_each_entry(ch, &asoc->outqueue.out_chunk_list, list) {
asoc              176 net/sctp/stream_sched.c 		n->enqueue(&asoc->outqueue, msg);
asoc              182 net/sctp/stream_sched.c 	n->free(&asoc->stream);
asoc              183 net/sctp/stream_sched.c 	asoc->outqueue.sched = &sctp_sched_fcfs; /* Always safe */
asoc              188 net/sctp/stream_sched.c int sctp_sched_get_sched(struct sctp_association *asoc)
asoc              193 net/sctp/stream_sched.c 		if (asoc->outqueue.sched == sctp_sched_ops[i])
asoc              199 net/sctp/stream_sched.c int sctp_sched_set_value(struct sctp_association *asoc, __u16 sid,
asoc              202 net/sctp/stream_sched.c 	if (sid >= asoc->stream.outcnt)
asoc              205 net/sctp/stream_sched.c 	if (!SCTP_SO(&asoc->stream, sid)->ext) {
asoc              208 net/sctp/stream_sched.c 		ret = sctp_stream_init_ext(&asoc->stream, sid);
asoc              213 net/sctp/stream_sched.c 	return asoc->outqueue.sched->set(&asoc->stream, sid, value, gfp);
asoc              216 net/sctp/stream_sched.c int sctp_sched_get_value(struct sctp_association *asoc, __u16 sid,
asoc              219 net/sctp/stream_sched.c 	if (sid >= asoc->stream.outcnt)
asoc              222 net/sctp/stream_sched.c 	if (!SCTP_SO(&asoc->stream, sid)->ext)
asoc              225 net/sctp/stream_sched.c 	return asoc->outqueue.sched->get(&asoc->stream, sid, value);
asoc              231 net/sctp/stream_sched.c 	    !q->asoc->peer.intl_capable) {
asoc              240 net/sctp/stream_sched.c 		sout = SCTP_SO(&q->asoc->stream, sid);
asoc              241 net/sctp/stream_sched.c 		q->asoc->stream.out_curr = sout;
asoc              245 net/sctp/stream_sched.c 	q->asoc->stream.out_curr = NULL;
asoc              268 net/sctp/stream_sched.c 	struct sctp_association *asoc;
asoc              270 net/sctp/stream_sched.c 	asoc = container_of(stream, struct sctp_association, stream);
asoc              272 net/sctp/stream_sched.c 	return asoc->outqueue.sched;
asoc              242 net/sctp/stream_sched_prio.c 	stream = &q->asoc->stream;
asoc              248 net/sctp/stream_sched_prio.c 	struct sctp_stream *stream = &q->asoc->stream;
asoc              285 net/sctp/stream_sched_prio.c 	soute = SCTP_SO(&q->asoc->stream, sid)->ext;
asoc              296 net/sctp/stream_sched_prio.c 	struct sctp_association *asoc;
asoc              300 net/sctp/stream_sched_prio.c 	asoc = container_of(stream, struct sctp_association, stream);
asoc              301 net/sctp/stream_sched_prio.c 	list_for_each_entry(ch, &asoc->outqueue.out_chunk_list, list) {
asoc              107 net/sctp/stream_sched_rr.c 	stream = &q->asoc->stream;
asoc              113 net/sctp/stream_sched_rr.c 	struct sctp_stream *stream = &q->asoc->stream;
asoc              142 net/sctp/stream_sched_rr.c 	soute = SCTP_SO(&q->asoc->stream, sid)->ext;
asoc              144 net/sctp/stream_sched_rr.c 	sctp_sched_rr_next_stream(&q->asoc->stream);
asoc              147 net/sctp/stream_sched_rr.c 		sctp_sched_rr_unsched(&q->asoc->stream, soute);
asoc              152 net/sctp/stream_sched_rr.c 	struct sctp_association *asoc;
asoc              156 net/sctp/stream_sched_rr.c 	asoc = container_of(stream, struct sctp_association, stream);
asoc              157 net/sctp/stream_sched_rr.c 	list_for_each_entry(ch, &asoc->outqueue.out_chunk_list, list) {
asoc              136 net/sctp/transport.c 		sctp_association_put(transport->asoc);
asoc              164 net/sctp/transport.c 	if (transport->asoc)
asoc              165 net/sctp/transport.c 		sctp_association_put(transport->asoc);
asoc              215 net/sctp/transport.c 			      struct sctp_association *asoc)
asoc              217 net/sctp/transport.c 	transport->asoc = asoc;
asoc              218 net/sctp/transport.c 	sctp_association_hold(asoc);
asoc              232 net/sctp/transport.c 		struct sctp_association *asoc = transport->asoc;
asoc              234 net/sctp/transport.c 		if (!transport->pathmtu && asoc && asoc->pathmtu)
asoc              235 net/sctp/transport.c 			transport->pathmtu = asoc->pathmtu;
asoc              249 net/sctp/transport.c 	struct sock *sk = t->asoc->base.sk;
asoc              293 net/sctp/transport.c 	struct sctp_association *asoc = transport->asoc;
asoc              309 net/sctp/transport.c 	if (transport->dst && asoc &&
asoc              310 net/sctp/transport.c 	    (!asoc->peer.primary_path || transport == asoc->peer.active_path))
asoc              311 net/sctp/transport.c 		opt->pf->to_sk_saddr(&transport->saddr, asoc->base.sk);
asoc              337 net/sctp/transport.c 		struct net *net = sock_net(tp->asoc->base.sk);
asoc              373 net/sctp/transport.c 	if (tp->rto < tp->asoc->rto_min)
asoc              374 net/sctp/transport.c 		tp->rto = tp->asoc->rto_min;
asoc              379 net/sctp/transport.c 	if (tp->rto > tp->asoc->rto_max)
asoc              380 net/sctp/transport.c 		tp->rto = tp->asoc->rto_max;
asoc              382 net/sctp/transport.c 	sctp_max_rto(tp->asoc, tp);
asoc              400 net/sctp/transport.c 	struct sctp_association *asoc = transport->asoc;
asoc              407 net/sctp/transport.c 	if (asoc->fast_recovery &&
asoc              408 net/sctp/transport.c 	    TSN_lte(asoc->fast_recovery_exit, sack_ctsn))
asoc              409 net/sctp/transport.c 		asoc->fast_recovery = 0;
asoc              413 net/sctp/transport.c 	pmtu = transport->asoc->pathmtu;
asoc              430 net/sctp/transport.c 		if (asoc->fast_recovery)
asoc              498 net/sctp/transport.c 	struct sctp_association *asoc = transport->asoc;
asoc              510 net/sctp/transport.c 					  4*asoc->pathmtu);
asoc              511 net/sctp/transport.c 		transport->cwnd = asoc->pathmtu;
asoc              514 net/sctp/transport.c 		asoc->fast_recovery = 0;
asoc              530 net/sctp/transport.c 		if (asoc->fast_recovery)
asoc              534 net/sctp/transport.c 		asoc->fast_recovery = 1;
asoc              535 net/sctp/transport.c 		asoc->fast_recovery_exit = asoc->next_tsn - 1;
asoc              538 net/sctp/transport.c 					  4*asoc->pathmtu);
asoc              558 net/sctp/transport.c 						  4*asoc->pathmtu);
asoc              574 net/sctp/transport.c 					 4*asoc->pathmtu);
asoc              599 net/sctp/transport.c 	struct sctp_association *asoc = t->asoc;
asoc              603 net/sctp/transport.c 	if (t->burst_limited || asoc->max_burst == 0)
asoc              606 net/sctp/transport.c 	max_burst_bytes = t->flight_size + (asoc->max_burst * asoc->pathmtu);
asoc              640 net/sctp/transport.c 	struct sctp_association *asoc = t->asoc;
asoc              647 net/sctp/transport.c 	t->cwnd = min(4*asoc->pathmtu, max_t(__u32, 2*asoc->pathmtu, 4380));
asoc              649 net/sctp/transport.c 	t->ssthresh = asoc->peer.i.a_rwnd;
asoc              650 net/sctp/transport.c 	t->rto = asoc->rto_initial;
asoc              651 net/sctp/transport.c 	sctp_max_rto(asoc, t);
asoc              677 net/sctp/transport.c 	sctp_retransmit(&t->asoc->outqueue, t, SCTP_RTXR_T3_RTX);
asoc              117 net/sctp/tsnmap.c 				trans->asoc->peer.sack_generation;
asoc               32 net/sctp/ulpevent.c 				       struct sctp_association *asoc);
asoc               77 net/sctp/ulpevent.c 					   const struct sctp_association *asoc)
asoc               85 net/sctp/ulpevent.c 	sctp_association_hold((struct sctp_association *)asoc);
asoc               87 net/sctp/ulpevent.c 	event->asoc = (struct sctp_association *)asoc;
asoc               88 net/sctp/ulpevent.c 	atomic_add(event->rmem_len, &event->asoc->rmem_alloc);
asoc               89 net/sctp/ulpevent.c 	sctp_skb_set_owner_r(skb, asoc->base.sk);
asoc               91 net/sctp/ulpevent.c 		chunk->head_skb->sk = asoc->base.sk;
asoc               97 net/sctp/ulpevent.c 	struct sctp_association *asoc = event->asoc;
asoc               99 net/sctp/ulpevent.c 	atomic_sub(event->rmem_len, &asoc->rmem_alloc);
asoc              100 net/sctp/ulpevent.c 	sctp_association_put(asoc);
asoc              115 net/sctp/ulpevent.c 	const struct sctp_association *asoc,
asoc              224 net/sctp/ulpevent.c 	sctp_ulpevent_set_owner(event, asoc);
asoc              225 net/sctp/ulpevent.c 	sac->sac_assoc_id = sctp_assoc2id(asoc);
asoc              242 net/sctp/ulpevent.c 	const struct sctp_association *asoc,
asoc              315 net/sctp/ulpevent.c 	sctp_ulpevent_set_owner(event, asoc);
asoc              316 net/sctp/ulpevent.c 	spc->spc_assoc_id = sctp_assoc2id(asoc);
asoc              329 net/sctp/ulpevent.c 	sctp_get_pf_specific(asoc->base.sk->sk_family)->addr_to_user(
asoc              330 net/sctp/ulpevent.c 					sctp_sk(asoc->base.sk),
asoc              355 net/sctp/ulpevent.c sctp_ulpevent_make_remote_error(const struct sctp_association *asoc,
asoc              398 net/sctp/ulpevent.c 	sctp_ulpevent_set_owner(event, asoc);
asoc              399 net/sctp/ulpevent.c 	sre->sre_assoc_id = sctp_assoc2id(asoc);
asoc              412 net/sctp/ulpevent.c 	const struct sctp_association *asoc, struct sctp_chunk *chunk,
asoc              431 net/sctp/ulpevent.c 	skb_pull(skb, sctp_datachk_len(&asoc->stream));
asoc              432 net/sctp/ulpevent.c 	len -= sctp_datachk_len(&asoc->stream);
asoc              506 net/sctp/ulpevent.c 	sctp_ulpevent_set_owner(event, asoc);
asoc              507 net/sctp/ulpevent.c 	ssf->ssf_assoc_id = sctp_assoc2id(asoc);
asoc              520 net/sctp/ulpevent.c 	const struct sctp_association *asoc,
asoc              568 net/sctp/ulpevent.c 	sctp_ulpevent_set_owner(event, asoc);
asoc              569 net/sctp/ulpevent.c 	sse->sse_assoc_id = sctp_assoc2id(asoc);
asoc              583 net/sctp/ulpevent.c 	const struct sctp_association *asoc, gfp_t gfp)
asoc              600 net/sctp/ulpevent.c 	sai->sai_adaptation_ind = asoc->peer.adaptation_ind;
asoc              601 net/sctp/ulpevent.c 	sctp_ulpevent_set_owner(event, asoc);
asoc              602 net/sctp/ulpevent.c 	sai->sai_assoc_id = sctp_assoc2id(asoc);
asoc              617 net/sctp/ulpevent.c struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,
asoc              623 net/sctp/ulpevent.c 	struct sock *sk = asoc->base.sk;
asoc              632 net/sctp/ulpevent.c 	if (asoc->ep->rcvbuf_policy)
asoc              633 net/sctp/ulpevent.c 		rx_count = atomic_read(&asoc->rmem_alloc);
asoc              650 net/sctp/ulpevent.c 	if (sctp_tsnmap_mark(&asoc->peer.tsn_map,
asoc              687 net/sctp/ulpevent.c 	sctp_ulpevent_receive_data(event, asoc);
asoc              692 net/sctp/ulpevent.c 		event->cumtsn = sctp_tsnmap_get_ctsn(&asoc->peer.tsn_map);
asoc              714 net/sctp/ulpevent.c 					const struct sctp_association *asoc,
asoc              759 net/sctp/ulpevent.c 	sctp_ulpevent_set_owner(event, asoc);
asoc              760 net/sctp/ulpevent.c 	pd->pdapi_assoc_id = sctp_assoc2id(asoc);
asoc              768 net/sctp/ulpevent.c 	const struct sctp_association *asoc, __u16 key_id,
asoc              794 net/sctp/ulpevent.c 	sctp_ulpevent_set_owner(event, asoc);
asoc              795 net/sctp/ulpevent.c 	ak->auth_assoc_id = sctp_assoc2id(asoc);
asoc              807 net/sctp/ulpevent.c 	const struct sctp_association *asoc, gfp_t gfp)
asoc              824 net/sctp/ulpevent.c 	sctp_ulpevent_set_owner(event, asoc);
asoc              825 net/sctp/ulpevent.c 	sdry->sender_dry_assoc_id = sctp_assoc2id(asoc);
asoc              831 net/sctp/ulpevent.c 	const struct sctp_association *asoc, __u16 flags, __u16 stream_num,
asoc              850 net/sctp/ulpevent.c 	sctp_ulpevent_set_owner(event, asoc);
asoc              851 net/sctp/ulpevent.c 	sreset->strreset_assoc_id = sctp_assoc2id(asoc);
asoc              860 net/sctp/ulpevent.c 	const struct sctp_association *asoc, __u16 flags, __u32 local_tsn,
asoc              878 net/sctp/ulpevent.c 	sctp_ulpevent_set_owner(event, asoc);
asoc              879 net/sctp/ulpevent.c 	areset->assocreset_assoc_id = sctp_assoc2id(asoc);
asoc              887 net/sctp/ulpevent.c 	const struct sctp_association *asoc, __u16 flags,
asoc              905 net/sctp/ulpevent.c 	sctp_ulpevent_set_owner(event, asoc);
asoc              906 net/sctp/ulpevent.c 	schange->strchange_assoc_id = sctp_assoc2id(asoc);
asoc              944 net/sctp/ulpevent.c 	sinfo.sinfo_assoc_id = sctp_assoc2id(event->asoc);
asoc              946 net/sctp/ulpevent.c 	sinfo.sinfo_context = event->asoc->default_rcv_context;
asoc              972 net/sctp/ulpevent.c 	rinfo.rcv_assoc_id = sctp_assoc2id(event->asoc);
asoc              973 net/sctp/ulpevent.c 	rinfo.rcv_context = event->asoc->default_rcv_context;
asoc              995 net/sctp/ulpevent.c 	nxtinfo.nxt_assoc_id = sctp_assoc2id(event->asoc);
asoc             1021 net/sctp/ulpevent.c 				       struct sctp_association *asoc)
asoc             1027 net/sctp/ulpevent.c 	sctp_ulpevent_set_owner(event, asoc);
asoc             1028 net/sctp/ulpevent.c 	sctp_assoc_rwnd_decrease(asoc, skb_headlen(skb));
asoc             1040 net/sctp/ulpevent.c 		sctp_ulpevent_receive_data(sctp_skb2event(frag), asoc);
asoc             1074 net/sctp/ulpevent.c 	sctp_assoc_rwnd_increase(event->asoc, len);
asoc               42 net/sctp/ulpqueue.c 				 struct sctp_association *asoc)
asoc               46 net/sctp/ulpqueue.c 	ulpq->asoc = asoc;
asoc               93 net/sctp/ulpqueue.c 	event = sctp_ulpevent_make_rcvmsg(chunk->asoc, chunk, gfp);
asoc              128 net/sctp/ulpqueue.c int sctp_clear_pd(struct sock *sk, struct sctp_association *asoc)
asoc              147 net/sctp/ulpqueue.c 		if (!skb_queue_empty(&sp->pd_lobby) && asoc) {
asoc              153 net/sctp/ulpqueue.c 				if (event->asoc == asoc) {
asoc              168 net/sctp/ulpqueue.c 	struct sctp_sock *sp = sctp_sk(ulpq->asoc->base.sk);
asoc              179 net/sctp/ulpqueue.c 	return sctp_clear_pd(ulpq->asoc->base.sk, ulpq->asoc);
asoc              184 net/sctp/ulpqueue.c 	struct sock *sk = ulpq->asoc->base.sk;
asoc              207 net/sctp/ulpqueue.c 	if (!sctp_ulpevent_is_enabled(event, ulpq->asoc->subscribe))
asoc              409 net/sctp/ulpqueue.c 	struct sctp_association *asoc;
asoc              475 net/sctp/ulpqueue.c 	asoc = ulpq->asoc;
asoc              482 net/sctp/ulpqueue.c 		if (!sctp_sk(asoc->base.sk)->frag_interleave &&
asoc              483 net/sctp/ulpqueue.c 		    atomic_read(&sctp_sk(asoc->base.sk)->pd_mode))
asoc              487 net/sctp/ulpqueue.c 		pd_point = sctp_sk(asoc->base.sk)->pd_point;
asoc              489 net/sctp/ulpqueue.c 			retval = sctp_make_reassembled_event(sock_net(asoc->base.sk),
asoc              500 net/sctp/ulpqueue.c 	retval = sctp_make_reassembled_event(sock_net(ulpq->asoc->base.sk),
asoc              566 net/sctp/ulpqueue.c 	retval = sctp_make_reassembled_event(sock_net(ulpq->asoc->base.sk),
asoc              599 net/sctp/ulpqueue.c 		ctsnap = sctp_tsnmap_get_ctsn(&ulpq->asoc->peer.tsn_map);
asoc              667 net/sctp/ulpqueue.c 	retval = sctp_make_reassembled_event(sock_net(ulpq->asoc->base.sk),
asoc              756 net/sctp/ulpqueue.c 	stream  = &ulpq->asoc->stream;
asoc              850 net/sctp/ulpqueue.c 	stream  = &ulpq->asoc->stream;
asoc              885 net/sctp/ulpqueue.c 	stream = &ulpq->asoc->stream;
asoc              950 net/sctp/ulpqueue.c 	stream  = &ulpq->asoc->stream;
asoc              974 net/sctp/ulpqueue.c 	tsnmap = &ulpq->asoc->peer.tsn_map;
asoc             1030 net/sctp/ulpqueue.c 	struct sctp_association *asoc;
asoc             1035 net/sctp/ulpqueue.c 	asoc = ulpq->asoc;
asoc             1036 net/sctp/ulpqueue.c 	sp = sctp_sk(asoc->base.sk);
asoc             1047 net/sctp/ulpqueue.c 	skb = skb_peek(&asoc->ulpq.reasm);
asoc             1050 net/sctp/ulpqueue.c 		if (!TSN_lte(ctsn, sctp_tsnmap_get_ctsn(&asoc->peer.tsn_map)))
asoc             1079 net/sctp/ulpqueue.c 	struct sctp_association *asoc = ulpq->asoc;
asoc             1086 net/sctp/ulpqueue.c 	if (skb_queue_empty(&asoc->base.sk->sk_receive_queue)) {
asoc             1092 net/sctp/ulpqueue.c 	if (sk_rmem_schedule(asoc->base.sk, chunk->skb, needed) &&
asoc             1105 net/sctp/ulpqueue.c 	sk_mem_reclaim(asoc->base.sk);
asoc             1122 net/sctp/ulpqueue.c 	sk = ulpq->asoc->base.sk;
asoc             1124 net/sctp/ulpqueue.c 	if (sctp_ulpevent_type_enabled(ulpq->asoc->subscribe,
asoc             1126 net/sctp/ulpqueue.c 		ev = sctp_ulpevent_make_pdapi(ulpq->asoc,