u8 address_already_present = 0;
/* *INDENT-OFF* */
- pool_foreach (address_info, rm->address_pool,
- ({
+ pool_foreach (address_info, rm->address_pool)
+ {
if (address_info->sw_if_index != sw_if_index)
;
else if (!ip6_addresses_equal (&address_info->address, address))
address_already_present = 1;
goto address_pool_foreach_out;
}
- }));
+ }
/* *INDENT-ON* */
address_pool_foreach_out:
address_info_t *address_info, *address_list = 0;;
/* *INDENT-OFF* */
- pool_foreach (address_info, rm->address_pool,
- ({
+ pool_foreach (address_info, rm->address_pool)
+ {
if (address_info->sw_if_index == sw_if_index)
{
u32 pos = vec_len (address_list);
vec_validate (address_list, pos);
clib_memcpy (&address_list[pos], address_info, sizeof (*address_info));
}
- }));
+ }
/* *INDENT-ON* */
return address_list;
{
due_time = current_time + 1e9;
/* *INDENT-OFF* */
- pool_foreach (address_info, rm->address_pool,
- ({
+ pool_foreach (address_info, rm->address_pool)
+ {
if (address_info->due_time > current_time)
{
if (address_info->due_time < due_time)
clib_warning ("Failed to delete interface address");
pool_put (rm->address_pool, address_info);
/* make sure ip6 stays enabled */
- ip6_link_enable (sw_if_index);
+ ip6_link_enable (sw_if_index, NULL);
client_state = &rm->client_state_by_sw_if_index[sw_if_index];
if (--client_state->address_count == 0)
{
0, 1);
}
}
- }));
+ }
/* *INDENT-ON* */
for (i = 0; i < vec_len (rm->client_state_by_sw_if_index); i++)
{
f64 current_time = vlib_time_now (vm);
/* *INDENT-OFF* */
- pool_foreach (address_info, dm->address_pool,
- ({
+ pool_foreach (address_info, dm->address_pool)
+ {
vlib_cli_output (vm, "address: %U, "
"preferred lifetime: %u, valid lifetime: %u "
"(%f remaining)",
format_ip6_address, &address_info->address,
address_info->preferred_lt, address_info->valid_lt,
address_info->due_time - current_time);
- }));
+ }
/* *INDENT-ON* */
return error;
clib_error_t *error = 0;
client_state_t *cs;
f64 current_time = vlib_time_now (vm);
- char buf1[256];
- char buf2[256];
+ u8 *buf1 = 0;
+ u8 *buf2 = 0;
const char *rebinding;
u32 i;
cs = &rm->client_state_by_sw_if_index[i];
if (cs->enabled)
{
+ vec_reset_length (buf1);
+ vec_reset_length (buf2);
if (cs->T1_due_time != DBL_MAX && cs->T1_due_time > current_time)
{
- sprintf (buf1, "%u remaining",
- (u32) round (cs->T1_due_time - current_time));
+ buf1 = format (buf1, "%u remaining",
+ (u32) round (cs->T1_due_time - current_time));
}
else
- sprintf (buf1, "timeout");
+ buf1 = format (buf1, "timeout");
if (cs->T2_due_time != DBL_MAX && cs->T2_due_time > current_time)
- sprintf (buf2, "%u remaining",
- (u32) round (cs->T2_due_time - current_time));
+ buf2 = format (buf2, "%u remaining",
+ (u32) round (cs->T2_due_time - current_time));
else
- sprintf (buf2, "timeout");
+ buf2 = format (buf2, "timeout");
if (cs->rebinding)
rebinding = ", REBINDING";
else
rebinding = "";
if (cs->T1)
vlib_cli_output (vm,
- "sw_if_index: %u, T1: %u (%s), "
- "T2: %u (%s), server index: %d%s", i,
+ "sw_if_index: %u, T1: %u (%v), "
+ "T2: %u (%v), server index: %d%s", i,
cs->T1, buf1, cs->T2, buf2,
cs->server_index, rebinding);
else
}
}
+ vec_free (buf1);
+ vec_free (buf2);
+
return error;
}
dhcp6_clients_enable_disable (1);
}
- ip6_link_enable (sw_if_index);
+ ip6_link_enable (sw_if_index, NULL);
send_client_message_start_stop (sw_if_index, ~0, DHCPV6_MSG_SOLICIT,
0, 1);
}
}
/* *INDENT-OFF* */
- pool_foreach (address_info, rm->address_pool,
- ({
+ pool_foreach (address_info, rm->address_pool)
+ {
if (address_info->sw_if_index == sw_if_index)
{
ASSERT (sw_if_index < vec_len (rm->client_state_by_sw_if_index) &&
clib_warning ("Failed to delete interface address");
pool_put (rm->address_pool, address_info);
}
- }));
+ }
/* *INDENT-ON* */
}