FD.io VPP  v18.04-17-g3a0d853
Vector Packet Processing
fa_node.c File Reference
+ Include dependency graph for fa_node.c:

Go to the source code of this file.

Data Structures

struct  acl_fa_trace_t
 

Macros

#define foreach_acl_fa_error
 
#define foreach_acl_fa_cleaner_error
 

Enumerations

enum  acl_fa_error_t { ACL_FA_N_ERROR }
 
enum  acl_fa_cleaner_error_t { ACL_FA_CLEANER_N_ERROR }
 

Functions

static u8format_fa_5tuple (u8 *s, va_list *args)
 
u8format_acl_plugin_5tuple (u8 *s, va_list *args)
 
static u8format_acl_fa_trace (u8 *s, va_list *args)
 
static int acl_fa_ifc_has_sessions (acl_main_t *am, int sw_if_index0)
 
static int acl_fa_ifc_has_in_acl (acl_main_t *am, int sw_if_index0)
 
static int acl_fa_ifc_has_out_acl (acl_main_t *am, int sw_if_index0)
 
static u32 acl_make_5tuple_session_key (acl_main_t *am, int is_input, int is_ip6, u32 sw_if_index, fa_5tuple_t *p5tuple_pkt, fa_5tuple_t *p5tuple_sess)
 
static int fa_session_get_timeout_type (acl_main_t *am, fa_session_t *sess)
 
static u64 fa_session_get_shortest_timeout (acl_main_t *am)
 
static u64 fa_session_get_list_timeout (acl_main_t *am, fa_session_t *sess)
 
static u64 fa_session_get_timeout (acl_main_t *am, fa_session_t *sess)
 
static void acl_fa_verify_init_sessions (acl_main_t *am)
 
static fa_session_tget_session_ptr (acl_main_t *am, u16 thread_index, u32 session_index)
 
static int is_valid_session_ptr (acl_main_t *am, u16 thread_index, fa_session_t *sess)
 
static void acl_fa_conn_list_add_session (acl_main_t *am, fa_full_session_id_t sess_id, u64 now)
 
static int acl_fa_conn_list_delete_session (acl_main_t *am, fa_full_session_id_t sess_id)
 
static int acl_fa_restart_timer_for_session (acl_main_t *am, u64 now, fa_full_session_id_t sess_id)
 
static u8 acl_fa_track_session (acl_main_t *am, int is_input, u32 sw_if_index, u64 now, fa_session_t *sess, fa_5tuple_t *pkt_5tuple)
 
static void acl_fa_delete_session (acl_main_t *am, u32 sw_if_index, fa_full_session_id_t sess_id)
 
static int acl_fa_can_add_session (acl_main_t *am, int is_input, u32 sw_if_index)
 
static u64 acl_fa_get_list_head_expiry_time (acl_main_t *am, acl_fa_per_worker_data_t *pw, u64 now, u16 thread_index, int timeout_type)
 
static int acl_fa_conn_time_to_check (acl_main_t *am, acl_fa_per_worker_data_t *pw, u64 now, u16 thread_index, u32 session_index)
 
static int acl_fa_check_idle_sessions (acl_main_t *am, u16 thread_index, u64 now)
 
static void acl_fa_try_recycle_session (acl_main_t *am, int is_input, u16 thread_index, u32 sw_if_index)
 
static fa_session_tacl_fa_add_session (acl_main_t *am, int is_input, u32 sw_if_index, u64 now, fa_5tuple_t *p5tuple, u16 current_policy_epoch)
 
static int acl_fa_find_session (acl_main_t *am, u32 sw_if_index0, fa_5tuple_t *p5tuple, clib_bihash_kv_40_8_t *pvalue_sess)
 
static uword acl_fa_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, int is_ip6, int is_input, int is_l2_path, u32 *l2_feat_next_node_index, vlib_node_registration_t *acl_fa_node)
 
static uword acl_in_ip6_l2_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static uword acl_in_ip4_l2_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static uword acl_out_ip6_l2_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static uword acl_out_ip4_l2_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static uword acl_in_ip6_fa_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static uword acl_in_ip4_fa_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static uword acl_out_ip6_fa_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static uword acl_out_ip4_fa_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static uword acl_fa_worker_conn_cleaner_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
static void send_one_worker_interrupt (vlib_main_t *vm, acl_main_t *am, int thread_index)
 
