It will not be used for IP only...
Change-Id: I90ef3030aff7f9e24767553f019cabc1ea987126
Signed-off-by: Damjan Marion <damarion@cisco.com>
u32 ci;
ip4_main_t *im = &ip4_main;
ip_lookup_main_t *lm = &im->lookup_main;
- ip_config_main_t *cm = &lm->feature_config_mains[VNET_IP_TX_FEAT];
+ vnet_feature_config_main_t *cm = &lm->feature_config_mains[VNET_IP_TX_FEAT];
u32 feature_index;
flow_report_main_t *frm = &flow_report_main;
vnet_flow_report_add_del_args_t _a, *a = &_a;
flowperpkt_next_t next_index;
ip4_main_t *im = &ip4_main;
ip_lookup_main_t *lm = &im->lookup_main;
- ip_config_main_t *cm = &lm->feature_config_mains[VNET_IP_TX_FEAT];
+ vnet_feature_config_main_t *cm = &lm->feature_config_mains[VNET_IP_TX_FEAT];
flowperpkt_main_t *fm = &flowperpkt_main;
f64 now = vlib_time_now (vm);
{
ip6_main_t *im = &ip6_main;
ip_lookup_main_t *lm = &im->lookup_main;
- ip_config_main_t *cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
+ vnet_feature_config_main_t *cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
u32 n_left_from, *from, next_index, *to_next, n_left_to_next;
ila_main_t *ilm = &ila_main;
ila_main_t *ilm = &ila_main;
ip6_main_t *im = &ip6_main;
ip_lookup_main_t *lm = &im->lookup_main;
- ip_config_main_t *cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
+ vnet_feature_config_main_t *cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
vnet_config_main_t *vcm = &cm->config_main;
u32 ci, feature_index;
u32 pkts_processed = 0;
snat_main_t * sm = &snat_main;
ip_lookup_main_t * lm = sm->ip4_lookup_main;
- ip_config_main_t * cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
+ vnet_feature_config_main_t * cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
f64 now = vlib_time_now (vm);
from = vlib_frame_vector_args (frame);
u32 pkts_processed = 0;
snat_main_t * sm = &snat_main;
ip_lookup_main_t * lm = sm->ip4_lookup_main;
- ip_config_main_t * cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
+ vnet_feature_config_main_t * cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
from = vlib_frame_vector_args (frame);
n_left_from = frame->n_vectors;
u32 ci;
ip4_main_t * im = &ip4_main;
ip_lookup_main_t * lm = &im->lookup_main;
- ip_config_main_t * rx_cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
+ vnet_feature_config_main_t * rx_cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
u32 feature_index;
if (sm->static_mapping_only && !(sm->static_mapping_connection_tracking))
u32 * from = vlib_frame_vector_args (frame);
u32 n_left_from, n_left_to_next, * to_next, next_index;
u32 cpu_index = os_get_cpu_number();
- ip_config_main_t * cm = ðernet_main.feature_config_mains[VNET_IP_TX_FEAT];
+ vnet_feature_config_main_t * cm = ðernet_main.feature_config_mains[VNET_IP_TX_FEAT];
n_left_from = frame->n_vectors;
next_index = node->cached_next_index;
return (0);
}
-static ip_config_main_t *
+static vnet_feature_config_main_t *
adj_midchain_get_cofing_for_link_type (const ip_adjacency_t *adj)
{
- ip_config_main_t *cm = NULL;
+ vnet_feature_config_main_t *cm = NULL;
switch (adj->ia_link)
{
u8 *rewrite)
{
vnet_config_main_t * vcm;
- ip_config_main_t *cm;
+ vnet_feature_config_main_t *cm;
ip_adjacency_t *adj;
u32 ci;
int feature_enable)
{
ip_lookup_main_t * lm;
- ip_config_main_t * ifcm;
+ vnet_feature_config_main_t * ifcm;
u32 ftype;
u32 ci;
else
{ /* IP[46] */
ip_lookup_main_t * lm;
- ip_config_main_t * ipcm;
+ vnet_feature_config_main_t * ipcm;
u32 ftype;
u32 ci;
else
{
ip_lookup_main_t * lm;
- ip_config_main_t * ipcm;
+ vnet_feature_config_main_t * ipcm;
u32 ftype;
u32 ci;
u8 next_by_ethertype_register_called;
/** per-interface features */
- ip_config_main_t feature_config_mains[VNET_N_IP_FEAT];
+ vnet_feature_config_main_t feature_config_mains[VNET_N_IP_FEAT];
/** Feature path configuration lists */
vnet_feature_registration_t *next_feature[VNET_N_IP_FEAT];
static clib_error_t *
ethernet_feature_init (vlib_main_t * vm)
{
- ip_config_main_t *cm = ðernet_main.feature_config_mains[VNET_IP_TX_FEAT];
+ vnet_feature_config_main_t *cm =
+ ðernet_main.feature_config_mains[VNET_IP_TX_FEAT];
vnet_config_main_t *vcm = &cm->config_main;
return (vnet_feature_arc_init (vm, vcm,
<CODE><PRE>
ip4_main_t *im = \&ip4_main;
ip_lookup_main_t *lm = &im->lookup_main;
- ip_config_main_t *rx_cm =
+ vnet_feature_config_main_t *rx_cm =
&lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
sw_if_index = <interface-handle>
<CODE><PRE>
ip_lookup_main_t * lm = sm->ip4_lookup_main;
- ip_config_main_t * cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
+ vnet_feature_config_main_t * cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
Call @c vnet_get_config_data to set next0, and to advance
@c b0->current_config_index:
void
ip_interface_features_show (vlib_main_t * vm,
const char *pname,
- ip_config_main_t * cm, u32 sw_if_index)
+ vnet_feature_config_main_t * cm, u32 sw_if_index)
{
u32 node_index, current_config_index;
vnet_cast_t cast;
char **runs_after;
} vnet_feature_registration_t;
-typedef struct ip_config_main_t_
+typedef struct vnet_feature_config_main_t_
{
vnet_config_main_t config_main;
u32 *config_index_by_sw_if_index;
-} ip_config_main_t;
+} vnet_feature_config_main_t;
/** Syntactic sugar, the c-compiler won't initialize registrations without it */
#define ORDER_CONSTRAINTS (char*[])
void ip_interface_features_show (vlib_main_t * vm,
const char *pname,
- ip_config_main_t * cm, u32 sw_if_index);
+ vnet_feature_config_main_t * cm,
+ u32 sw_if_index);
#endif /* included_feature_registration_h */
void
vnet_config_update_tx_feature_count (ip_lookup_main_t * lm,
- ip_config_main_t * tx_cm,
+ vnet_feature_config_main_t * tx_cm,
u32 sw_if_index,
int is_add);
for (cast = 0; cast <= VNET_IP_RX_MULTICAST_FEAT; cast++)
{
- ip_config_main_t * cm = &lm->feature_config_mains[cast];
+ vnet_feature_config_main_t * cm = &lm->feature_config_mains[cast];
vnet_config_main_t * vcm = &cm->config_main;
vec_validate_init_empty (cm->config_index_by_sw_if_index, sw_if_index, ~0);
ip_lookup_main_t * lm = &im->lookup_main;
clib_error_t * error;
vnet_cast_t cast;
- ip_config_main_t * cm;
+ vnet_feature_config_main_t * cm;
vnet_config_main_t * vcm;
char **feature_start_nodes;
int feature_start_len;
for (cast = 0; cast < VNET_N_IP_FEAT; cast++)
{
- ip_config_main_t * cm = &lm->feature_config_mains[cast];
+ vnet_feature_config_main_t * cm = &lm->feature_config_mains[cast];
vnet_config_main_t * vcm = &cm->config_main;
vec_validate_init_empty (cm->config_index_by_sw_if_index, sw_if_index, ~0);
u32 n_left_from, n_left_to_next, * to_next, next_index;
vlib_node_runtime_t * error_node = vlib_node_get_runtime (vm, ip4_input_node.index);
vlib_rx_or_tx_t adj_rx_tx = rewrite_for_locally_received_packets ? VLIB_RX : VLIB_TX;
- ip_config_main_t * cm = &lm->feature_config_mains[VNET_IP_TX_FEAT];
+ vnet_feature_config_main_t * cm = &lm->feature_config_mains[VNET_IP_TX_FEAT];
n_left_from = frame->n_vectors;
next_index = node->cached_next_index;
{
vlib_buffer_t * p0, * p1;
ip4_header_t * ip0, * ip1;
- ip_config_main_t * cm0, * cm1;
+ vnet_feature_config_main_t * cm0, * cm1;
u32 sw_if_index0, pi0, ip_len0, cur_len0, next0;
u32 sw_if_index1, pi1, ip_len1, cur_len1, next1;
i32 len_diff0, len_diff1;
{
vlib_buffer_t * p0;
ip4_header_t * ip0;
- ip_config_main_t * cm0;
+ vnet_feature_config_main_t * cm0;
u32 sw_if_index0, pi0, ip_len0, cur_len0, next0;
i32 len_diff0;
u8 error0, cast0;
@par Graph mechanics: buffer metadata, next index usage
@em Uses:
- - ip_config_main_t cm corresponding to each pkt's dst address unicast /
+ - vnet_feature_config_main_t cm corresponding to each pkt's dst address unicast /
multicast status.
- <code>b->current_config_index</code> corresponding to each pkt's
rx sw_if_index.
{
ip4_main_t *im = &ip4_main;
ip_lookup_main_t *lm = &im->lookup_main;
- ip_config_main_t *rx_cm =
+ vnet_feature_config_main_t *rx_cm =
&lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
- ip_config_main_t *tx_cm = &lm->feature_config_mains[VNET_IP_TX_FEAT];
+ vnet_feature_config_main_t *tx_cm =
+ &lm->feature_config_mains[VNET_IP_TX_FEAT];
u32 n_left_from, *from, *to_next;
u32 next_index;
vlib_node_runtime_t *error_node = node;
{
ip4_main_t *im = &ip4_main;
ip_lookup_main_t *lm = &im->lookup_main;
- ip_config_main_t *rx_cm =
+ vnet_feature_config_main_t *rx_cm =
&lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
- ip_config_main_t *tx_cm = &lm->feature_config_mains[VNET_IP_TX_FEAT];
+ vnet_feature_config_main_t *tx_cm =
+ &lm->feature_config_mains[VNET_IP_TX_FEAT];
u32 ci;
ip_source_and_port_range_check_config_t config;
u32 feature_index;
{
ip4_main_t * im = &ip4_main;
ip_lookup_main_t * lm = &im->lookup_main;
- ip_config_main_t * cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
+ vnet_feature_config_main_t * cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
u32 n_left_from, * from, * to_next;
u32 next_index;
vlib_node_runtime_t * error_node = vlib_node_get_runtime (vm, ip4_input_node.index);
vnet_main_t * vnm = vnet_get_main();
ip4_main_t * im = &ip4_main;
ip_lookup_main_t * lm = &im->lookup_main;
- ip_config_main_t * rx_cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
+ vnet_feature_config_main_t * rx_cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
clib_error_t * error = 0;
u32 sw_if_index, is_del, ci;
ip4_source_check_config_t config;
for (cast = 0; cast <= VNET_IP_RX_MULTICAST_FEAT; cast++)
{
- ip_config_main_t * cm = &lm->feature_config_mains[cast];
+ vnet_feature_config_main_t * cm = &lm->feature_config_mains[cast];
vnet_config_main_t * vcm = &cm->config_main;
vec_validate_init_empty (cm->config_index_by_sw_if_index, sw_if_index, ~0);
ip_lookup_main_t * lm = &im->lookup_main;
clib_error_t * error;
vnet_cast_t cast;
- ip_config_main_t * cm;
+ vnet_feature_config_main_t * cm;
vnet_config_main_t * vcm;
char **feature_start_nodes;
int feature_start_len;
for (cast = 0; cast < VNET_N_IP_FEAT; cast++)
{
- ip_config_main_t * cm = &lm->feature_config_mains[cast];
+ vnet_feature_config_main_t * cm = &lm->feature_config_mains[cast];
vnet_config_main_t * vcm = &cm->config_main;
vec_validate_init_empty (cm->config_index_by_sw_if_index, sw_if_index, ~0);
u32 n_left_from, n_left_to_next, * to_next, next_index;
vlib_node_runtime_t * error_node = vlib_node_get_runtime (vm, ip6_input_node.index);
vlib_rx_or_tx_t adj_rx_tx = rewrite_for_locally_received_packets ? VLIB_RX : VLIB_TX;
- ip_config_main_t * cm = &lm->feature_config_mains[VNET_IP_TX_FEAT];
+ vnet_feature_config_main_t * cm = &lm->feature_config_mains[VNET_IP_TX_FEAT];
n_left_from = frame->n_vectors;
next_index = node->cached_next_index;
{
vlib_buffer_t * p0, * p1;
ip6_header_t * ip0, * ip1;
- ip_config_main_t * cm0, * cm1;
+ vnet_feature_config_main_t * cm0, * cm1;
u32 pi0, sw_if_index0, next0;
u32 pi1, sw_if_index1, next1;
u8 error0, error1, cast0, cast1;
{
vlib_buffer_t * p0;
ip6_header_t * ip0;
- ip_config_main_t * cm0;
+ vnet_feature_config_main_t * cm0;
u32 pi0, sw_if_index0, next0;
u8 error0, cast0;
void
vnet_config_update_tx_feature_count (ip_lookup_main_t * lm,
- ip_config_main_t * tx_cm,
+ vnet_feature_config_main_t * tx_cm,
u32 sw_if_index,
int is_add)
{
u32 * classify_table_index_by_sw_if_index;
/** rx unicast, multicast, tx interface/feature configuration. */
- ip_config_main_t feature_config_mains[VNET_N_IP_FEAT];
+ vnet_feature_config_main_t feature_config_mains[VNET_N_IP_FEAT];
/** Number of bytes in a fib result. Must be at least
sizeof (uword). First word is always adjacency index. */
{
ipsec_main_t *im = &ipsec_main;
ip_lookup_main_t *lm;
- ip_config_main_t *rx_cm;
+ vnet_feature_config_main_t *rx_cm;
ip4_ipsec_config_t config;
u32 spd_index, ci;
{
ip4_main_t *i4m = &ip4_main;
ip_lookup_main_t *lm = &i4m->lookup_main;
- ip_config_main_t *cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
+ vnet_feature_config_main_t *cm =
+ &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
u32 n_left_from, *from, next_index, *to_next;
ipsec_main_t *im = &ipsec_main;
{
ip6_main_t *i6m = &ip6_main;
ip_lookup_main_t *lm = &i6m->lookup_main;
- ip_config_main_t *cm = &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
+ vnet_feature_config_main_t *cm =
+ &lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
u32 n_left_from, *from, next_index, *to_next;
ipsec_main_t *im = &ipsec_main;
/* Go to next node on the ip6 configuration chain */
ip6_main_t *im = &ip6_main;
ip_lookup_main_t *lm = &im->lookup_main;
- ip_config_main_t *cm =
+ vnet_feature_config_main_t *cm =
&lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
ip6_l2tpv3_config_t *c0;
{
ip6_main_t *im = &ip6_main;
ip_lookup_main_t *lm = &im->lookup_main;
- ip_config_main_t *rx_cm =
+ vnet_feature_config_main_t *rx_cm =
&lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
u32 ci;
ip6_l2tpv3_config_t config;
u8 is_enable)
{
vlib_main_t * vm = vlib_get_main();
- ip_config_main_t * cm = &mm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
+ vnet_feature_config_main_t * cm = &mm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
vnet_config_main_t * vcm = &cm->config_main;
u32 lookup_feature_index;
fib_node_index_t lfib_index;
uword *fib_index_by_table_id;
/* rx/tx interface/feature configuration. */
- ip_config_main_t feature_config_mains[VNET_N_IP_FEAT];
+ vnet_feature_config_main_t feature_config_mains[VNET_N_IP_FEAT];
/* Built-in unicast feature path indices, see vnet_feature_arc_init(...) */
u32 mpls_rx_feature_lookup;
clib_error_t *
mpls_feature_init (vlib_main_t * vm)
{
- ip_config_main_t * cm = &mpls_main.feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
+ vnet_feature_config_main_t * cm = &mpls_main.feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
vnet_config_main_t * vcm = &cm->config_main;
clib_error_t *error;
for (cast = 0; cast < VNET_N_IP_FEAT; cast++)
{
- ip_config_main_t * cm = &mm->feature_config_mains[cast];
+ vnet_feature_config_main_t * cm = &mm->feature_config_mains[cast];
vnet_config_main_t * vcm = &cm->config_main;
if (VNET_IP_RX_MULTICAST_FEAT == cast)
mpls_unicast_header_t * h0;
u32 label0;
u32 next0;
- ip_config_main_t * cm0;
+ vnet_feature_config_main_t * cm0;
u32 sw_if_index0;
bi0 = from[0];
ip6_main_t *ip6m = &ip6_main;
ip_lookup_main_t *ip4lm = &ip4m->lookup_main;
ip_lookup_main_t *ip6lm = &ip6m->lookup_main;
- ip_config_main_t *rx_cm4u =
+ vnet_feature_config_main_t *rx_cm4u =
&ip4lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
- ip_config_main_t *rx_cm4m =
+ vnet_feature_config_main_t *rx_cm4m =
&ip4lm->feature_config_mains[VNET_IP_RX_MULTICAST_FEAT];
- ip_config_main_t *rx_cm6u =
+ vnet_feature_config_main_t *rx_cm6u =
&ip6lm->feature_config_mains[VNET_IP_RX_UNICAST_FEAT];
- ip_config_main_t *rx_cm6m =
+ vnet_feature_config_main_t *rx_cm6m =
&ip6lm->feature_config_mains[VNET_IP_RX_MULTICAST_FEAT];
VALIDATE_SW_IF_INDEX (mp);