FD.io VPP  v19.04-6-g6f05f72
Vector Packet Processing
public_inlines.h File Reference
+ Include dependency graph for public_inlines.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define LOAD_SYMBOL_FROM_PLUGIN_TO(p, s, st)
 
#define LOAD_SYMBOL(s)   LOAD_SYMBOL_FROM_PLUGIN_TO("acl_plugin.so", s, s)
 

Functions

static clib_error_tacl_plugin_exports_init (acl_plugin_methods_t *m)
 
static void * get_ptr_to_offset (vlib_buffer_t *b0, int offset)
 
static int offset_within_packet (vlib_buffer_t *b0, int offset)
 
static int offset_beyond_packet (vlib_buffer_t *b0, int offset)
 
static void acl_fill_5tuple_l3_data (acl_main_t *am, vlib_buffer_t *b0, int is_ip6, int l3_offset, fa_5tuple_t *p5tuple_pkt)
 
static void acl_fill_5tuple_l4_and_pkt_data (acl_main_t *am, u32 sw_if_index0, vlib_buffer_t *b0, int is_ip6, int is_input, int l3_offset, fa_session_l4_key_t *p5tuple_l4, fa_packet_info_t *p5tuple_pkt)
 
static void acl_fill_5tuple (acl_main_t *am, u32 sw_if_index0, vlib_buffer_t *b0, int is_ip6, int is_input, int is_l2_path, fa_5tuple_t *p5tuple_pkt)
 
static void acl_plugin_fill_5tuple_inline (void *p_acl_main, u32 lc_index, vlib_buffer_t *b0, int is_ip6, int is_input, int is_l2_path, fa_5tuple_opaque_t *p5tuple_pkt)
 
static int fa_acl_match_ip4_addr (ip4_address_t *addr1, ip4_address_t *addr2, int prefixlen)
 
static int fa_acl_match_ip6_addr (ip6_address_t *addr1, ip6_address_t *addr2, int prefixlen)
 
static int fa_acl_match_port (u16 port, u16 port_first, u16 port_last, int is_ip6)
 
static int single_acl_match_5tuple (acl_main_t *am, u32 acl_index, fa_5tuple_t *pkt_5tuple, int is_ip6, u8 *r_action, u32 *r_acl_match_p, u32 *r_rule_match_p, u32 *trace_bitmap)
 
static int acl_plugin_single_acl_match_5tuple (void *p_acl_main, u32 acl_index, fa_5tuple_t *pkt_5tuple, int is_ip6, u8 *r_action, u32 *r_acl_match_p, u32 *r_rule_match_p, u32 *trace_bitmap)
 
static int linear_multi_acl_match_5tuple (void *p_acl_main, u32 lc_index, fa_5tuple_t *pkt_5tuple, int is_ip6, u8 *r_action, u32 *acl_pos_p, u32 *acl_match_p, u32 *rule_match_p, u32 *trace_bitmap)
 
static int match_portranges (acl_main_t *am, fa_5tuple_t *match, u32 index)
 
static int single_rule_match_5tuple (acl_rule_t *r, int is_ip6, fa_5tuple_t *pkt_5tuple)
 
static u32 multi_acl_match_get_applied_ace_index (acl_main_t *am, int is_ip6, fa_5tuple_t *match)
 
static int hash_multi_acl_match_5tuple (void *p_acl_main, u32 lc_index, fa_5tuple_t *pkt_5tuple, int is_ip6, u8 *action, u32 *acl_pos_p, u32 *acl_match_p, u32 *rule_match_p, u32 *trace_bitmap)
 
static int acl_plugin_match_5tuple_inline (void *p_acl_main, u32 lc_index, fa_5tuple_opaque_t *pkt_5tuple, int is_ip6, u8 *r_action, u32 *r_acl_pos_p, u32 *r_acl_match_p, u32 *r_rule_match_p, u32 *trace_bitmap)
 

Macro Definition Documentation

#define LOAD_SYMBOL (   s)    LOAD_SYMBOL_FROM_PLUGIN_TO("acl_plugin.so", s, s)

Definition at line 36 of file public_inlines.h.

