Lines Matching full:transport
102 struct sctp_transport *transport; in sctp_do_ecn_ecne_work() local
104 /* Find which transport's congestion variables in sctp_do_ecn_ecne_work()
107 transport = sctp_assoc_lookup_tsn(asoc, lowest_tsn); in sctp_do_ecn_ecne_work()
110 if (transport) in sctp_do_ecn_ecne_work()
111 sctp_transport_lower_cwnd(transport, in sctp_do_ecn_ecne_work()
179 * SACK delay for the last transport in sctp_gen_sack()
233 struct sctp_transport *transport = in sctp_generate_t3_rtx_event() local
234 from_timer(transport, t, T3_rtx_timer); in sctp_generate_t3_rtx_event()
235 struct sctp_association *asoc = transport->asoc; in sctp_generate_t3_rtx_event()
247 if (!mod_timer(&transport->T3_rtx_timer, jiffies + (HZ/20))) in sctp_generate_t3_rtx_event()
248 sctp_transport_hold(transport); in sctp_generate_t3_rtx_event()
257 transport, GFP_ATOMIC); in sctp_generate_t3_rtx_event()
264 sctp_transport_put(transport); in sctp_generate_t3_rtx_event()
360 * sure that the transport is still valid.
364 struct sctp_transport *transport = from_timer(transport, t, hb_timer); in sctp_generate_heartbeat_event() local
365 struct sctp_association *asoc = transport->asoc; in sctp_generate_heartbeat_event()
376 if (!mod_timer(&transport->hb_timer, jiffies + (HZ/20))) in sctp_generate_heartbeat_event()
377 sctp_transport_hold(transport); in sctp_generate_heartbeat_event()
382 elapsed = jiffies - transport->last_time_sent; in sctp_generate_heartbeat_event()
383 timeout = sctp_transport_timeout(transport); in sctp_generate_heartbeat_event()
386 if (!mod_timer(&transport->hb_timer, jiffies + elapsed)) in sctp_generate_heartbeat_event()
387 sctp_transport_hold(transport); in sctp_generate_heartbeat_event()
394 transport, GFP_ATOMIC); in sctp_generate_heartbeat_event()
401 sctp_transport_put(transport); in sctp_generate_heartbeat_event()
409 struct sctp_transport *transport = in sctp_generate_proto_unreach_event() local
410 from_timer(transport, t, proto_unreach_timer); in sctp_generate_proto_unreach_event()
411 struct sctp_association *asoc = transport->asoc; in sctp_generate_proto_unreach_event()
420 if (!mod_timer(&transport->proto_unreach_timer, in sctp_generate_proto_unreach_event()
422 sctp_transport_hold(transport); in sctp_generate_proto_unreach_event()
434 asoc->state, asoc->ep, asoc, transport, GFP_ATOMIC); in sctp_generate_proto_unreach_event()
438 sctp_transport_put(transport); in sctp_generate_proto_unreach_event()
444 struct sctp_transport *transport = in sctp_generate_reconf_event() local
445 from_timer(transport, t, reconf_timer); in sctp_generate_reconf_event()
446 struct sctp_association *asoc = transport->asoc; in sctp_generate_reconf_event()
456 if (!mod_timer(&transport->reconf_timer, jiffies + (HZ / 20))) in sctp_generate_reconf_event()
457 sctp_transport_hold(transport); in sctp_generate_reconf_event()
464 transport, GFP_ATOMIC); in sctp_generate_reconf_event()
471 sctp_transport_put(transport); in sctp_generate_reconf_event()
502 * error counter for each of the destination transport addresses of the
510 * mark the destination transport address as inactive, and a
516 struct sctp_transport *transport, in sctp_do_8_2_transport_strike() argument
531 if (transport->state != SCTP_INACTIVE) in sctp_do_8_2_transport_strike()
532 transport->error_count++; in sctp_do_8_2_transport_strike()
533 } else if (transport->hb_sent) { in sctp_do_8_2_transport_strike()
534 if (transport->state != SCTP_UNCONFIRMED) in sctp_do_8_2_transport_strike()
536 if (transport->state != SCTP_INACTIVE) in sctp_do_8_2_transport_strike()
537 transport->error_count++; in sctp_do_8_2_transport_strike()
540 /* If the transport error count is greater than the pf_retrans in sctp_do_8_2_transport_strike()
542 * is SCTP_ACTIVE, then mark this transport as Partially Failed, in sctp_do_8_2_transport_strike()
546 transport->state == SCTP_ACTIVE && in sctp_do_8_2_transport_strike()
547 transport->error_count < transport->pathmaxrxt && in sctp_do_8_2_transport_strike()
548 transport->error_count > transport->pf_retrans) { in sctp_do_8_2_transport_strike()
550 sctp_assoc_control_transport(asoc, transport, in sctp_do_8_2_transport_strike()
555 sctp_transport_reset_hb_timer(transport); in sctp_do_8_2_transport_strike()
558 if (transport->state != SCTP_INACTIVE && in sctp_do_8_2_transport_strike()
559 (transport->error_count > transport->pathmaxrxt)) { in sctp_do_8_2_transport_strike()
560 pr_debug("%s: association:%p transport addr:%pISpc failed\n", in sctp_do_8_2_transport_strike()
561 __func__, asoc, &transport->ipaddr.sa); in sctp_do_8_2_transport_strike()
563 sctp_assoc_control_transport(asoc, transport, in sctp_do_8_2_transport_strike()
568 if (transport->error_count > transport->ps_retrans && in sctp_do_8_2_transport_strike()
569 asoc->peer.primary_path == transport && in sctp_do_8_2_transport_strike()
570 asoc->peer.active_path != transport) in sctp_do_8_2_transport_strike()
582 if (!is_hb || transport->hb_sent) { in sctp_do_8_2_transport_strike()
583 transport->rto = min((transport->rto * 2), transport->asoc->rto_max); in sctp_do_8_2_transport_strike()
584 sctp_max_rto(asoc, transport); in sctp_do_8_2_transport_strike()
684 /* Start a heartbeat timer for each transport on the association. in sctp_cmd_hb_timers_start()
685 * hold a reference on the transport to make sure none of in sctp_cmd_hb_timers_start()
731 * transport address to which the HEARTBEAT was sent. in sctp_cmd_transport_on()
751 /* Mark the destination transport address as active if it is not so in sctp_cmd_transport_on()
771 * RTT measurement for that destination transport address in sctp_cmd_transport_on()
773 * If the transport's rto_pending variable has been cleared, in sctp_cmd_transport_on()
810 * the transport for a shutdown chunk.
818 if (chunk->transport) in sctp_cmd_setup_t2()
819 t = chunk->transport; in sctp_cmd_setup_t2()
823 chunk->transport = t; in sctp_cmd_setup_t2()
945 t = sctp_assoc_choose_alter_transport(asoc, chunk->transport); in sctp_cmd_setup_t4()
947 chunk->transport = t; in sctp_cmd_setup_t4()
1400 if (new_obj->transport) { in sctp_cmd_interpreter()
1401 new_obj->transport->init_sent_count++; in sctp_cmd_interpreter()
1402 asoc->init_last_sent_to = new_obj->transport; in sctp_cmd_interpreter()
1480 /* Mark a transport for retransmission. */ in sctp_cmd_interpreter()
1481 sctp_retransmit(&asoc->outqueue, cmd->obj.transport, in sctp_cmd_interpreter()
1486 /* Mark a transport for retransmission. */ in sctp_cmd_interpreter()
1487 sctp_retransmit(&asoc->outqueue, cmd->obj.transport, in sctp_cmd_interpreter()
1557 chunk->transport = t; in sctp_cmd_interpreter()
1559 /* Set the new transport as primary */ in sctp_cmd_interpreter()
1635 /* Mark one strike against a transport. */ in sctp_cmd_interpreter()
1637 cmd->obj.transport, 0); in sctp_cmd_interpreter()
1641 t = cmd->obj.transport; in sctp_cmd_interpreter()
1646 t = cmd->obj.transport; in sctp_cmd_interpreter()
1653 t = cmd->obj.transport; in sctp_cmd_interpreter()
1662 t = cmd->obj.transport; in sctp_cmd_interpreter()
1699 t = cmd->obj.transport; in sctp_cmd_interpreter()