static void send_interrupts_to_workers (vlib_main_t *vm, acl_main_t *am)
 
static uword acl_fa_session_cleaner_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
void acl_fa_enable_disable (u32 sw_if_index, int is_input, int enable_disable)
 
void show_fa_sessions_hash (vlib_main_t *vm, u32 verbose)
 
 VNET_FEATURE_INIT (acl_in_ip6_fa_feature, static)
 
 VNET_FEATURE_INIT (acl_in_ip4_fa_feature, static)
 
 VNET_FEATURE_INIT (acl_out_ip6_fa_feature, static)
 
 VNET_FEATURE_INIT (acl_out_ip4_fa_feature, static)
 

Variables

static const u8 icmp4_invmap []
 
static const u8 icmp4_valid_new []
 
static const u8 icmp6_invmap []
 
static const u8 icmp6_valid_new []
 
static u8 icmp_protos [] = { IP_PROTOCOL_ICMP, IP_PROTOCOL_ICMP6 }
 
static char * acl_fa_error_strings []
 
vlib_node_registration_t acl_in_l2_ip6_node
 (constructor) VLIB_REGISTER_NODE (acl_in_l2_ip6_node) More...
 
vlib_node_registration_t acl_in_l2_ip4_node
 (constructor) VLIB_REGISTER_NODE (acl_in_l2_ip4_node) More...
 
vlib_node_registration_t acl_out_l2_ip6_node
 (constructor) VLIB_REGISTER_NODE (acl_out_l2_ip6_node) More...
 
vlib_node_registration_t acl_out_l2_ip4_node
 (constructor) VLIB_REGISTER_NODE (acl_out_l2_ip4_node) More...
 
vlib_node_registration_t acl_in_fa_ip6_node
 (constructor) VLIB_REGISTER_NODE (acl_in_fa_ip6_node) More...
 
vlib_node_registration_t acl_in_fa_ip4_node
 (constructor) VLIB_REGISTER_NODE (acl_in_fa_ip4_node) More...
 
vlib_node_registration_t acl_out_fa_ip6_node
 (constructor) VLIB_REGISTER_NODE (acl_out_fa_ip6_node) More...
 
vlib_node_registration_t acl_out_fa_ip4_node
 (constructor) VLIB_REGISTER_NODE (acl_out_fa_ip4_node) More...
 
static char * acl_fa_cleaner_error_strings []
 
static vlib_node_registration_t acl_fa_session_cleaner_process_node
 (constructor) VLIB_REGISTER_NODE (acl_fa_session_cleaner_process_node) More...
 
static vlib_node_registration_t acl_fa_worker_session_cleaner_process_node
 (constructor) VLIB_REGISTER_NODE (acl_fa_worker_session_cleaner_process_node) More...
 

Macro Definition Documentation

#define foreach_acl_fa_cleaner_error
Value:
_(UNKNOWN_EVENT, "unknown event received") \
/* end of errors */

Definition at line 999 of file fa_node.c.

#define foreach_acl_fa_error
Value:
_(ACL_DROP, "ACL deny packets") \
_(ACL_PERMIT, "ACL permit packets") \
_(ACL_NEW_SESSION, "new sessions added") \
_(ACL_EXIST_SESSION, "existing session packets") \
_(ACL_CHECK, "checked packets") \
_(ACL_RESTART_SESSION_TIMER, "restart session timer") \
_(ACL_TOO_MANY_SESSIONS, "too many sessions to add new") \
/* end of errors */

Definition at line 126 of file fa_node.c.

Enumeration Type Documentation

Enumerator
ACL_FA_CLEANER_N_ERROR 

Definition at line 1003 of file fa_node.c.

Enumerator
ACL_FA_N_ERROR 

Definition at line 136 of file fa_node.c.

Function Documentation

static fa_session_t* acl_fa_add_session ( acl_main_t am,
int  is_input,
u32  sw_if_index,
u64  now,
fa_5tuple_t p5tuple,
u16  current_policy_epoch 
)
static

