Lines Matching refs:stcb

205     struct sctphdr *sh, struct sctp_tcb *stcb, struct sctp_nets *net)
209 if ((inp == NULL) || (stcb == NULL) || (net == NULL) ||
214 if (ntohl(sh->v_tag) != (stcb->asoc.peer_vtag))
229 sctp_timer_stop(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, NULL, SCTP_FROM_SCTP6_USRREQ + SCTP_LOC_1);
239 if (stcb->asoc.smallest_mtu > nxtsz) {
243 stcb->asoc.smallest_mtu = nxtsz;
246 TAILQ_FOREACH(chk, &stcb->asoc.send_queue, sctp_next) {
251 TAILQ_FOREACH(chk, &stcb->asoc.sent_queue, sctp_next) {
259 stcb->asoc.sent_queue_retran_cnt++;
267 stcb->asoc.total_flight -= chk->send_size;
272 sctp_timer_start(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, NULL);
274 if (stcb) {
275 SCTP_TCB_UNLOCK(stcb);
285 struct sctp_tcb *stcb,
294 if ((inp == NULL) || (stcb == NULL) || (net == NULL) ||
296 if (stcb)
297 SCTP_TCB_UNLOCK(stcb);
301 if (ntohl(sh->v_tag) != (stcb->asoc.peer_vtag)) {
302 SCTP_TCB_UNLOCK(stcb);
307 SCTP_TCB_UNLOCK(stcb);
330 stcb, 0, (void *)net, SCTP_SO_NOT_LOCKED);
332 SCTP_TCB_UNLOCK(stcb);
342 sctp_abort_notification(stcb, 1, 0, NULL, SCTP_SO_NOT_LOCKED);
345 atomic_add_int(&stcb->asoc.refcnt, 1);
346 SCTP_TCB_UNLOCK(stcb);
348 SCTP_TCB_LOCK(stcb);
349 atomic_subtract_int(&stcb->asoc.refcnt, 1);
351 (void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC, SCTP_FROM_SCTP_USRREQ + SCTP_LOC_2);
354 /* SCTP_TCB_UNLOCK(stcb); MT: I think this is not needed. */
358 SCTP_TCB_UNLOCK(stcb);
397 struct sctp_tcb *stcb = NULL;
419 stcb = sctp_findassociation_addr_sa((struct sockaddr *)&final,
422 /* inp's ref-count increased && stcb locked */
423 if (stcb != NULL && inp && (inp->sctp_socket != NULL)) {
428 stcb,
430 /* inp's ref-count reduced && stcb unlocked */
434 stcb, net);
435 /* inp's ref-count reduced && stcb unlocked */
448 if (stcb)
449 SCTP_TCB_UNLOCK(stcb);
465 struct sctp_tcb *stcb;
487 stcb = sctp_findassociation_addr_sa(sin6tosa(&addrs[1]),
490 if (stcb == NULL || inp == NULL || inp->sctp_socket == NULL) {
491 if ((inp != NULL) && (stcb == NULL)) {
501 SCTP_TCB_UNLOCK(stcb);
845 struct sctp_tcb *stcb;
940 stcb = LIST_FIRST(&inp->sctp_asoc_list);
941 if (stcb) {
942 SCTP_TCB_UNLOCK(stcb);
950 stcb = sctp_findassociation_ep_addr(&inp, addr, NULL, NULL, NULL);
951 if (stcb == NULL) {
958 if (stcb != NULL) {
961 SCTP_TCB_UNLOCK(stcb);
966 stcb = sctp_aloc_assoc(inp, addr, &error, 0, vrf_id, p);
968 if (stcb == NULL) {
972 if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) {
973 stcb->sctp_ep->sctp_flags |= SCTP_PCB_FLAGS_CONNECTED;
977 stcb->asoc.state = SCTP_STATE_COOKIE_WAIT;
978 (void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_entered);
981 sctp_initialize_auth_params(inp, stcb);
983 sctp_send_initiate(inp, stcb, SCTP_SO_LOCKED);
984 SCTP_TCB_UNLOCK(stcb);
1018 struct sctp_tcb *stcb;
1023 stcb = LIST_FIRST(&inp->sctp_asoc_list);
1024 if (stcb == NULL) {
1029 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
1045 sctp_ifa = sctp_source_address_selection(inp, stcb, (sctp_route_t *) & net->ro, net, 0, vrf_id);
1093 struct sctp_tcb *stcb;
1113 stcb = LIST_FIRST(&inp->sctp_asoc_list);
1114 if (stcb) {
1115 SCTP_TCB_LOCK(stcb);
1118 if (stcb == NULL) {
1124 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
1128 sin6->sin6_port = stcb->rport;
1133 SCTP_TCB_UNLOCK(stcb);