Lines Matching refs:asoc
252 } else if (sctp_add_remote_addr(stcb, sa, &net, stcb->asoc.port, in sctp_process_asconf_add_ip()
292 TAILQ_FOREACH_SAFE(net, &stcb->asoc.nets, sctp_next, nnet) { in sctp_asconf_del_remote_addrs_except()
540 if ((stcb->asoc.primary_destination->dest_state & SCTP_ADDR_REACHABLE) && in sctp_process_asconf_set_primary()
541 ((stcb->asoc.primary_destination->dest_state & SCTP_ADDR_PF) == 0) && in sctp_process_asconf_set_primary()
542 (stcb->asoc.alternate != NULL)) { in sctp_process_asconf_set_primary()
543 sctp_free_remote_addr(stcb->asoc.alternate); in sctp_process_asconf_set_primary()
544 stcb->asoc.alternate = NULL; in sctp_process_asconf_set_primary()
568 (stcb->asoc.primary_destination->dest_state & in sctp_process_asconf_set_primary()
576 stcb->asoc.primary_destination); in sctp_process_asconf_set_primary()
581 stcb->asoc.deleted_primary); in sctp_process_asconf_set_primary()
608 struct sctp_association *asoc; in sctp_handle_asconf() local
628 asoc = &stcb->asoc; in sctp_handle_asconf()
631 if (SCTP_TSN_GE(asoc->asconf_seq_in, serial_num)) { in sctp_handle_asconf()
637 } else if (serial_num != (asoc->asconf_seq_in + 1)) { in sctp_handle_asconf()
639 serial_num, asoc->asconf_seq_in + 1); in sctp_handle_asconf()
644 asoc->asconf_seq_in = serial_num; /* update sequence */ in sctp_handle_asconf()
655 TAILQ_FOREACH_SAFE(ack, &asoc->asconf_ack_sent, next, ack_next) { in sctp_handle_asconf()
660 TAILQ_REMOVE(&asoc->asconf_ack_sent, ack, next); in sctp_handle_asconf()
819 TAILQ_INSERT_TAIL(&stcb->asoc.asconf_ack_sent, ack, next); in sctp_handle_asconf()
822 if (stcb->asoc.last_control_chunk_from == NULL) { in sctp_handle_asconf()
831 stcb->asoc.last_control_chunk_from = sctp_findnet(stcb, src); in sctp_handle_asconf()
833 if (stcb->asoc.last_control_chunk_from == NULL) { in sctp_handle_asconf()
943 stcb->asoc.asconf_seq_out_acked = stcb->asoc.asconf_seq_out; in sctp_asconf_cleanup()
967 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { in sctp_asconf_nets_cleanup()
997 if (stcb->asoc.deleted_primary == NULL) { in sctp_assoc_immediate_retrans()
1001 if (!TAILQ_EMPTY(&stcb->asoc.sent_queue)) { in sctp_assoc_immediate_retrans()
1003 SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, &stcb->asoc.deleted_primary->ro._l_addr.sa); in sctp_assoc_immediate_retrans()
1005 SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, &stcb->asoc.primary_destination->ro._l_addr.sa); in sctp_assoc_immediate_retrans()
1007 stcb->asoc.deleted_primary, in sctp_assoc_immediate_retrans()
1009 stcb->asoc.num_send_timers_up--; in sctp_assoc_immediate_retrans()
1010 if (stcb->asoc.num_send_timers_up < 0) { in sctp_assoc_immediate_retrans()
1011 stcb->asoc.num_send_timers_up = 0; in sctp_assoc_immediate_retrans()
1015 stcb->asoc.deleted_primary); in sctp_assoc_immediate_retrans()
1022 sctp_auditing(4, stcb->sctp_ep, stcb, stcb->asoc.deleted_primary); in sctp_assoc_immediate_retrans()
1025 if ((stcb->asoc.num_send_timers_up == 0) && in sctp_assoc_immediate_retrans()
1026 (stcb->asoc.sent_queue_cnt > 0)) { in sctp_assoc_immediate_retrans()
1029 TAILQ_FOREACH(chk, &stcb->asoc.sent_queue, sctp_next) { in sctp_assoc_immediate_retrans()
1053 stcb->asoc.cc_functions.sctp_set_initial_cc_param(stcb, net); in sctp_net_immediate_retrans()
1055 TAILQ_FOREACH(chk, &stcb->asoc.sent_queue, sctp_next) { in sctp_net_immediate_retrans()
1059 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_net_immediate_retrans()
1063 stcb->asoc.marked_retrans++; in sctp_net_immediate_retrans()
1089 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { in sctp_path_check_and_react()
1108 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { in sctp_path_check_and_react()
1161 if (net == stcb->asoc.primary_destination) { in sctp_path_check_and_react()
1219 TAILQ_FOREACH_SAFE(aa, &stcb->asoc.asconf_queue, next, aa_next) { in sctp_asconf_queue_mgmt()
1237 TAILQ_REMOVE(&stcb->asoc.asconf_queue, aa, next); in sctp_asconf_queue_mgmt()
1248 TAILQ_REMOVE(&stcb->asoc.asconf_queue, aa, next); in sctp_asconf_queue_mgmt()
1312 TAILQ_INSERT_TAIL(&stcb->asoc.asconf_queue, aa, next); in sctp_asconf_queue_mgmt()
1346 if (stcb->asoc.asconf_supported == 0) { in sctp_asconf_queue_add()
1354 if ((type == SCTP_DEL_IP_ADDRESS) && !stcb->asoc.asconf_del_pending) { in sctp_asconf_queue_add()
1362 stcb->asoc.asconf_del_pending = 1; in sctp_asconf_queue_add()
1363 stcb->asoc.asconf_addr_del_pending = ifa; in sctp_asconf_queue_add()
1379 if ((type == SCTP_ADD_IP_ADDRESS) && stcb->asoc.asconf_del_pending && (status == 0)) { in sctp_asconf_queue_add()
1382 stcb->asoc.asconf_addr_del_pending, in sctp_asconf_queue_add()
1387 stcb->asoc.asconf_del_pending = 0; in sctp_asconf_queue_add()
1388 sctp_free_ifa(stcb->asoc.asconf_addr_del_pending); in sctp_asconf_queue_add()
1389 stcb->asoc.asconf_addr_del_pending = NULL; in sctp_asconf_queue_add()
1403 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { in sctp_asconf_queue_add()
1404 stcb->asoc.cc_functions.sctp_set_initial_cc_param(stcb, in sctp_asconf_queue_add()
1409 stcb->asoc.overall_error_count = 0; in sctp_asconf_queue_add()
1412 stcb->asoc.overall_error_count, in sctp_asconf_queue_add()
1445 if (stcb->asoc.asconf_supported == 0) { in sctp_asconf_queue_sa_delete()
1449 TAILQ_FOREACH_SAFE(aa, &stcb->asoc.asconf_queue, next, aa_next) { in sctp_asconf_queue_sa_delete()
1462 TAILQ_REMOVE(&stcb->asoc.asconf_queue, aa, next); in sctp_asconf_queue_sa_delete()
1471 ifa = sctp_find_ifa_by_addr(sa, stcb->asoc.vrf_id, SCTP_ADDR_NOT_LOCKED); in sctp_asconf_queue_sa_delete()
1530 TAILQ_INSERT_TAIL(&stcb->asoc.asconf_queue, aa, next); in sctp_asconf_queue_sa_delete()
1544 TAILQ_FOREACH(aa, &stcb->asoc.asconf_queue, next) { in sctp_asconf_find_param()
1641 TAILQ_REMOVE(&stcb->asoc.asconf_queue, aparam, next); in sctp_asconf_process_param_ack()
1663 struct sctp_association *asoc; in sctp_handle_asconf_ack() local
1682 asoc = &stcb->asoc; in sctp_handle_asconf_ack()
1697 if (serial_num == (asoc->asconf_seq_out + 1)) { in sctp_handle_asconf_ack()
1708 if (serial_num != asoc->asconf_seq_out_acked + 1) { in sctp_handle_asconf_ack()
1711 serial_num, asoc->asconf_seq_out_acked + 1); in sctp_handle_asconf_ack()
1715 if (serial_num == asoc->asconf_seq_out - 1) { in sctp_handle_asconf_ack()
1810 TAILQ_FOREACH_SAFE(aa, &stcb->asoc.asconf_queue, next, aa_next) { in sctp_handle_asconf_ack()
1832 asoc->asconf_seq_out_acked++; in sctp_handle_asconf_ack()
1835 if (!TAILQ_EMPTY(&stcb->asoc.asconf_queue)) { in sctp_handle_asconf_ack()
1864 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { in sctp_is_scopeid_in_nets()
1952 if (stcb->asoc.scope.local_scope == 0) { in sctp_addr_mgmt_assoc()
1960 if (stcb->asoc.scope.site_scope == 0 && in sctp_addr_mgmt_assoc()
1982 if (stcb->asoc.scope.ipv4_local_scope == 0 && in sctp_addr_mgmt_assoc()
1997 if (stcb->asoc.asconf_supported) { in sctp_addr_mgmt_assoc()
2011 stcb, stcb->asoc.primary_destination); in sctp_addr_mgmt_assoc()
2113 if (ifa->vrf_id != stcb->asoc.vrf_id) { in sctp_asconf_iterator_stcb()
2142 if (stcb->asoc.scope.local_scope == 0) { in sctp_asconf_iterator_stcb()
2173 if (stcb->asoc.scope.ipv4_local_scope == 0 && in sctp_asconf_iterator_stcb()
2203 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { in sctp_asconf_iterator_stcb()
2216 stcb->asoc.cc_functions.sctp_set_initial_cc_param(stcb, net); in sctp_asconf_iterator_stcb()
2228 if (sctp_is_address_in_scope(ifa, &stcb->asoc.scope, 0) == 0) { in sctp_asconf_iterator_stcb()
2235 stcb->asoc.asconf_supported == 1) { in sctp_asconf_iterator_stcb()
2291 vrf_id = stcb->asoc.vrf_id; in sctp_set_primary_ip_address_sa()
2310 stcb->asoc.primary_destination); in sctp_set_primary_ip_address_sa()
2338 TAILQ_FOREACH_SAFE(chk, &stcb->asoc.asconf_send_queue, sctp_next, nchk) { in sctp_is_addr_pending()
2428 vrf = sctp_find_vrf(stcb->asoc.vrf_id); in sctp_find_valid_localaddr()
2435 if (stcb->asoc.scope.loopback_scope == 0 && in sctp_find_valid_localaddr()
2444 if (stcb->asoc.scope.ipv4_addr_legal) { in sctp_find_valid_localaddr()
2459 if (stcb->asoc.scope.ipv4_local_scope == 0 && in sctp_find_valid_localaddr()
2478 if (stcb->asoc.scope.ipv6_addr_legal) { in sctp_find_valid_localaddr()
2497 if (stcb->asoc.scope.local_scope == 0 && in sctp_find_valid_localaddr()
2500 if (stcb->asoc.scope.site_scope == 0 && in sctp_find_valid_localaddr()
2567 TAILQ_FOREACH(aa, &stcb->asoc.asconf_queue, next) { in sctp_compose_asconf()
2583 overhead += sctp_get_auth_chunk_len(stcb->asoc.peer_hmac_id); in sctp_compose_asconf()
2584 if (stcb->asoc.smallest_mtu <= overhead) { in sctp_compose_asconf()
2619 acp->serial_number = htonl(stcb->asoc.asconf_seq_out); in sctp_compose_asconf()
2620 stcb->asoc.asconf_seq_out++; in sctp_compose_asconf()
2623 TAILQ_FOREACH(aa, &stcb->asoc.asconf_queue, next) { in sctp_compose_asconf()
2629 if ((SCTP_BUF_LEN(m_asconf) + p_length > stcb->asoc.smallest_mtu - overhead) || in sctp_compose_asconf()
2845 sctp_ifa = sctp_find_ifa_by_addr(&store.sa, stcb->asoc.vrf_id, in sctp_process_initack_addresses()
2854 stcb->asoc.asconf_supported) { in sctp_process_initack_addresses()
2866 stcb->asoc.primary_destination); in sctp_process_initack_addresses()
3068 vrf_id = stcb->asoc.vrf_id; in sctp_check_address_list_all()
3323 vtag->local_vtag = htonl(stcb->asoc.my_vtag); in sctp_asconf_send_nat_state_update()
3324 vtag->remote_vtag = htonl(stcb->asoc.peer_vtag); in sctp_asconf_send_nat_state_update()
3363 TAILQ_INSERT_TAIL(&stcb->asoc.asconf_queue, aa_vtag, next); in sctp_asconf_send_nat_state_update()
3364 TAILQ_INSERT_TAIL(&stcb->asoc.asconf_queue, aa_add, next); in sctp_asconf_send_nat_state_update()
3365 TAILQ_INSERT_TAIL(&stcb->asoc.asconf_queue, aa_del, next); in sctp_asconf_send_nat_state_update()