Definition at line 591 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int acl_fa_can_add_session ( acl_main_t am,
int  is_input,
u32  sw_if_index 
)
static

Definition at line 465 of file fa_node.c.

+ Here is the caller graph for this function:

static int acl_fa_check_idle_sessions ( acl_main_t am,
u16  thread_index,
u64  now 
)
static

Definition at line 504 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void acl_fa_conn_list_add_session ( acl_main_t am,
fa_full_session_id_t  sess_id,
u64  now 
)
static

Definition at line 346 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int acl_fa_conn_list_delete_session ( acl_main_t am,
fa_full_session_id_t  sess_id 
)
static

Definition at line 379 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int acl_fa_conn_time_to_check ( acl_main_t am,
acl_fa_per_worker_data_t pw,
u64  now,
u16  thread_index,
u32  session_index 
)
static

Definition at line 490 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void acl_fa_delete_session ( acl_main_t am,
u32  sw_if_index,
fa_full_session_id_t  sess_id 
)
static

Definition at line 447 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void acl_fa_enable_disable ( u32  sw_if_index,
int  is_input,
int  enable_disable 
)

Definition at line 1367 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int acl_fa_find_session ( acl_main_t am,
u32  sw_if_index0,
fa_5tuple_t p5tuple,
clib_bihash_kv_40_8_t pvalue_sess 
)
static

Definition at line 639 of file fa_node.c.

+ Here is the caller graph for this function:

static u64 acl_fa_get_list_head_expiry_time ( acl_main_t am,
acl_fa_per_worker_data_t pw,
u64  now,
u16  thread_index,
int  timeout_type 
)
static

Definition at line 473 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int acl_fa_ifc_has_in_acl ( acl_main_t am,
int  sw_if_index0 
)
static

Definition at line 158 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int acl_fa_ifc_has_out_acl ( acl_main_t am,
int  sw_if_index0 
)
static

Definition at line 165 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int acl_fa_ifc_has_sessions ( acl_main_t am,
int  sw_if_index0 
)
static

Definition at line 152 of file fa_node.c.

+ Here is the caller graph for this function:

static uword acl_fa_node_fn ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame,
int  is_ip6,
int  is_input,
int  is_l2_path,
u32 l2_feat_next_node_index,
vlib_node_registration_t acl_fa_node 
)
inlinestatic

Definition at line 647 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int acl_fa_restart_timer_for_session ( acl_main_t am,
u64  now,
fa_full_session_id_t  sess_id 
)
static

Definition at line 415 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword acl_fa_session_cleaner_process ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f 
)
static

Definition at line 1142 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u8 acl_fa_track_session ( acl_main_t am,
int  is_input,
u32  sw_if_index,
u64  now,
fa_session_t sess,
fa_5tuple_t pkt_5tuple 
)
static

Definition at line 434 of file fa_node.c.

+ Here is the caller graph for this function:

static void acl_fa_try_recycle_session ( acl_main_t am,
int  is_input,
u16  thread_index,
u32  sw_if_index 
)
inlinestatic

Definition at line 576 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void acl_fa_verify_init_sessions ( acl_main_t am)
static

Definition at line 307 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword acl_fa_worker_conn_cleaner_process ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f 
)
static

Definition at line 1027 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword acl_in_ip4_fa_node_fn ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 969 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword acl_in_ip4_l2_node_fn ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 924 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword acl_in_ip6_fa_node_fn ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 961 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword acl_in_ip6_l2_node_fn ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 913 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 acl_make_5tuple_session_key ( acl_main_t am,
int  is_input,
int  is_ip6,
u32  sw_if_index,
fa_5tuple_t p5tuple_pkt,
fa_5tuple_t p5tuple_sess 
)
static

Definition at line 173 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword acl_out_ip4_fa_node_fn ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 985 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword acl_out_ip4_l2_node_fn ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 946 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword acl_out_ip6_fa_node_fn ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 977 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword acl_out_ip6_l2_node_fn ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 935 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u64 fa_session_get_list_timeout ( acl_main_t am,
fa_session_t sess 
)
static

Definition at line 282 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u64 fa_session_get_shortest_timeout ( acl_main_t am)
static

