X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=blobdiff_plain;f=src%2Fplugins%2Fdhcp%2Fdhcp6_client_common_dp.c;fp=src%2Fvnet%2Fdhcp%2Fdhcp6_client_common_dp.c;h=e42ec3f472c4fa17be79e0ded71d328457fadcd9;hp=7ca3b61defb5d508d57de9c4d7f71a095d066d96;hb=02bfd641b;hpb=2c41a61d5fc87737b9b46b88cb9271d0f987721e diff --git a/src/vnet/dhcp/dhcp6_client_common_dp.c b/src/plugins/dhcp/dhcp6_client_common_dp.c similarity index 85% rename from src/vnet/dhcp/dhcp6_client_common_dp.c rename to src/plugins/dhcp/dhcp6_client_common_dp.c index 7ca3b61defb..e42ec3f472c 100644 --- a/src/vnet/dhcp/dhcp6_client_common_dp.c +++ b/src/plugins/dhcp/dhcp6_client_common_dp.c @@ -14,10 +14,11 @@ */ #include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include dhcp6_client_common_main_t dhcp6_client_common_main; @@ -48,30 +49,11 @@ server_index_get_or_create (u8 * data, u16 len) return vec_len (ccm->server_ids) - 1; } -void -vl_api_dhcp6_duid_ll_set_t_handler (vl_api_dhcp6_duid_ll_set_t * mp) -{ - vl_api_dhcp6_duid_ll_set_reply_t *rmp; - dhcpv6_duid_ll_string_t *duid; - int rv = 0; - - duid = (dhcpv6_duid_ll_string_t *) mp->duid_ll; - if (duid->duid_type != htonl (DHCPV6_DUID_LL)) - { - rv = VNET_API_ERROR_INVALID_VALUE; - goto reply; - } - clib_memcpy (&client_duid, &duid, sizeof (client_duid)); - -reply: - REPLY_MACRO (VL_API_DHCP6_DUID_LL_SET_REPLY); -} - static void generate_client_duid (void) { - client_duid.duid_type = htons (DHCPV6_DUID_LL); - client_duid.hardware_type = htons (1); + client_duid.duid_type = clib_host_to_net_u16 (DHCPV6_DUID_LL); + client_duid.hardware_type = clib_host_to_net_u16 (1); vnet_main_t *vnm = vnet_get_main (); vnet_interface_main_t *im = &vnm->interface_main; @@ -190,8 +172,8 @@ dhcpv6_client_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node, u32 dhcpv6_ip6_payload_offset = (u8 *) dhcpv60 - ((u8 *) ip0 + sizeof (*ip0)); options_length = - ntohs (ip0->payload_length) - dhcpv6_ip6_payload_offset - - sizeof (*dhcpv60); + clib_net_to_host_u16 (ip0->payload_length) - + dhcpv6_ip6_payload_offset - sizeof (*dhcpv60); clib_memset (&report, 0, sizeof (report)); @@ -232,22 +214,24 @@ dhcpv6_client_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node, while (options_length > 0) { if (options_length < - ntohs (option->length) + sizeof (*option)) + clib_net_to_host_u16 (option->length) + + sizeof (*option)) { clib_warning ("remaining payload length < option length (%d < %d)", options_length, - ntohs (option->length) + sizeof (*option)); + clib_net_to_host_u16 (option->length) + + sizeof (*option)); break; } - u16 oo = ntohs (option->option); + u16 oo = clib_net_to_host_u16 (option->option); if (oo == DHCPV6_OPTION_IA_NA || oo == DHCPV6_OPTION_IA_PD) { u8 discard_option = 0; dhcpv6_ia_header_t *ia_header = (void *) option; - iaid = ntohl (ia_header->iaid); - u32 T1 = ntohl (ia_header->t1); - u32 T2 = ntohl (ia_header->t2); + iaid = clib_net_to_host_u32 (ia_header->iaid); + u32 T1 = clib_net_to_host_u32 (ia_header->t1); + u32 T2 = clib_net_to_host_u32 (ia_header->t2); if (iaid != DHCPV6_CLIENT_IAID) discard_option = 1; if (T1 != 0 && T2 != 0 && T1 > T2) @@ -260,11 +244,12 @@ dhcpv6_client_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node, dhcpv6_option_t *inner_option = (void *) ia_header->data; u16 inner_options_length = - ntohs (option->length) - (sizeof (*ia_header) - - sizeof (dhcpv6_option_t)); + clib_net_to_host_u16 (option->length) - + (sizeof (*ia_header) - sizeof (dhcpv6_option_t)); while (inner_options_length > 0) { - u16 inner_oo = ntohs (inner_option->option); + u16 inner_oo = + clib_net_to_host_u16 (inner_option->option); if (discard_option) ; else if (inner_oo == DHCPV6_OPTION_IAADDR) @@ -276,9 +261,9 @@ dhcpv6_client_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node, dhcp6_address_info_t *address_info = &addresses[n_addresses]; address_info->preferred_time = - ntohl (iaaddr->preferred); + clib_net_to_host_u32 (iaaddr->preferred); address_info->valid_time = - ntohl (iaaddr->valid); + clib_net_to_host_u32 (iaaddr->valid); address_info->address = iaaddr->addr; } else if (inner_oo == DHCPV6_OPTION_IAPREFIX) @@ -290,9 +275,9 @@ dhcpv6_client_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node, dhcp6_prefix_info_t *prefix_info = &prefixes[n_prefixes]; prefix_info->preferred_time = - ntohl (iaprefix->preferred); + clib_net_to_host_u32 (iaprefix->preferred); prefix_info->valid_time = - ntohl (iaprefix->valid); + clib_net_to_host_u32 (iaprefix->valid); prefix_info->prefix_length = iaprefix->prefix; prefix_info->prefix = iaprefix->addr; } @@ -301,15 +286,16 @@ dhcpv6_client_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node, dhcpv6_status_code_t *sc = (void *) inner_option; report.inner_status_code = - ntohs (sc->status_code); + clib_net_to_host_u16 (sc->status_code); } inner_options_length -= sizeof (*inner_option) + - ntohs (inner_option->length); + clib_net_to_host_u16 (inner_option->length); inner_option = (void *) ((u8 *) inner_option + sizeof (*inner_option) + - ntohs (inner_option->length)); + clib_net_to_host_u16 + (inner_option->length)); } } else if (oo == DHCPV6_OPTION_CLIENTID) @@ -322,7 +308,7 @@ dhcpv6_client_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node, } else { - u16 len = ntohs (option->length); + u16 len = clib_net_to_host_u16 (option->length); client_id_present = 1; if (len != CLIENT_DUID_LENGTH || 0 != memcmp (option->data, @@ -345,7 +331,7 @@ dhcpv6_client_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node, } else { - u16 ol = ntohs (option->length); + u16 ol = clib_net_to_host_u16 (option->length); if (ol - 2 /* 2 byte DUID type code */ > 128) { clib_warning @@ -366,12 +352,14 @@ dhcpv6_client_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node, else if (oo == DHCPV6_OPTION_STATUS_CODE) { dhcpv6_status_code_t *sc = (void *) option; - report.status_code = ntohs (sc->status_code); + report.status_code = + clib_net_to_host_u16 (sc->status_code); } - options_length -= sizeof (*option) + ntohs (option->length); + options_length -= + sizeof (*option) + clib_net_to_host_u16 (option->length); option = (void *) ((u8 *) option + sizeof (*option) + - ntohs (option->length)); + clib_net_to_host_u16 (option->length)); } if (!client_id_present) @@ -472,18 +460,6 @@ dhcp6_clients_enable_disable (u8 enable) 0 /* is_ip6 */ ); } -void - vl_api_dhcp6_clients_enable_disable_t_handler - (vl_api_dhcp6_clients_enable_disable_t * mp) -{ - vl_api_dhcp6_clients_enable_disable_reply_t *rmp; - int rv = 0; - - dhcp6_clients_enable_disable (mp->enable); - - REPLY_MACRO (VL_API_DHCP6_CLIENTS_ENABLE_DISABLE_REPLY); -} - /* * fd.io coding-style-patch-verification: ON *