Home
last modified time | relevance | path

Searched refs:asoc (Results 1 – 25 of 26) sorted by relevance

12

/net/sctp/
Dassociola.c43 static void sctp_select_active_and_retran_path(struct sctp_association *asoc);
45 static void sctp_assoc_free_asconf_acks(struct sctp_association *asoc);
46 static void sctp_assoc_free_asconf_queue(struct sctp_association *asoc);
52 struct sctp_association *asoc, in sctp_association_init() argument
65 asoc->ep = (struct sctp_endpoint *)ep; in sctp_association_init()
66 asoc->base.sk = (struct sock *)sk; in sctp_association_init()
67 asoc->base.net = sock_net(sk); in sctp_association_init()
69 sctp_endpoint_hold(asoc->ep); in sctp_association_init()
70 sock_hold(asoc->base.sk); in sctp_association_init()
73 asoc->base.type = SCTP_EP_TYPE_ASSOCIATION; in sctp_association_init()
[all …]
Dsm_sideeffect.c44 struct sctp_association *asoc,
53 struct sctp_association **asoc,
64 static void sctp_do_ecn_ce_work(struct sctp_association *asoc, in sctp_do_ecn_ce_work() argument
69 asoc->last_ecne_tsn = lowest_tsn; in sctp_do_ecn_ce_work()
70 asoc->need_ecne = 1; in sctp_do_ecn_ce_work()
85 static struct sctp_chunk *sctp_do_ecn_ecne_work(struct sctp_association *asoc, in sctp_do_ecn_ecne_work() argument
101 if (TSN_lt(asoc->last_cwr_tsn, lowest_tsn)) { in sctp_do_ecn_ecne_work()
107 transport = sctp_assoc_lookup_tsn(asoc, lowest_tsn); in sctp_do_ecn_ecne_work()
113 asoc->last_cwr_tsn = lowest_tsn; in sctp_do_ecn_ecne_work()
119 repl = sctp_make_cwr(asoc, asoc->last_cwr_tsn, chunk); in sctp_do_ecn_ecne_work()
[all …]
Dstream.c27 struct sctp_association *asoc; in sctp_stream_shrink_out() local
31 asoc = container_of(stream, struct sctp_association, stream); in sctp_stream_shrink_out()
32 outq = &asoc->outqueue; in sctp_stream_shrink_out()
47 if (asoc->peer.prsctp_capable && in sctp_stream_shrink_out()
49 asoc->sent_cnt_removable--; in sctp_stream_shrink_out()
229 static int sctp_send_reconf(struct sctp_association *asoc, in sctp_send_reconf() argument
234 retval = sctp_primitive_RECONF(asoc->base.net, asoc, chunk); in sctp_send_reconf()
244 struct sctp_association *asoc; in sctp_stream_outq_is_empty() local
247 asoc = container_of(stream, struct sctp_association, stream); in sctp_stream_outq_is_empty()
248 if (!asoc->outqueue.out_qlen) in sctp_stream_outq_is_empty()
[all …]
Dsm_statefuns.c53 const struct sctp_association *asoc,
56 static int sctp_eat_data(const struct sctp_association *asoc,
61 const struct sctp_association *asoc,
65 const struct sctp_association *asoc,
72 const struct sctp_association *asoc,
79 const struct sctp_association *asoc,
86 const struct sctp_association *asoc,
93 const struct sctp_association *asoc,
103 const struct sctp_association *asoc,
109 const struct sctp_association *asoc,
[all …]
Dsm_make_chunk.c49 static struct sctp_chunk *sctp_make_control(const struct sctp_association *asoc,
52 static struct sctp_chunk *sctp_make_data(const struct sctp_association *asoc,
54 static struct sctp_chunk *_sctp_make_chunk(const struct sctp_association *asoc,
59 const struct sctp_association *asoc,
63 static int sctp_process_param(struct sctp_association *asoc,
77 struct sctp_association *asoc = chunk->asoc; in sctp_control_release_owner() local
87 ev = sctp_ulpevent_make_authkey(asoc, shkey->key_id, in sctp_control_release_owner()
91 asoc->stream.si->enqueue_event(&asoc->ulpq, ev); in sctp_control_release_owner()
99 struct sctp_association *asoc = chunk->asoc; in sctp_control_set_owner_w() local
110 chunk->shkey = asoc->shkey; in sctp_control_set_owner_w()
[all …]
Dsocket.c73 static int sctp_wait_for_sndbuf(struct sctp_association *asoc, long *timeo_p,
86 static int sctp_send_asconf(struct sctp_association *asoc,
105 static inline int sctp_wspace(struct sctp_association *asoc) in sctp_wspace() argument
107 struct sock *sk = asoc->base.sk; in sctp_wspace()
109 return asoc->ep->sndbuf_policy ? sk->sk_sndbuf - asoc->sndbuf_used in sctp_wspace()
124 struct sctp_association *asoc = chunk->asoc; in sctp_set_owner_w() local
125 struct sock *sk = asoc->base.sk; in sctp_set_owner_w()
128 sctp_association_hold(asoc); in sctp_set_owner_w()
140 asoc->sndbuf_used += chunk->skb->truesize + sizeof(struct sctp_chunk); in sctp_set_owner_w()
156 if ((clear && asoc->base.sk == c->skb->sk) || \
[all …]
Dauth.c222 const struct sctp_association *asoc, in sctp_auth_make_local_vector() argument
226 (struct sctp_random_param *)asoc->c.auth_random, in sctp_auth_make_local_vector()
227 (struct sctp_chunks_param *)asoc->c.auth_chunks, in sctp_auth_make_local_vector()
228 (struct sctp_hmac_algo_param *)asoc->c.auth_hmacs, gfp); in sctp_auth_make_local_vector()
233 const struct sctp_association *asoc, in sctp_auth_make_peer_vector() argument
236 return sctp_auth_make_key_vector(asoc->peer.peer_random, in sctp_auth_make_peer_vector()
237 asoc->peer.peer_chunks, in sctp_auth_make_peer_vector()
238 asoc->peer.peer_hmacs, in sctp_auth_make_peer_vector()
287 const struct sctp_association *asoc, in sctp_auth_asoc_create_secret() argument
311 local_key_vector = sctp_auth_make_local_vector(asoc, gfp); in sctp_auth_asoc_create_secret()
[all …]
Doutqueue.c69 oute = SCTP_SO(&q->asoc->stream, stream)->ext; in sctp_outq_head_data()
90 oute = SCTP_SO(&q->asoc->stream, stream)->ext; in sctp_outq_tail_data()
191 void sctp_outq_init(struct sctp_association *asoc, struct sctp_outq *q) in sctp_outq_init() argument
195 q->asoc = asoc; in sctp_outq_init()
201 sctp_sched_set_sched(asoc, sctp_sk(asoc->base.sk)->default_ss); in sctp_outq_init()
213 list_for_each_entry(transport, &q->asoc->peer.transport_addr_list, in __sctp_outq_teardown()
270 sctp_outq_init(q->asoc, q); in sctp_outq_teardown()
283 struct net *net = q->asoc->base.net; in sctp_outq_tail()
300 if (chunk->asoc->peer.prsctp_capable && in sctp_outq_tail()
302 chunk->asoc->sent_cnt_removable++; in sctp_outq_tail()
[all …]
Dstream_sched.c64 struct sctp_stream *stream = &q->asoc->stream; in sctp_sched_fcfs_dequeue()
134 int sctp_sched_set_sched(struct sctp_association *asoc, in sctp_sched_set_sched() argument
138 struct sctp_sched_ops *old = asoc->outqueue.sched; in sctp_sched_set_sched()
150 old->free(&asoc->stream); in sctp_sched_set_sched()
153 for (i = 0; i < asoc->stream.outcnt; i++) { in sctp_sched_set_sched()
154 void *p = SCTP_SO(&asoc->stream, i)->ext; in sctp_sched_set_sched()
165 asoc->outqueue.sched = n; in sctp_sched_set_sched()
166 n->init(&asoc->stream); in sctp_sched_set_sched()
167 for (i = 0; i < asoc->stream.outcnt; i++) { in sctp_sched_set_sched()
168 if (!SCTP_SO(&asoc->stream, i)->ext) in sctp_sched_set_sched()
[all …]
Dulpevent.c32 struct sctp_association *asoc);
77 const struct sctp_association *asoc) in sctp_ulpevent_set_owner() argument
85 sctp_association_hold((struct sctp_association *)asoc); in sctp_ulpevent_set_owner()
87 event->asoc = (struct sctp_association *)asoc; in sctp_ulpevent_set_owner()
88 atomic_add(event->rmem_len, &event->asoc->rmem_alloc); in sctp_ulpevent_set_owner()
89 sctp_skb_set_owner_r(skb, asoc->base.sk); in sctp_ulpevent_set_owner()
91 chunk->head_skb->sk = asoc->base.sk; in sctp_ulpevent_set_owner()
97 struct sctp_association *asoc = event->asoc; in sctp_ulpevent_release_owner() local
99 atomic_sub(event->rmem_len, &asoc->rmem_alloc); in sctp_ulpevent_release_owner()
100 sctp_association_put(asoc); in sctp_ulpevent_release_owner()
[all …]
Dchunk.c74 struct sctp_association *asoc = NULL; in sctp_datamsg_destroy() local
90 asoc = chunk->asoc; in sctp_datamsg_destroy()
91 error = msg->send_error ?: asoc->outqueue.error; in sctp_datamsg_destroy()
94 if (sctp_ulpevent_type_enabled(asoc->subscribe, in sctp_datamsg_destroy()
96 ev = sctp_ulpevent_make_send_failed(asoc, chunk, sent, in sctp_datamsg_destroy()
99 asoc->stream.si->enqueue_event(&asoc->ulpq, ev); in sctp_datamsg_destroy()
102 if (sctp_ulpevent_type_enabled(asoc->subscribe, in sctp_datamsg_destroy()
104 ev = sctp_ulpevent_make_send_failed_event(asoc, chunk, in sctp_datamsg_destroy()
108 asoc->stream.si->enqueue_event(&asoc->ulpq, ev); in sctp_datamsg_destroy()
146 struct sctp_datamsg *sctp_datamsg_from_user(struct sctp_association *asoc, in sctp_datamsg_from_user() argument
[all …]
Doutput.c77 struct sctp_association *asoc = tp->asoc; in sctp_packet_config() local
91 if (asoc) { in sctp_packet_config()
92 sk = asoc->base.sk; in sctp_packet_config()
98 if (!asoc) in sctp_packet_config()
104 if (asoc->param_flags & SPP_PMTUD_ENABLE) in sctp_packet_config()
105 sctp_assoc_sync_pmtu(asoc); in sctp_packet_config()
107 asoc->param_flags & SPP_PMTUD_ENABLE) { in sctp_packet_config()
109 sctp_assoc_sync_pmtu(asoc); in sctp_packet_config()
112 if (asoc->pmtu_pending) { in sctp_packet_config()
113 if (asoc->param_flags & SPP_PMTUD_ENABLE) in sctp_packet_config()
[all …]
Dtransport.c168 if (transport->asoc) in sctp_transport_destroy()
169 sctp_association_put(transport->asoc); in sctp_transport_destroy()
228 struct sctp_association *asoc) in sctp_transport_set_owner() argument
230 transport->asoc = asoc; in sctp_transport_set_owner()
231 sctp_association_hold(asoc); in sctp_transport_set_owner()
245 struct sctp_association *asoc = transport->asoc; in sctp_transport_pmtu() local
247 if (!transport->pathmtu && asoc && asoc->pathmtu) in sctp_transport_pmtu()
248 transport->pathmtu = asoc->pathmtu; in sctp_transport_pmtu()
266 t->pl.last_rtx_chunks = t->asoc->rtx_data_chunks; in sctp_transport_pl_send()
274 sctp_assoc_sync_pmtu(t->asoc); in sctp_transport_pl_send()
[all …]
Dinput.c88 struct sctp_association *asoc; in sctp_rcv() local
160 asoc = __sctp_rcv_lookup(net, skb, &src, &dest, &transport); in sctp_rcv()
162 if (!asoc) in sctp_rcv()
166 rcvr = asoc ? &asoc->base : &ep->base; in sctp_rcv()
177 asoc = NULL; in sctp_rcv()
197 if (!asoc) { in sctp_rcv()
212 chunk = sctp_chunkify(skb, asoc, sk, GFP_ATOMIC); in sctp_rcv()
387 void sctp_icmp_frag_needed(struct sock *sk, struct sctp_association *asoc, in sctp_icmp_frag_needed() argument
397 asoc->pmtu_pending = 1; in sctp_icmp_frag_needed()
417 sctp_assoc_sync_pmtu(asoc); in sctp_icmp_frag_needed()
[all …]
Ddiag.c28 struct sctp_association *asoc) in inet_diag_msg_sctpasoc_fill() argument
32 struct timer_list *t3_rtx = &asoc->peer.primary_path->T3_rtx_timer; in inet_diag_msg_sctpasoc_fill()
34 laddr = list_entry(asoc->base.bind_addr.address_list.next, in inet_diag_msg_sctpasoc_fill()
36 paddr = asoc->peer.primary_path->ipaddr; in inet_diag_msg_sctpasoc_fill()
37 dst = asoc->peer.primary_path->dst; in inet_diag_msg_sctpasoc_fill()
40 r->id.idiag_sport = htons(asoc->base.bind_addr.port); in inet_diag_msg_sctpasoc_fill()
41 r->id.idiag_dport = htons(asoc->peer.port); in inet_diag_msg_sctpasoc_fill()
59 r->idiag_state = asoc->state; in inet_diag_msg_sctpasoc_fill()
62 r->idiag_retrans = asoc->rtx_data_chunks; in inet_diag_msg_sctpasoc_fill()
94 struct sctp_association *asoc) in inet_diag_msg_sctpaddrs_fill() argument
[all …]
Dulpqueue.c42 struct sctp_association *asoc) in sctp_ulpq_init() argument
46 ulpq->asoc = asoc; in sctp_ulpq_init()
93 event = sctp_ulpevent_make_rcvmsg(chunk->asoc, chunk, gfp); in sctp_ulpq_tail_data()
128 int sctp_clear_pd(struct sock *sk, struct sctp_association *asoc) in sctp_clear_pd() argument
147 if (!skb_queue_empty(&sp->pd_lobby) && asoc) { in sctp_clear_pd()
153 if (event->asoc == asoc) { in sctp_clear_pd()
168 struct sctp_sock *sp = sctp_sk(ulpq->asoc->base.sk); in sctp_ulpq_set_pd()
179 return sctp_clear_pd(ulpq->asoc->base.sk, ulpq->asoc); in sctp_ulpq_clear_pd()
184 struct sock *sk = ulpq->asoc->base.sk; in sctp_ulpq_tail_event()
207 if (!sctp_ulpevent_is_enabled(event, ulpq->asoc->subscribe)) in sctp_ulpq_tail_event()
[all …]
Dendpointola.c152 struct sctp_association *asoc) in sctp_endpoint_add_asoc() argument
160 if (asoc->temp) in sctp_endpoint_add_asoc()
164 list_add_tail(&asoc->asocs, &ep->asocs); in sctp_endpoint_add_asoc()
272 struct sctp_association *asoc = NULL; in sctp_endpoint_lookup_assoc() local
289 asoc = t->asoc; in sctp_endpoint_lookup_assoc()
292 return asoc; in sctp_endpoint_lookup_assoc()
325 struct sctp_association *asoc; in sctp_endpoint_bh_rcv() local
339 asoc = NULL; in sctp_endpoint_bh_rcv()
376 if (NULL == chunk->asoc) { in sctp_endpoint_bh_rcv()
377 asoc = sctp_endpoint_lookup_assoc(ep, in sctp_endpoint_bh_rcv()
[all …]
Dstream_interleave.c25 const struct sctp_association *asoc, in sctp_make_idatafrag_empty() argument
38 retval = sctp_make_idata(asoc, flags, sizeof(dp) + len, gfp); in sctp_make_idatafrag_empty()
59 stream = &chunk->asoc->stream; in sctp_chunk_assign_mid()
98 stream = &chunk->asoc->stream; in sctp_validate_data()
117 stream = &chunk->asoc->stream; in sctp_validate_idata()
192 sin = sctp_stream_in(&ulpq->asoc->stream, event->stream); in sctp_intl_retrieve_partial()
244 retval = sctp_make_reassembled_event(ulpq->asoc->base.net, &ulpq->reasm, in sctp_intl_retrieve_partial()
261 struct sctp_association *asoc = ulpq->asoc; in sctp_intl_retrieve_reassembled() local
272 sin = sctp_stream_in(&ulpq->asoc->stream, event->stream); in sctp_intl_retrieve_reassembled()
326 pd_point = sctp_sk(asoc->base.sk)->pd_point; in sctp_intl_retrieve_reassembled()
[all …]
Dprimitive.c38 int sctp_primitive_ ## name(struct net *net, struct sctp_association *asoc, \
47 state = asoc ? asoc->state : SCTP_STATE_CLOSED; \
48 ep = asoc ? asoc->ep : NULL; \
50 error = sctp_do_sm(net, event_type, subtype, state, ep, asoc, \
Dstream_sched_rr.c111 stream = &q->asoc->stream; in sctp_sched_rr_enqueue()
117 struct sctp_stream *stream = &q->asoc->stream; in sctp_sched_rr_dequeue()
146 soute = SCTP_SO(&q->asoc->stream, sid)->ext; in sctp_sched_rr_dequeue_done()
148 sctp_sched_rr_next_stream(&q->asoc->stream); in sctp_sched_rr_dequeue_done()
151 sctp_sched_rr_unsched(&q->asoc->stream, soute); in sctp_sched_rr_dequeue_done()
156 struct sctp_association *asoc; in sctp_sched_rr_sched_all() local
160 asoc = container_of(stream, struct sctp_association, stream); in sctp_sched_rr_sched_all()
161 list_for_each_entry(ch, &asoc->outqueue.out_chunk_list, list) { in sctp_sched_rr_sched_all()
Dipv6.c129 struct sctp_association *asoc = t->asoc; in sctp_v6_err_handle() local
130 struct sock *sk = asoc->base.sk; in sctp_v6_err_handle()
137 sctp_icmp_frag_needed(sk, asoc, t, info); in sctp_v6_err_handle()
141 sctp_icmp_proto_unreachable(sk, asoc, t); in sctp_v6_err_handle()
168 struct sctp_association *asoc; in sctp_v6_err() local
177 sk = sctp_err_lookup(net, AF_INET6, skb, sctp_hdr(skb), &asoc, &transport); in sctp_v6_err()
195 struct sctp_association *asoc; in sctp_udp_v6_err() local
201 sk = sctp_err_lookup(net, AF_INET6, skb, sctp_hdr(skb), &asoc, &t); in sctp_udp_v6_err()
277 struct sctp_association *asoc = t->asoc; in sctp_v6_get_dst() local
296 else if (asoc) in sctp_v6_get_dst()
[all …]
Dproc.c79 struct sctp_association *asoc; in sctp_seq_dump_local_addrs() local
86 asoc = sctp_assoc(epb); in sctp_seq_dump_local_addrs()
88 peer = asoc->peer.primary_path; in sctp_seq_dump_local_addrs()
90 WARN(1, "Association %p with NULL primary path!\n", asoc); in sctp_seq_dump_local_addrs()
260 assoc = transport->asoc; in sctp_assocs_seq_show()
314 assoc = transport->asoc; in sctp_remaddr_seq_show()
326 seq_printf(seq, "%d ", tsp->asoc->assoc_id); in sctp_remaddr_seq_show()
Dstream_sched_prio.c250 stream = &q->asoc->stream; in sctp_sched_prio_enqueue()
256 struct sctp_stream *stream = &q->asoc->stream; in sctp_sched_prio_dequeue()
293 soute = SCTP_SO(&q->asoc->stream, sid)->ext; in sctp_sched_prio_dequeue_done()
304 struct sctp_association *asoc; in sctp_sched_prio_sched_all() local
308 asoc = container_of(stream, struct sctp_association, stream); in sctp_sched_prio_sched_all()
309 list_for_each_entry(ch, &asoc->outqueue.out_chunk_list, list) { in sctp_sched_prio_sched_all()
Dprotocol.c418 struct sctp_association *asoc = t->asoc; in sctp_v4_get_dst() local
435 if (asoc) { in sctp_v4_get_dst()
436 fl4->flowi4_tos = RT_CONN_FLAGS_TOS(asoc->base.sk, tos); in sctp_v4_get_dst()
437 fl4->flowi4_oif = asoc->base.sk->sk_bound_dev_if; in sctp_v4_get_dst()
438 fl4->fl4_sport = htons(asoc->base.bind_addr.port); in sctp_v4_get_dst()
459 if (!asoc || saddr) in sctp_v4_get_dst()
462 bp = &asoc->base.bind_addr; in sctp_v4_get_dst()
473 !asoc->src_out_of_asoc_ok)) in sctp_v4_get_dst()
502 asoc->base.sk->sk_bound_dev_if, in sctp_v4_get_dst()
503 RT_CONN_FLAGS_TOS(asoc->base.sk, tos), in sctp_v4_get_dst()
[all …]
Dinqueue.c78 if (chunk->asoc) in sctp_inq_push()
79 chunk->asoc->stats.ipackets++; in sctp_inq_push()
176 if (chunk->asoc) in sctp_inq_pop()
177 sock_rps_save_rxhash(chunk->asoc->base.sk, chunk->skb); in sctp_inq_pop()

12