39 #ifndef __FIB_URPF_LIST_H__ 40 #define __FIB_URPF_LIST_H__ 120 if (*swi == sw_if_index)
void fib_urpf_list_show_mem(void)
u8 * format_fib_urpf_list(u8 *s, va_list ap)
static int fib_urpf_check_size(index_t ui)
Data-Plane function to check the size of an uRPF list, (i.e.
void fib_urpf_list_unlock(index_t urpf)
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
static int fib_urpf_check(index_t ui, u32 sw_if_index)
Data-Plane function to check an input interface against an uRPF list.
static fib_urpf_list_t * fib_urpf_list_get(index_t index)
enum fib_urpf_list_flag_t_ fib_urpf_list_flag_t
A unicast RPF list.
void fib_urpf_list_lock(index_t urpf)
adj_index_t * furpf_itfs
The list of interfaces that comprise the allowed accepting interfaces.
fib_urpf_list_flag_t furpf_flags
flags
Set to indicated that the uRPF list has already been baked.
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
void fib_urpf_list_append(index_t urpf, adj_index_t adj)
Append another interface to the list.
fib_urpf_list_t * fib_urpf_list_pool
pool of all fib_urpf_list
u32 adj_index_t
An index for adjacencies.
fib_urpf_list_flag_t_
A unicast RPF list.
index_t fib_urpf_list_alloc_and_lock(void)
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
u32 furpf_locks
uRPF lists are shared amongst many entries so we require a locking mechanism.
void fib_urpf_list_bake(index_t urpf)
Convert the uRPF list from the itf set obtained during the walk to a unique list. ...
#define vec_foreach(var, vec)
Vector iterator.
void fib_urpf_list_combine(index_t urpf1, index_t urpf2)
Combine to interface lists.
struct fib_urpf_list_t_ fib_urpf_list_t