#define LOAD_SYMBOL_FROM_PLUGIN_TO (   p,
  s,
  st 
)
Value:
({ \
st = vlib_get_plugin_symbol(p, #s); \
if (!st) \
return clib_error_return(0, \
"Plugin %s and/or symbol %s not found.", p, #s); \
})
#define clib_error_return(e, args...)
Definition: error.h:99
void * vlib_get_plugin_symbol(char *plugin_name, char *symbol_name)
Definition: plugin.c:31

Definition at line 28 of file public_inlines.h.

Function Documentation

static void acl_fill_5tuple ( acl_main_t am,
u32  sw_if_index0,
vlib_buffer_t b0,
int  is_ip6,
int  is_input,
int  is_l2_path,
fa_5tuple_t p5tuple_pkt 
)
inlinestatic

Definition at line 207 of file public_inlines.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void acl_fill_5tuple_l3_data ( acl_main_t am,
vlib_buffer_t b0,
int  is_ip6,
int  l3_offset,
fa_5tuple_t p5tuple_pkt 
)
inlinestatic

Definition at line 70 of file public_inlines.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void acl_fill_5tuple_l4_and_pkt_data ( acl_main_t am,
u32  sw_if_index0,
vlib_buffer_t b0,
int  is_ip6,
int  is_input,
int  l3_offset,
fa_session_l4_key_t p5tuple_l4,
fa_packet_info_t p5tuple_pkt 
)
inlinestatic

Definition at line 92 of file public_inlines.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* acl_plugin_exports_init ( acl_plugin_methods_t m)
inlinestatic

Definition at line 39 of file public_inlines.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void acl_plugin_fill_5tuple_inline ( void *  p_acl_main,
u32  lc_index,
vlib_buffer_t b0,
int  is_ip6,
int  is_input,
int  is_l2_path,
fa_5tuple_opaque_t p5tuple_pkt 
)
inlinestatic

Definition at line 231 of file public_inlines.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int acl_plugin_match_5tuple_inline ( void *  p_acl_main,
u32  lc_index,
fa_5tuple_opaque_t pkt_5tuple,
int  is_ip6,
u8 r_action,
u32 r_acl_pos_p,
u32 r_acl_match_p,
u32 r_rule_match_p,
u32 trace_bitmap 
)
inlinestatic

Definition at line 653 of file public_inlines.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int acl_plugin_single_acl_match_5tuple ( void *  p_acl_main,
u32  acl_index,
fa_5tuple_t pkt_5tuple,
int  is_ip6,
u8 r_action,
u32 r_acl_match_p,
u32 r_rule_match_p,
u32 trace_bitmap 
)
inlinestatic

Definition at line 403 of file public_inlines.h.

+ Here is the call graph for this function:

static int fa_acl_match_ip4_addr ( ip4_address_t addr1,
ip4_address_t addr2,
int  prefixlen 
)
inlinestatic

Definition at line 241 of file public_inlines.h.

+ Here is the caller graph for this function:

static int fa_acl_match_ip6_addr ( ip6_address_t addr1,
ip6_address_t addr2,
int  prefixlen 
)
inlinestatic

Definition at line 256 of file public_inlines.h.

+ Here is the caller graph for this function:

static int fa_acl_match_port ( u16  port,
u16  port_first,
u16  port_last,
int  is_ip6 
)
inlinestatic

Definition at line 284 of file public_inlines.h.

+ Here is the caller graph for this function:

static void* get_ptr_to_offset ( vlib_buffer_t b0,
int  offset 
)
inlinestatic

Definition at line 48 of file public_inlines.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int hash_multi_acl_match_5tuple ( void *  p_acl_main,
u32  lc_index,
fa_5tuple_t pkt_5tuple,
int  is_ip6,
u8 action,
u32 acl_pos_p,
u32 acl_match_p,
u32 rule_match_p,
u32 trace_bitmap 
)
inlinestatic

Definition at line 631 of file public_inlines.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int linear_multi_acl_match_5tuple ( void *  p_acl_main,
u32  lc_index,
fa_5tuple_t pkt_5tuple,
int  is_ip6,
u8 r_action,
u32 acl_pos_p,
u32 acl_match_p,
u32 rule_match_p,
u32 trace_bitmap 
)
inlinestatic

Definition at line 413 of file public_inlines.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int match_portranges ( acl_main_t am,
fa_5tuple_t match,
u32  index 
)
inlinestatic

Definition at line 459 of file public_inlines.h.

static u32 multi_acl_match_get_applied_ace_index ( acl_main_t am,
int  is_ip6,
fa_5tuple_t match 
)
inlinestatic

Definition at line 535 of file public_inlines.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int offset_beyond_packet ( vlib_buffer_t b0,
int  offset 
)
inlinestatic

Definition at line 62 of file public_inlines.h.

static int offset_within_packet ( vlib_buffer_t b0,
int  offset 
)
inlinestatic

Definition at line 55 of file public_inlines.h.

+ Here is the caller graph for this function:

static int single_acl_match_5tuple ( acl_main_t am,
u32  acl_index,
fa_5tuple_t pkt_5tuple,
int  is_ip6,
u8 r_action,
u32 r_acl_match_p,
u32 r_rule_match_p,
u32 trace_bitmap 
)
inlinestatic

Definition at line 290 of file public_inlines.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int single_rule_match_5tuple ( acl_rule_t r,
int  is_ip6,
fa_5tuple_t pkt_5tuple 
)
inlinestatic

Definition at line 478 of file public_inlines.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function: