X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fdhcp%2Fdhcp6_client_common_dp.c;h=d9e1fc7e2cced40215f67ddedc5e964f9918cf36;hb=1e3aa5e213c23588981ee17d1413a0441a40527a;hp=216bf5fa0e476006e56232c9e00fafebd57b4e23;hpb=dd3b8f7ab9f120b92c5fdf26016db47bbe18cb39;p=vpp.git diff --git a/src/vnet/dhcp/dhcp6_client_common_dp.c b/src/vnet/dhcp/dhcp6_client_common_dp.c index 216bf5fa0e4..d9e1fc7e2cc 100644 --- a/src/vnet/dhcp/dhcp6_client_common_dp.c +++ b/src/vnet/dhcp/dhcp6_client_common_dp.c @@ -186,13 +186,13 @@ dhcpv6_client_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node, dhcpv60 = vlib_buffer_get_current (b0); ip0 = (void *) (b0->data + vnet_buffer (b0)->l3_hdr_offset); - u32 dhcpv6_ip6_palyoad_offset = + u32 dhcpv6_ip6_payload_offset = (u8 *) dhcpv60 - ((u8 *) ip0 + sizeof (*ip0)); options_length = - ntohs (ip0->payload_length) - dhcpv6_ip6_palyoad_offset - + ntohs (ip0->payload_length) - dhcpv6_ip6_payload_offset - sizeof (*dhcpv60); - memset (&report, 0, sizeof (report)); + clib_memset (&report, 0, sizeof (report)); sw_if_index = vnet_buffer (b0)->sw_if_index[VLIB_RX]; if (sw_if_index >= vec_len (icm->client_state_by_sw_if_index)) @@ -395,6 +395,8 @@ dhcpv6_client_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node, r.n_addresses = vec_len (addresses); r.addresses = addresses; dhcp6_publish_report (&r); + /* We just gave addresses to another process! */ + addresses = 0; } else { @@ -403,6 +405,8 @@ dhcpv6_client_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node, r.n_prefixes = vec_len (prefixes); r.prefixes = prefixes; dhcp6_pd_publish_report (&r); + /* We just gave prefixes to another process! */ + prefixes = 0; } } vec_free (addresses);