Definition at line 265 of file fa_node.c.

+ Here is the caller graph for this function:

static u64 fa_session_get_timeout ( acl_main_t am,
fa_session_t sess 
)
static

Definition at line 298 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int fa_session_get_timeout_type ( acl_main_t am,
fa_session_t sess 
)
static

Definition at line 237 of file fa_node.c.

+ Here is the caller graph for this function:

static u8* format_acl_fa_trace ( u8 s,
va_list *  args 
)
static

Definition at line 105 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_acl_plugin_5tuple ( u8 s,
va_list *  args 
)

Definition at line 98 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u8* format_fa_5tuple ( u8 s,
va_list *  args 
)
static

Definition at line 80 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static fa_session_t* get_session_ptr ( acl_main_t am,
u16  thread_index,
u32  session_index 
)
inlinestatic

Definition at line 332 of file fa_node.c.

+ Here is the caller graph for this function:

static int is_valid_session_ptr ( acl_main_t am,
u16  thread_index,
fa_session_t sess 
)
inlinestatic

Definition at line 339 of file fa_node.c.

+ Here is the caller graph for this function:

static void send_interrupts_to_workers ( vlib_main_t vm,
acl_main_t am 
)
static

Definition at line 1130 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void send_one_worker_interrupt ( vlib_main_t vm,
acl_main_t am,
int  thread_index 
)
static

Definition at line 1116 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void show_fa_sessions_hash ( vlib_main_t vm,
u32  verbose 
)

Definition at line 1422 of file fa_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

VNET_FEATURE_INIT ( acl_in_ip6_fa_feature  ,
static   
)

+ Here is the caller graph for this function:

VNET_FEATURE_INIT ( acl_in_ip4_fa_feature  ,
static   
)
VNET_FEATURE_INIT ( acl_out_ip6_fa_feature  ,
static   
)
VNET_FEATURE_INIT ( acl_out_ip4_fa_feature  ,
static   
)

Variable Documentation

char* acl_fa_cleaner_error_strings[]
static
Initial value:
= {
#define _(sym,string)
}
#define foreach_acl_fa_cleaner_error
Definition: fa_node.c:999

Definition at line 1011 of file fa_node.c.

char* acl_fa_error_strings[]
static
Initial value:
= {
#define _(sym,string)
}
#define foreach_acl_fa_error
Definition: fa_node.c:126

Definition at line 144 of file fa_node.c.

static vlib_node_registration_t acl_fa_session_cleaner_process_node
static
Initial value:
= {
.name = "acl-plugin-fa-cleaner-process",
.error_strings = acl_fa_cleaner_error_strings,
.n_next_nodes = 0,
.next_nodes = {},
}
static char * acl_fa_cleaner_error_strings[]
Definition: fa_node.c:1011
#define ARRAY_LEN(x)
Definition: clib.h:59
static uword acl_fa_session_cleaner_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: fa_node.c:1142

(constructor) VLIB_REGISTER_NODE (acl_fa_session_cleaner_process_node)

Definition at line 1019 of file fa_node.c.

static vlib_node_registration_t acl_fa_worker_session_cleaner_process_node
static
Initial value:
= {
.name = "acl-plugin-fa-worker-cleaner-process",
.state = VLIB_NODE_STATE_INTERRUPT,
}
static uword acl_fa_worker_conn_cleaner_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: fa_node.c:1027

(constructor) VLIB_REGISTER_NODE (acl_fa_worker_session_cleaner_process_node)

Definition at line 1020 of file fa_node.c.

vlib_node_registration_t acl_in_fa_ip4_node
Initial value:
=
{
.function = acl_in_ip4_fa_node_fn,
.name = "acl-plugin-in-ip4-fa",
.vector_size = sizeof (u32),
.format_trace = format_acl_fa_trace,
.error_strings = acl_fa_error_strings,
.n_next_nodes = ACL_FA_N_NEXT,
.next_nodes =
{
[ACL_FA_ERROR_DROP] = "error-drop",
}
}
static u8 * format_acl_fa_trace(u8 *s, va_list *args)
Definition: fa_node.c:105
#define ARRAY_LEN(x)
Definition: clib.h:59
unsigned int u32
Definition: types.h:88
static uword acl_in_ip4_fa_node_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: fa_node.c:969
static char * acl_fa_error_strings[]
Definition: fa_node.c:144

