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 220 #define elog_acl_maybe_trace_X1(am, acl_elog_trace_format_label, acl_elog_trace_format_args, acl_elog_val1) \ 222 if (am->trace_sessions) { \ 223 CLIB_UNUSED(struct { u8 available_space[18 - sizeof(acl_elog_val1)]; } *static_check); \ 224 u16 thread_index = os_get_thread_index (); \ 225 vlib_worker_thread_t * w = vlib_worker_threads + thread_index; \ 226 ELOG_TYPE_DECLARE (e) = \ 228 .format = "(%02d) " acl_elog_trace_format_label, \ 229 .format_args = "i2" acl_elog_trace_format_args, \ 234 typeof(acl_elog_val1) val1; \ 236 ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); \ 237 ed->thread = thread_index; \ 238 ed->val1 = acl_elog_val1; \ 245 #define elog_acl_maybe_trace_X2(am, acl_elog_trace_format_label, acl_elog_trace_format_args, \ 246 acl_elog_val1, acl_elog_val2) \ 248 if (am->trace_sessions) { \ 249 CLIB_UNUSED(struct { u8 available_space[18 - sizeof(acl_elog_val1) - sizeof(acl_elog_val2)]; } *static_check); \ 250 u16 thread_index = os_get_thread_index (); \ 251 vlib_worker_thread_t * w = vlib_worker_threads + thread_index; \ 252 ELOG_TYPE_DECLARE (e) = \ 254 .format = "(%02d) " acl_elog_trace_format_label, \ 255 .format_args = "i2" acl_elog_trace_format_args, \ 260 typeof(acl_elog_val1) val1; \ 261 typeof(acl_elog_val2) val2; \ 263 ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); \ 264 ed->thread = thread_index; \ 265 ed->val1 = acl_elog_val1; \ 266 ed->val2 = acl_elog_val2; \ 273 #define elog_acl_maybe_trace_X3(am, acl_elog_trace_format_label, acl_elog_trace_format_args, acl_elog_val1, \ 274 acl_elog_val2, acl_elog_val3) \ 276 if (am->trace_sessions) { \ 277 CLIB_UNUSED(struct { u8 available_space[18 - sizeof(acl_elog_val1) - sizeof(acl_elog_val2) \ 278 - sizeof(acl_elog_val3)]; } *static_check); \ 279 u16 thread_index = os_get_thread_index (); \ 280 vlib_worker_thread_t * w = vlib_worker_threads + thread_index; \ 281 ELOG_TYPE_DECLARE (e) = \ 283 .format = "(%02d) " acl_elog_trace_format_label, \ 284 .format_args = "i2" acl_elog_trace_format_args, \ 289 typeof(acl_elog_val1) val1; \ 290 typeof(acl_elog_val2) val2; \ 291 typeof(acl_elog_val3) val3; \ 293 ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); \ 294 ed->thread = thread_index; \ 295 ed->val1 = acl_elog_val1; \ 296 ed->val2 = acl_elog_val2; \ 297 ed->val3 = acl_elog_val3; \ 304 #define elog_acl_maybe_trace_X4(am, acl_elog_trace_format_label, acl_elog_trace_format_args, acl_elog_val1, \ 305 acl_elog_val2, acl_elog_val3, acl_elog_val4) \ 307 if (am->trace_sessions) { \ 308 CLIB_UNUSED(struct { u8 available_space[18 - sizeof(acl_elog_val1) - sizeof(acl_elog_val2) \ 309 - sizeof(acl_elog_val3) -sizeof(acl_elog_val4)]; } *static_check); \ 310 u16 thread_index = os_get_thread_index (); \ 311 vlib_worker_thread_t * w = vlib_worker_threads + thread_index; \ 312 ELOG_TYPE_DECLARE (e) = \ 314 .format = "(%02d) " acl_elog_trace_format_label, \ 315 .format_args = "i2" acl_elog_trace_format_args, \ 320 typeof(acl_elog_val1) val1; \ 321 typeof(acl_elog_val2) val2; \ 322 typeof(acl_elog_val3) val3; \ 323 typeof(acl_elog_val4) val4; \ 325 ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); \ 326 ed->thread = thread_index; \ 327 ed->val1 = acl_elog_val1; \ 328 ed->val2 = acl_elog_val2; \ 329 ed->val3 = acl_elog_val3; \ 330 ed->val4 = acl_elog_val4; \
uword * pending_clear_sw_if_index_bitmap
#define CT_ASSERT_EQUAL(name, x, y)
fa_session_t * fa_sessions_pool
u64 cnt_session_timer_restarted
enum @346 acl_fa_cleaner_process_event_e
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
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
void show_fa_sessions_hash(vlib_main_t *vm, u32 verbose)
u64 current_time_wait_interval