15 #ifndef included_acl_h 16 #define included_acl_h 30 #define ACL_PLUGIN_VERSION_MAJOR 1 31 #define ACL_PLUGIN_VERSION_MINOR 2 136 u32 acl_in_node_feat_next_node_index[32];
137 u32 acl_out_node_feat_next_node_index[32];
141 u32 acl_in_ip4_match_next[256];
142 u32 acl_in_ip6_match_next[256];
143 u32 acl_out_ip4_match_next[256];
144 u32 acl_out_ip6_match_next[256];
176 u32 fa_acl_in_ip4_l2_node_feat_next_node_index[32];
177 u32 fa_acl_in_ip6_l2_node_feat_next_node_index[32];
178 u32 fa_acl_out_ip4_l2_node_feat_next_node_index[32];
179 u32 fa_acl_out_ip6_l2_node_feat_next_node_index[32];
197 #define ACL_FA_DEFAULT_MAX_DELETED_SESSIONS_PER_INTERVAL 100 205 #define ACL_FA_DEFAULT_MIN_DELETED_SESSIONS_PER_INTERVAL 1 208 #define ACL_FA_DEFAULT_CLEANER_WAIT_TIME_INCREMENT 0.1 217 #define foreach_fa_cleaner_counter \ 218 _(fa_cleaner_cnt_delete_by_sw_index, "delete_by_sw_index events") \ 219 _(fa_cleaner_cnt_delete_by_sw_index_ok, "delete_by_sw_index handled ok") \ 220 _(fa_cleaner_cnt_unknown_event, "unknown events received") \ 221 _(fa_cleaner_cnt_deleted_sessions, "sessions deleted") \ 222 _(fa_cleaner_cnt_timer_restarted, "session idle timers restarted") \ 223 _(fa_cleaner_cnt_wait_with_timeout, "event wait with timeout called") \ 224 _(fa_cleaner_cnt_wait_without_timeout, "event wait w/o timeout called") \ 225 _(fa_cleaner_cnt_event_cycles, "total event cycles") \ 226 _(fa_cleaner_cnt_already_deleted, "try to delete already deleted conn") \ 228 #define _(id, desc) u32 id; 237 #define foreach_acl_eh \ 238 _(HOPBYHOP , 0 , "IPv6ExtHdrHopByHop") \ 239 _(ROUTING , 43 , "IPv6ExtHdrRouting") \ 240 _(DESTOPT , 60 , "IPv6ExtHdrDestOpt") \ 241 _(FRAGMENT , 44 , "IPv6ExtHdrFragment") \ 242 _(MOBILITY , 135, "Mobility Header") \ 243 _(HIP , 139, "Experimental use Host Identity Protocol") \ 244 _(SHIM6 , 140, "Shim6 Protocol") \ 245 _(EXP1 , 253, "Use for experimentation and testing") \ 246 _(EXP2 , 254, "Use for experimentation and testing") 270 #define _(N, v, s) ACL_EH_##N = v,
u32 * acl_ip4_output_classify_table_by_sw_if_index
u32 fa_cleaner_node_index
uword * fa_out_acl_on_sw_if_index
u64 fa_current_cleaner_timer_wait_interval
u32 ** input_acl_vec_by_sw_if_index
uword * fa_in_acl_on_sw_if_index
int l4_match_nonfirst_fragment
void input_acl_packet_match(u32 sw_if_index, vlib_buffer_t *b0, u32 *nextp, u32 *acl_match_p, u32 *rule_match_p, u32 *trace_bitmap)
u32 * acl_ip6_input_classify_table_by_sw_if_index
struct _vlib_node_registration vlib_node_registration_t
u32 l2_input_classify_next_acl_ip4
vlib_node_registration_t acl_out_node
(constructor) VLIB_REGISTER_NODE (acl_out_node)
uword * fa_sessions_on_sw_if_index
f64 fa_cleaner_wait_time_increment
u32 fa_l2_output_classify_next_acl_ip4
uword fa_conn_table_hash_memory_size
u16 dst_port_or_code_last
u32 l2_output_classify_next_acl_ip4
ip46_address_t src_ip_addr
u64 fa_conn_table_max_entries
fa_session_t * fa_sessions_pool
clib_bihash_40_8_t * fa_sessions_by_sw_if_index
u32 * acl_ip4_input_classify_table_by_sw_if_index
u16 dst_port_or_code_first
u32 fa_l2_input_classify_next_acl_ip4
uword * fa_ipv6_known_eh_bitmap
u32 fa_l2_output_classify_next_acl_ip6
u32 l2_input_classify_next_acl_ip6
vlib_node_registration_t acl_in_node
(constructor) VLIB_REGISTER_NODE (acl_in_node)
u16 src_port_or_type_first
u64 fa_min_deleted_sessions_per_interval
u32 fa_l2_input_classify_next_acl_ip6
u64 * fa_session_dels_by_sw_if_index
#define foreach_fa_cleaner_counter
u16 src_port_or_type_last
Bitmaps built as vectors of machine words.
u32 l2_output_classify_next_acl_old
u64 * fa_session_adds_by_sw_if_index
u32 * macip_acl_by_sw_if_index
u32 * acl_ip6_output_classify_table_by_sw_if_index
macip_acl_list_t * macip_acls
u32 l2_input_classify_next_acl_old
u64 fa_max_deleted_sessions_per_interval
void output_acl_packet_match(u32 sw_if_index, vlib_buffer_t *b0, u32 *nextp, u32 *acl_match_p, u32 *rule_match_p, u32 *trace_bitmap)
u32 l2_output_classify_next_acl_ip6
u32 ** output_acl_vec_by_sw_if_index
u32 fa_conn_table_hash_num_buckets
foreach_fa_cleaner_counter vlib_main_t * vlib_main