(constructor) VLIB_REGISTER_NODE (acl_in_fa_ip4_node)

Definition at line 967 of file fa_node.c.

vlib_node_registration_t acl_in_fa_ip6_node
Initial value:
=
{
.function = acl_in_ip6_fa_node_fn,
.name = "acl-plugin-in-ip6-fa",
.vector_size = sizeof (u32),
.format_trace = format_acl_fa_trace,
.error_strings = acl_fa_error_strings,
.n_next_nodes = ACL_FA_N_NEXT,
.next_nodes =
{
[ACL_FA_ERROR_DROP] = "error-drop",
}
}
static u8 * format_acl_fa_trace(u8 *s, va_list *args)
Definition: fa_node.c:105
static uword acl_in_ip6_fa_node_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: fa_node.c:961
#define ARRAY_LEN(x)
Definition: clib.h:59
unsigned int u32
Definition: types.h:88
static char * acl_fa_error_strings[]
Definition: fa_node.c:144

(constructor) VLIB_REGISTER_NODE (acl_in_fa_ip6_node)

Definition at line 959 of file fa_node.c.

vlib_node_registration_t acl_in_l2_ip4_node
Initial value:
=
{
.function = acl_in_ip4_l2_node_fn,
.name = "acl-plugin-in-ip4-l2",
.vector_size = sizeof (u32),
.format_trace = format_acl_fa_trace,
.error_strings = acl_fa_error_strings,
.n_next_nodes = ACL_FA_N_NEXT,
.next_nodes =
{
[ACL_FA_ERROR_DROP] = "error-drop",
}
}
static uword acl_in_ip4_l2_node_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: fa_node.c:924
static u8 * format_acl_fa_trace(u8 *s, va_list *args)
Definition: fa_node.c:105
#define ARRAY_LEN(x)
Definition: clib.h:59
unsigned int u32
Definition: types.h:88
static char * acl_fa_error_strings[]
Definition: fa_node.c:144

(constructor) VLIB_REGISTER_NODE (acl_in_l2_ip4_node)

Definition at line 922 of file fa_node.c.

vlib_node_registration_t acl_in_l2_ip6_node
Initial value:
=
{
.function = acl_in_ip6_l2_node_fn,
.name = "acl-plugin-in-ip6-l2",
.vector_size = sizeof (u32),
.format_trace = format_acl_fa_trace,
.error_strings = acl_fa_error_strings,
.n_next_nodes = ACL_FA_N_NEXT,
.next_nodes =
{
[ACL_FA_ERROR_DROP] = "error-drop",
}
}
static u8 * format_acl_fa_trace(u8 *s, va_list *args)
Definition: fa_node.c:105
static uword acl_in_ip6_l2_node_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: fa_node.c:913
#define ARRAY_LEN(x)
Definition: clib.h:59
unsigned int u32
Definition: types.h:88
static char * acl_fa_error_strings[]
Definition: fa_node.c:144

(constructor) VLIB_REGISTER_NODE (acl_in_l2_ip6_node)

Definition at line 911 of file fa_node.c.

vlib_node_registration_t acl_out_fa_ip4_node
Initial value:
=
{
.name = "acl-plugin-out-ip4-fa",
.vector_size = sizeof (u32),
.format_trace = format_acl_fa_trace,
.error_strings = acl_fa_error_strings,
.n_next_nodes = ACL_FA_N_NEXT,
.next_nodes =
{
[ACL_FA_ERROR_DROP] = "error-drop",
}
}
static uword acl_out_ip4_fa_node_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: fa_node.c:985
static u8 * format_acl_fa_trace(u8 *s, va_list *args)
Definition: fa_node.c:105
#define ARRAY_LEN(x)
Definition: clib.h:59
unsigned int u32
Definition: types.h:88
static char * acl_fa_error_strings[]
Definition: fa_node.c:144

(constructor) VLIB_REGISTER_NODE (acl_out_fa_ip4_node)

Definition at line 983 of file fa_node.c.

