• Home
  • Raw
  • Download

Lines Matching refs:asoc

58 				struct sctp_association *asoc,
66 struct sctp_association *asoc,
79 static void sctp_do_ecn_ce_work(struct sctp_association *asoc, in sctp_do_ecn_ce_work() argument
84 asoc->last_ecne_tsn = lowest_tsn; in sctp_do_ecn_ce_work()
85 asoc->need_ecne = 1; in sctp_do_ecn_ce_work()
100 static struct sctp_chunk *sctp_do_ecn_ecne_work(struct sctp_association *asoc, in sctp_do_ecn_ecne_work() argument
116 if (TSN_lt(asoc->last_cwr_tsn, lowest_tsn)) { in sctp_do_ecn_ecne_work()
122 transport = sctp_assoc_lookup_tsn(asoc, lowest_tsn); in sctp_do_ecn_ecne_work()
128 asoc->last_cwr_tsn = lowest_tsn; in sctp_do_ecn_ecne_work()
134 repl = sctp_make_cwr(asoc, asoc->last_cwr_tsn, chunk); in sctp_do_ecn_ecne_work()
143 static void sctp_do_ecn_cwr_work(struct sctp_association *asoc, in sctp_do_ecn_cwr_work() argument
149 asoc->need_ecne = 0; in sctp_do_ecn_cwr_work()
153 static int sctp_gen_sack(struct sctp_association *asoc, int force, in sctp_gen_sack() argument
158 struct sctp_transport *trans = asoc->peer.last_data_from; in sctp_gen_sack()
162 (!trans && (asoc->param_flags & SPP_SACKDELAY_DISABLE)) || in sctp_gen_sack()
164 asoc->peer.sack_needed = 1; in sctp_gen_sack()
166 ctsn = sctp_tsnmap_get_ctsn(&asoc->peer.tsn_map); in sctp_gen_sack()
167 max_tsn_seen = sctp_tsnmap_get_max_tsn_seen(&asoc->peer.tsn_map); in sctp_gen_sack()
180 asoc->peer.sack_needed = 1; in sctp_gen_sack()
190 if (!asoc->peer.sack_needed) { in sctp_gen_sack()
191 asoc->peer.sack_cnt++; in sctp_gen_sack()
200 if (asoc->peer.sack_cnt >= trans->sackfreq - 1) in sctp_gen_sack()
201 asoc->peer.sack_needed = 1; in sctp_gen_sack()
203 asoc->timeouts[SCTP_EVENT_TIMEOUT_SACK] = in sctp_gen_sack()
207 if (asoc->peer.sack_cnt >= asoc->sackfreq - 1) in sctp_gen_sack()
208 asoc->peer.sack_needed = 1; in sctp_gen_sack()
210 asoc->timeouts[SCTP_EVENT_TIMEOUT_SACK] = in sctp_gen_sack()
211 asoc->sackdelay; in sctp_gen_sack()
218 asoc->a_rwnd = asoc->rwnd; in sctp_gen_sack()
219 sack = sctp_make_sack(asoc); in sctp_gen_sack()
223 asoc->peer.sack_needed = 0; in sctp_gen_sack()
224 asoc->peer.sack_cnt = 0; in sctp_gen_sack()
246 struct sctp_association *asoc = transport->asoc; in sctp_generate_t3_rtx_event() local
247 struct net *net = sock_net(asoc->base.sk); in sctp_generate_t3_rtx_event()
251 bh_lock_sock(asoc->base.sk); in sctp_generate_t3_rtx_event()
252 if (sock_owned_by_user(asoc->base.sk)) { in sctp_generate_t3_rtx_event()
270 asoc->state, in sctp_generate_t3_rtx_event()
271 asoc->ep, asoc, in sctp_generate_t3_rtx_event()
275 asoc->base.sk->sk_err = -error; in sctp_generate_t3_rtx_event()
278 bh_unlock_sock(asoc->base.sk); in sctp_generate_t3_rtx_event()
285 static void sctp_generate_timeout_event(struct sctp_association *asoc, in sctp_generate_timeout_event() argument
288 struct net *net = sock_net(asoc->base.sk); in sctp_generate_timeout_event()
291 bh_lock_sock(asoc->base.sk); in sctp_generate_timeout_event()
292 if (sock_owned_by_user(asoc->base.sk)) { in sctp_generate_timeout_event()
297 if (!mod_timer(&asoc->timers[timeout_type], jiffies + (HZ/20))) in sctp_generate_timeout_event()
298 sctp_association_hold(asoc); in sctp_generate_timeout_event()
305 if (asoc->base.dead) in sctp_generate_timeout_event()
311 asoc->state, asoc->ep, asoc, in sctp_generate_timeout_event()
315 asoc->base.sk->sk_err = -error; in sctp_generate_timeout_event()
318 bh_unlock_sock(asoc->base.sk); in sctp_generate_timeout_event()
319 sctp_association_put(asoc); in sctp_generate_timeout_event()
324 struct sctp_association *asoc = (struct sctp_association *) data; in sctp_generate_t1_cookie_event() local
325 sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_T1_COOKIE); in sctp_generate_t1_cookie_event()
330 struct sctp_association *asoc = (struct sctp_association *) data; in sctp_generate_t1_init_event() local
331 sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_T1_INIT); in sctp_generate_t1_init_event()
336 struct sctp_association *asoc = (struct sctp_association *) data; in sctp_generate_t2_shutdown_event() local
337 sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_T2_SHUTDOWN); in sctp_generate_t2_shutdown_event()
342 struct sctp_association *asoc = (struct sctp_association *) data; in sctp_generate_t4_rto_event() local
343 sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_T4_RTO); in sctp_generate_t4_rto_event()
348 struct sctp_association *asoc = (struct sctp_association *)data; in sctp_generate_t5_shutdown_guard_event() local
349 sctp_generate_timeout_event(asoc, in sctp_generate_t5_shutdown_guard_event()
356 struct sctp_association *asoc = (struct sctp_association *) data; in sctp_generate_autoclose_event() local
357 sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_AUTOCLOSE); in sctp_generate_autoclose_event()
367 struct sctp_association *asoc = transport->asoc; in sctp_generate_heartbeat_event() local
368 struct net *net = sock_net(asoc->base.sk); in sctp_generate_heartbeat_event()
370 bh_lock_sock(asoc->base.sk); in sctp_generate_heartbeat_event()
371 if (sock_owned_by_user(asoc->base.sk)) { in sctp_generate_heartbeat_event()
388 asoc->state, asoc->ep, asoc, in sctp_generate_heartbeat_event()
392 asoc->base.sk->sk_err = -error; in sctp_generate_heartbeat_event()
395 bh_unlock_sock(asoc->base.sk); in sctp_generate_heartbeat_event()
405 struct sctp_association *asoc = transport->asoc; in sctp_generate_proto_unreach_event() local
406 struct net *net = sock_net(asoc->base.sk); in sctp_generate_proto_unreach_event()
408 bh_lock_sock(asoc->base.sk); in sctp_generate_proto_unreach_event()
409 if (sock_owned_by_user(asoc->base.sk)) { in sctp_generate_proto_unreach_event()
415 sctp_association_hold(asoc); in sctp_generate_proto_unreach_event()
422 if (asoc->base.dead) in sctp_generate_proto_unreach_event()
427 asoc->state, asoc->ep, asoc, transport, GFP_ATOMIC); in sctp_generate_proto_unreach_event()
430 bh_unlock_sock(asoc->base.sk); in sctp_generate_proto_unreach_event()
431 sctp_association_put(asoc); in sctp_generate_proto_unreach_event()
438 struct sctp_association *asoc = (struct sctp_association *) data; in sctp_generate_sack_event() local
439 sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_SACK); in sctp_generate_sack_event()
472 struct sctp_association *asoc, in sctp_do_8_2_transport_strike() argument
487 asoc->overall_error_count++; in sctp_do_8_2_transport_strike()
492 asoc->overall_error_count++; in sctp_do_8_2_transport_strike()
503 (asoc->pf_retrans < transport->pathmaxrxt) && in sctp_do_8_2_transport_strike()
504 (transport->error_count > asoc->pf_retrans)) { in sctp_do_8_2_transport_strike()
506 sctp_assoc_control_transport(asoc, transport, in sctp_do_8_2_transport_strike()
517 __func__, asoc, &transport->ipaddr.sa); in sctp_do_8_2_transport_strike()
519 sctp_assoc_control_transport(asoc, transport, in sctp_do_8_2_transport_strike()
534 transport->rto = min((transport->rto * 2), transport->asoc->rto_max); in sctp_do_8_2_transport_strike()
535 sctp_max_rto(asoc, transport); in sctp_do_8_2_transport_strike()
541 struct sctp_association *asoc, in sctp_cmd_init_failed() argument
546 event = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_CANT_STR_ASSOC, in sctp_cmd_init_failed()
558 asoc->outqueue.error = error; in sctp_cmd_init_failed()
564 struct sctp_association *asoc, in sctp_cmd_assoc_failed() argument
573 sctp_ulpq_abort_pd(&asoc->ulpq, GFP_ATOMIC); in sctp_cmd_assoc_failed()
576 event = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_COMM_LOST, in sctp_cmd_assoc_failed()
580 event = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_COMM_LOST, in sctp_cmd_assoc_failed()
587 if (asoc->overall_error_count >= asoc->max_retrans) { in sctp_cmd_assoc_failed()
588 abort = sctp_make_violation_max_retrans(asoc, chunk); in sctp_cmd_assoc_failed()
598 asoc->outqueue.error = error; in sctp_cmd_assoc_failed()
608 struct sctp_association *asoc, in sctp_cmd_process_init() argument
620 if (!sctp_process_init(asoc, chunk, sctp_source(chunk), peer_init, gfp)) in sctp_cmd_process_init()
630 struct sctp_association *asoc) in sctp_cmd_hb_timers_start() argument
638 list_for_each_entry(t, &asoc->peer.transport_addr_list, transports) { in sctp_cmd_hb_timers_start()
646 struct sctp_association *asoc) in sctp_cmd_hb_timers_stop() argument
652 list_for_each_entry(t, &asoc->peer.transport_addr_list, in sctp_cmd_hb_timers_stop()
661 struct sctp_association *asoc) in sctp_cmd_t3_rtx_timers_stop() argument
665 list_for_each_entry(t, &asoc->peer.transport_addr_list, in sctp_cmd_t3_rtx_timers_stop()
684 struct sctp_association *asoc, in sctp_cmd_transport_on() argument
705 if (t->asoc->state != SCTP_STATE_SHUTDOWN_PENDING) in sctp_cmd_transport_on()
706 t->asoc->overall_error_count = 0; in sctp_cmd_transport_on()
718 sctp_assoc_control_transport(asoc, t, SCTP_TRANSPORT_UP, in sctp_cmd_transport_on()
723 sctp_assoc_control_transport(asoc, t, SCTP_TRANSPORT_UP, in sctp_cmd_transport_on()
749 if (was_unconfirmed && asoc->peer.transport_count == 1) in sctp_cmd_transport_on()
756 struct sctp_association *asoc, in sctp_cmd_process_sack() argument
761 if (sctp_outq_sack(&asoc->outqueue, chunk)) { in sctp_cmd_process_sack()
762 struct net *net = sock_net(asoc->base.sk); in sctp_cmd_process_sack()
767 asoc->state, asoc->ep, asoc, NULL, in sctp_cmd_process_sack()
778 struct sctp_association *asoc, in sctp_cmd_setup_t2() argument
786 t = sctp_assoc_choose_alter_transport(asoc, in sctp_cmd_setup_t2()
787 asoc->shutdown_last_sent_to); in sctp_cmd_setup_t2()
790 asoc->shutdown_last_sent_to = t; in sctp_cmd_setup_t2()
791 asoc->timeouts[SCTP_EVENT_TIMEOUT_T2_SHUTDOWN] = t->rto; in sctp_cmd_setup_t2()
796 struct sctp_association *asoc, in sctp_cmd_new_state() argument
799 struct sock *sk = asoc->base.sk; in sctp_cmd_new_state()
801 asoc->state = state; in sctp_cmd_new_state()
803 pr_debug("%s: asoc:%p[%s]\n", __func__, asoc, sctp_state_tbl[state]); in sctp_cmd_new_state()
809 if (sctp_state(asoc, ESTABLISHED) && sctp_sstate(sk, CLOSED)) in sctp_cmd_new_state()
813 if (sctp_state(asoc, SHUTDOWN_RECEIVED) && in sctp_cmd_new_state()
818 if (sctp_state(asoc, COOKIE_WAIT)) { in sctp_cmd_new_state()
822 asoc->timeouts[SCTP_EVENT_TIMEOUT_T1_INIT] = in sctp_cmd_new_state()
823 asoc->rto_initial; in sctp_cmd_new_state()
824 asoc->timeouts[SCTP_EVENT_TIMEOUT_T1_COOKIE] = in sctp_cmd_new_state()
825 asoc->rto_initial; in sctp_cmd_new_state()
828 if (sctp_state(asoc, ESTABLISHED) || in sctp_cmd_new_state()
829 sctp_state(asoc, CLOSED) || in sctp_cmd_new_state()
830 sctp_state(asoc, SHUTDOWN_RECEIVED)) { in sctp_cmd_new_state()
834 if (waitqueue_active(&asoc->wait)) in sctp_cmd_new_state()
835 wake_up_interruptible(&asoc->wait); in sctp_cmd_new_state()
850 struct sctp_association *asoc) in sctp_cmd_delete_tcb() argument
852 struct sock *sk = asoc->base.sk; in sctp_cmd_delete_tcb()
859 (!asoc->temp) && (sk->sk_shutdown != SHUTDOWN_MASK)) in sctp_cmd_delete_tcb()
862 sctp_unhash_established(asoc); in sctp_cmd_delete_tcb()
863 sctp_association_free(asoc); in sctp_cmd_delete_tcb()
873 struct sctp_association *asoc, in sctp_cmd_setup_t4() argument
878 t = sctp_assoc_choose_alter_transport(asoc, chunk->transport); in sctp_cmd_setup_t4()
879 asoc->timeouts[SCTP_EVENT_TIMEOUT_T4_RTO] = t->rto; in sctp_cmd_setup_t4()
885 struct sctp_association *asoc, in sctp_cmd_process_operr() argument
894 ev = sctp_ulpevent_make_remote_error(asoc, chunk, 0, in sctp_cmd_process_operr()
899 sctp_ulpq_tail_event(&asoc->ulpq, ev); in sctp_cmd_process_operr()
915 if (asoc->peer.asconf_capable == 0) in sctp_cmd_process_operr()
918 asoc->peer.asconf_capable = 0; in sctp_cmd_process_operr()
947 static void sctp_cmd_del_non_primary(struct sctp_association *asoc) in sctp_cmd_del_non_primary() argument
953 list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) { in sctp_cmd_del_non_primary()
956 &asoc->peer.primary_addr)) { in sctp_cmd_del_non_primary()
957 sctp_assoc_del_peer(asoc, &t->ipaddr); in sctp_cmd_del_non_primary()
963 static void sctp_cmd_set_sk_err(struct sctp_association *asoc, int error) in sctp_cmd_set_sk_err() argument
965 struct sock *sk = asoc->base.sk; in sctp_cmd_set_sk_err()
973 struct sctp_association *asoc, in sctp_cmd_assoc_change() argument
978 ev = sctp_ulpevent_make_assoc_change(asoc, 0, state, 0, in sctp_cmd_assoc_change()
979 asoc->c.sinit_num_ostreams, in sctp_cmd_assoc_change()
980 asoc->c.sinit_max_instreams, in sctp_cmd_assoc_change()
983 sctp_ulpq_tail_event(&asoc->ulpq, ev); in sctp_cmd_assoc_change()
988 struct sctp_association *asoc) in sctp_cmd_adaptation_ind() argument
992 ev = sctp_ulpevent_make_adaptation_indication(asoc, GFP_ATOMIC); in sctp_cmd_adaptation_ind()
995 sctp_ulpq_tail_event(&asoc->ulpq, ev); in sctp_cmd_adaptation_ind()
999 static void sctp_cmd_t1_timer_update(struct sctp_association *asoc, in sctp_cmd_t1_timer_update() argument
1005 t = asoc->init_last_sent_to; in sctp_cmd_t1_timer_update()
1006 asoc->init_err_counter++; in sctp_cmd_t1_timer_update()
1008 if (t->init_sent_count > (asoc->init_cycle + 1)) { in sctp_cmd_t1_timer_update()
1009 asoc->timeouts[timer] *= 2; in sctp_cmd_t1_timer_update()
1010 if (asoc->timeouts[timer] > asoc->max_init_timeo) { in sctp_cmd_t1_timer_update()
1011 asoc->timeouts[timer] = asoc->max_init_timeo; in sctp_cmd_t1_timer_update()
1013 asoc->init_cycle++; in sctp_cmd_t1_timer_update()
1017 asoc->init_err_counter, asoc->init_cycle, in sctp_cmd_t1_timer_update()
1018 asoc->timeouts[timer]); in sctp_cmd_t1_timer_update()
1027 static int sctp_cmd_send_msg(struct sctp_association *asoc, in sctp_cmd_send_msg() argument
1034 error = sctp_outq_tail(&asoc->outqueue, chunk); in sctp_cmd_send_msg()
1046 static void sctp_cmd_send_asconf(struct sctp_association *asoc) in sctp_cmd_send_asconf() argument
1048 struct net *net = sock_net(asoc->base.sk); in sctp_cmd_send_asconf()
1053 if (!list_empty(&asoc->addip_chunk_list)) { in sctp_cmd_send_asconf()
1054 struct list_head *entry = asoc->addip_chunk_list.next; in sctp_cmd_send_asconf()
1061 if (sctp_primitive_ASCONF(net, asoc, asconf)) in sctp_cmd_send_asconf()
1064 asoc->addip_last_asconf = asconf; in sctp_cmd_send_asconf()
1076 asoc, sctp_state_tbl[state], state_fn->name)
1079 pr_debug("%s[post-fn]: asoc:%p, status:%s\n", __func__, asoc, \
1084 asoc, sctp_state_tbl[(asoc && sctp_id2assoc(ep->base.sk, \
1085 sctp_assoc2id(asoc))) ? asoc->state : SCTP_STATE_CLOSED])
1096 struct sctp_association *asoc, in sctp_do_sm() argument
1118 status = state_fn->fn(net, ep, asoc, subtype, event_arg, &commands); in sctp_do_sm()
1122 ep, asoc, event_arg, status, in sctp_do_sm()
1135 struct sctp_association *asoc, in sctp_side_effects() argument
1150 ep, asoc, in sctp_side_effects()
1220 struct sctp_association *asoc, in sctp_cmd_interpreter() argument
1257 sctp_outq_uncork(&asoc->outqueue); in sctp_cmd_interpreter()
1262 asoc = cmd->obj.asoc; in sctp_cmd_interpreter()
1263 BUG_ON(asoc->peer.primary_path == NULL); in sctp_cmd_interpreter()
1264 sctp_endpoint_add_asoc(ep, asoc); in sctp_cmd_interpreter()
1265 sctp_hash_established(asoc); in sctp_cmd_interpreter()
1269 sctp_assoc_update(asoc, cmd->obj.asoc); in sctp_cmd_interpreter()
1273 sctp_outq_teardown(&asoc->outqueue); in sctp_cmd_interpreter()
1278 sctp_outq_uncork(&asoc->outqueue); in sctp_cmd_interpreter()
1282 sctp_cmd_delete_tcb(commands, asoc); in sctp_cmd_interpreter()
1283 asoc = NULL; in sctp_cmd_interpreter()
1288 sctp_cmd_new_state(commands, asoc, cmd->obj.state); in sctp_cmd_interpreter()
1293 error = sctp_tsnmap_mark(&asoc->peer.tsn_map, in sctp_cmd_interpreter()
1299 sctp_tsnmap_skip(&asoc->peer.tsn_map, cmd->obj.u32); in sctp_cmd_interpreter()
1302 sctp_ulpq_reasm_flushtsn(&asoc->ulpq, cmd->obj.u32); in sctp_cmd_interpreter()
1305 sctp_ulpq_abort_pd(&asoc->ulpq, GFP_ATOMIC); in sctp_cmd_interpreter()
1309 sctp_cmd_process_fwdtsn(&asoc->ulpq, cmd->obj.chunk); in sctp_cmd_interpreter()
1319 error = sctp_gen_sack(asoc, force, commands); in sctp_cmd_interpreter()
1324 error = sctp_cmd_process_sack(commands, asoc, in sctp_cmd_interpreter()
1330 new_obj = sctp_make_init_ack(asoc, chunk, GFP_ATOMIC, in sctp_cmd_interpreter()
1345 error = sctp_cmd_process_init(commands, asoc, chunk, in sctp_cmd_interpreter()
1351 new_obj = sctp_make_cookie_echo(asoc, chunk); in sctp_cmd_interpreter()
1369 asoc->init_last_sent_to = new_obj->transport; in sctp_cmd_interpreter()
1384 if ((asoc->peer.retran_path != in sctp_cmd_interpreter()
1385 asoc->peer.primary_path) && in sctp_cmd_interpreter()
1386 (asoc->init_err_counter > 0)) { in sctp_cmd_interpreter()
1398 asoc->overall_error_count = 0; in sctp_cmd_interpreter()
1401 new_obj = sctp_make_shutdown(asoc, chunk); in sctp_cmd_interpreter()
1411 __func__, cmd->obj.chunk, &asoc->ulpq); in sctp_cmd_interpreter()
1413 sctp_ulpq_tail_data(&asoc->ulpq, cmd->obj.chunk, in sctp_cmd_interpreter()
1420 __func__, cmd->obj.ulpevent, &asoc->ulpq); in sctp_cmd_interpreter()
1422 sctp_ulpq_tail_event(&asoc->ulpq, cmd->obj.ulpevent); in sctp_cmd_interpreter()
1427 if (!asoc->outqueue.cork) { in sctp_cmd_interpreter()
1428 sctp_outq_cork(&asoc->outqueue); in sctp_cmd_interpreter()
1432 error = sctp_outq_tail(&asoc->outqueue, cmd->obj.chunk); in sctp_cmd_interpreter()
1444 sctp_retransmit(&asoc->outqueue, cmd->obj.transport, in sctp_cmd_interpreter()
1450 sctp_retransmit(&asoc->outqueue, cmd->obj.transport, in sctp_cmd_interpreter()
1456 sctp_do_ecn_ce_work(asoc, cmd->obj.u32); in sctp_cmd_interpreter()
1461 new_obj = sctp_do_ecn_ecne_work(asoc, cmd->obj.u32, in sctp_cmd_interpreter()
1470 sctp_do_ecn_cwr_work(asoc, cmd->obj.u32); in sctp_cmd_interpreter()
1474 sctp_cmd_setup_t2(commands, asoc, cmd->obj.chunk); in sctp_cmd_interpreter()
1478 timer = &asoc->timers[cmd->obj.to]; in sctp_cmd_interpreter()
1485 timer = &asoc->timers[cmd->obj.to]; in sctp_cmd_interpreter()
1486 timeout = asoc->timeouts[cmd->obj.to]; in sctp_cmd_interpreter()
1490 sctp_association_hold(asoc); in sctp_cmd_interpreter()
1495 timer = &asoc->timers[cmd->obj.to]; in sctp_cmd_interpreter()
1496 timeout = asoc->timeouts[cmd->obj.to]; in sctp_cmd_interpreter()
1498 sctp_association_hold(asoc); in sctp_cmd_interpreter()
1502 timer = &asoc->timers[cmd->obj.to]; in sctp_cmd_interpreter()
1504 sctp_association_put(asoc); in sctp_cmd_interpreter()
1509 t = sctp_assoc_choose_alter_transport(asoc, in sctp_cmd_interpreter()
1510 asoc->init_last_sent_to); in sctp_cmd_interpreter()
1511 asoc->init_last_sent_to = t; in sctp_cmd_interpreter()
1515 sctp_assoc_set_primary(asoc, t); in sctp_cmd_interpreter()
1525 sctp_cmd_t1_timer_update(asoc, in sctp_cmd_interpreter()
1540 sctp_cmd_t1_timer_update(asoc, in sctp_cmd_interpreter()
1547 list_for_each_entry(t, &asoc->peer.transport_addr_list, in sctp_cmd_interpreter()
1549 sctp_retransmit_mark(&asoc->outqueue, t, in sctp_cmd_interpreter()
1559 sctp_cmd_init_failed(commands, asoc, cmd->obj.err); in sctp_cmd_interpreter()
1563 sctp_cmd_assoc_failed(commands, asoc, event_type, in sctp_cmd_interpreter()
1568 asoc->init_err_counter++; in sctp_cmd_interpreter()
1572 asoc->init_err_counter = 0; in sctp_cmd_interpreter()
1573 asoc->init_cycle = 0; in sctp_cmd_interpreter()
1574 list_for_each_entry(t, &asoc->peer.transport_addr_list, in sctp_cmd_interpreter()
1581 sctp_tsnmap_mark_dup(&asoc->peer.tsn_map, in sctp_cmd_interpreter()
1591 sctp_do_8_2_transport_strike(commands, asoc, in sctp_cmd_interpreter()
1602 sctp_do_8_2_transport_strike(commands, asoc, in sctp_cmd_interpreter()
1609 sctp_cmd_transport_on(commands, asoc, t, chunk); in sctp_cmd_interpreter()
1613 sctp_cmd_hb_timers_start(commands, asoc); in sctp_cmd_interpreter()
1622 sctp_cmd_hb_timers_stop(commands, asoc); in sctp_cmd_interpreter()
1632 sackh.a_rwnd = asoc->peer.rwnd + in sctp_cmd_interpreter()
1633 asoc->outqueue.outstanding_bytes; in sctp_cmd_interpreter()
1647 if (asoc) { in sctp_cmd_interpreter()
1648 sctp_outq_uncork(&asoc->outqueue); in sctp_cmd_interpreter()
1659 sctp_ulpq_partial_delivery(&asoc->ulpq, GFP_ATOMIC); in sctp_cmd_interpreter()
1663 sctp_ulpq_renege(&asoc->ulpq, cmd->obj.chunk, in sctp_cmd_interpreter()
1668 sctp_cmd_setup_t4(commands, asoc, cmd->obj.chunk); in sctp_cmd_interpreter()
1672 sctp_cmd_process_operr(commands, asoc, chunk); in sctp_cmd_interpreter()
1675 asoc->peer.i.init_tag = 0; in sctp_cmd_interpreter()
1678 sctp_cmd_del_non_primary(asoc); in sctp_cmd_interpreter()
1681 sctp_cmd_t3_rtx_timers_stop(commands, asoc); in sctp_cmd_interpreter()
1684 t = asoc->peer.retran_path; in sctp_cmd_interpreter()
1685 asoc->peer.retran_path = asoc->peer.primary_path; in sctp_cmd_interpreter()
1686 error = sctp_outq_uncork(&asoc->outqueue); in sctp_cmd_interpreter()
1688 asoc->peer.retran_path = t; in sctp_cmd_interpreter()
1691 sctp_cmd_set_sk_err(asoc, cmd->obj.error); in sctp_cmd_interpreter()
1694 sctp_cmd_assoc_change(commands, asoc, in sctp_cmd_interpreter()
1698 sctp_cmd_adaptation_ind(commands, asoc); in sctp_cmd_interpreter()
1702 error = sctp_auth_asoc_init_active_key(asoc, in sctp_cmd_interpreter()
1706 asoc->peer.i.init_tag = cmd->obj.u32; in sctp_cmd_interpreter()
1709 if (!asoc->outqueue.cork) { in sctp_cmd_interpreter()
1710 sctp_outq_cork(&asoc->outqueue); in sctp_cmd_interpreter()
1713 error = sctp_cmd_send_msg(asoc, cmd->obj.msg); in sctp_cmd_interpreter()
1716 sctp_cmd_send_asconf(asoc); in sctp_cmd_interpreter()
1719 sctp_asconf_queue_teardown(asoc); in sctp_cmd_interpreter()
1723 asoc = cmd->obj.asoc; in sctp_cmd_interpreter()
1741 if (asoc && SCTP_EVENT_T_CHUNK == event_type && chunk) { in sctp_cmd_interpreter()
1743 error = sctp_outq_uncork(&asoc->outqueue); in sctp_cmd_interpreter()
1745 error = sctp_outq_uncork(&asoc->outqueue); in sctp_cmd_interpreter()