X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fdhcp%2Fdhcp6_pd_client_dp.c;h=c665b17281a8a2901af28106af4484ccbe1d787d;hb=2c41a61d5fc87737b9b46b88cb9271d0f987721e;hp=9fb6096b8d59b6142f7b4c1e0ed9b34c2dab299b;hpb=b7b929931a07fbb27b43d5cd105f366c3e29807e;p=vpp.git diff --git a/src/vnet/dhcp/dhcp6_pd_client_dp.c b/src/vnet/dhcp/dhcp6_pd_client_dp.c index 9fb6096b8d5..c665b17281a 100644 --- a/src/vnet/dhcp/dhcp6_pd_client_dp.c +++ b/src/vnet/dhcp/dhcp6_pd_client_dp.c @@ -25,6 +25,7 @@ #include #include #include +#include #include @@ -457,7 +458,7 @@ void params.mrt = ntohl (mp->mrt); params.mrc = ntohl (mp->mrc); params.mrd = ntohl (mp->mrd); - params.msg_type = mp->msg_type; + params.msg_type = ntohl (mp->msg_type); params.T1 = ntohl (mp->T1); params.T2 = ntohl (mp->T2); n_prefixes = ntohl (mp->n_prefixes); @@ -471,8 +472,8 @@ void ¶ms.prefixes[i]; pref->preferred_lt = ntohl (pi->preferred_time); pref->valid_lt = ntohl (pi->valid_time); - memcpy (pref->prefix.as_u8, pi->prefix, 16); - pref->prefix_length = pi->prefix_length; + ip6_address_decode (pi->prefix.address, &pref->prefix); + pref->prefix_length = pi->prefix.len; } dhcp6_pd_send_client_message (vm, ntohl (mp->sw_if_index), mp->stop, @@ -501,7 +502,7 @@ static uword dhcp6_pd_reply_process (vlib_main_t * vm, vlib_node_runtime_t * rt, vlib_frame_t * f) { - /* These cross the longjmp boundry (vlib_process_wait_for_event) + /* These cross the longjmp boundary (vlib_process_wait_for_event) * and need to be volatile - to prevent them from being optimized into * a register - which could change during suspension */ @@ -542,8 +543,8 @@ dhcp6_pd_reply_process (vlib_main_t * vm, vlib_node_runtime_t * rt, for (j = 0; j < vec_len (events[i].prefixes); j++) { dhcp6_prefix_info_t *info = &events[i].prefixes[j]; - memcpy (prefix->prefix, &info->prefix, 16); - prefix->prefix_length = info->prefix_length; + ip6_address_encode (&info->prefix, prefix->prefix.address); + prefix->prefix.len = info->prefix_length; prefix->valid_time = htonl (info->valid_time); prefix->preferred_time = htonl (info->preferred_time); prefix++; @@ -647,10 +648,8 @@ dhcp6_pd_client_init (vlib_main_t * vm) cm->vlib_main = vm; cm->vnet_main = vnet_get_main (); - cm->publisher_node = ~0; - - cm->seed = 0xdeaddabe; + cm->seed = (u32) clib_cpu_time_now (); return 0; }