Lines Matching refs:asoc
200 void sctp_outq_init(struct sctp_association *asoc, struct sctp_outq *q) in sctp_outq_init() argument
204 q->asoc = asoc; in sctp_outq_init()
221 list_for_each_entry(transport, &q->asoc->peer.transport_addr_list, in __sctp_outq_teardown()
277 sctp_outq_init(q->asoc, q); in sctp_outq_teardown()
290 struct net *net = sock_net(q->asoc->base.sk); in sctp_outq_tail()
311 switch (q->asoc->state) { in sctp_outq_tail()
403 q->asoc->peer.rwnd += sctp_data_size(chunk); in sctp_retransmit_mark()
423 q->asoc->peer.rwnd += sctp_data_size(chunk); in sctp_retransmit_mark()
468 struct net *net = sock_net(q->asoc->base.sk); in sctp_retransmit()
478 if (transport == transport->asoc->peer.retran_path) in sctp_retransmit()
479 sctp_assoc_update_retran_path(transport->asoc); in sctp_retransmit()
480 transport->asoc->rtx_data_chunks += in sctp_retransmit()
481 transport->asoc->unack_data; in sctp_retransmit()
493 transport->asoc->init_retries++; in sctp_retransmit()
506 sctp_generate_fwdtsn(q, q->asoc->ctsn_ack_point); in sctp_retransmit()
516 q->asoc->base.sk->sk_err = -error; in sctp_retransmit()
654 q->asoc->stats.rtxchunks++; in sctp_outq_flush_rtx()
710 struct sctp_association *asoc = q->asoc; in sctp_outq_flush() local
711 __u16 sport = asoc->base.bind_addr.port; in sctp_outq_flush()
712 __u16 dport = asoc->peer.port; in sctp_outq_flush()
713 __u32 vtag = asoc->peer.i.init_tag; in sctp_outq_flush()
746 if (asoc->src_out_of_asoc_ok && in sctp_outq_flush()
771 new_transport = sctp_assoc_lookup_paddr(asoc, in sctp_outq_flush()
778 new_transport = asoc->peer.active_path; in sctp_outq_flush()
798 new_transport = asoc->peer.active_path; in sctp_outq_flush()
812 asoc->peer.ecn_capable); in sctp_outq_flush()
835 packet->vtag = asoc->c.my_vtag; in sctp_outq_flush()
864 asoc->stats.octrlchunks++; in sctp_outq_flush()
880 if (q->asoc->src_out_of_asoc_ok) in sctp_outq_flush()
884 switch (asoc->state) { in sctp_outq_flush()
906 if (asoc->peer.retran_path->state == SCTP_UNCONFIRMED) in sctp_outq_flush()
908 if (transport == asoc->peer.retran_path) in sctp_outq_flush()
913 transport = asoc->peer.retran_path; in sctp_outq_flush()
922 asoc->peer.ecn_capable); in sctp_outq_flush()
957 asoc->c.sinit_num_ostreams) { in sctp_outq_flush()
980 new_transport = asoc->peer.active_path; in sctp_outq_flush()
998 asoc->peer.ecn_capable); in sctp_outq_flush()
1035 if (asoc->state == SCTP_STATE_SHUTDOWN_PENDING) in sctp_outq_flush()
1038 asoc->stats.ouodchunks++; in sctp_outq_flush()
1040 asoc->stats.oodchunks++; in sctp_outq_flush()
1126 struct sctp_association *asoc = q->asoc; in sctp_outq_sack() local
1136 struct sctp_transport *primary = asoc->peer.primary_path; in sctp_outq_sack()
1142 transport_list = &asoc->peer.transport_addr_list; in sctp_outq_sack()
1146 asoc->stats.gapcnt += gap_ack_blocks; in sctp_outq_sack()
1189 if (TSN_lt(asoc->highest_sacked, highest_tsn)) in sctp_outq_sack()
1190 asoc->highest_sacked = highest_tsn; in sctp_outq_sack()
1218 if (TSN_lt(asoc->ctsn_ack_point, sack_ctsn)) { in sctp_outq_sack()
1219 asoc->ctsn_ack_point = sack_ctsn; in sctp_outq_sack()
1225 if (asoc->fast_recovery && accum_moved) in sctp_outq_sack()
1234 sctp_sack_update_unack_data(asoc, sack); in sctp_outq_sack()
1236 ctsn = asoc->ctsn_ack_point; in sctp_outq_sack()
1255 asoc->peer.zero_window_announced = !sack_a_rwnd; in sctp_outq_sack()
1263 asoc->peer.rwnd = sack_a_rwnd; in sctp_outq_sack()
1269 "advertised peer ack point:0x%x\n", __func__, asoc, ctsn, in sctp_outq_sack()
1270 asoc->adv_peer_ack_point); in sctp_outq_sack()
1416 q->asoc->peer.primary_path->cacc. in sctp_check_transmitted()
1470 struct sctp_association *asoc = transport->asoc; in sctp_check_transmitted() local
1488 transport->asoc->overall_error_count = 0; in sctp_check_transmitted()
1497 if (asoc->state == SCTP_STATE_SHUTDOWN_PENDING && in sctp_check_transmitted()
1498 del_timer(&asoc->timers in sctp_check_transmitted()
1500 sctp_association_put(asoc); in sctp_check_transmitted()
1509 transport->asoc, in sctp_check_transmitted()
1537 if (!q->asoc->peer.rwnd && in sctp_check_transmitted()
1539 (sack_ctsn+2 == q->asoc->next_tsn) && in sctp_check_transmitted()
1540 q->asoc->state < SCTP_STATE_SHUTDOWN_PENDING) { in sctp_check_transmitted()
1544 q->asoc->overall_error_count = 0; in sctp_check_transmitted()
1583 struct sctp_association *asoc = q->asoc; in sctp_mark_missing() local
1584 struct sctp_transport *primary = asoc->peer.primary_path; in sctp_mark_missing()
1688 struct sctp_association *asoc = q->asoc; in sctp_generate_fwdtsn() local
1697 if (!asoc->peer.prsctp_capable) in sctp_generate_fwdtsn()
1706 if (TSN_lt(asoc->adv_peer_ack_point, ctsn)) in sctp_generate_fwdtsn()
1707 asoc->adv_peer_ack_point = ctsn; in sctp_generate_fwdtsn()
1742 if (TSN_lte(tsn, asoc->adv_peer_ack_point+1)) { in sctp_generate_fwdtsn()
1743 asoc->adv_peer_ack_point = tsn; in sctp_generate_fwdtsn()
1781 if (asoc->adv_peer_ack_point > ctsn) in sctp_generate_fwdtsn()
1782 ftsn_chunk = sctp_make_fwdtsn(asoc, asoc->adv_peer_ack_point, in sctp_generate_fwdtsn()
1787 SCTP_INC_STATS(sock_net(asoc->base.sk), SCTP_MIB_OUTCTRLCHUNKS); in sctp_generate_fwdtsn()