FD.io VPP  v19.08.2-294-g37e99c22d
Vector Packet Processing
acl.h File Reference
+ Include dependency graph for acl.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  address_t
 
struct  macip_acl_rule_t
 
struct  acl_list_t
 
struct  macip_acl_list_t
 
struct  ace_mask_type_entry_t
 
struct  acl_main_t
 

Macros

#define ACL_PLUGIN_VERSION_MAJOR   1
 
#define ACL_PLUGIN_VERSION_MINOR   4
 
#define UDP_SESSION_IDLE_TIMEOUT_SEC   600
 
#define TCP_SESSION_IDLE_TIMEOUT_SEC   (3600*24)
 
#define TCP_SESSION_TRANSIENT_TIMEOUT_SEC   120
 
#define SESSION_PURGATORY_TIMEOUT_USEC   10
 
#define ACL_PLUGIN_HASH_LOOKUP_HEAP_SIZE   (2 << 25)
 
#define ACL_PLUGIN_HASH_LOOKUP_HASH_BUCKETS   65536
 
#define ACL_PLUGIN_HASH_LOOKUP_HASH_MEMORY   (2 << 25)
 
#define TM_SPLIT_THRESHOLD   39
 
#define ACL_FA_DEFAULT_MAX_DELETED_SESSIONS_PER_INTERVAL   100
 
#define ACL_FA_DEFAULT_MIN_DELETED_SESSIONS_PER_INTERVAL   1
 
#define ACL_FA_DEFAULT_CLEANER_WAIT_TIME_INCREMENT   0.1
 
#define foreach_fa_cleaner_counter
 
#define acl_log_err(...)   vlib_log(VLIB_LOG_LEVEL_ERR, acl_main.log_default, __VA_ARGS__)
 
#define acl_log_warn(...)   vlib_log(VLIB_LOG_LEVEL_WARNING, acl_main.log_default, __VA_ARGS__)
 
#define acl_log_notice(...)   vlib_log(VLIB_LOG_LEVEL_NOTICE, acl_main.log_default, __VA_ARGS__)
 
#define acl_log_info(...)   vlib_log(VLIB_LOG_LEVEL_INFO, acl_main.log_default, __VA_ARGS__)
 
#define foreach_acl_eh
 

Enumerations

enum  acl_timeout_e {
  ACL_TIMEOUT_UNUSED = 0, ACL_TIMEOUT_UDP_IDLE, ACL_TIMEOUT_TCP_IDLE, ACL_TIMEOUT_TCP_TRANSIENT,
  ACL_N_USER_TIMEOUTS, ACL_TIMEOUT_PURGATORY = ACL_N_USER_TIMEOUTS, ACL_N_TIMEOUTS
}
 
enum  address_e { IP4, IP6 }
 
enum  acl_eh_t { foreach_acl_eh }
 
enum  acl_fa_sess_req_t { ACL_FA_REQ_SESS_RESCHEDULE = 0, ACL_FA_N_REQ }
 

Functions

void input_acl_packet_match (u32 sw_if_index, vlib_buffer_t *b0, u32 *nextp, u32 *acl_match_p, u32 *rule_match_p, u32 *trace_bitmap)
 
void output_acl_packet_match (u32 sw_if_index, vlib_buffer_t *b0, u32 *nextp, u32 *acl_match_p, u32 *rule_match_p, u32 *trace_bitmap)
 
static void acl_plugin_counter_lock (acl_main_t *am)
 
static void acl_plugin_counter_unlock (acl_main_t *am)
 
void * acl_plugin_set_heap ()
 
void aclp_post_session_change_request (acl_main_t *am, u32 target_thread, u32 target_session, acl_fa_sess_req_t request_type)
 
void aclp_swap_wip_and_pending_session_change_requests (acl_main_t *am, u32 target_thread)
 

Variables

vlib_node_registration_t acl_in_node
 
