Lines Matching refs:net
882 struct sctp_nets *net; in sctp_tcb_special_locate() local
1054 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { in sctp_tcb_special_locate()
1055 if (net->ro._l_addr.sa.sa_family != from->sa_family) { in sctp_tcb_special_locate()
1065 sin = (struct sockaddr_in *)&net->ro._l_addr; in sctp_tcb_special_locate()
1071 *netp = net; in sctp_tcb_special_locate()
1089 sin6 = (struct sockaddr_in6 *)&net->ro._l_addr; in sctp_tcb_special_locate()
1095 *netp = net; in sctp_tcb_special_locate()
1135 struct sctp_nets *net; in sctp_findassociation_ep_addr() local
1212 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { in sctp_findassociation_ep_addr()
1214 if (net == (TAILQ_NEXT(net, sctp_next))) { in sctp_findassociation_ep_addr()
1218 if (net->ro._l_addr.sa.sa_family != in sctp_findassociation_ep_addr()
1231 &net->ro._l_addr; in sctp_findassociation_ep_addr()
1237 *netp = net; in sctp_findassociation_ep_addr()
1261 sin6 = (struct sockaddr_in6 *)&net->ro._l_addr; in sctp_findassociation_ep_addr()
1267 *netp = net; in sctp_findassociation_ep_addr()
1313 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { in sctp_findassociation_ep_addr()
1315 if (net == (TAILQ_NEXT(net, sctp_next))) { in sctp_findassociation_ep_addr()
1319 if (net->ro._l_addr.sa.sa_family != in sctp_findassociation_ep_addr()
1332 &net->ro._l_addr; in sctp_findassociation_ep_addr()
1338 *netp = net; in sctp_findassociation_ep_addr()
1362 &net->ro._l_addr; in sctp_findassociation_ep_addr()
1368 *netp = net; in sctp_findassociation_ep_addr()
1992 struct sctp_nets *net; in sctp_findassoc_by_vtag() local
2056 net = sctp_findnet(stcb, from); in sctp_findassoc_by_vtag()
2057 if (net) { in sctp_findassoc_by_vtag()
2059 *netp = net; in sctp_findassoc_by_vtag()
2484 struct sctp_nets *net; in sctp_move_pcb_and_assoc() local
2559 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { in sctp_move_pcb_and_assoc()
2561 stcb, net); in sctp_move_pcb_and_assoc()
2627 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { in sctp_move_pcb_and_assoc()
2628 if (net->pmtu_timer.ep == old_inp) { in sctp_move_pcb_and_assoc()
2630 net->pmtu_timer.ep = new_inp; in sctp_move_pcb_and_assoc()
2633 if (net->hb_timer.ep == old_inp) { in sctp_move_pcb_and_assoc()
2635 net->hb_timer.ep = new_inp; in sctp_move_pcb_and_assoc()
2638 if (net->rxt_timer.ep == old_inp) { in sctp_move_pcb_and_assoc()
2640 net->rxt_timer.ep = new_inp; in sctp_move_pcb_and_assoc()
3559 struct sctp_nets *net; in sctp_findnet() local
3562 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { in sctp_findnet()
3563 if (sctp_cmpaddr(addr, (struct sockaddr *)&net->ro._l_addr)) in sctp_findnet()
3564 return (net); in sctp_findnet()
3596 struct sctp_nets *net, *netfirst; in sctp_add_remote_addr() local
3714 net = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_net), struct sctp_nets); in sctp_add_remote_addr()
3715 if (net == NULL) { in sctp_add_remote_addr()
3719 memset(net, 0, sizeof(struct sctp_nets)); in sctp_add_remote_addr()
3720 (void)SCTP_GETTIME_TIMEVAL(&net->start_time); in sctp_add_remote_addr()
3721 memcpy(&net->ro._l_addr, newaddr, newaddr->sa_len); in sctp_add_remote_addr()
3725 ((struct sockaddr_in *)&net->ro._l_addr)->sin_port = stcb->rport; in sctp_add_remote_addr()
3730 ((struct sockaddr_in6 *)&net->ro._l_addr)->sin6_port = stcb->rport; in sctp_add_remote_addr()
3736 net->addr_is_local = sctp_is_address_on_local_host(newaddr, stcb->asoc.vrf_id); in sctp_add_remote_addr()
3737 if (net->addr_is_local && ((set_scope || (from == SCTP_ADDR_IS_CONFIRMED)))) { in sctp_add_remote_addr()
3744 net->failure_threshold = stcb->asoc.def_net_failure; in sctp_add_remote_addr()
3745 net->pf_threshold = stcb->asoc.def_net_pf_threshold; in sctp_add_remote_addr()
3747 net->dest_state = (SCTP_ADDR_REACHABLE | in sctp_add_remote_addr()
3752 net->dest_state = SCTP_ADDR_REACHABLE; in sctp_add_remote_addr()
3754 net->dest_state = SCTP_ADDR_REACHABLE | in sctp_add_remote_addr()
3761 net->rto_needed = 1; in sctp_add_remote_addr()
3762 net->RTO = 0; in sctp_add_remote_addr()
3763 net->RTO_measured = 0; in sctp_add_remote_addr()
3765 net->ref_count = 1; in sctp_add_remote_addr()
3766 net->cwr_window_tsn = net->last_cwr_tsn = stcb->asoc.sending_seq - 1; in sctp_add_remote_addr()
3767 net->port = port; in sctp_add_remote_addr()
3768 net->dscp = stcb->asoc.default_dscp; in sctp_add_remote_addr()
3770 net->flowlabel = stcb->asoc.default_flowlabel; in sctp_add_remote_addr()
3773 net->dest_state |= SCTP_ADDR_NOHB; in sctp_add_remote_addr()
3775 net->dest_state &= ~SCTP_ADDR_NOHB; in sctp_add_remote_addr()
3778 net->dest_state |= SCTP_ADDR_NO_PMTUD; in sctp_add_remote_addr()
3780 net->dest_state &= ~SCTP_ADDR_NO_PMTUD; in sctp_add_remote_addr()
3782 net->heart_beat_delay = stcb->asoc.heart_beat_delay; in sctp_add_remote_addr()
3784 SCTP_OS_TIMER_INIT(&net->rxt_timer.timer); in sctp_add_remote_addr()
3785 SCTP_OS_TIMER_INIT(&net->pmtu_timer.timer); in sctp_add_remote_addr()
3786 SCTP_OS_TIMER_INIT(&net->hb_timer.timer); in sctp_add_remote_addr()
3794 sin6 = (struct sockaddr_in6 *)&net->ro._l_addr; in sctp_add_remote_addr()
3799 SCTP_RTALLOC((sctp_route_t *)&net->ro, in sctp_add_remote_addr()
3803 net->src_addr_selected = 0; in sctp_add_remote_addr()
3804 if (SCTP_ROUTE_HAS_VALID_IFN(&net->ro)) { in sctp_add_remote_addr()
3806 net->ro._s_addr = sctp_source_address_selection(stcb->sctp_ep, in sctp_add_remote_addr()
3808 (sctp_route_t *)&net->ro, in sctp_add_remote_addr()
3809 net, in sctp_add_remote_addr()
3813 net->mtu = stcb->asoc.default_mtu; in sctp_add_remote_addr()
3814 switch (net->ro._l_addr.sa.sa_family) { in sctp_add_remote_addr()
3817 net->mtu += SCTP_MIN_V4_OVERHEAD; in sctp_add_remote_addr()
3822 net->mtu += SCTP_MIN_OVERHEAD; in sctp_add_remote_addr()
3829 if (net->port) { in sctp_add_remote_addr()
3830 net->mtu += (uint32_t)sizeof(struct udphdr); in sctp_add_remote_addr()
3833 } else if (net->ro._s_addr != NULL) { in sctp_add_remote_addr()
3836 net->src_addr_selected = 1; in sctp_add_remote_addr()
3838 if (net->ro._s_addr->ifn_p != NULL) { in sctp_add_remote_addr()
3843 imtu = SCTP_GATHER_MTU_FROM_IFN_INFO(net->ro._s_addr->ifn_p->ifn_p, in sctp_add_remote_addr()
3844 net->ro._s_addr->ifn_p->ifn_index); in sctp_add_remote_addr()
3848 rmtu = SCTP_GATHER_MTU_FROM_ROUTE(net->ro._s_addr, &net->ro._l_addr.sa, net->ro.ro_nh); in sctp_add_remote_addr()
3849 hcmtu = sctp_hc_get_mtu(&net->ro._l_addr, stcb->sctp_ep->fibnum); in sctp_add_remote_addr()
3850 net->mtu = sctp_min_mtu(hcmtu, rmtu, imtu); in sctp_add_remote_addr()
3853 if (net->mtu == 0) { in sctp_add_remote_addr()
3855 net->mtu = stcb->asoc.default_mtu; in sctp_add_remote_addr()
3856 switch (net->ro._l_addr.sa.sa_family) { in sctp_add_remote_addr()
3859 net->mtu += SCTP_MIN_V4_OVERHEAD; in sctp_add_remote_addr()
3864 net->mtu += SCTP_MIN_OVERHEAD; in sctp_add_remote_addr()
3871 if (net->port) { in sctp_add_remote_addr()
3872 net->mtu += (uint32_t)sizeof(struct udphdr); in sctp_add_remote_addr()
3879 net->mtu = SCTP_DEFAULT_MTU; in sctp_add_remote_addr()
3884 net->mtu = 1280; in sctp_add_remote_addr()
3893 if (net->port) { in sctp_add_remote_addr()
3894 net->mtu -= (uint32_t)sizeof(struct udphdr); in sctp_add_remote_addr()
3898 stcb->asoc.smallest_mtu = net->mtu; in sctp_add_remote_addr()
3900 if (stcb->asoc.smallest_mtu > net->mtu) { in sctp_add_remote_addr()
3901 sctp_pathmtu_adjustment(stcb, net->mtu, true); in sctp_add_remote_addr()
3907 sin6 = (struct sockaddr_in6 *)&net->ro._l_addr; in sctp_add_remote_addr()
3914 (*stcb->asoc.cc_functions.sctp_set_initial_cc_param) (stcb, net); in sctp_add_remote_addr()
3920 net->find_pseudo_cumack = 1; in sctp_add_remote_addr()
3921 net->find_rtx_pseudo_cumack = 1; in sctp_add_remote_addr()
3923 net->flowid = stcb->asoc.my_vtag ^ in sctp_add_remote_addr()
3926 net->flowtype = M_HASHTYPE_OPAQUE_HASH; in sctp_add_remote_addr()
3928 *netp = net; in sctp_add_remote_addr()
3931 if (net->ro.ro_nh == NULL) { in sctp_add_remote_addr()
3933 TAILQ_INSERT_TAIL(&stcb->asoc.nets, net, sctp_next); in sctp_add_remote_addr()
3936 TAILQ_INSERT_HEAD(&stcb->asoc.nets, net, sctp_next); in sctp_add_remote_addr()
3942 TAILQ_INSERT_HEAD(&stcb->asoc.nets, net, sctp_next); in sctp_add_remote_addr()
3943 } else if (net->ro.ro_nh->nh_ifp != netfirst->ro.ro_nh->nh_ifp) { in sctp_add_remote_addr()
3948 TAILQ_INSERT_HEAD(&stcb->asoc.nets, net, sctp_next); in sctp_add_remote_addr()
3962 TAILQ_INSERT_TAIL(&stcb->asoc.nets, net, sctp_next); in sctp_add_remote_addr()
3966 TAILQ_INSERT_BEFORE(netfirst, net, sctp_next); in sctp_add_remote_addr()
3968 } else if (netlook->ro.ro_nh->nh_ifp != net->ro.ro_nh->nh_ifp) { in sctp_add_remote_addr()
3970 net, sctp_next); in sctp_add_remote_addr()
3980 stcb->asoc.primary_destination = net; in sctp_add_remote_addr()
3982 (net->ro.ro_nh) && in sctp_add_remote_addr()
3983 ((net->dest_state & SCTP_ADDR_UNCONFIRMED) == 0)) { in sctp_add_remote_addr()
3985 stcb->asoc.primary_destination = net; in sctp_add_remote_addr()
3988 net = TAILQ_FIRST(&stcb->asoc.nets); in sctp_add_remote_addr()
3989 if ((net != stcb->asoc.primary_destination) && in sctp_add_remote_addr()
4311 sctp_remove_net(struct sctp_tcb *stcb, struct sctp_nets *net) in sctp_remove_net() argument
4319 TAILQ_REMOVE(&asoc->nets, net, sctp_next); in sctp_remove_net()
4320 if (net == asoc->primary_destination) { in sctp_remove_net()
4339 asoc->deleted_primary = net; in sctp_remove_net()
4340 atomic_add_int(&net->ref_count, 1); in sctp_remove_net()
4341 memset(&net->lastsa, 0, sizeof(net->lastsa)); in sctp_remove_net()
4342 memset(&net->lastsv, 0, sizeof(net->lastsv)); in sctp_remove_net()
4352 if (net == asoc->last_data_chunk_from) { in sctp_remove_net()
4356 if (net == asoc->last_control_chunk_from) { in sctp_remove_net()
4360 if (net == asoc->last_net_cmt_send_started) { in sctp_remove_net()
4364 if (net == stcb->asoc.alternate) { in sctp_remove_net()
4368 sctp_timer_stop(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net, in sctp_remove_net()
4370 sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT, inp, stcb, net, in sctp_remove_net()
4372 net->dest_state |= SCTP_ADDR_BEING_DELETED; in sctp_remove_net()
4373 sctp_free_remote_addr(net); in sctp_remove_net()
4391 struct sctp_nets *net, *nnet; in sctp_del_remote_addr() local
4396 TAILQ_FOREACH_SAFE(net, &asoc->nets, sctp_next, nnet) { in sctp_del_remote_addr()
4397 if (net->ro._l_addr.sa.sa_family != remaddr->sa_family) { in sctp_del_remote_addr()
4400 if (sctp_cmpaddr((struct sockaddr *)&net->ro._l_addr, in sctp_del_remote_addr()
4407 sctp_remove_net(stcb, net); in sctp_del_remote_addr()
4557 struct sctp_nets *net, *nnet; in sctp_free_assoc() local
4809 if (sp->net) { in sctp_free_assoc()
4810 sctp_free_remote_addr(sp->net); in sctp_free_assoc()
4811 sp->net = NULL; in sctp_free_assoc()
4967 TAILQ_FOREACH_SAFE(net, &asoc->nets, sctp_next, nnet) { in sctp_free_assoc()
4973 TAILQ_REMOVE(&asoc->nets, net, sctp_next); in sctp_free_assoc()
4974 sctp_free_remote_addr(net); in sctp_free_assoc()
5228 struct sctp_nets *net; in sctp_select_primary_destination() local
5230 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { in sctp_select_primary_destination()
5232 if (net->dest_state & SCTP_ADDR_UNCONFIRMED) in sctp_select_primary_destination()
5235 (struct sockaddr *)&net->ro._l_addr)) { in sctp_select_primary_destination()
5237 stcb->asoc.primary_destination = net; in sctp_select_primary_destination()
5284 struct sctp_nets *net; in sctp_del_local_addr_ep() local
5294 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { in sctp_del_local_addr_ep()
5295 if (net->ro._s_addr == laddr->ifa) { in sctp_del_local_addr_ep()
5297 RO_NHFREE(&net->ro); in sctp_del_local_addr_ep()
5298 sctp_free_ifa(net->ro._s_addr); in sctp_del_local_addr_ep()
5299 net->ro._s_addr = NULL; in sctp_del_local_addr_ep()
5300 net->src_addr_selected = 0; in sctp_del_local_addr_ep()
5867 struct sctp_nets *net, *nnet, *net_tmp; in sctp_load_addresses_from_init() local
5929 TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { in sctp_load_addresses_from_init()
5931 net->dest_state |= SCTP_ADDR_NOT_IN_ASSOC; in sctp_load_addresses_from_init()
6019 stcb_tmp = sctp_findassociation_ep_addr(&inp, sa, &net, in sctp_load_addresses_from_init()
6048 if (net != NULL) { in sctp_load_addresses_from_init()
6050 net->dest_state &= in sctp_load_addresses_from_init()
6118 stcb_tmp = sctp_findassociation_ep_addr(&inp, sa, &net, in sctp_load_addresses_from_init()
6148 if (net != NULL) { in sctp_load_addresses_from_init()
6150 net->dest_state &= in sctp_load_addresses_from_init()
6448 TAILQ_FOREACH_SAFE(net, &stcb->asoc.nets, sctp_next, nnet) { in sctp_load_addresses_from_init()
6449 if ((net->dest_state & SCTP_ADDR_NOT_IN_ASSOC) == in sctp_load_addresses_from_init()
6454 TAILQ_REMOVE(&stcb->asoc.nets, net, sctp_next); in sctp_load_addresses_from_init()
6455 if (net == stcb->asoc.alternate) { in sctp_load_addresses_from_init()
6459 if (net == stcb->asoc.primary_destination) { in sctp_load_addresses_from_init()
6463 sctp_free_remote_addr(net); in sctp_load_addresses_from_init()
6554 struct sctp_nets *net) in sctp_set_primary_addr() argument
6557 if (net == NULL && sa) in sctp_set_primary_addr()
6558 net = sctp_findnet(stcb, sa); in sctp_set_primary_addr()
6560 if (net == NULL) { in sctp_set_primary_addr()
6565 if (net->dest_state & SCTP_ADDR_UNCONFIRMED) { in sctp_set_primary_addr()
6567 net->dest_state |= SCTP_ADDR_REQ_PRIMARY; in sctp_set_primary_addr()
6570 stcb->asoc.primary_destination = net; in sctp_set_primary_addr()
6571 if (((net->dest_state & SCTP_ADDR_PF) == 0) && in sctp_set_primary_addr()
6576 net = TAILQ_FIRST(&stcb->asoc.nets); in sctp_set_primary_addr()
6577 if (net != stcb->asoc.primary_destination) { in sctp_set_primary_addr()