#include <vlib/vlib.h>
#include <vnet/vnet.h>
-#include <vnet/pg/pg.h>
#include <vnet/ethernet/ethernet.h>
#include <vnet/ethernet/packet.h>
#include <vnet/ip/ip_packet.h>
return format_l2_in_out_acl_trace (s, IN_OUT_ACL_OUTPUT_TABLE_GROUP, args);
}
+extern l2_in_out_acl_main_t l2_in_out_acl_main;
+
+#ifndef CLIB_MARCH_VARIANT
l2_in_out_acl_main_t l2_in_out_acl_main;
+#endif /* CLIB_MARCH_VARIANT */
-static vlib_node_registration_t l2_inacl_node;
-static vlib_node_registration_t l2_outacl_node;
+extern vlib_node_registration_t l2_inacl_node;
+extern vlib_node_registration_t l2_outacl_node;
#define foreach_l2_inacl_error \
_(NONE, "valid input ACL packets") \
if (t0->current_data_flag == CLASSIFY_FLAG_USE_CURR_DATA)
h0 = (void *) vlib_buffer_get_current (b0) + t0->current_data_offset;
else
- h0 = b0->data;
+ h0 = (void *) vlib_buffer_get_current (b0);
vnet_buffer (b0)->l2_classify.hash =
vnet_classify_hash_packet (t0, (u8 *) h0);
if (t1->current_data_flag == CLASSIFY_FLAG_USE_CURR_DATA)
h1 = (void *) vlib_buffer_get_current (b1) + t1->current_data_offset;
else
- h1 = b1->data;
+ h1 = (void *) vlib_buffer_get_current (b1);
vnet_buffer (b1)->l2_classify.hash =
vnet_classify_hash_packet (t1, (u8 *) h1);
if (t0->current_data_flag == CLASSIFY_FLAG_USE_CURR_DATA)
h0 = (void *) vlib_buffer_get_current (b0) + t0->current_data_offset;
else
- h0 = b0->data;
+ h0 = (void *) vlib_buffer_get_current (b0);
vnet_buffer (b0)->l2_classify.hash =
vnet_classify_hash_packet (t0, (u8 *) h0);
(void *) vlib_buffer_get_current (b0) +
t0->current_data_offset;
else
- h0 = b0->data;
+ h0 = (void *) vlib_buffer_get_current (b0);
e0 = vnet_classify_find_entry (t0, (u8 *) h0, hash0, now);
if (e0)
(void *) vlib_buffer_get_current (b0) +
t0->current_data_offset;
else
- h0 = b0->data;
+ h0 = (void *) vlib_buffer_get_current (b0);
hash0 = vnet_classify_hash_packet (t0, (u8 *) h0);
e0 = vnet_classify_find_entry
return frame->n_vectors;
}
-static uword
-l2_inacl_node_fn (vlib_main_t * vm,
- vlib_node_runtime_t * node, vlib_frame_t * frame)
+VLIB_NODE_FN (l2_inacl_node) (vlib_main_t * vm,
+ vlib_node_runtime_t * node,
+ vlib_frame_t * frame)
{
return l2_in_out_acl_node_fn (vm, node, frame,
IN_OUT_ACL_INPUT_TABLE_GROUP);
}
-static uword
-l2_outacl_node_fn (vlib_main_t * vm,
- vlib_node_runtime_t * node, vlib_frame_t * frame)
+VLIB_NODE_FN (l2_outacl_node) (vlib_main_t * vm,
+ vlib_node_runtime_t * node,
+ vlib_frame_t * frame)
{
return l2_in_out_acl_node_fn (vm, node, frame,
IN_OUT_ACL_OUTPUT_TABLE_GROUP);
}
/* *INDENT-OFF* */
-VLIB_REGISTER_NODE (l2_inacl_node,static) = {
- .function = l2_inacl_node_fn,
+VLIB_REGISTER_NODE (l2_inacl_node) = {
.name = "l2-input-acl",
.vector_size = sizeof (u32),
.format_trace = format_l2_inacl_trace,
},
};
-VLIB_REGISTER_NODE (l2_outacl_node,static) = {
- .function = l2_outacl_node_fn,
+VLIB_REGISTER_NODE (l2_outacl_node) = {
.name = "l2-output-acl",
.vector_size = sizeof (u32),
.format_trace = format_l2_outacl_trace,
[ACL_NEXT_INDEX_DENY] = "error-drop",
},
};
-
-VLIB_NODE_FUNCTION_MULTIARCH (l2_inacl_node, l2_inacl_node_fn)
-VLIB_NODE_FUNCTION_MULTIARCH (l2_outacl_node, l2_outacl_node_fn)
/* *INDENT-ON* */
+#ifndef CLIB_MARCH_VARIANT
clib_error_t *
l2_in_out_acl_init (vlib_main_t * vm)
{
}
VLIB_INIT_FUNCTION (l2_in_out_acl_init);
+#endif /* CLIB_MARCH_VARIANT */
/*
* fd.io coding-style-patch-verification: ON