vlib_node_registration_t acl_out_node
 
acl_main_t acl_main
 

Macro Definition Documentation

◆ ACL_FA_DEFAULT_CLEANER_WAIT_TIME_INCREMENT

#define ACL_FA_DEFAULT_CLEANER_WAIT_TIME_INCREMENT   0.1

Definition at line 284 of file acl.h.

◆ ACL_FA_DEFAULT_MAX_DELETED_SESSIONS_PER_INTERVAL

#define ACL_FA_DEFAULT_MAX_DELETED_SESSIONS_PER_INTERVAL   100

Definition at line 273 of file acl.h.

◆ ACL_FA_DEFAULT_MIN_DELETED_SESSIONS_PER_INTERVAL

#define ACL_FA_DEFAULT_MIN_DELETED_SESSIONS_PER_INTERVAL   1

Definition at line 281 of file acl.h.

◆ acl_log_err

#define acl_log_err (   ...)    vlib_log(VLIB_LOG_LEVEL_ERR, acl_main.log_default, __VA_ARGS__)

Definition at line 325 of file acl.h.

◆ acl_log_info

#define acl_log_info (   ...)    vlib_log(VLIB_LOG_LEVEL_INFO, acl_main.log_default, __VA_ARGS__)

Definition at line 331 of file acl.h.

◆ acl_log_notice

#define acl_log_notice (   ...)    vlib_log(VLIB_LOG_LEVEL_NOTICE, acl_main.log_default, __VA_ARGS__)

Definition at line 329 of file acl.h.

◆ acl_log_warn

#define acl_log_warn (   ...)    vlib_log(VLIB_LOG_LEVEL_WARNING, acl_main.log_default, __VA_ARGS__)

Definition at line 327 of file acl.h.

◆ ACL_PLUGIN_HASH_LOOKUP_HASH_BUCKETS

#define ACL_PLUGIN_HASH_LOOKUP_HASH_BUCKETS   65536

Definition at line 47 of file acl.h.

◆ ACL_PLUGIN_HASH_LOOKUP_HASH_MEMORY

#define ACL_PLUGIN_HASH_LOOKUP_HASH_MEMORY   (2 << 25)

Definition at line 48 of file acl.h.

◆ ACL_PLUGIN_HASH_LOOKUP_HEAP_SIZE

#define ACL_PLUGIN_HASH_LOOKUP_HEAP_SIZE   (2 << 25)

Definition at line 46 of file acl.h.

◆ ACL_PLUGIN_VERSION_MAJOR

#define ACL_PLUGIN_VERSION_MAJOR   1

Definition at line 37 of file acl.h.

◆ ACL_PLUGIN_VERSION_MINOR

#define ACL_PLUGIN_VERSION_MINOR   4

Definition at line 38 of file acl.h.

◆ foreach_acl_eh

#define foreach_acl_eh
Value:
_(HOPBYHOP , 0 , "IPv6ExtHdrHopByHop") \
_(ROUTING , 43 , "IPv6ExtHdrRouting") \
_(DESTOPT , 60 , "IPv6ExtHdrDestOpt") \
_(FRAGMENT , 44 , "IPv6ExtHdrFragment") \
_(MOBILITY , 135, "Mobility Header") \
_(HIP , 139, "Experimental use Host Identity Protocol") \
_(SHIM6 , 140, "Shim6 Protocol") \
_(EXP1 , 253, "Use for experimentation and testing") \
_(EXP2 , 254, "Use for experimentation and testing")

Definition at line 351 of file acl.h.

◆ foreach_fa_cleaner_counter

