|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
12 #define TCP_FLAG_FIN 0x01
13 #define TCP_FLAG_SYN 0x02
14 #define TCP_FLAG_RST 0x04
15 #define TCP_FLAG_PUSH 0x08
16 #define TCP_FLAG_ACK 0x10
17 #define TCP_FLAG_URG 0x20
18 #define TCP_FLAG_ECE 0x40
19 #define TCP_FLAG_CWR 0x80
20 #define TCP_FLAGS_RSTFINACKSYN (TCP_FLAG_RST + TCP_FLAG_FIN + TCP_FLAG_SYN + TCP_FLAG_ACK)
21 #define TCP_FLAGS_ACKSYN (TCP_FLAG_SYN + TCP_FLAG_ACK)
23 #define ACL_FA_CONN_TABLE_DEFAULT_HASH_NUM_BUCKETS (64 * 1024)
24 #define ACL_FA_CONN_TABLE_DEFAULT_HASH_MEMORY_SIZE (1ULL<<30)
25 #define ACL_FA_CONN_TABLE_DEFAULT_MAX_ENTRIES 500000
79 ip6_address_t ip6_addr[2];
87 u64 padding_for_kv_16_8[3];
99 return (
format (s,
"l4 lsb_of_sw_if_index %d proto %d l4_is_input %d l4_slow_path %d l4_flags 0x%02x port %d -> %d",
101 l4->
proto, is_input, is_slowpath,
124 #define FA_POLICY_EPOCH_MASK 0x7fff
126 #define FA_POLICY_EPOCH_IS_INPUT 0x8000
147 #define CT_ASSERT_EQUAL(name, x,y) typedef int assert_ ## name ## _compile_time_assertion_failed[((x) == (y))-1]
164 #undef CT_ASSERT_EQUAL
166 #define FA_SESSION_BOGUS_INDEX ~0
258 #define elog_acl_maybe_trace_X1(am, acl_elog_trace_format_label, acl_elog_trace_format_args, acl_elog_val1) \
260 if (am->trace_sessions) { \
261 CLIB_UNUSED(struct { u8 available_space[18 - sizeof(acl_elog_val1)]; } *static_check); \
262 u16 thread_index = os_get_thread_index (); \
263 vlib_worker_thread_t * w = vlib_worker_threads + thread_index; \
264 ELOG_TYPE_DECLARE (e) = \
266 .format = "(%02d) " acl_elog_trace_format_label, \
267 .format_args = "i2" acl_elog_trace_format_args, \
272 typeof(acl_elog_val1) val1; \
274 ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); \
275 ed->thread = thread_index; \
276 ed->val1 = acl_elog_val1; \
283 #define elog_acl_maybe_trace_X2(am, acl_elog_trace_format_label, acl_elog_trace_format_args, \
284 acl_elog_val1, acl_elog_val2) \
286 if (am->trace_sessions) { \
287 CLIB_UNUSED(struct { u8 available_space[18 - sizeof(acl_elog_val1) - sizeof(acl_elog_val2)]; } *static_check); \
288 u16 thread_index = os_get_thread_index (); \
289 vlib_worker_thread_t * w = vlib_worker_threads + thread_index; \
290 ELOG_TYPE_DECLARE (e) = \
292 .format = "(%02d) " acl_elog_trace_format_label, \
293 .format_args = "i2" acl_elog_trace_format_args, \
298 typeof(acl_elog_val1) val1; \
299 typeof(acl_elog_val2) val2; \
301 ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); \
302 ed->thread = thread_index; \
303 ed->val1 = acl_elog_val1; \
304 ed->val2 = acl_elog_val2; \
311 #define elog_acl_maybe_trace_X3(am, acl_elog_trace_format_label, acl_elog_trace_format_args, acl_elog_val1, \
312 acl_elog_val2, acl_elog_val3) \
314 if (am->trace_sessions) { \
315 CLIB_UNUSED(struct { u8 available_space[18 - sizeof(acl_elog_val1) - sizeof(acl_elog_val2) \
316 - sizeof(acl_elog_val3)]; } *static_check); \
317 u16 thread_index = os_get_thread_index (); \
318 vlib_worker_thread_t * w = vlib_worker_threads + thread_index; \
319 ELOG_TYPE_DECLARE (e) = \
321 .format = "(%02d) " acl_elog_trace_format_label, \
322 .format_args = "i2" acl_elog_trace_format_args, \
327 typeof(acl_elog_val1) val1; \
328 typeof(acl_elog_val2) val2; \
329 typeof(acl_elog_val3) val3; \
331 ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); \
332 ed->thread = thread_index; \
333 ed->val1 = acl_elog_val1; \
334 ed->val2 = acl_elog_val2; \
335 ed->val3 = acl_elog_val3; \
342 #define elog_acl_maybe_trace_X4(am, acl_elog_trace_format_label, acl_elog_trace_format_args, acl_elog_val1, \
343 acl_elog_val2, acl_elog_val3, acl_elog_val4) \
345 if (am->trace_sessions) { \
346 CLIB_UNUSED(struct { u8 available_space[18 - sizeof(acl_elog_val1) - sizeof(acl_elog_val2) \
347 - sizeof(acl_elog_val3) -sizeof(acl_elog_val4)]; } *static_check); \
348 u16 thread_index = os_get_thread_index (); \
349 vlib_worker_thread_t * w = vlib_worker_threads + thread_index; \
350 ELOG_TYPE_DECLARE (e) = \
352 .format = "(%02d) " acl_elog_trace_format_label, \
353 .format_args = "i2" acl_elog_trace_format_args, \
358 typeof(acl_elog_val1) val1; \
359 typeof(acl_elog_val2) val2; \
360 typeof(acl_elog_val3) val3; \
361 typeof(acl_elog_val4) val4; \
363 ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); \
364 ed->thread = thread_index; \
365 ed->val1 = acl_elog_val1; \
366 ed->val2 = acl_elog_val2; \
367 ed->val3 = acl_elog_val3; \
368 ed->val4 = acl_elog_val4; \
fa_session_t * fa_sessions_pool
vlib_buffer_t * bufs[VLIB_FRAME_SIZE]
void acl_fa_enable_disable(u32 sw_if_index, int is_input, int enable_disable)
clib_spinlock_t pending_session_change_request_lock
static_always_inline u8 * format_fa_session_l4_key(u8 *s, va_list *args)
u64 * fa_conn_list_head_expiry_time
@ ACL_FA_CLEANER_RESCHEDULE
uword * serviced_sw_if_index_bitmap
@ ACL_FA_CLEANER_DELETE_BY_SW_IF_INDEX
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
u64 sent_session_change_requests
fa_session_l4_key_l4_flags_t
u64 cnt_session_timer_restarted
static_always_inline int is_session_l4_key_u64_slowpath(u64 l4key)
int interrupt_is_unwanted
clib_bihash_kv_16_8_t kv_16_8
@ FA_SK_L4_FLAG_IS_SLOWPATH
u64 current_time_wait_interval
#define static_always_inline
void show_fa_sessions_hash(vlib_main_t *vm, u32 verbose)
acl_fa_cleaner_process_event_e
u64 cnt_already_deleted_sessions
description fragment has unexpected format
u64 * fa_session_epoch_change_by_sw_if_index
u64 * pending_session_change_requests
u16 nexts[VLIB_FRAME_SIZE]
uword * pending_clear_sw_if_index_bitmap
u64 * fa_session_adds_by_sw_if_index
u64 rcvd_session_change_requests
clib_bihash_kv_40_8_t kv_40_8
vl_api_interface_index_t sw_if_index
u64 * fa_session_dels_by_sw_if_index
u32 sw_if_indices[VLIB_FRAME_SIZE]
u64 * wip_session_change_requests
#define CT_ASSERT_EQUAL(name, x, y)
u8 * format_acl_plugin_5tuple(u8 *s, va_list *args)
VLIB buffer representation.