Lines Matching defs:asoc
100 sctp_audit_retranmission_queue(struct sctp_association *asoc)
107 asoc->sent_queue_retran_cnt,
108 asoc->sent_queue_cnt);
111 asoc->sent_queue_retran_cnt = 0;
112 asoc->sent_queue_cnt = 0;
113 TAILQ_FOREACH(chk, &asoc->sent_queue, sctp_next) {
115 asoc->sent_queue_retran_cnt++;
117 asoc->sent_queue_cnt++;
119 TAILQ_FOREACH(chk, &asoc->control_send_queue, sctp_next) {
121 asoc->sent_queue_retran_cnt++;
127 asoc->sent_queue_retran_cnt,
128 asoc->sent_queue_cnt);
151 if (net == stcb->asoc.primary_destination) {
172 stcb->asoc.overall_error_count++;
175 stcb->asoc.overall_error_count++;
180 &stcb->asoc,
181 stcb->asoc.overall_error_count,
189 if (stcb->asoc.overall_error_count > threshold) {
220 if (stcb->asoc.numnets == 1) {
222 return (TAILQ_FIRST(&stcb->asoc.nets));
228 mnet = TAILQ_FIRST(&stcb->asoc.nets);
237 alt = TAILQ_FIRST(&stcb->asoc.nets);
268 alt = TAILQ_FIRST(&stcb->asoc.nets);
303 if (net->RTO > stcb->asoc.maxrto) {
304 net->RTO = stcb->asoc.maxrto;
405 if (stcb->asoc.total_flight >= net->flight_size) {
406 stcb->asoc.total_flight -= net->flight_size;
409 stcb->asoc.total_flight = 0;
414 orig_rwnd = stcb->asoc.peers_rwnd;
416 stcb->asoc.peers_rwnd += net->flight_size;
431 chk = TAILQ_FIRST(&stcb->asoc.sent_queue);
434 if ((compare_with_wrap(stcb->asoc.last_acked_seq,
437 (stcb->asoc.last_acked_seq == chk->rec.data.TSN_seq)) {
440 TAILQ_REMOVE(&stcb->asoc.sent_queue, chk, sctp_next);
443 &stcb->asoc.sent_queue);
445 stcb->asoc.sent_queue_cnt_removeable--;
448 stcb->asoc.sent_queue_cnt--;
499 if (stcb->asoc.total_flight_count > 0) {
500 stcb->asoc.total_flight_count--;
512 &stcb->asoc.sent_queue);
518 stcb->asoc.sent_queue_retran_cnt++;
551 stcb->asoc.t3timeout_highest_marked,
554 stcb->asoc.t3timeout_highest_marked = chk->rec.data.TSN_seq;
578 stcb->asoc.peers_rwnd += (num_mk /* * sizeof(struct mbuf)*/);
587 num_mk, (u_long)stcb->asoc.peers_rwnd);
593 (int)stcb->asoc.peers_rwnd
599 if (stcb->asoc.sent_queue_retran_cnt != cnt_mk) {
600 printf("Local Audit says there are %d for retran asoc cnt:%d\n",
601 cnt_mk, stcb->asoc.sent_queue_retran_cnt);
603 stcb->asoc.sent_queue_retran_cnt = cnt_mk;
613 TAILQ_FOREACH(chk, &stcb->asoc.control_send_queue, sctp_next) {
620 stcb->asoc.sent_queue_retran_cnt++;
625 if ((orig_rwnd == 0) && (stcb->asoc.total_flight == 0) &&
648 stcb->asoc.total_flight = 0;
649 stcb->asoc.total_flight_count = 0;
651 TAILQ_FOREACH(lnets, &stcb->asoc.nets, sctp_next) {
660 TAILQ_FOREACH(chk, &stcb->asoc.sent_queue, sctp_next) {
662 stcb->asoc.total_flight += chk->book_size;
664 stcb->asoc.total_flight_count++;
674 chk = TAILQ_FIRST(&stcb->asoc.send_queue);
676 stcb->asoc.nonce_resync_tsn = stcb->asoc.sending_seq;
678 stcb->asoc.nonce_resync_tsn = chk->rec.data.TSN_seq;
680 stcb->asoc.nonce_wait_for_ecne = 0;
681 stcb->asoc.nonce_sum_check = 0;
694 struct sctp_association *asoc;
702 asoc = &stcb->asoc;
708 TAILQ_FOREACH(outs, &asoc->out_wheel, next_spoke) {
719 TAILQ_FOREACH(chk, &asoc->send_queue, sctp_next) {
746 stcb->asoc.fast_retran_loss_recovery = 0;
751 stcb->asoc.sat_t3_loss_recovery = 1;
752 stcb->asoc.sat_t3_recovery_tsn = stcb->asoc.sending_seq;
759 stcb->asoc.max_send_times)) {
763 if (net != stcb->asoc.primary_destination) {
787 stcb->asoc.max_send_times)) {
796 if ((stcb->asoc.primary_destination == net) && (alt != net)) {
816 if (SCTP_GET_STATE(&stcb->asoc) == SCTP_STATE_COOKIE_ECHOED) {
819 * have not established the asoc
829 if (stcb->asoc.peer_supports_prsctp) {
831 lchk = sctp_try_advance_peer_ack_point(stcb, &stcb->asoc);
833 if (compare_with_wrap(stcb->asoc.advanced_peer_ack_point,
834 stcb->asoc.last_acked_seq, MAX_TSN)) {
845 send_forward_tsn(stcb, &stcb->asoc);
861 if (stcb->asoc.delayed_connection) {
866 stcb->asoc.delayed_connection = 0;
871 stcb->asoc.max_init_times)) {
875 stcb->asoc.dropped_special_cnt = 0;
876 sctp_backoff_on_timeout(stcb, stcb->asoc.primary_destination, 1, 0);
877 if (stcb->asoc.initial_init_rto_max < net->RTO) {
878 net->RTO = stcb->asoc.initial_init_rto_max;
880 if (stcb->asoc.numnets > 1) {
883 alt = sctp_find_alternate_net(stcb, stcb->asoc.primary_destination);
884 if ((alt != NULL) && (alt != stcb->asoc.primary_destination)) {
885 sctp_move_all_chunks_to_alt(stcb, stcb->asoc.primary_destination, alt);
886 stcb->asoc.primary_destination = alt;
906 TAILQ_FOREACH(cookie, &stcb->asoc.control_send_queue, sctp_next) {
912 if (SCTP_GET_STATE(&stcb->asoc) == SCTP_STATE_COOKIE_ECHOED) {
935 stcb->asoc.max_init_times)) {
943 stcb->asoc.dropped_special_cnt = 0;
953 stcb->asoc.sent_queue_retran_cnt++;
971 TAILQ_FOREACH(strrst, &stcb->asoc.control_send_queue,
991 stcb->asoc.max_send_times)) {
1007 TAILQ_FOREACH(chk, &stcb->asoc.control_send_queue, sctp_next) {
1013 stcb->asoc.sent_queue_retran_cnt++;
1028 stcb->asoc.sent_queue_retran_cnt++;
1043 if (stcb->asoc.asconf_sent == 0) {
1050 TAILQ_FOREACH(asconf, &stcb->asoc.control_send_queue,
1066 stcb->asoc.max_send_times)) {
1075 if (asconf->snd_count > stcb->asoc.max_send_times) {
1101 TAILQ_FOREACH(chk, &stcb->asoc.control_send_queue, sctp_next) {
1108 stcb->asoc.sent_queue_retran_cnt++;
1123 stcb->asoc.sent_queue_retran_cnt++;
1141 if (sctp_threshold_management(inp, stcb, net, stcb->asoc.max_send_times)) {
1175 if (sctp_threshold_management(inp, stcb, net, stcb->asoc.max_send_times)) {
1200 if (TAILQ_EMPTY(&stcb->asoc.out_wheel)) {
1202 (u_long)stcb->asoc.total_output_queue_size);
1203 stcb->asoc.total_output_queue_size = 0;
1206 if (stcb->asoc.sent_queue_retran_cnt) {
1208 stcb->asoc.sent_queue_retran_cnt);
1209 stcb->asoc.sent_queue_retran_cnt = 0;
1212 TAILQ_FOREACH(outs, &stcb->asoc.out_wheel, next_spoke) {
1219 if (chks_in_queue != stcb->asoc.stream_queue_cnt) {
1221 stcb->asoc.stream_queue_cnt, chks_in_queue);
1226 if ((TAILQ_EMPTY(&stcb->asoc.send_queue)) &&
1227 (TAILQ_EMPTY(&stcb->asoc.sent_queue))) {
1233 (u_long)stcb->asoc.total_output_queue_size);
1234 stcb->asoc.total_output_queue_size = 0;
1253 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
1259 if ((stcb->asoc.total_output_queue_size > 0) &&
1260 (TAILQ_EMPTY(&stcb->asoc.send_queue)) &&
1261 (TAILQ_EMPTY(&stcb->asoc.sent_queue))) {
1274 while ((cnt_sent < stcb->asoc.max_burst) && (cnt_of_unconf > 1)) {
1361 struct sctp_association *asoc;
1365 if (stcb->asoc.sctp_autoclose_ticks &&
1368 asoc = &stcb->asoc;
1370 if (asoc->time_last_rcvd.tv_sec >
1371 asoc->time_last_sent.tv_sec) {
1372 tim_touse = &asoc->time_last_rcvd;
1374 tim_touse = &asoc->time_last_sent;
1379 (ticks_gone_by >= (int)asoc->sctp_autoclose_ticks)) {
1388 if (TAILQ_EMPTY(&asoc->send_queue) &&
1389 TAILQ_EMPTY(&asoc->sent_queue)) {
1394 if (SCTP_GET_STATE(asoc) !=
1405 sctp_send_shutdown(stcb, stcb->asoc.primary_destination);
1406 asoc->state = SCTP_STATE_SHUTDOWN_SENT;
1409 asoc->primary_destination);
1412 asoc->primary_destination);
1422 tmp = asoc->sctp_autoclose_ticks;
1423 asoc->sctp_autoclose_ticks -= ticks_gone_by;
1427 asoc->sctp_autoclose_ticks = tmp;
1493 if (it->stcb->asoc.stcb_starting_point_for_iterator == it) {
1494 it->stcb->asoc.stcb_starting_point_for_iterator = NULL;
1498 if (it->asoc_state && ((it->stcb->asoc.state & it->asoc_state) != it->asoc_state)) {
1511 it->stcb->asoc.stcb_starting_point_for_iterator = it;