#define foreach_fa_cleaner_counter
Value:
_(fa_cleaner_cnt_delete_by_sw_index, "delete_by_sw_index events") \
_(fa_cleaner_cnt_delete_by_sw_index_ok, "delete_by_sw_index handled ok") \
_(fa_cleaner_cnt_unknown_event, "unknown events received") \
_(fa_cleaner_cnt_timer_restarted, "session idle timers restarted") \
_(fa_cleaner_cnt_wait_with_timeout, "event wait with timeout called") \
_(fa_cleaner_cnt_wait_without_timeout, "event wait w/o timeout called") \
_(fa_cleaner_cnt_event_cycles, "total event cycles") \
/* end of counters */

Definition at line 300 of file acl.h.

◆ SESSION_PURGATORY_TIMEOUT_USEC

#define SESSION_PURGATORY_TIMEOUT_USEC   10

Definition at line 44 of file acl.h.

◆ TCP_SESSION_IDLE_TIMEOUT_SEC

#define TCP_SESSION_IDLE_TIMEOUT_SEC   (3600*24)

Definition at line 41 of file acl.h.

◆ TCP_SESSION_TRANSIENT_TIMEOUT_SEC

#define TCP_SESSION_TRANSIENT_TIMEOUT_SEC   120

Definition at line 42 of file acl.h.

◆ TM_SPLIT_THRESHOLD

#define TM_SPLIT_THRESHOLD   39

Definition at line 202 of file acl.h.

◆ UDP_SESSION_IDLE_TIMEOUT_SEC

#define UDP_SESSION_IDLE_TIMEOUT_SEC   600

Definition at line 40 of file acl.h.

Enumeration Type Documentation

◆ acl_eh_t

enum acl_eh_t
Enumerator
foreach_acl_eh 

Definition at line 383 of file acl.h.

◆ acl_fa_sess_req_t

Enumerator
ACL_FA_REQ_SESS_RESCHEDULE 
ACL_FA_N_REQ 

Definition at line 395 of file acl.h.

◆ acl_timeout_e

Enumerator
ACL_TIMEOUT_UNUSED 
ACL_TIMEOUT_UDP_IDLE 
ACL_TIMEOUT_TCP_IDLE 
ACL_TIMEOUT_TCP_TRANSIENT 
ACL_N_USER_TIMEOUTS 
ACL_TIMEOUT_PURGATORY 
ACL_N_TIMEOUTS 

Definition at line 56 of file acl.h.

◆ address_e

enum address_e
Enumerator
IP4 
IP6 

Definition at line 67 of file acl.h.

Function Documentation

◆ acl_plugin_counter_lock()

static void acl_plugin_counter_lock ( acl_main_t am)
inlinestatic

Definition at line 336 of file acl.h.

+ Here is the caller graph for this function:

◆ acl_plugin_counter_unlock()

static void acl_plugin_counter_unlock ( acl_main_t am)
inlinestatic

Definition at line 344 of file acl.h.

+ Here is the caller graph for this function:

◆ acl_plugin_set_heap()

void* acl_plugin_set_heap ( )

Definition at line 161 of file acl.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ aclp_post_session_change_request()

void aclp_post_session_change_request ( acl_main_t am,
u32  target_thread,
u32  target_session,
acl_fa_sess_req_t  request_type 
)
+ Here is the caller graph for this function:

◆ aclp_swap_wip_and_pending_session_change_requests()

void aclp_swap_wip_and_pending_session_change_requests ( acl_main_t am,
u32  target_thread 
)

Definition at line 401 of file sess_mgmt_node.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ input_acl_packet_match()

void input_acl_packet_match ( u32  sw_if_index,
vlib_buffer_t b0,
u32 nextp,
u32 acl_match_p,
u32 rule_match_p,
u32 trace_bitmap 
)

◆ output_acl_packet_match()

void output_acl_packet_match ( u32  sw_if_index,
vlib_buffer_t b0,
u32 nextp,
u32 acl_match_p,
u32 rule_match_p,
u32 trace_bitmap 
)

Variable Documentation

◆ acl_in_node

◆ acl_main

acl_main_t acl_main

Definition at line 57 of file acl.c.

◆ acl_out_node