* We're going to loop through the pool multiple times,
* so collect active indices.
*/
- /* *INDENT-OFF* */
pool_foreach (prefix_info, pm->prefix_pool)
{
vec_add1 (pm->indices, prefix_info - pm->prefix_pool);
}
- /* *INDENT-ON* */
for (i = 0; i < n_prefixes; i++)
{
ip6_prefix_main_t *pm = &ip6_prefix_main;
prefix_info_t *prefix_info, *prefix_list = 0;;
- /* *INDENT-OFF* */
pool_foreach (prefix_info, pm->prefix_pool)
{
if (is_dhcpv6_pd_prefix (prefix_info) &&
clib_memcpy (&prefix_list[pos], prefix_info, sizeof (*prefix_info));
}
}
- /* *INDENT-ON* */
return prefix_list;
}
do
{
due_time = current_time + 1e9;
- /* *INDENT-OFF* */
pool_foreach (prefix_info, pm->prefix_pool)
{
if (is_dhcpv6_pd_prefix (prefix_info))
}
}
}
- /* *INDENT-ON* */
for (i = 0; i < vec_len (rm->client_state_by_sw_if_index); i++)
{
client_state_t *cs = &rm->client_state_by_sw_if_index[i];
return 0;
}
-/* *INDENT-OFF* */
VLIB_REGISTER_NODE (dhcp6_pd_client_cp_process_node) = {
.function = dhcp6_pd_client_cp_process,
.type = VLIB_NODE_TYPE_PROCESS,
.name = "dhcp6-pd-client-cp-process",
};
-/* *INDENT-ON* */
static void
interrupt_process (void)
ip6_prefix_main_t *pm = &ip6_prefix_main;
prefix_info_t *prefix_info;
- /* *INDENT-OFF* */
pool_foreach (prefix_info, pm->prefix_pool)
{
if (prefix_info->prefix_group_index == prefix_group_index &&
prefix_info - pm->prefix_pool != ignore_prefix_index)
return prefix_info - pm->prefix_pool;
}
- /* *INDENT-ON* */
return ~0;
}
* prefix group my-prefix-group ::7/64 del}
* @endparblock
?*/
-/* *INDENT-OFF* */
VLIB_CLI_COMMAND (ip6_address_add_del_command, static) = {
.path = "set ip6 address",
.short_help = "set ip6 address <interface> [prefix group <string>] "
"<address> [del]",
.function = cp_ip6_address_add_del_command_function,
};
-/* *INDENT-ON* */
static clib_error_t *
cp_ip6_addresses_show_command_function (vlib_main_t * vm,
return error;
}
-/* *INDENT-OFF* */
VLIB_CLI_COMMAND (ip6_addresses_show_command, static) = {
.path = "show ip6 addresses",
.short_help = "show ip6 addresses",
.function = cp_ip6_addresses_show_command_function,
};
-/* *INDENT-ON* */
static clib_error_t *
cp_ip6_prefixes_show_command_function (vlib_main_t * vm,
const u8 *prefix_group;
f64 current_time = vlib_time_now (vm);
- /* *INDENT-OFF* */
pool_foreach (prefix_info, pm->prefix_pool)
{
prefix_group =
prefix_info->preferred_lt, prefix_info->valid_lt,
prefix_info->due_time - current_time);
}
- /* *INDENT-ON* */
return error;
}
-/* *INDENT-OFF* */
VLIB_CLI_COMMAND (ip6_prefixes_show_command, static) = {
.path = "show ip6 prefixes",
.short_help = "show ip6 prefixes",
.function = cp_ip6_prefixes_show_command_function,
};
-/* *INDENT-ON* */
static clib_error_t *
ip6_pd_clients_show_command_function (vlib_main_t * vm,
return error;
}
-/* *INDENT-OFF* */
VLIB_CLI_COMMAND (ip6_pd_clients_show_command, static) = {
.path = "show ip6 pd clients",
.short_help = "show ip6 pd clients",
.function = ip6_pd_clients_show_command_function,
};
-/* *INDENT-ON* */
vec_validate (prefix_list, 0);
- /* *INDENT-OFF* */
pool_foreach (prefix_info, pm->prefix_pool)
{
if (is_dhcpv6_pd_prefix (prefix_info) &&
pool_put (pm->prefix_pool, prefix_info);
}
}
- /* *INDENT-ON* */
vec_free (prefix_list);
* @cliexcmd{dhcp6 pd client GigabitEthernet2/0/0 disable}
* @endparblock
?*/
-/* *INDENT-OFF* */
VLIB_CLI_COMMAND (dhcp6_pd_client_enable_disable_command, static) = {
.path = "dhcp6 pd client",
.short_help = "dhcp6 pd client <interface> (prefix group <string> | disable)",
.function = dhcp6_pd_client_enable_disable_command_fn,
};
-/* *INDENT-ON* */
#include <vlib/unix/plugin.h>