vlib_node_registration_t acl_out_fa_ip6_node
Initial value:
=
{
.name = "acl-plugin-out-ip6-fa",
.vector_size = sizeof (u32),
.format_trace = format_acl_fa_trace,
.error_strings = acl_fa_error_strings,
.n_next_nodes = ACL_FA_N_NEXT,
.next_nodes =
{
[ACL_FA_ERROR_DROP] = "error-drop",
}
}
static u8 * format_acl_fa_trace(u8 *s, va_list *args)
Definition: fa_node.c:105
static uword acl_out_ip6_fa_node_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: fa_node.c:977
#define ARRAY_LEN(x)
Definition: clib.h:59
unsigned int u32
Definition: types.h:88
static char * acl_fa_error_strings[]
Definition: fa_node.c:144

(constructor) VLIB_REGISTER_NODE (acl_out_fa_ip6_node)

Definition at line 975 of file fa_node.c.

vlib_node_registration_t acl_out_l2_ip4_node
Initial value:
=
{
.name = "acl-plugin-out-ip4-l2",
.vector_size = sizeof (u32),
.format_trace = format_acl_fa_trace,
.error_strings = acl_fa_error_strings,
.n_next_nodes = ACL_FA_N_NEXT,
.next_nodes =
{
[ACL_FA_ERROR_DROP] = "error-drop",
}
}
static u8 * format_acl_fa_trace(u8 *s, va_list *args)
Definition: fa_node.c:105
#define ARRAY_LEN(x)
Definition: clib.h:59
static uword acl_out_ip4_l2_node_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: fa_node.c:946
unsigned int u32
Definition: types.h:88
static char * acl_fa_error_strings[]
Definition: fa_node.c:144

(constructor) VLIB_REGISTER_NODE (acl_out_l2_ip4_node)

Definition at line 944 of file fa_node.c.

vlib_node_registration_t acl_out_l2_ip6_node
Initial value:
=
{
.name = "acl-plugin-out-ip6-l2",
.vector_size = sizeof (u32),
.format_trace = format_acl_fa_trace,
.error_strings = acl_fa_error_strings,
.n_next_nodes = ACL_FA_N_NEXT,
.next_nodes =
{
[ACL_FA_ERROR_DROP] = "error-drop",
}
}
static u8 * format_acl_fa_trace(u8 *s, va_list *args)
Definition: fa_node.c:105
static uword acl_out_ip6_l2_node_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: fa_node.c:935
#define ARRAY_LEN(x)
Definition: clib.h:59
unsigned int u32
Definition: types.h:88
static char * acl_fa_error_strings[]
Definition: fa_node.c:144

(constructor) VLIB_REGISTER_NODE (acl_out_l2_ip6_node)

Definition at line 933 of file fa_node.c.

const u8 icmp4_invmap[]
static
Initial value:
= {
[ICMP4_echo_reply] = ICMP4_echo_request + 1,
[ICMP4_timestamp_reply] = ICMP4_timestamp_request + 1,
[ICMP4_information_reply] = ICMP4_information_request + 1,
[ICMP4_address_mask_reply] = ICMP4_address_mask_request + 1
}

Definition at line 49 of file fa_node.c.

const u8 icmp4_valid_new[]
static
Initial value:
= {
[ICMP4_echo_request] = 1,
[ICMP4_timestamp_request] = 1,
[ICMP4_information_request] = 1,
[ICMP4_address_mask_request] = 1
}

Definition at line 57 of file fa_node.c.

const u8 icmp6_invmap[]
static
Initial value:
= {
[ICMP6_echo_reply - 128] = ICMP6_echo_request + 1,
[ICMP6_node_information_response - 128] = ICMP6_node_information_request + 1
}

Definition at line 65 of file fa_node.c.

const u8 icmp6_valid_new[]
static
Initial value:
= {
[ICMP6_echo_request - 128] = 1,
[ICMP6_node_information_request - 128] = 1
}

Definition at line 71 of file fa_node.c.

u8 icmp_protos[] = { IP_PROTOCOL_ICMP, IP_PROTOCOL_ICMP6 }
static

Definition at line 77 of file fa_node.c.