Lines Matching refs:parsed_parameters

354 necp_find_matching_interface_index(struct necp_client_parsed_parameters *parsed_parameters,
362 struct necp_client_parsed_parameters *parsed_parameters,
2454 const struct necp_client_parsed_parameters *parsed_parameters, in necp_client_add_agent_interface_options() argument
2463 (void)necp_netagent_applies_to_client(client, parsed_parameters, &ifp->if_agentids[i], TRUE, in necp_client_add_agent_interface_options()
2471 const struct necp_client_parsed_parameters *parsed_parameters, in necp_client_add_browse_interface_options() argument
2485 necp_netagent_is_requested(parsed_parameters, &ifp->if_agentids[i]))) { in necp_client_add_browse_interface_options()
2624 …sed_parameters(struct necp_client *client, struct necp_client_parsed_parameters *parsed_parameters) in necp_client_trace_parsed_parameters() argument
2630 uuid_unparse_lower(parsed_parameters->effective_uuid, uuid_str); in necp_client_trace_parsed_parameters()
2632 switch (parsed_parameters->local_addr.sa.sa_family) { in necp_client_trace_parsed_parameters()
2634 if (parsed_parameters->local_addr.sa.sa_len == sizeof(struct sockaddr_in)) { in necp_client_trace_parsed_parameters()
2635 struct sockaddr_in *addr = &parsed_parameters->local_addr.sin; in necp_client_trace_parsed_parameters()
2640 if (parsed_parameters->local_addr.sa.sa_len == sizeof(struct sockaddr_in6)) { in necp_client_trace_parsed_parameters()
2641 struct sockaddr_in6 *addr6 = &parsed_parameters->local_addr.sin6; in necp_client_trace_parsed_parameters()
2649 switch (parsed_parameters->remote_addr.sa.sa_family) { in necp_client_trace_parsed_parameters()
2651 if (parsed_parameters->remote_addr.sa.sa_len == sizeof(struct sockaddr_in)) { in necp_client_trace_parsed_parameters()
2652 struct sockaddr_in *addr = &parsed_parameters->remote_addr.sin; in necp_client_trace_parsed_parameters()
2657 if (parsed_parameters->remote_addr.sa.sa_len == sizeof(struct sockaddr_in6)) { in necp_client_trace_parsed_parameters()
2658 struct sockaddr_in6 *addr6 = &parsed_parameters->remote_addr.sin6; in necp_client_trace_parsed_parameters()
2669 parsed_parameters->valid_fields, in necp_client_trace_parsed_parameters()
2670 parsed_parameters->flags, in necp_client_trace_parsed_parameters()
2671 parsed_parameters->delegated_upid, in necp_client_trace_parsed_parameters()
2673 parsed_parameters->required_interface_index, in necp_client_trace_parsed_parameters()
2674 parsed_parameters->required_interface_type, in necp_client_trace_parsed_parameters()
2675 parsed_parameters->local_address_preference, in necp_client_trace_parsed_parameters()
2676 parsed_parameters->ip_protocol, in necp_client_trace_parsed_parameters()
2677 parsed_parameters->transport_protocol, in necp_client_trace_parsed_parameters()
2678 parsed_parameters->ethertype, in necp_client_trace_parsed_parameters()
2679 parsed_parameters->effective_pid, in necp_client_trace_parsed_parameters()
2681 parsed_parameters->traffic_class); in necp_client_trace_parsed_parameters()
2684 parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_KNOWN_TRACKER, in necp_client_trace_parsed_parameters()
2685 parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_NON_APP_INITIATED, in necp_client_trace_parsed_parameters()
2686 parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_SILENT, in necp_client_trace_parsed_parameters()
2687 parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_APPROVED_APP_DOMAIN); in necp_client_trace_parsed_parameters()
2689 …for (i = 0; i < NECP_MAX_INTERFACE_PARAMETERS && parsed_parameters->prohibited_interfaces[i][0]; i… in necp_client_trace_parsed_parameters()
2690 …NECP_CLIENT_PARAMS_LOG(client, "Parsed prohibited_interfaces[%d] <%s>", i, parsed_parameters->proh… in necp_client_trace_parsed_parameters()
2693 …for (i = 0; i < NECP_MAX_AGENT_PARAMETERS && parsed_parameters->required_netagent_types[i].netagen… in necp_client_trace_parsed_parameters()
2695 parsed_parameters->required_netagent_types[i].netagent_domain, in necp_client_trace_parsed_parameters()
2696 parsed_parameters->required_netagent_types[i].netagent_type); in necp_client_trace_parsed_parameters()
2698 …for (i = 0; i < NECP_MAX_AGENT_PARAMETERS && parsed_parameters->prohibited_netagent_types[i].netag… in necp_client_trace_parsed_parameters()
2700 parsed_parameters->prohibited_netagent_types[i].netagent_domain, in necp_client_trace_parsed_parameters()
2701 parsed_parameters->prohibited_netagent_types[i].netagent_type); in necp_client_trace_parsed_parameters()
2703 …for (i = 0; i < NECP_MAX_AGENT_PARAMETERS && parsed_parameters->preferred_netagent_types[i].netage… in necp_client_trace_parsed_parameters()
2705 parsed_parameters->preferred_netagent_types[i].netagent_domain, in necp_client_trace_parsed_parameters()
2706 parsed_parameters->preferred_netagent_types[i].netagent_type); in necp_client_trace_parsed_parameters()
2708 …for (i = 0; i < NECP_MAX_AGENT_PARAMETERS && parsed_parameters->avoided_netagent_types[i].netagent… in necp_client_trace_parsed_parameters()
2710 parsed_parameters->avoided_netagent_types[i].netagent_domain, in necp_client_trace_parsed_parameters()
2711 parsed_parameters->avoided_netagent_types[i].netagent_type); in necp_client_trace_parsed_parameters()
2714 …for (i = 0; i < NECP_MAX_AGENT_PARAMETERS && !uuid_is_null(parsed_parameters->required_netagents[i… in necp_client_trace_parsed_parameters()
2715 uuid_unparse_lower(parsed_parameters->required_netagents[i], uuid_str); in necp_client_trace_parsed_parameters()
2718 …for (i = 0; i < NECP_MAX_AGENT_PARAMETERS && !uuid_is_null(parsed_parameters->prohibited_netagents… in necp_client_trace_parsed_parameters()
2719 uuid_unparse_lower(parsed_parameters->prohibited_netagents[i], uuid_str); in necp_client_trace_parsed_parameters()
2722 …for (i = 0; i < NECP_MAX_AGENT_PARAMETERS && !uuid_is_null(parsed_parameters->preferred_netagents[… in necp_client_trace_parsed_parameters()
2723 uuid_unparse_lower(parsed_parameters->preferred_netagents[i], uuid_str); in necp_client_trace_parsed_parameters()
2726 …for (i = 0; i < NECP_MAX_AGENT_PARAMETERS && !uuid_is_null(parsed_parameters->avoided_netagents[i]… in necp_client_trace_parsed_parameters()
2727 uuid_unparse_lower(parsed_parameters->avoided_netagents[i], uuid_str); in necp_client_trace_parsed_parameters()
2750 struct necp_client_parsed_parameters *parsed_parameters) in necp_client_parse_parameters() argument
2771 if (parsed_parameters == NULL) { in necp_client_parse_parameters()
2775 memset(parsed_parameters, 0, sizeof(struct necp_client_parsed_parameters)); in necp_client_parse_parameters()
2798 parsed_parameters->required_interface_index = bound_interface->if_index; in necp_client_parse_parameters()
2799 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_REQUIRED_IF; in necp_client_parse_parameters()
2809 … memcpy(&parsed_parameters->local_addr, &address_struct->address, sizeof(address_struct->address)); in necp_client_parse_parameters()
2810 if (!necp_address_is_wildcard(&parsed_parameters->local_addr)) { in necp_client_parse_parameters()
2811 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_LOCAL_ADDR; in necp_client_parse_parameters()
2813 …if ((parsed_parameters->local_addr.sa.sa_family == AF_INET && parsed_parameters->local_addr.sin.si… in necp_client_parse_parameters()
2814 …(parsed_parameters->local_addr.sa.sa_family == AF_INET6 && parsed_parameters->local_addr.sin6.sin6… in necp_client_parse_parameters()
2815 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_LOCAL_PORT; in necp_client_parse_parameters()
2825 memcpy(&parsed_parameters->local_addr, &endpoint->u.sa, sizeof(union necp_sockaddr_union)); in necp_client_parse_parameters()
2826 if (!necp_address_is_wildcard(&parsed_parameters->local_addr)) { in necp_client_parse_parameters()
2827 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_LOCAL_ADDR; in necp_client_parse_parameters()
2829 …if ((parsed_parameters->local_addr.sa.sa_family == AF_INET && parsed_parameters->local_addr.sin.si… in necp_client_parse_parameters()
2830 …(parsed_parameters->local_addr.sa.sa_family == AF_INET6 && parsed_parameters->local_addr.sin6.sin6… in necp_client_parse_parameters()
2831 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_LOCAL_PORT; in necp_client_parse_parameters()
2841 …memcpy(&parsed_parameters->remote_addr, &address_struct->address, sizeof(address_struct->address)); in necp_client_parse_parameters()
2842 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_REMOTE_ADDR; in necp_client_parse_parameters()
2851 memcpy(&parsed_parameters->remote_addr, &endpoint->u.sa, sizeof(union necp_sockaddr_union)); in necp_client_parse_parameters()
2852 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_REMOTE_ADDR; in necp_client_parse_parameters()
2862 memcpy(parsed_parameters->prohibited_interfaces[num_prohibited_interfaces], value, length); in necp_client_parse_parameters()
2863parsed_parameters->prohibited_interfaces[num_prohibited_interfaces][length - 1] = 0; // Ma… in necp_client_parse_parameters()
2865 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_PROHIBITED_IF; in necp_client_parse_parameters()
2870 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_REQUIRED_IFTYPE) { in necp_client_parse_parameters()
2874 memcpy(&parsed_parameters->required_interface_type, value, sizeof(u_int8_t)); in necp_client_parse_parameters()
2875 if (parsed_parameters->required_interface_type) { in necp_client_parse_parameters()
2876 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_REQUIRED_IFTYPE; in necp_client_parse_parameters()
2886 …memcpy(&parsed_parameters->prohibited_interface_types[num_prohibited_interface_types], value, size… in necp_client_parse_parameters()
2888 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_PROHIBITED_IFTYPE; in necp_client_parse_parameters()
2897 memcpy(&parsed_parameters->required_netagents[num_required_agents], value, sizeof(uuid_t)); in necp_client_parse_parameters()
2899 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_REQUIRED_AGENT; in necp_client_parse_parameters()
2908 … memcpy(&parsed_parameters->prohibited_netagents[num_prohibited_agents], value, sizeof(uuid_t)); in necp_client_parse_parameters()
2910 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_PROHIBITED_AGENT; in necp_client_parse_parameters()
2919 memcpy(&parsed_parameters->preferred_netagents[num_preferred_agents], value, sizeof(uuid_t)); in necp_client_parse_parameters()
2921 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_PREFERRED_AGENT; in necp_client_parse_parameters()
2930 memcpy(&parsed_parameters->avoided_netagents[num_avoided_agents], value, sizeof(uuid_t)); in necp_client_parse_parameters()
2932 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_AVOIDED_AGENT; in necp_client_parse_parameters()
2941 …memcpy(&parsed_parameters->required_netagent_types[num_required_agent_types], value, sizeof(struct… in necp_client_parse_parameters()
2943 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_REQUIRED_AGENT_TYPE; in necp_client_parse_parameters()
2952 …memcpy(&parsed_parameters->prohibited_netagent_types[num_prohibited_agent_types], value, sizeof(st… in necp_client_parse_parameters()
2954 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_PROHIBITED_AGENT_TYPE; in necp_client_parse_parameters()
2963 …memcpy(&parsed_parameters->preferred_netagent_types[num_preferred_agent_types], value, sizeof(stru… in necp_client_parse_parameters()
2965 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_PREFERRED_AGENT_TYPE; in necp_client_parse_parameters()
2974 …memcpy(&parsed_parameters->avoided_netagent_types[num_avoided_agent_types], value, sizeof(struct n… in necp_client_parse_parameters()
2976 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_AVOIDED_AGENT_TYPE; in necp_client_parse_parameters()
2982 memcpy(&parsed_parameters->flags, value, sizeof(parsed_parameters->flags)); in necp_client_parse_parameters()
2983 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_FLAGS; in necp_client_parse_parameters()
2991 parsed_parameters->ip_protocol = (u_int8_t)large_ip_protocol; in necp_client_parse_parameters()
2992 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_IP_PROTOCOL; in necp_client_parse_parameters()
2993 } else if (length >= sizeof(parsed_parameters->ip_protocol)) { in necp_client_parse_parameters()
2994 memcpy(&parsed_parameters->ip_protocol, value, sizeof(parsed_parameters->ip_protocol)); in necp_client_parse_parameters()
2995 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_IP_PROTOCOL; in necp_client_parse_parameters()
3000 if (length >= sizeof(parsed_parameters->transport_protocol)) { in necp_client_parse_parameters()
3001 …memcpy(&parsed_parameters->transport_protocol, value, sizeof(parsed_parameters->transport_protocol… in necp_client_parse_parameters()
3002 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_TRANSPORT_PROTOCOL; in necp_client_parse_parameters()
3007 if (length >= sizeof(parsed_parameters->effective_pid)) { in necp_client_parse_parameters()
3008 memcpy(&parsed_parameters->effective_pid, value, sizeof(parsed_parameters->effective_pid)); in necp_client_parse_parameters()
3009 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_EFFECTIVE_PID; in necp_client_parse_parameters()
3014 if (length >= sizeof(parsed_parameters->delegated_upid)) { in necp_client_parse_parameters()
3015 memcpy(&parsed_parameters->delegated_upid, value, sizeof(parsed_parameters->delegated_upid)); in necp_client_parse_parameters()
3016 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_DELEGATED_UPID; in necp_client_parse_parameters()
3021 if (length >= sizeof(parsed_parameters->ethertype)) { in necp_client_parse_parameters()
3022 memcpy(&parsed_parameters->ethertype, value, sizeof(parsed_parameters->ethertype)); in necp_client_parse_parameters()
3023 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_ETHERTYPE; in necp_client_parse_parameters()
3028 if (length >= sizeof(parsed_parameters->effective_uuid)) { in necp_client_parse_parameters()
3029 memcpy(&parsed_parameters->effective_uuid, value, sizeof(parsed_parameters->effective_uuid)); in necp_client_parse_parameters()
3030 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_EFFECTIVE_UUID; in necp_client_parse_parameters()
3035 if (length >= sizeof(parsed_parameters->traffic_class)) { in necp_client_parse_parameters()
3036 memcpy(&parsed_parameters->traffic_class, value, sizeof(parsed_parameters->traffic_class)); in necp_client_parse_parameters()
3037 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_TRAFFIC_CLASS; in necp_client_parse_parameters()
3064 memcpy(&parsed_parameters->parent_uuid, value, sizeof(parsed_parameters->parent_uuid)); in necp_client_parse_parameters()
3065 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_PARENT_UUID; in necp_client_parse_parameters()
3070 if (length >= sizeof(parsed_parameters->local_address_preference)) { in necp_client_parse_parameters()
3071 …memcpy(&parsed_parameters->local_address_preference, value, sizeof(parsed_parameters->local_addres… in necp_client_parse_parameters()
3072 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_LOCAL_ADDR_PREFERENCE; in necp_client_parse_parameters()
3078 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_ATTRIBUTED_BUNDLE_IDENTIFIER; in necp_client_parse_parameters()
3083 if (parsed_parameters->demux_pattern_count >= NECP_MAX_DEMUX_PATTERNS) { in necp_client_parse_parameters()
3087 …memcpy(&parsed_parameters->demux_patterns[parsed_parameters->demux_pattern_count], value, sizeof(s… in necp_client_parse_parameters()
3088 parsed_parameters->demux_pattern_count++; in necp_client_parse_parameters()
3089 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_FLOW_DEMUX_PATTERN; in necp_client_parse_parameters()
3144 …} else if (answer_struct->address_answer.sa.sa_family != parsed_parameters->remote_addr.sa.sa_fami… in necp_client_parse_parameters()
3145 answer_struct->address_answer.sa.sa_len != parsed_parameters->remote_addr.sa.sa_len) { in necp_client_parse_parameters()
3149 … answer_struct->address_answer.sin.sin_port != parsed_parameters->remote_addr.sin.sin_port) { in necp_client_parse_parameters()
3153 …answer_struct->address_answer.sin.sin_addr.s_addr != parsed_parameters->remote_addr.sin.sin_addr.s… in necp_client_parse_parameters()
3155 …memcmp(&answer_struct->address_answer.sin6.sin6_addr, &parsed_parameters->remote_addr.sin6.sin6_ad… in necp_client_parse_parameters()
3213 if (parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_KNOWN_TRACKER && client) { in necp_client_parse_parameters()
3215 parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_KNOWN_TRACKER, in necp_client_parse_parameters()
3216 parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_NON_APP_INITIATED, in necp_client_parse_parameters()
3217 parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_SILENT, in necp_client_parse_parameters()
3218 parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_APPROVED_APP_DOMAIN); in necp_client_parse_parameters()
3222 necp_client_trace_parsed_parameters(client, parsed_parameters); in necp_client_parse_parameters()
3898 struct necp_client_parsed_parameters *parsed_parameters = NULL; in necp_socket_is_allowed_to_recv_on_interface() local
3900 parsed_parameters = kalloc_type(struct necp_client_parsed_parameters, in necp_socket_is_allowed_to_recv_on_interface()
3902 …se_parameters(client, client->parameters, (u_int32_t)client->parameters_length, parsed_parameters); in necp_socket_is_allowed_to_recv_on_interface()
3904 if (!necp_ifnet_matches_parameters(interface, parsed_parameters, 0, NULL, true, false)) { in necp_socket_is_allowed_to_recv_on_interface()
3908 kfree_type(struct necp_client_parsed_parameters, parsed_parameters); in necp_socket_is_allowed_to_recv_on_interface()
4164 necp_update_parsed_parameters(struct necp_client_parsed_parameters *parsed_parameters, in necp_update_parsed_parameters() argument
4167 if (parsed_parameters == NULL || in necp_update_parsed_parameters()
4185 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_REQUIRED_AGENT) { in necp_update_parsed_parameters()
4188 if (uuid_compare(parsed_parameters->required_netagents[j], result->netagents[i]) == 0) { in necp_update_parsed_parameters()
4192 if (uuid_is_null(parsed_parameters->required_netagents[j])) { in necp_update_parsed_parameters()
4194 memcpy(&parsed_parameters->required_netagents[j], result->netagents[i], sizeof(uuid_t)); in necp_update_parsed_parameters()
4201 parsed_parameters->valid_fields |= NECP_PARSED_PARAMETERS_FIELD_REQUIRED_AGENT; in necp_update_parsed_parameters()
4202 memcpy(&parsed_parameters->required_netagents[0], result->netagents[i], sizeof(uuid_t)); in necp_update_parsed_parameters()
4207 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_REQUIRED_AGENT_TYPE) { in necp_update_parsed_parameters()
4212 if (strlen(parsed_parameters->required_netagent_types[j].netagent_domain) == 0 && in necp_update_parsed_parameters()
4213 strlen(parsed_parameters->required_netagent_types[j].netagent_type) == 0) { in necp_update_parsed_parameters()
4217 …if (strncmp(parsed_parameters->required_netagent_types[j].netagent_domain, remove_agent_domain, NE… in necp_update_parsed_parameters()
4218 …strncmp(parsed_parameters->required_netagent_types[j].netagent_type, remove_agent_type, NETAGENT_T… in necp_update_parsed_parameters()
4223 …memset(&parsed_parameters->required_netagent_types[NECP_MAX_AGENT_PARAMETERS - 1], 0, sizeof(struc… in necp_update_parsed_parameters()
4227 memmove(&parsed_parameters->required_netagent_types[j], in necp_update_parsed_parameters()
4228 &parsed_parameters->required_netagent_types[j + 1], in necp_update_parsed_parameters()
4230 …memset(&parsed_parameters->required_netagent_types[NECP_MAX_AGENT_PARAMETERS - 1], 0, sizeof(struc… in necp_update_parsed_parameters()
4244 parsed_parameters->required_interface_index != IFSCOPE_NONE && in necp_update_parsed_parameters()
4245 (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_REQUIRED_IF) == 0) { in necp_update_parsed_parameters()
4247 parsed_parameters->required_interface_index = IFSCOPE_NONE; in necp_update_parsed_parameters()
4267 struct necp_client_parsed_parameters *parsed_parameters, in necp_calculate_client_result() argument
4280 if (necp_find_matching_interface_index(parsed_parameters, &matching_if_index, &validate_agents)) { in necp_calculate_client_result()
4282 parsed_parameters->required_interface_index = matching_if_index; in necp_calculate_client_result()
4302 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_REQUIRED_AGENT) { in necp_calculate_client_result()
4304 if (uuid_is_null(parsed_parameters->required_netagents[i])) { in necp_calculate_client_result()
4319 if (uuid_compare(parsed_parameters->required_netagents[i], result->netagents[j]) == 0) { in necp_calculate_client_result()
4332 …if (!requirement_failed && parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_REQUIRED… in necp_calculate_client_result()
4334 if (strlen(parsed_parameters->required_netagent_types[i].netagent_domain) == 0 && in necp_calculate_client_result()
4335 strlen(parsed_parameters->required_netagent_types[i].netagent_type) == 0) { in necp_calculate_client_result()
4354 if (necp_agent_types_match(parsed_parameters->required_netagent_types[i].netagent_domain, in necp_calculate_client_result()
4355 parsed_parameters->required_netagent_types[i].netagent_type, in necp_calculate_client_result()
4408 struct necp_client_parsed_parameters *parsed_parameters = NULL; in necp_update_client_result() local
4414 parsed_parameters = kalloc_type(struct necp_client_parsed_parameters, in necp_update_client_result()
4420 …se_parameters(client, client->parameters, (u_int32_t)client->parameters_length, parsed_parameters); in necp_update_client_result()
4422 kfree_type(struct necp_client_parsed_parameters, parsed_parameters); in necp_update_client_result()
4427 client->ip_protocol = parsed_parameters->ip_protocol; in necp_update_client_result()
4434 …if (!necp_calculate_client_result(proc, client, parsed_parameters, &result, &flags, &reason, &v4_g… in necp_update_client_result()
4435 kfree_type(struct necp_client_parsed_parameters, parsed_parameters); in necp_update_client_result()
4439 if (necp_update_parsed_parameters(parsed_parameters, &result)) { in necp_update_client_result()
4441 …if (!necp_calculate_client_result(proc, client, parsed_parameters, &result, &flags, &reason, &v4_g… in necp_update_client_result()
4442 kfree_type(struct necp_client_parsed_parameters, parsed_parameters); in necp_update_client_result()
4447 if ((parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_LISTENER) && in necp_update_client_result()
4448 parsed_parameters->required_interface_index != IFSCOPE_NONE && in necp_update_client_result()
4449 (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_REQUIRED_IF) == 0) { in necp_update_client_result()
4451 parsed_parameters->required_interface_index = IFSCOPE_NONE; in necp_update_client_result()
4458 if ((parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_MULTIPATH) || in necp_update_client_result()
4459 (parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_BROWSE) || in necp_update_client_result()
4460 ((parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_LISTENER) && in necp_update_client_result()
4471 parsed_parameters->required_interface_index == result.routed_interface_index) { in necp_update_client_result()
4483 if (parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_LISTENER) { in necp_update_client_result()
4521 (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_REQUIRED_FIELDS) && in necp_update_client_result()
4522 parsed_parameters->required_interface_index != IFSCOPE_NONE && in necp_update_client_result()
4523 parsed_parameters->required_interface_index != result.routed_interface_index) { in necp_update_client_result()
4524 routed_interface_index = parsed_parameters->required_interface_index; in necp_update_client_result()
4570 bool has_remote_addr = parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_REMOTE_ADDR; in necp_update_client_result()
4618 …if (necp_netagent_applies_to_client(client, parsed_parameters, &netagent.netagent_uuid, TRUE, 0, 0… in necp_update_client_result()
4631 } else if (parsed_parameters->required_interface_index != IFSCOPE_NONE && in necp_update_client_result()
4632 parsed_parameters->required_interface_index <= (u_int32_t)if_index) { in necp_update_client_result()
4634 direct_interface = ifindex2ifnet[parsed_parameters->required_interface_index]; in necp_update_client_result()
4644 (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_REQUIRED_FIELDS) && in necp_update_client_result()
4645 parsed_parameters->required_interface_index != IFSCOPE_NONE && in necp_update_client_result()
4646parsed_parameters->required_interface_index != result.routing_result_parameter.tunnel_interface_in… in necp_update_client_result()
4647 parsed_parameters->required_interface_index <= (u_int32_t)if_index) { in necp_update_client_result()
4648 original_scoped_interface = ifindex2ifnet[parsed_parameters->required_interface_index]; in necp_update_client_result()
4684 if (parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_MULTIPATH) { in necp_update_client_result()
4688 necp_client_add_agent_interface_options(client, parsed_parameters, direct_interface); in necp_update_client_result()
4698 necp_ifnet_matches_parameters(multi_interface, parsed_parameters, 0, NULL, true, false)) { in necp_update_client_result()
4700 necp_client_add_agent_interface_options(client, parsed_parameters, multi_interface); in necp_update_client_result()
4707 } else if (parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_LISTENER) { in necp_update_client_result()
4712 necp_client_add_agent_interface_options(client, parsed_parameters, direct_interface); in necp_update_client_result()
4723 necp_ifnet_matches_parameters(listen_interface, parsed_parameters, 0, NULL, true, false)) { in necp_update_client_result()
4725 necp_client_add_agent_interface_options(client, parsed_parameters, listen_interface); in necp_update_client_result()
4729 } else if (parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_BROWSE) { in necp_update_client_result()
4733 necp_client_add_browse_interface_options(client, parsed_parameters, direct_interface); in necp_update_client_result()
4739 if (necp_ifnet_matches_parameters(browse_interface, parsed_parameters, 0, NULL, true, false)) { in necp_update_client_result()
4740 necp_client_add_browse_interface_options(client, parsed_parameters, browse_interface); in necp_update_client_result()
4775 if (necp_netagent_applies_to_client(client, parsed_parameters, &netagent.netagent_uuid, FALSE, in necp_update_client_result()
4809 if (necp_netagent_applies_to_client(client, parsed_parameters, &netagent.netagent_uuid, TRUE, in necp_update_client_result()
4845 if (necp_netagent_applies_to_client(client, parsed_parameters, &netagent.netagent_uuid, FALSE, in necp_update_client_result()
4890 kfree_type(struct necp_client_parsed_parameters, parsed_parameters); in necp_update_client_result()
5491 struct necp_client_parsed_parameters *parsed_parameters, in necp_ifnet_matches_parameters() argument
5503 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_REQUIRED_IF) { in necp_ifnet_matches_parameters()
5504 if (parsed_parameters->required_interface_index != ifp->if_index) { in necp_ifnet_matches_parameters()
5516 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_LOCAL_ADDR) { in necp_ifnet_matches_parameters()
5517 if (!necp_ifnet_matches_local_address(ifp, SA(&parsed_parameters->local_addr.sa))) { in necp_ifnet_matches_parameters()
5525 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_FLAGS) { in necp_ifnet_matches_parameters()
5536 if ((parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_PROHIBIT_EXPENSIVE) && in necp_ifnet_matches_parameters()
5540 if ((parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_PROHIBIT_CONSTRAINED) && in necp_ifnet_matches_parameters()
5548 …!(parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_FLAGS) || // or if there are… in necp_ifnet_matches_parameters()
5549 …!(parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_ONLY_PRIMARY_REQUIRES_TYPE)) && // or… in necp_ifnet_matches_parameters()
5550 (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_REQUIRED_IFTYPE) && in necp_ifnet_matches_parameters()
5551 !necp_ifnet_matches_type(ifp, parsed_parameters->required_interface_type, FALSE)) { in necp_ifnet_matches_parameters()
5555 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_REQUIRED_IFTYPE) { in necp_ifnet_matches_parameters()
5561 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_PROHIBITED_IFTYPE) { in necp_ifnet_matches_parameters()
5563 if (parsed_parameters->prohibited_interface_types[i] == 0) { in necp_ifnet_matches_parameters()
5567 if (necp_ifnet_matches_type(ifp, parsed_parameters->prohibited_interface_types[i], TRUE)) { in necp_ifnet_matches_parameters()
5573 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_PROHIBITED_IF) { in necp_ifnet_matches_parameters()
5575 if (strlen(parsed_parameters->prohibited_interfaces[i]) == 0) { in necp_ifnet_matches_parameters()
5579 if (necp_ifnet_matches_name(ifp, parsed_parameters->prohibited_interfaces[i], TRUE)) { in necp_ifnet_matches_parameters()
5585 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_REQUIRED_AGENT) { in necp_ifnet_matches_parameters()
5587 if (uuid_is_null(parsed_parameters->required_netagents[i])) { in necp_ifnet_matches_parameters()
5591 if (!necp_ifnet_matches_agent(ifp, &parsed_parameters->required_netagents[i], FALSE)) { in necp_ifnet_matches_parameters()
5601 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_PROHIBITED_AGENT) { in necp_ifnet_matches_parameters()
5603 if (uuid_is_null(parsed_parameters->prohibited_netagents[i])) { in necp_ifnet_matches_parameters()
5607 if (necp_ifnet_matches_agent(ifp, &parsed_parameters->prohibited_netagents[i], TRUE)) { in necp_ifnet_matches_parameters()
5613 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_REQUIRED_AGENT_TYPE) { in necp_ifnet_matches_parameters()
5615 if (strlen(parsed_parameters->required_netagent_types[i].netagent_domain) == 0 && in necp_ifnet_matches_parameters()
5616 strlen(parsed_parameters->required_netagent_types[i].netagent_type) == 0) { in necp_ifnet_matches_parameters()
5620 …!necp_ifnet_matches_agent_type(ifp, parsed_parameters->required_netagent_types[i].netagent_domain,… in necp_ifnet_matches_parameters()
5630 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_PROHIBITED_AGENT_TYPE) { in necp_ifnet_matches_parameters()
5632 if (strlen(parsed_parameters->prohibited_netagent_types[i].netagent_domain) == 0 && in necp_ifnet_matches_parameters()
5633 strlen(parsed_parameters->prohibited_netagent_types[i].netagent_type) == 0) { in necp_ifnet_matches_parameters()
5637 …necp_ifnet_matches_agent_type(ifp, parsed_parameters->prohibited_netagent_types[i].netagent_domain… in necp_ifnet_matches_parameters()
5645 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_PREFERRED_AGENT) { in necp_ifnet_matches_parameters()
5647 if (uuid_is_null(parsed_parameters->preferred_netagents[i])) { in necp_ifnet_matches_parameters()
5651 if (necp_ifnet_matches_agent(ifp, &parsed_parameters->preferred_netagents[i], TRUE)) { in necp_ifnet_matches_parameters()
5660 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_PREFERRED_AGENT_TYPE) { in necp_ifnet_matches_parameters()
5662 if (strlen(parsed_parameters->preferred_netagent_types[i].netagent_domain) == 0 && in necp_ifnet_matches_parameters()
5663 strlen(parsed_parameters->preferred_netagent_types[i].netagent_type) == 0) { in necp_ifnet_matches_parameters()
5667 …(necp_ifnet_matches_agent_type(ifp, parsed_parameters->preferred_netagent_types[i].netagent_domain… in necp_ifnet_matches_parameters()
5676 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_AVOIDED_AGENT) { in necp_ifnet_matches_parameters()
5678 if (uuid_is_null(parsed_parameters->avoided_netagents[i])) { in necp_ifnet_matches_parameters()
5682 if (!necp_ifnet_matches_agent(ifp, &parsed_parameters->avoided_netagents[i], TRUE)) { in necp_ifnet_matches_parameters()
5688 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_AVOIDED_AGENT_TYPE) { in necp_ifnet_matches_parameters()
5690 if (strlen(parsed_parameters->avoided_netagent_types[i].netagent_domain) == 0 && in necp_ifnet_matches_parameters()
5691 strlen(parsed_parameters->avoided_netagent_types[i].netagent_type) == 0) { in necp_ifnet_matches_parameters()
5695 …if (!necp_ifnet_matches_agent_type(ifp, parsed_parameters->avoided_netagent_types[i].netagent_doma… in necp_ifnet_matches_parameters()
5696 parsed_parameters->avoided_netagent_types[i].netagent_type, TRUE)) { in necp_ifnet_matches_parameters()
5711 necp_find_matching_interface_index(struct necp_client_parsed_parameters *parsed_parameters, in necp_find_matching_interface_index() argument
5719 if (parsed_parameters->required_interface_index != 0) { in necp_find_matching_interface_index()
5720 *return_ifindex = parsed_parameters->required_interface_index; in necp_find_matching_interface_index()
5727 if (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_FLAGS) { in necp_find_matching_interface_index()
5728 flags = parsed_parameters->flags; in necp_find_matching_interface_index()
5729 has_prohibit_flags = (parsed_parameters->flags & in necp_find_matching_interface_index()
5734 if (!(parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_INTERESTING_IFNET_FIELDS) && in necp_find_matching_interface_index()
5739 has_preferred_fields = (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_PREFERRED_FIELDS); in necp_find_matching_interface_index()
5744 if (!(parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_SCOPED_FIELDS) && in necp_find_matching_interface_index()
5749 if (ifp == NULL || necp_ifnet_matches_parameters(ifp, parsed_parameters, 0, NULL, false, false)) { in necp_find_matching_interface_index()
5759 …if (necp_ifnet_matches_parameters(ifp, parsed_parameters, flags, &preferred_count, false, false)) { in necp_find_matching_interface_index()
5782 bool is_listener = ((parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_FLAGS) && in necp_find_matching_interface_index()
5783 (parsed_parameters->flags & NECP_CLIENT_PARAMETER_FLAG_LISTENER)); in necp_find_matching_interface_index()
5786 if ((parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_SCOPED_FIELDS) && in necp_find_matching_interface_index()
5787 ((!(parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_REQUIRED_IFTYPE)) || in necp_find_matching_interface_index()
5788 …necp_interface_type_should_match_unranked_interfaces(parsed_parameters->required_interface_type) || in necp_find_matching_interface_index()
5789 (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_FIELD_LOCAL_ADDR) || in necp_find_matching_interface_index()
5798 … if (necp_ifnet_matches_parameters(ifp, parsed_parameters, flags, &preferred_count, false, true)) { in necp_find_matching_interface_index()
5816 …((parsed_parameters->valid_fields & (NECP_PARSED_PARAMETERS_SCOPED_FIELDS | NECP_PARSED_PARAMETERS… in necp_find_matching_interface_index()
5817 (parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_PREFERRED_FIELDS))) { in necp_find_matching_interface_index()
5824 !(parsed_parameters->valid_fields & NECP_PARSED_PARAMETERS_SCOPED_IFNET_FIELDS)) { in necp_find_matching_interface_index()
6934 struct necp_client_parsed_parameters parsed_parameters = {}; in necp_client_add() local
6935 …e_parameters(client, client->parameters, (u_int32_t)client->parameters_length, &parsed_parameters); in necp_client_add()
6938 ((parsed_parameters.valid_fields & NECP_PARSED_PARAMETERS_FIELD_DELEGATED_UPID) || in necp_client_add()
6939 … (parsed_parameters.valid_fields & NECP_PARSED_PARAMETERS_FIELD_ATTRIBUTED_BUNDLE_IDENTIFIER))) { in necp_client_add()
6942 if (parsed_parameters.valid_fields & NECP_PARSED_PARAMETERS_FIELD_DELEGATED_UPID) { in necp_client_add()
6946 if (parsed_parameters.valid_fields & NECP_PARSED_PARAMETERS_FIELD_ATTRIBUTED_BUNDLE_IDENTIFIER) { in necp_client_add()
6954 if (parsed_parameters.valid_fields & NECP_PARSED_PARAMETERS_FIELD_DELEGATED_UPID) { in necp_client_add()
6956 client->delegated_upid = parsed_parameters.delegated_upid; in necp_client_add()
6960 if (parse_error == 0 && parsed_parameters.flags & NECP_CLIENT_PARAMETER_FLAG_INTERPOSE) { in necp_client_add()
6970 if (parse_error == 0 && (parsed_parameters.flags & in necp_client_add()
6981 if (parse_error == 0 && parsed_parameters.flags & NECP_CLIENT_PARAMETER_FLAG_LISTENER && in necp_client_add()
6982 … (parsed_parameters.ip_protocol == IPPROTO_TCP || parsed_parameters.ip_protocol == IPPROTO_UDP)) { in necp_client_add()
6987 flow_info.nfi_protocol = parsed_parameters.ip_protocol; in necp_client_add()
6989 if (parsed_parameters.valid_fields & NECP_PARSED_PARAMETERS_FIELD_EFFECTIVE_PID) { in necp_client_add()
6990 flow_info.nfi_effective_pid = parsed_parameters.effective_pid; in necp_client_add()
6997 if (parsed_parameters.local_addr.sa.sa_family == AF_UNSPEC) { in necp_client_add()
7000 parsed_parameters.local_addr.sin6.sin6_family = AF_INET6; in necp_client_add()
7001 parsed_parameters.local_addr.sin6.sin6_len = sizeof(struct sockaddr_in6); in necp_client_add()
7004 switch (parsed_parameters.local_addr.sa.sa_family) { in necp_client_add()
7006 …memcpy(&flow_info.nfi_laddr, &parsed_parameters.local_addr.sa, parsed_parameters.local_addr.sa.sa_… in necp_client_add()
7007 netns_addr = (uint32_t *)&parsed_parameters.local_addr.sin.sin_addr; in necp_client_add()
7012 …memcpy(&flow_info.nfi_laddr, &parsed_parameters.local_addr.sa, parsed_parameters.local_addr.sa.sa_… in necp_client_add()
7013 netns_addr = (uint32_t *)&parsed_parameters.local_addr.sin6.sin6_addr; in necp_client_add()
7019 …NECPLOG(LOG_ERR, "necp_client_add listener invalid address family (%d)", parsed_parameters.local_a… in necp_client_add()
7024 if (parsed_parameters.local_addr.sin.sin_port == 0) { in necp_client_add()
7025 …rve_ephemeral(&client->port_reservation, netns_addr, netns_addr_len, parsed_parameters.ip_protocol, in necp_client_add()
7026 &parsed_parameters.local_addr.sin.sin_port, NETNS_LISTENER, &flow_info); in necp_client_add()
7033 …arameters(client->parameters, (u_int32_t)client->parameters_length, parsed_parameters.local_addr.s… in necp_client_add()
7035 …error = netns_reserve(&client->port_reservation, netns_addr, netns_addr_len, parsed_parameters.ip_… in necp_client_add()
7036 parsed_parameters.local_addr.sin.sin_port, NETNS_LISTENER, &flow_info); in necp_client_add()
7049 if (parsed_parameters.valid_fields & NECP_PARSED_PARAMETERS_FIELD_PARENT_UUID) { in necp_client_add()
7054 parent = necp_client_fd_find_client_unlocked(fd_data, parsed_parameters.parent_uuid); in necp_client_add()
7058 uuid_copy(parent_client_id, parsed_parameters.parent_uuid); in necp_client_add()
7069 …if (parse_error == 0 && parent != NULL && parsed_parameters.valid_fields & NECP_PARSED_PARAMETERS_… in necp_client_add()
7071 if (parsed_parameters.demux_patterns[0].len == 0) { in necp_client_add()
7085 if (parsed_parameters.ip_protocol != IPPROTO_UDP) { in necp_client_add()
7087 parsed_parameters.ip_protocol); in necp_client_add()
7090 if (parsed_parameters.ip_protocol != parent_parameters.transport_protocol) { in necp_client_add()
7094 …if (parsed_parameters.local_addr.sa.sa_family != AF_INET && parsed_parameters.local_addr.sa.sa_fam… in necp_client_add()
7096 parsed_parameters.local_addr.sa.sa_family); in necp_client_add()
7099 if (parsed_parameters.local_addr.sa.sa_family != parsed_parameters.remote_addr.sa.sa_family) { in necp_client_add()
7103 if (parsed_parameters.local_addr.sa.sa_family != parent_parameters.local_addr.sa.sa_family) { in necp_client_add()
7107 …if (memcmp(&parsed_parameters.local_addr.sa, &parent_parameters.local_addr.sa, parsed_parameters.l… in necp_client_add()
7111 …if (memcmp(&parsed_parameters.remote_addr.sa, &parent_parameters.remote_addr.sa, parsed_parameters in necp_client_add()
7115 if (parsed_parameters.local_addr.sin.sin_port != parent_parameters.local_addr.sin.sin_port) { in necp_client_add()
7119 if (parsed_parameters.remote_addr.sin.sin_port != parent_parameters.remote_addr.sin.sin_port) { in necp_client_add()
7423 struct necp_client_parsed_parameters parsed_parameters; in necp_client_check_tcp_heuristics() local
7428 &parsed_parameters); in necp_client_check_tcp_heuristics()
7450 if ((parsed_parameters.flags & NECP_CLIENT_PARAMETER_FLAG_ECN_ENABLE) == in necp_client_check_tcp_heuristics()
7456 if ((parsed_parameters.flags & NECP_CLIENT_PARAMETER_FLAG_ECN_DISABLE) == in necp_client_check_tcp_heuristics()
7471 bool inbound = ((parsed_parameters.flags & NECP_CLIENT_PARAMETER_FLAG_LISTENER) == 0); in necp_client_check_tcp_heuristics()
7485 if ((parsed_parameters.flags & NECP_CLIENT_PARAMETER_FLAG_TFO_ENABLE) == in necp_client_check_tcp_heuristics()
7959 struct necp_client_parsed_parameters parsed_parameters = {}; in necp_client_copy_parameters_locked() local
7960 …e_parameters(client, client->parameters, (u_int32_t)client->parameters_length, &parsed_parameters); in necp_client_copy_parameters_locked()
7963 if (parsed_parameters.valid_fields & NECP_PARSED_PARAMETERS_FIELD_EFFECTIVE_PID) { in necp_client_copy_parameters_locked()
7964 parameters->epid = parsed_parameters.effective_pid; in necp_client_copy_parameters_locked()
7971 memcpy(&parameters->local_addr, &parsed_parameters.local_addr, sizeof(parameters->local_addr)); in necp_client_copy_parameters_locked()
7972 memcpy(&parameters->remote_addr, &parsed_parameters.remote_addr, sizeof(parameters->remote_addr)); in necp_client_copy_parameters_locked()
7973 parameters->ip_protocol = parsed_parameters.ip_protocol; in necp_client_copy_parameters_locked()
7974 if (parsed_parameters.valid_fields & NECP_PARSED_PARAMETERS_FIELD_TRANSPORT_PROTOCOL) { in necp_client_copy_parameters_locked()
7975 parameters->transport_protocol = parsed_parameters.transport_protocol; in necp_client_copy_parameters_locked()
7977 parameters->transport_protocol = parsed_parameters.ip_protocol; in necp_client_copy_parameters_locked()
7979 parameters->ethertype = parsed_parameters.ethertype; in necp_client_copy_parameters_locked()
7980 parameters->traffic_class = parsed_parameters.traffic_class; in necp_client_copy_parameters_locked()
7982 uuid_copy(parameters->euuid, parsed_parameters.effective_uuid); in necp_client_copy_parameters_locked()
7986 parameters->is_listener = (parsed_parameters.flags & NECP_CLIENT_PARAMETER_FLAG_LISTENER) ? 1 : 0; in necp_client_copy_parameters_locked()
7987 …parameters->is_interpose = (parsed_parameters.flags & NECP_CLIENT_PARAMETER_FLAG_INTERPOSE) ? 1 : … in necp_client_copy_parameters_locked()
7988 …parameters->is_custom_ether = (parsed_parameters.flags & NECP_CLIENT_PARAMETER_FLAG_CUSTOM_ETHER) … in necp_client_copy_parameters_locked()
8001 if (parsed_parameters.valid_fields & NECP_PARSED_PARAMETERS_FIELD_LOCAL_ADDR_PREFERENCE) { in necp_client_copy_parameters_locked()
8002 …if (parsed_parameters.local_address_preference == NECP_CLIENT_PARAMETER_LOCAL_ADDRESS_PREFERENCE_D… in necp_client_copy_parameters_locked()
8004 …} else if (parsed_parameters.local_address_preference == NECP_CLIENT_PARAMETER_LOCAL_ADDRESS_PREFE… in necp_client_copy_parameters_locked()
8007 …} else if (parsed_parameters.local_address_preference == NECP_CLIENT_PARAMETER_LOCAL_ADDRESS_PREFE… in necp_client_copy_parameters_locked()
8015 if ((parsed_parameters.valid_fields & NECP_PARSED_PARAMETERS_FIELD_FLAGS) && in necp_client_copy_parameters_locked()
8016 (parsed_parameters.flags & NECP_CLIENT_PARAMETER_FLAG_NO_WAKE_FROM_SLEEP)) { in necp_client_copy_parameters_locked()
8020 if ((parsed_parameters.valid_fields & NECP_PARSED_PARAMETERS_FIELD_FLAGS) && in necp_client_copy_parameters_locked()
8021 (parsed_parameters.flags & NECP_CLIENT_PARAMETER_FLAG_REUSE_LOCAL)) { in necp_client_copy_parameters_locked()
8027 if (parsed_parameters.valid_fields & NECP_PARSED_PARAMETERS_FIELD_FLOW_DEMUX_PATTERN) { in necp_client_copy_parameters_locked()
8028 if (parsed_parameters.demux_patterns[0].len == 0) { in necp_client_copy_parameters_locked()
8047 if (parsed_parameters.demux_pattern_count > 0) { in necp_client_copy_parameters_locked()
8048 for (int i = 0; i < parsed_parameters.demux_pattern_count; i++) { in necp_client_copy_parameters_locked()
8049 …memcpy(&parameters->demux_patterns[i], &parsed_parameters.demux_patterns[i], sizeof(struct necp_de… in necp_client_copy_parameters_locked()
8051 parameters->demux_pattern_count = parsed_parameters.demux_pattern_count; in necp_client_copy_parameters_locked()
8692 struct necp_client_nexus_parameters parsed_parameters = {}; in necp_client_agent_action() local
8693 necp_client_copy_parameters_locked(client, &parsed_parameters); in necp_client_agent_action()
8700 (struct necp_client_agent_parameters *)&parsed_parameters, in necp_client_agent_action()