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 35 u8 is_nonfirst_fragment:1;
77 u64 padding_for_kv_16_8[3];
101 #define FA_POLICY_EPOCH_MASK 0x7fff 103 #define FA_POLICY_EPOCH_IS_INPUT 0x8000 124 #define CT_ASSERT_EQUAL(name, x,y) typedef int assert_ ## name ## _compile_time_assertion_failed[((x) == (y))-1] 141 #undef CT_ASSERT_EQUAL 143 #define FA_SESSION_BOGUS_INDEX ~0 226 #define elog_acl_maybe_trace_X1(am, acl_elog_trace_format_label, acl_elog_trace_format_args, acl_elog_val1) \ 228 if (am->trace_sessions) { \ 229 CLIB_UNUSED(struct { u8 available_space[18 - sizeof(acl_elog_val1)]; } *static_check); \ 230 u16 thread_index = os_get_thread_index (); \ 231 vlib_worker_thread_t * w = vlib_worker_threads + thread_index; \ 232 ELOG_TYPE_DECLARE (e) = \ 234 .format = "(%02d) " acl_elog_trace_format_label, \ 235 .format_args = "i2" acl_elog_trace_format_args, \ 240 typeof(acl_elog_val1) val1; \ 242 ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); \ 243 ed->thread = thread_index; \ 244 ed->val1 = acl_elog_val1; \ 251 #define elog_acl_maybe_trace_X2(am, acl_elog_trace_format_label, acl_elog_trace_format_args, \ 252 acl_elog_val1, acl_elog_val2) \ 254 if (am->trace_sessions) { \ 255 CLIB_UNUSED(struct { u8 available_space[18 - sizeof(acl_elog_val1) - sizeof(acl_elog_val2)]; } *static_check); \ 256 u16 thread_index = os_get_thread_index (); \ 257 vlib_worker_thread_t * w = vlib_worker_threads + thread_index; \ 258 ELOG_TYPE_DECLARE (e) = \ 260 .format = "(%02d) " acl_elog_trace_format_label, \ 261 .format_args = "i2" acl_elog_trace_format_args, \ 266 typeof(acl_elog_val1) val1; \ 267 typeof(acl_elog_val2) val2; \ 269 ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); \ 270 ed->thread = thread_index; \ 271 ed->val1 = acl_elog_val1; \ 272 ed->val2 = acl_elog_val2; \ 279 #define elog_acl_maybe_trace_X3(am, acl_elog_trace_format_label, acl_elog_trace_format_args, acl_elog_val1, \ 280 acl_elog_val2, acl_elog_val3) \ 282 if (am->trace_sessions) { \ 283 CLIB_UNUSED(struct { u8 available_space[18 - sizeof(acl_elog_val1) - sizeof(acl_elog_val2) \ 284 - sizeof(acl_elog_val3)]; } *static_check); \ 285 u16 thread_index = os_get_thread_index (); \ 286 vlib_worker_thread_t * w = vlib_worker_threads + thread_index; \ 287 ELOG_TYPE_DECLARE (e) = \ 289 .format = "(%02d) " acl_elog_trace_format_label, \ 290 .format_args = "i2" acl_elog_trace_format_args, \ 295 typeof(acl_elog_val1) val1; \ 296 typeof(acl_elog_val2) val2; \ 297 typeof(acl_elog_val3) val3; \ 299 ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); \ 300 ed->thread = thread_index; \ 301 ed->val1 = acl_elog_val1; \ 302 ed->val2 = acl_elog_val2; \ 303 ed->val3 = acl_elog_val3; \ 310 #define elog_acl_maybe_trace_X4(am, acl_elog_trace_format_label, acl_elog_trace_format_args, acl_elog_val1, \ 311 acl_elog_val2, acl_elog_val3, acl_elog_val4) \ 313 if (am->trace_sessions) { \ 314 CLIB_UNUSED(struct { u8 available_space[18 - sizeof(acl_elog_val1) - sizeof(acl_elog_val2) \ 315 - sizeof(acl_elog_val3) -sizeof(acl_elog_val4)]; } *static_check); \ 316 u16 thread_index = os_get_thread_index (); \ 317 vlib_worker_thread_t * w = vlib_worker_threads + thread_index; \ 318 ELOG_TYPE_DECLARE (e) = \ 320 .format = "(%02d) " acl_elog_trace_format_label, \ 321 .format_args = "i2" acl_elog_trace_format_args, \ 326 typeof(acl_elog_val1) val1; \ 327 typeof(acl_elog_val2) val2; \ 328 typeof(acl_elog_val3) val3; \ 329 typeof(acl_elog_val4) val4; \ 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; \ 336 ed->val4 = acl_elog_val4; \
uword * pending_clear_sw_if_index_bitmap
u64 * wip_session_change_requests
#define CT_ASSERT_EQUAL(name, x, y)
fa_session_t * fa_sessions_pool
u64 rcvd_session_change_requests
u64 cnt_session_timer_restarted
u64 * fa_session_epoch_change_by_sw_if_index
int interrupt_is_unwanted
u64 * fa_conn_list_head_expiry_time
u64 * fa_session_adds_by_sw_if_index
u64 * fa_session_dels_by_sw_if_index
enum @371 acl_fa_cleaner_process_event_e
u64 sent_session_change_requests
clib_bihash_kv_40_8_t kv_40_8
void acl_fa_enable_disable(u32 sw_if_index, int is_input, int enable_disable)
clib_bihash_kv_16_8_t kv_16_8
uword * serviced_sw_if_index_bitmap
u8 * format_acl_plugin_5tuple(u8 *s, va_list *args)
u64 cnt_already_deleted_sessions
clib_spinlock_t pending_session_change_request_lock
void show_fa_sessions_hash(vlib_main_t *vm, u32 verbose)
u64 * pending_session_change_requests
u64 current_time_wait_interval