9 #define TCP_FLAG_FIN 0x01 10 #define TCP_FLAG_SYN 0x02 11 #define TCP_FLAG_RST 0x04 12 #define TCP_FLAG_PUSH 0x08 13 #define TCP_FLAG_ACK 0x10 14 #define TCP_FLAG_URG 0x20 15 #define TCP_FLAG_ECE 0x40 16 #define TCP_FLAG_CWR 0x80 17 #define TCP_FLAGS_RSTFINACKSYN (TCP_FLAG_RST + TCP_FLAG_FIN + TCP_FLAG_SYN + TCP_FLAG_ACK) 18 #define TCP_FLAGS_ACKSYN (TCP_FLAG_SYN + TCP_FLAG_ACK) 20 #define ACL_FA_CONN_TABLE_DEFAULT_HASH_NUM_BUCKETS (64 * 1024) 21 #define ACL_FA_CONN_TABLE_DEFAULT_HASH_MEMORY_SIZE (1<<30) 22 #define ACL_FA_CONN_TABLE_DEFAULT_MAX_ENTRIES 1000000 32 u8 is_nonfirst_fragment:1;
79 #define FA_POLICY_EPOCH_MASK 0x7fff 81 #define FA_POLICY_EPOCH_IS_INPUT 0x8000 102 #define CT_ASSERT_EQUAL(name, x,y) typedef int assert_ ## name ## _compile_time_assertion_failed[((x) == (y))-1] 113 #undef CT_ASSERT_EQUAL 188 #define elog_acl_maybe_trace_X1(am, acl_elog_trace_format_label, acl_elog_trace_format_args, acl_elog_val1) \ 190 if (am->trace_sessions) { \ 191 CLIB_UNUSED(struct { u8 available_space[18 - sizeof(acl_elog_val1)]; } *static_check); \ 192 u16 thread_index = os_get_thread_index (); \ 193 vlib_worker_thread_t * w = vlib_worker_threads + thread_index; \ 194 ELOG_TYPE_DECLARE (e) = \ 196 .format = "(%02d) " acl_elog_trace_format_label, \ 197 .format_args = "i2" acl_elog_trace_format_args, \ 202 typeof(acl_elog_val1) val1; \ 204 ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); \ 205 ed->thread = thread_index; \ 206 ed->val1 = acl_elog_val1; \ 213 #define elog_acl_maybe_trace_X2(am, acl_elog_trace_format_label, acl_elog_trace_format_args, \ 214 acl_elog_val1, acl_elog_val2) \ 216 if (am->trace_sessions) { \ 217 CLIB_UNUSED(struct { u8 available_space[18 - sizeof(acl_elog_val1) - sizeof(acl_elog_val2)]; } *static_check); \ 218 u16 thread_index = os_get_thread_index (); \ 219 vlib_worker_thread_t * w = vlib_worker_threads + thread_index; \ 220 ELOG_TYPE_DECLARE (e) = \ 222 .format = "(%02d) " acl_elog_trace_format_label, \ 223 .format_args = "i2" acl_elog_trace_format_args, \ 228 typeof(acl_elog_val1) val1; \ 229 typeof(acl_elog_val2) val2; \ 231 ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); \ 232 ed->thread = thread_index; \ 233 ed->val1 = acl_elog_val1; \ 234 ed->val2 = acl_elog_val2; \ 241 #define elog_acl_maybe_trace_X3(am, acl_elog_trace_format_label, acl_elog_trace_format_args, acl_elog_val1, \ 242 acl_elog_val2, acl_elog_val3) \ 244 if (am->trace_sessions) { \ 245 CLIB_UNUSED(struct { u8 available_space[18 - sizeof(acl_elog_val1) - sizeof(acl_elog_val2) \ 246 - sizeof(acl_elog_val3)]; } *static_check); \ 247 u16 thread_index = os_get_thread_index (); \ 248 vlib_worker_thread_t * w = vlib_worker_threads + thread_index; \ 249 ELOG_TYPE_DECLARE (e) = \ 251 .format = "(%02d) " acl_elog_trace_format_label, \ 252 .format_args = "i2" acl_elog_trace_format_args, \ 257 typeof(acl_elog_val1) val1; \ 258 typeof(acl_elog_val2) val2; \ 259 typeof(acl_elog_val3) val3; \ 261 ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); \ 262 ed->thread = thread_index; \ 263 ed->val1 = acl_elog_val1; \ 264 ed->val2 = acl_elog_val2; \ 265 ed->val3 = acl_elog_val3; \ 272 #define elog_acl_maybe_trace_X4(am, acl_elog_trace_format_label, acl_elog_trace_format_args, acl_elog_val1, \ 273 acl_elog_val2, acl_elog_val3, acl_elog_val4) \ 275 if (am->trace_sessions) { \ 276 CLIB_UNUSED(struct { u8 available_space[18 - sizeof(acl_elog_val1) - sizeof(acl_elog_val2) \ 277 - sizeof(acl_elog_val3) -sizeof(acl_elog_val4)]; } *static_check); \ 278 u16 thread_index = os_get_thread_index (); \ 279 vlib_worker_thread_t * w = vlib_worker_threads + thread_index; \ 280 ELOG_TYPE_DECLARE (e) = \ 282 .format = "(%02d) " acl_elog_trace_format_label, \ 283 .format_args = "i2" acl_elog_trace_format_args, \ 288 typeof(acl_elog_val1) val1; \ 289 typeof(acl_elog_val2) val2; \ 290 typeof(acl_elog_val3) val3; \ 291 typeof(acl_elog_val4) val4; \ 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; \ 298 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
u64 * fa_session_epoch_change_by_sw_if_index
int interrupt_is_unwanted
u64 * fa_session_adds_by_sw_if_index
u64 * fa_session_dels_by_sw_if_index
void acl_fa_enable_disable(u32 sw_if_index, int is_input, int enable_disable)
uword * serviced_sw_if_index_bitmap
enum @341 acl_fa_cleaner_process_event_e
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