Lines Matching refs:ro
2448 sctp_route_t *ro, in sctp_choose_boundspecific_inp() argument
2467 ifn = SCTP_GET_IFN_VOID_FROM_ROUTE(ro); in sctp_choose_boundspecific_inp()
2468 ifn_index = SCTP_GET_IF_INDEX_FROM_ROUTE(ro); in sctp_choose_boundspecific_inp()
2581 sctp_route_t *ro, in sctp_choose_boundspecific_stcb() argument
2604 ifn = SCTP_GET_IFN_VOID_FROM_ROUTE(ro); in sctp_choose_boundspecific_stcb()
2605 ifn_index = SCTP_GET_IF_INDEX_FROM_ROUTE(ro); in sctp_choose_boundspecific_stcb()
2774 sctp_route_t *ro) in sctp_select_nth_preferred_addr_from_ifn_boundall() argument
2782 memcpy(&sin6, &ro->ro_dst, sizeof(struct sockaddr_in6)); in sctp_select_nth_preferred_addr_from_ifn_boundall()
2844 if (sctp_v6src_match_nexthop(&sifa->address.sin6, ro) == 0) { in sctp_select_nth_preferred_addr_from_ifn_boundall()
2853 if (sctp_v4src_match_nexthop(sifa, ro) == 0) { in sctp_select_nth_preferred_addr_from_ifn_boundall()
2944 sctp_route_t *ro, in sctp_choose_boundall() argument
2979 ifn = SCTP_GET_IFN_VOID_FROM_ROUTE(ro); in sctp_choose_boundall()
2980 ifn_index = SCTP_GET_IF_INDEX_FROM_ROUTE(ro); in sctp_choose_boundall()
3023 dest_is_priv, cur_addr_num, fam, ro); in sctp_choose_boundall()
3076 dest_is_priv, cur_addr_num, fam, ro); in sctp_choose_boundall()
3086 SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, &net->ro._l_addr.sa); in sctp_choose_boundall()
3295 sctp_route_t *ro, in sctp_source_address_selection() argument
3303 struct sockaddr_in *to = (struct sockaddr_in *)&ro->ro_dst; in sctp_source_address_selection()
3306 struct sockaddr_in6 *to6 = (struct sockaddr_in6 *)&ro->ro_dst; in sctp_source_address_selection()
3372 if (ro->ro_nh == NULL) { in sctp_source_address_selection()
3376 SCTP_RTALLOC(ro, vrf_id, inp->fibnum); in sctp_source_address_selection()
3378 if (ro->ro_nh == NULL) { in sctp_source_address_selection()
3381 fam = ro->ro_dst.sa_family; in sctp_source_address_selection()
3403 SCTP_ROUTE_IS_REAL_LOOP(ro)) { in sctp_source_address_selection()
3422 SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, (struct sockaddr *)&ro->ro_dst); in sctp_source_address_selection()
3428 answer = sctp_choose_boundall(inp, stcb, net, ro, vrf_id, in sctp_source_address_selection()
3438 answer = sctp_choose_boundspecific_stcb(inp, stcb, ro, in sctp_source_address_selection()
3443 answer = sctp_choose_boundspecific_inp(inp, ro, vrf_id, in sctp_source_address_selection()
3913 SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT1, &net->ro._l_addr.sa); in sctp_handle_no_route()
3937 if (net->ro._s_addr) { in sctp_handle_no_route()
3938 sctp_free_ifa(net->ro._s_addr); in sctp_handle_no_route()
3939 net->ro._s_addr = NULL; in sctp_handle_no_route()
3993 sctp_route_t *ro = NULL; in sctp_lowlevel_chunk_output() local
4086 ro = &iproute; in sctp_lowlevel_chunk_output()
4088 memcpy(&ro->ro_dst, to, to->sa_len); in sctp_lowlevel_chunk_output()
4090 ro = (sctp_route_t *)&net->ro; in sctp_lowlevel_chunk_output()
4097 …if (net->ro._s_addr && (net->ro._s_addr->localifa_flags & (SCTP_BEING_DELETED | SCTP_ADDR_IFA_UNUS… in sctp_lowlevel_chunk_output()
4098 sctp_free_ifa(net->ro._s_addr); in sctp_lowlevel_chunk_output()
4099 net->ro._s_addr = NULL; in sctp_lowlevel_chunk_output()
4101 RO_NHFREE(ro); in sctp_lowlevel_chunk_output()
4105 net->ro._s_addr = sctp_source_address_selection(inp, stcb, in sctp_lowlevel_chunk_output()
4106 ro, net, 0, in sctp_lowlevel_chunk_output()
4110 if (net->ro._s_addr == NULL) { in sctp_lowlevel_chunk_output()
4118 ip->ip_src = net->ro._s_addr->address.sin.sin_addr; in sctp_lowlevel_chunk_output()
4123 _lsrc = sctp_source_address_selection(inp, stcb, ro, in sctp_lowlevel_chunk_output()
4137 SCTP_RTALLOC(ro, vrf_id, inp->fibnum); in sctp_lowlevel_chunk_output()
4173 if (ro->ro_nh == NULL) { in sctp_lowlevel_chunk_output()
4184 if (ro != &iproute) { in sctp_lowlevel_chunk_output()
4185 memcpy(&iproute, ro, sizeof(*ro)); in sctp_lowlevel_chunk_output()
4192 (void *)ro->ro_nh); in sctp_lowlevel_chunk_output()
4226 SCTP_IP_OUTPUT(ret, o_pak, ro, inp, vrf_id); in sctp_lowlevel_chunk_output()
4238 RO_NHFREE(ro); in sctp_lowlevel_chunk_output()
4240 if ((ro->ro_nh != NULL) && (net->ro._s_addr) && in sctp_lowlevel_chunk_output()
4244 mtu = SCTP_GATHER_MTU_FROM_ROUTE(net->ro._s_addr, &net->ro._l_addr.sa, ro->ro_nh); in sctp_lowlevel_chunk_output()
4256 } else if (ro->ro_nh == NULL) { in sctp_lowlevel_chunk_output()
4258 if (net->ro._s_addr && in sctp_lowlevel_chunk_output()
4260 sctp_free_ifa(net->ro._s_addr); in sctp_lowlevel_chunk_output()
4261 net->ro._s_addr = NULL; in sctp_lowlevel_chunk_output()
4336 ro = (sctp_route_t *)&ip6route; in sctp_lowlevel_chunk_output()
4337 memcpy(&ro->ro_dst, sin6, sin6->sin6_len); in sctp_lowlevel_chunk_output()
4339 ro = (sctp_route_t *)&net->ro; in sctp_lowlevel_chunk_output()
4382 …if (net->ro._s_addr && (net->ro._s_addr->localifa_flags & (SCTP_BEING_DELETED | SCTP_ADDR_IFA_UNUS… in sctp_lowlevel_chunk_output()
4383 sctp_free_ifa(net->ro._s_addr); in sctp_lowlevel_chunk_output()
4384 net->ro._s_addr = NULL; in sctp_lowlevel_chunk_output()
4386 RO_NHFREE(ro); in sctp_lowlevel_chunk_output()
4389 sin6 = (struct sockaddr_in6 *)&net->ro._l_addr; in sctp_lowlevel_chunk_output()
4397 net->ro._s_addr = sctp_source_address_selection(inp, in sctp_lowlevel_chunk_output()
4399 ro, in sctp_lowlevel_chunk_output()
4406 if (net->ro._s_addr == NULL) { in sctp_lowlevel_chunk_output()
4414 lsa6->sin6_addr = net->ro._s_addr->address.sin6.sin6_addr; in sctp_lowlevel_chunk_output()
4416 sin6 = (struct sockaddr_in6 *)&ro->ro_dst; in sctp_lowlevel_chunk_output()
4426 _lsrc = sctp_source_address_selection(inp, stcb, ro, in sctp_lowlevel_chunk_output()
4440 SCTP_RTALLOC(ro, vrf_id, inp->fibnum); in sctp_lowlevel_chunk_output()
4446 if (ro->ro_nh == NULL) { in sctp_lowlevel_chunk_output()
4502 ip6h->ip6_hlim = SCTP_GET_HLIM(inp, ro); in sctp_lowlevel_chunk_output()
4503 ifp = SCTP_GET_IFN_VOID_FROM_ROUTE(ro); in sctp_lowlevel_chunk_output()
4517 sin6 = (struct sockaddr_in6 *)&net->ro._l_addr; in sctp_lowlevel_chunk_output()
4550 SCTP_IP6_OUTPUT(ret, o_pak, (struct route_in6 *)ro, &ifp, inp, vrf_id); in sctp_lowlevel_chunk_output()
4567 RO_NHFREE(ro); in sctp_lowlevel_chunk_output()
4573 if (ro->ro_nh == NULL) { in sctp_lowlevel_chunk_output()
4575 if (net->ro._s_addr && in sctp_lowlevel_chunk_output()
4577 sctp_free_ifa(net->ro._s_addr); in sctp_lowlevel_chunk_output()
4578 net->ro._s_addr = NULL; in sctp_lowlevel_chunk_output()
4582 if ((ro->ro_nh != NULL) && (net->ro._s_addr) && in sctp_lowlevel_chunk_output()
4586 mtu = SCTP_GATHER_MTU_FROM_ROUTE(net->ro._s_addr, &net->ro._l_addr.sa, ro->ro_nh); in sctp_lowlevel_chunk_output()
4649 if (net->ro._l_addr.sa.sa_family == AF_INET6) { in sctp_send_initiate()
4654 if (IN6_IS_ADDR_LINKLOCAL(&net->ro._l_addr.sin6.sin6_addr)) in sctp_send_initiate()
4896 (struct sockaddr *)&net->ro._l_addr, in sctp_send_initiate()
5333 sa = (struct sockaddr *)&net->ro._l_addr; in sctp_are_there_new_addresses()
5443 sa = (struct sockaddr *)&net->ro._l_addr; in sctp_are_there_new_addresses()
5755 if (lnet->ro._l_addr.sin6.sin6_family == AF_INET6) { in sctp_send_initiate_ack()
5756 if (IN6_IS_ADDR_LINKLOCAL(&lnet->ro._l_addr.sin6.sin6_addr)) { in sctp_send_initiate_ack()
5767 to = (struct sockaddr *)&net->ro._l_addr; in sctp_send_initiate_ack()
5782 net->ro._s_addr = sctp_source_address_selection(inp, in sctp_send_initiate_ack()
5783 stcb, (sctp_route_t *)&net->ro, in sctp_send_initiate_ack()
5785 if (net->ro._s_addr == NULL) { in sctp_send_initiate_ack()
5793 stc.laddress[0] = net->ro._s_addr->address.sin.sin_addr.s_addr; in sctp_send_initiate_ack()
5814 net->ro._s_addr = sctp_source_address_selection(inp, in sctp_send_initiate_ack()
5815 stcb, (sctp_route_t *)&net->ro, in sctp_send_initiate_ack()
5817 if (net->ro._s_addr == NULL) { in sctp_send_initiate_ack()
5825 memcpy(&stc.laddress, &net->ro._s_addr->address.sin6.sin6_addr, in sctp_send_initiate_ack()
7709 switch (net->ro._l_addr.sa.sa_family) { in sctp_fill_outqueue()
8051 switch (((struct sockaddr *)&net->ro._l_addr)->sa_family) { in sctp_med_chunk_output()
8212 (struct sockaddr *)&net->ro._l_addr, in sctp_med_chunk_output()
8260 switch (net->ro._l_addr.sa.sa_family) { in sctp_med_chunk_output()
8501 (struct sockaddr *)&net->ro._l_addr, in sctp_med_chunk_output()
8549 switch (net->ro._l_addr.sa.sa_family) { in sctp_med_chunk_output()
8615 switch (((struct sockaddr *)&net->ro._l_addr)->sa_family) { in sctp_med_chunk_output()
8851 (struct sockaddr *)&net->ro._l_addr, in sctp_med_chunk_output()
9569 (struct sockaddr *)&chk->whoTo->ro._l_addr, m, in sctp_chunk_retransmission()
9649 switch (net->ro._l_addr.sa.sa_family) { in sctp_chunk_retransmission()
9855 (struct sockaddr *)&net->ro._l_addr, m, in sctp_chunk_retransmission()
11026 (struct sockaddr *)&net->ro._l_addr, in sctp_send_abort_tcb()
11083 (struct sockaddr *)&net->ro._l_addr, in sctp_send_shutdown_complete()
11382 switch (net->ro._l_addr.sa.sa_family) { in sctp_send_hb()
11431 hb->heartbeat.hb_info.addr_family = (uint8_t)net->ro._l_addr.sa.sa_family; in sctp_send_hb()
11432 hb->heartbeat.hb_info.addr_len = net->ro._l_addr.sa.sa_len; in sctp_send_hb()
11444 switch (net->ro._l_addr.sa.sa_family) { in sctp_send_hb()
11448 &net->ro._l_addr.sin.sin_addr, in sctp_send_hb()
11449 sizeof(net->ro._l_addr.sin.sin_addr)); in sctp_send_hb()
11455 &net->ro._l_addr.sin6.sin6_addr, in sctp_send_hb()
11456 sizeof(net->ro._l_addr.sin6.sin6_addr)); in sctp_send_hb()
13846 sctp_v6src_match_nexthop(struct sockaddr_in6 *src6, sctp_route_t *ro) in sctp_v6src_match_nexthop() argument
13852 if (ro == NULL || ro->ro_nh == NULL || src6->sin6_family != AF_INET6) in sctp_v6src_match_nexthop()
13885 SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, &ro->ro_nh->gw_sa); in sctp_v6src_match_nexthop()
13886 if (sctp_cmpaddr((struct sockaddr *)&gw6, &ro->ro_nh->gw_sa)) { in sctp_v6src_match_nexthop()
13899 sctp_v4src_match_nexthop(struct sctp_ifa *sifa, sctp_route_t *ro) in sctp_v4src_match_nexthop() argument
13906 if (ro == NULL || ro->ro_nh == NULL || in sctp_v4src_match_nexthop()
13918 sin = &ro->ro_nh->gw4_sa; in sctp_v4src_match_nexthop()
13921 SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, &ro->ro_nh->gw_sa); in sctp_v4src_match_nexthop()