Home | History | Annotate | Download | only in netinet

Lines Matching defs:asoc

95  *	the asoc local addr list is always a "DO NOT USE" list
99 * the asoc local addr list is the "DO NOT USE" list
102 * the asoc local addr list is the usable address list
104 * An ASCONF parameter queue exists per asoc which holds the pending
432 * note if result == -2, the address doesn't exist in the asoc
437 /* only one address in the asoc */
573 struct sctp_association *asoc;
595 asoc = &stcb->asoc;
598 if (serial_num == asoc->asconf_seq_in) {
609 } else if (serial_num != (asoc->asconf_seq_in + 1)) {
613 serial_num, asoc->asconf_seq_in+1);
620 asoc->asconf_seq_in = serial_num; /* update sequence */
629 if (asoc->last_asconf_ack_sent != NULL) {
631 sctp_m_freem(asoc->last_asconf_ack_sent);
632 asoc->last_asconf_ack_sent = NULL;
724 asoc->peer_supports_asconf = 1;
728 asoc->peer_supports_asconf = 1;
736 asoc->peer_supports_asconf_setprim = 1;
800 asoc->last_asconf_ack_sent = m_ack;
848 stcb->asoc.peer_supports_asconf = 0;
849 stcb->asoc.peer_supports_asconf_setprim = 0;
854 stcb->asoc.asconf_seq_out++;
871 * do the necessary asoc list work-
873 * "do not use" asoc list
906 if (stcb->asoc.peer_supports_asconf == 0) {
916 for (aa=TAILQ_FIRST(&stcb->asoc.asconf_queue); aa!=NULL; aa=aa_next) {
939 TAILQ_REMOVE(&stcb->asoc.asconf_queue, aa, next);
1014 TAILQ_INSERT_HEAD(&stcb->asoc.asconf_queue, aa, next);
1022 TAILQ_INSERT_TAIL(&stcb->asoc.asconf_queue, aa, next);
1053 if (stcb->asoc.peer_supports_asconf == 0) {
1063 for (aa = TAILQ_FIRST(&stcb->asoc.asconf_queue); aa != NULL;
1087 TAILQ_REMOVE(&stcb->asoc.asconf_queue, aa, next);
1101 TAILQ_REMOVE(&stcb->asoc.asconf_queue, aa, next);
1161 TAILQ_INSERT_HEAD(&stcb->asoc.asconf_queue, aa, next);
1169 TAILQ_INSERT_TAIL(&stcb->asoc.asconf_queue, aa, next);
1192 TAILQ_FOREACH(aa, &stcb->asoc.asconf_queue, next) {
1253 stcb->asoc.peer_supports_asconf = 0;
1256 stcb->asoc.peer_supports_asconf_setprim = 0;
1302 stcb->asoc.peer_supports_asconf_setprim = 0;
1310 TAILQ_REMOVE(&stcb->asoc.asconf_queue, aparam, next);
1321 stcb->asoc.peer_supports_asconf = 0;
1322 stcb->asoc.peer_supports_asconf_setprim = 0;
1331 struct sctp_association *asoc;
1353 asoc = &stcb->asoc;
1366 * abort the asoc, since someone probably just hijacked us...
1368 if (serial_num == (asoc->asconf_seq_out + 1)) {
1373 printf("handle_asconf_ack: got unexpected next serial number! Aborting asoc!\n");
1379 if (serial_num != asoc->asconf_seq_out) {
1383 printf("handle_asconf_ack: got duplicate/unexpected serial number = %xh (expected = %xh)\n", serial_num, asoc->asconf_seq_out);
1484 for (aa = TAILQ_FIRST(&stcb->asoc.asconf_queue); aa != NULL;
1511 asoc->asconf_seq_out++;
1515 asoc->asconf_sent = 0;
1516 if (!TAILQ_EMPTY(&stcb->asoc.asconf_queue)) {
1577 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
1669 * note: this would leave the address on both inp and asoc lists
1691 if (stcb->asoc.local_scope == 0) {
1709 if (stcb->asoc.site_scope == 0 &&
1742 if (stcb->asoc.ipv4_local_scope == 0 &&
1764 if (stcb->asoc.peer_supports_asconf) {
1775 SCTP_GET_STATE(&stcb->asoc) == SCTP_STATE_OPEN) {
1777 stcb, stcb->asoc.primary_destination);
2005 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
2008 /* process through the asoc "pending" list */
2009 laddr = LIST_FIRST(&stcb->asoc.sctp_local_addr_list);
2046 if (SCTP_GET_STATE(&stcb->asoc) == SCTP_STATE_OPEN) {
2049 stcb->asoc.primary_destination);
2096 if (SCTP_GET_STATE(&stcb->asoc) ==
2100 stcb->asoc.primary_destination);
2130 if (stcb->asoc.loopback_scope == 0 && ifn->if_type == IFT_LOOP) {
2136 stcb->asoc.ipv4_addr_legal) {
2144 if (stcb->asoc.ipv4_local_scope == 0 &&
2156 stcb->asoc.ipv6_addr_legal) {
2171 if (stcb->asoc.local_scope == 0 &&
2174 if (stcb->asoc.site_scope == 0 &&
2241 if (TAILQ_EMPTY(&stcb->asoc.asconf_queue)) {
2294 acp->serial_number = htonl(stcb->asoc.asconf_seq_out);
2297 TAILQ_FOREACH(aa, &stcb->asoc.asconf_queue, next) {
2301 if (m_asconf->m_len + p_length > stcb->asoc.smallest_mtu) {
2417 stcb->asoc.asconf_sent++;
2537 stcb->asoc.peer_supports_asconf) {
2546 SCTP_GET_STATE(&stcb->asoc) ==
2550 stcb->asoc.primary_destination);
2565 printf("process_initack_addrs: adding local addr to asoc\n");