#include <vnet/pg/pg.h>
#include <vnet/dhcp/dhcp_proxy.h>
#include <vnet/dhcp/dhcp6_packet.h>
-#include <vnet/fib/ip6_fib.h>
#include <vnet/mfib/mfib_table.h>
#include <vnet/mfib/ip6_mfib.h>
+#include <vnet/fib/fib.h>
static char * dhcpv6_proxy_error_strings[] = {
#define dhcpv6_proxy_error(n,s) s,
copy_ip6_address(&r1->link_addr, ia0);
link_address_set:
- fl = vlib_buffer_get_free_list (vm, b0->free_list_index);
+ fl = vlib_buffer_get_free_list (vm, vlib_buffer_get_free_list_index (b0));
if ((b0->current_length+sizeof(*id1)+sizeof(*vss1)+sizeof(*cmac))
> fl->n_data_bytes)
return VNET_API_ERROR_INVALID_SRC_ADDRESS;
rx_fib_index = mfib_table_find_or_create_and_lock(FIB_PROTOCOL_IP6,
- rx_table_id);
+ rx_table_id,
+ MFIB_SOURCE_DHCP);
if (is_del)
{
mfib_table_entry_delete(rx_fib_index,
&all_dhcp_servers,
MFIB_SOURCE_DHCP);
- mfib_table_unlock(rx_fib_index, FIB_PROTOCOL_IP6);
+ mfib_table_unlock(rx_fib_index, FIB_PROTOCOL_IP6, MFIB_SOURCE_DHCP);
}
}
else
{
const fib_route_path_t path_for_us = {
- .frp_proto = FIB_PROTOCOL_IP6,
+ .frp_proto = DPO_PROTO_IP6,
.frp_addr = zero_addr,
.frp_sw_if_index = 0xffffffff,
.frp_fib_index = ~0,
MFIB_SOURCE_DHCP,
MFIB_RPF_ID_NONE,
MFIB_ENTRY_FLAG_ACCEPT_ALL_ITF);
- mfib_table_lock(rx_fib_index, FIB_PROTOCOL_IP6);
+ mfib_table_lock(rx_fib_index, FIB_PROTOCOL_IP6, MFIB_SOURCE_DHCP);
}
}
- mfib_table_unlock(rx_fib_index, FIB_PROTOCOL_IP6);
+ mfib_table_unlock(rx_fib_index, FIB_PROTOCOL_IP6, MFIB_SOURCE_DHCP);
return (rc);
}
format_dhcp6_proxy_server (u8 * s, va_list * args)
{
dhcp_proxy_t * proxy = va_arg (*args, dhcp_proxy_t *);
- ip6_fib_t *server_fib;
+ fib_table_t *server_fib;
dhcp_server_t *server;
ip6_mfib_t *rx_fib;
vec_foreach(server, proxy->dhcp_servers)
{
- server_fib = ip6_fib_get(server->server_fib_index);
+ server_fib = fib_table_get(server->server_fib_index,
+ FIB_PROTOCOL_IP6);
s = format (s, "%u,%U ",
- server_fib->table_id,
+ server_fib->ft_table_id,
format_ip46_address, &server->dhcp_server, IP46_TYPE_ANY);
}