An issue is that the server->server_fib_index is overwritten by
some incorrect value on subsequent calls to the function - e.g.
when setting DHCP proxy for the same FIB table several times.
Change-Id: I2e129b47f5c8fe3a0b924a7d71bb83e6fc53e9b5
Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>
rx_fib_index = fib_table_find_or_create_and_lock(FIB_PROTOCOL_IP4,
rx_fib_id);
- server_index = fib_table_find_or_create_and_lock(FIB_PROTOCOL_IP4,
- server_fib_id);
if (rx_fib_id == 0)
{
initialize_it:
server->dhcp_server.as_u32 = addr->as_u32;
- server->server_fib_index = server_index;
+ server->server_fib_index =
+ fib_table_find_or_create_and_lock(FIB_PROTOCOL_IP4,
+ server_fib_id);
server->dhcp_src_address.as_u32 = src_address->as_u32;
server->insert_option_82 = insert_option_82;
server->valid = 1;