aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Barach <dave@barachs.net>2016-10-11 16:16:02 -0400
committerDave Barach <dave@barachs.net>2016-10-11 17:29:29 -0400
commit75fc854da7e92502581d83e31306b9912d3c53ff (patch)
treecd35566c5202862c6f460737645bea6d3ce0d7c7
parent8e08e74ce018f33ac0721fef729429b859d3bf0e (diff)
Rename ip_feature_init_cast(...) to vnet_feature_arc_init(...), VPP-481
Eliminate an unused parameter in vnet_feature_arc_init(...) which eliminates a spurious relationship between feature arcs and ip. Add doxygen tags for 2x debug CLI commands, and for vnet_feature_arc_init(...) Change-Id: If83589539bcbbbd4d85e84458dd7eb7eb08837a0 Signed-off-by: Dave Barach <dave@barachs.net>
-rw-r--r--vnet/vnet/ethernet/init.c12
-rw-r--r--vnet/vnet/ip/ip4.h50
-rw-r--r--vnet/vnet/ip/ip4_forward.c216
-rw-r--r--vnet/vnet/ip/ip6.h54
-rw-r--r--vnet/vnet/ip/ip6_forward.c186
-rw-r--r--vnet/vnet/ip/ip_feature_registration.c60
-rw-r--r--vnet/vnet/ip/ip_feature_registration.h15
-rw-r--r--vnet/vnet/mpls/mpls.h26
-rw-r--r--vnet/vnet/mpls/mpls_features.c28
9 files changed, 341 insertions, 306 deletions
diff --git a/vnet/vnet/ethernet/init.c b/vnet/vnet/ethernet/init.c
index 513d9c66c18..7590abdb831 100644
--- a/vnet/vnet/ethernet/init.c
+++ b/vnet/vnet/ethernet/init.c
@@ -81,12 +81,12 @@ ethernet_feature_init (vlib_main_t * vm)
ip_config_main_t *cm = &ethernet_main.feature_config_mains[VNET_IP_TX_FEAT];
vnet_config_main_t *vcm = &cm->config_main;
- return (ip_feature_init_cast (vm, cm, vcm,
- feature_start_nodes,
- ARRAY_LEN (feature_start_nodes),
- ethernet_main.next_feature[VNET_IP_TX_FEAT],
- &ethernet_main.feature_nodes
- [VNET_IP_TX_FEAT]));
+ return (vnet_feature_arc_init (vm, vcm,
+ feature_start_nodes,
+ ARRAY_LEN (feature_start_nodes),
+ ethernet_main.next_feature[VNET_IP_TX_FEAT],
+ &ethernet_main.feature_nodes
+ [VNET_IP_TX_FEAT]));
}
static clib_error_t *
diff --git a/vnet/vnet/ip/ip4.h b/vnet/vnet/ip/ip4.h
index 745ce1ebb17..441e32f4646 100644
--- a/vnet/vnet/ip/ip4.h
+++ b/vnet/vnet/ip/ip4.h
@@ -119,25 +119,25 @@ typedef struct ip4_main_t {
/** Feature path configuration lists */
vnet_ip_feature_registration_t * next_feature[VNET_N_IP_FEAT];
- /** Built-in unicast feature path index, see @ref ip_feature_init_cast() */
+ /** Built-in unicast feature path index, see @ref vnet_feature_arc_init() */
u32 ip4_unicast_rx_feature_check_access;
- /** Built-in unicast feature path index, see @ref ip_feature_init_cast() */
+ /** Built-in unicast feature path index, see @ref vnet_feature_arc_init() */
u32 ip4_unicast_rx_feature_source_reachable_via_rx;
- /** Built-in unicast feature path index, see @ref ip_feature_init_cast() */
+ /** Built-in unicast feature path index, see @ref vnet_feature_arc_init() */
u32 ip4_unicast_rx_feature_source_reachable_via_any;
- /** Built-in unicast feature path index, see @ref ip_feature_init_cast() */
+ /** Built-in unicast feature path index, see @ref vnet_feature_arc_init() */
u32 ip4_unicast_rx_feature_policer_classify;
- /** Built-in unicast feature path index, see @ref ip_feature_init_cast() */
+ /** Built-in unicast feature path index, see @ref vnet_feature_arc_init() */
u32 ip4_unicast_rx_feature_flow_classify;
- /** Built-in unicast feature path indix, see @ref ip_feature_init_cast() */
+ /** Built-in unicast feature path indix, see @ref vnet_feature_arc_init() */
u32 ip4_unicast_rx_feature_ipsec;
- /** Built-in unicast feature path index, see @ref ip_feature_init_cast() */
+ /** Built-in unicast feature path index, see @ref vnet_feature_arc_init() */
u32 ip4_unicast_rx_feature_vpath;
- /** Built-in unicast feature path index, see @ref ip_feature_init_cast() */
+ /** Built-in unicast feature path index, see @ref vnet_feature_arc_init() */
u32 ip4_unicast_rx_feature_lookup;
- /** Built-in unicast feature path index, see @ref ip_feature_init_cast() */
+ /** Built-in unicast feature path index, see @ref vnet_feature_arc_init() */
u32 ip4_unicast_rx_feature_source_and_port_range_check;
- /** Built-in unicast feature path indice, see @ref ip_feature_init_cast() */
+ /** Built-in unicast feature path indice, see @ref vnet_feature_arc_init() */
u32 ip4_unicast_rx_feature_drop;
/** Built-in multicast feature path index */
@@ -147,7 +147,7 @@ typedef struct ip4_main_t {
/** Built-in multicast feature path indices */
u32 ip4_multicast_rx_feature_drop;
- /** Built-in unicast feature path index, see @ref ip_feature_init_cast() */
+ /** Built-in unicast feature path index, see @ref vnet_feature_arc_init() */
u32 ip4_unicast_tx_feature_source_and_port_range_check;
/** Built-in tx feature path index */
@@ -184,7 +184,7 @@ static void __vnet_add_feature_registration_uc_##x (void) \
uc_##x.next = im->next_feature[VNET_IP_RX_UNICAST_FEAT]; \
im->next_feature[VNET_IP_RX_UNICAST_FEAT] = &uc_##x; \
} \
-__VA_ARGS__ vnet_ip_feature_registration_t uc_##x
+__VA_ARGS__ vnet_ip_feature_registration_t uc_##x
#define VNET_IP4_MULTICAST_FEATURE_INIT(x,...) \
__VA_ARGS__ vnet_ip_feature_registration_t mc_##x; \
@@ -196,7 +196,7 @@ static void __vnet_add_feature_registration_mc_##x (void) \
mc_##x.next = im->next_feature[VNET_IP_RX_MULTICAST_FEAT]; \
im->next_feature[VNET_IP_RX_MULTICAST_FEAT] = &mc_##x; \
} \
-__VA_ARGS__ vnet_ip_feature_registration_t mc_##x
+__VA_ARGS__ vnet_ip_feature_registration_t mc_##x
#define VNET_IP4_TX_FEATURE_INIT(x,...) \
__VA_ARGS__ vnet_ip_feature_registration_t tx_##x; \
@@ -208,7 +208,7 @@ static void __vnet_add_feature_registration_tx_##x (void) \
tx_##x.next = im->next_feature[VNET_IP_TX_FEAT]; \
im->next_feature[VNET_IP_TX_FEAT] = &tx_##x; \
} \
-__VA_ARGS__ vnet_ip_feature_registration_t tx_##x
+__VA_ARGS__ vnet_ip_feature_registration_t tx_##x
/** Global ip4 input node. Errors get attached to ip4 input node. */
@@ -249,12 +249,12 @@ ip4_src_address_for_packet (ip_lookup_main_t * lm,
u32 sw_if_index,
ip4_address_t * src)
{
- u32 if_add_index =
+ u32 if_add_index =
lm->if_address_pool_index_by_sw_if_index[sw_if_index];
if (PREDICT_TRUE(if_add_index != ~0)) {
- ip_interface_address_t *if_add =
+ ip_interface_address_t *if_add =
pool_elt_at_index(lm->if_address_pool, if_add_index);
- ip4_address_t *if_ip =
+ ip4_address_t *if_ip =
ip_interface_address_get_address(lm, if_add);
*src = *if_ip;
return 0;
@@ -276,7 +276,7 @@ ip4_interface_address_matching_destination (ip4_main_t * im, ip4_address_t * dst
ip_interface_address_t * ia;
ip4_address_t * result = 0;
- foreach_ip_interface_address (lm, ia, sw_if_index,
+ foreach_ip_interface_address (lm, ia, sw_if_index,
1 /* honor unnumbered */,
({
ip4_address_t * a = ip_interface_address_get_address (lm, ia);
@@ -318,8 +318,8 @@ ip4_udp_register_listener (vlib_main_t * vm,
u16 dst_port,
u32 next_node_index);
-void
-ip4_icmp_register_type (vlib_main_t * vm, icmp4_type_t type,
+void
+ip4_icmp_register_type (vlib_main_t * vm, icmp4_type_t type,
u32 node_index);
u16 ip4_tcp_udp_compute_checksum (vlib_main_t * vm, vlib_buffer_t * p0, ip4_header_t * ip0);
@@ -332,7 +332,7 @@ int vnet_set_ip4_flow_hash (u32 table_id, flow_hash_config_t flow_hash_config);
void ip4_mtrie_init (ip4_fib_mtrie_t * m);
-int vnet_set_ip4_classify_intfc (vlib_main_t * vm, u32 sw_if_index,
+int vnet_set_ip4_classify_intfc (vlib_main_t * vm, u32 sw_if_index,
u32 table_index);
/* Compute flow hash. We'll use it to select which adjacency to use for this
@@ -346,18 +346,18 @@ ip4_compute_flow_hash (const ip4_header_t * ip,
uword is_tcp_udp = (ip->protocol == IP_PROTOCOL_TCP
|| ip->protocol == IP_PROTOCOL_UDP);
- t1 = (flow_hash_config & IP_FLOW_HASH_SRC_ADDR)
+ t1 = (flow_hash_config & IP_FLOW_HASH_SRC_ADDR)
? ip->src_address.data_u32 : 0;
- t2 = (flow_hash_config & IP_FLOW_HASH_DST_ADDR)
+ t2 = (flow_hash_config & IP_FLOW_HASH_DST_ADDR)
? ip->dst_address.data_u32 : 0;
-
+
a = (flow_hash_config & IP_FLOW_HASH_REVERSE_SRC_DST) ? t2 : t1;
b = (flow_hash_config & IP_FLOW_HASH_REVERSE_SRC_DST) ? t1 : t2;
b ^= (flow_hash_config & IP_FLOW_HASH_PROTO) ? ip->protocol : 0;
t1 = is_tcp_udp ? tcp->ports.src : 0;
t2 = is_tcp_udp ? tcp->ports.dst : 0;
-
+
t1 = (flow_hash_config & IP_FLOW_HASH_SRC_PORT) ? t1 : 0;
t2 = (flow_hash_config & IP_FLOW_HASH_DST_PORT) ? t2 : 0;
diff --git a/vnet/vnet/ip/ip4_forward.c b/vnet/vnet/ip/ip4_forward.c
index e997366c983..321716da2b1 100644
--- a/vnet/vnet/ip/ip4_forward.c
+++ b/vnet/vnet/ip/ip4_forward.c
@@ -267,7 +267,7 @@ ip4_lookup_inline (vlib_main_t * vm,
}
}
}
-
+
while (n_left_from > 0 && n_left_to_next > 0)
{
vlib_buffer_t * p0;
@@ -336,7 +336,7 @@ ip4_lookup_inline (vlib_main_t * vm,
{
flow_hash_config0 = lb0->lb_hash_config;
- hash_c0 = vnet_buffer (p0)->ip.flow_hash =
+ hash_c0 = vnet_buffer (p0)->ip.flow_hash =
ip4_compute_flow_hash (ip0, flow_hash_config0);
}
@@ -350,7 +350,7 @@ ip4_lookup_inline (vlib_main_t * vm,
next0 = dpo0->dpoi_next_node;
vnet_buffer (p0)->ip.adj_index[VLIB_TX] = dpo0->dpoi_index;
- vlib_increment_combined_counter
+ vlib_increment_combined_counter
(cm, cpu_index, lbi0, 1,
vlib_buffer_length_in_chain (vm, p0));
@@ -459,7 +459,7 @@ ip4_load_balance (vlib_main_t * vm,
vlib_get_next_frame (vm, node, next,
to_next, n_left_to_next);
-
+
while (n_left_from > 0 && n_left_to_next > 0)
{
ip_lookup_next_t next0;
@@ -481,14 +481,14 @@ ip4_load_balance (vlib_main_t * vm,
hc0 = lb0->lb_hash_config;
vnet_buffer(p0)->ip.flow_hash = ip4_compute_flow_hash(ip0, hc0);
- dpo0 = load_balance_get_bucket_i(lb0,
+ dpo0 = load_balance_get_bucket_i(lb0,
vnet_buffer(p0)->ip.flow_hash &
(lb0->lb_n_buckets_minus_1));
next0 = dpo0->dpoi_next_node;
vnet_buffer (p0)->ip.adj_index[VLIB_TX] = dpo0->dpoi_index;
- vlib_increment_combined_counter
+ vlib_increment_combined_counter
(cm, cpu_index, lbi0, 1,
vlib_buffer_length_in_chain (vm, p0));
@@ -538,7 +538,7 @@ ip4_interface_first_address (ip4_main_t * im, u32 sw_if_index,
ip_interface_address_t * ia = 0;
ip4_address_t * result = 0;
- foreach_ip_interface_address (lm, ia, sw_if_index,
+ foreach_ip_interface_address (lm, ia, sw_if_index,
1 /* honor unnumbered */,
({
ip4_address_t * a = ip_interface_address_get_address (lm, ia);
@@ -733,7 +733,7 @@ ip4_add_del_interface_address_internal (vlib_main_t * vm,
/* When adding an address check that it does not conflict
with an existing address. */
ip_interface_address_t * ia;
- foreach_ip_interface_address (&im->lookup_main, ia, sw_if_index,
+ foreach_ip_interface_address (&im->lookup_main, ia, sw_if_index,
0 /* honor unnumbered */,
({
ip4_address_t * x = ip_interface_address_get_address (&im->lookup_main, ia);
@@ -758,7 +758,7 @@ ip4_add_del_interface_address_internal (vlib_main_t * vm,
&if_address_index);
if (error)
goto done;
-
+
ip4_sw_interface_enable_disable(sw_if_index, !is_del);
if (is_del)
@@ -767,7 +767,7 @@ ip4_add_del_interface_address_internal (vlib_main_t * vm,
else
ip4_add_interface_routes (sw_if_index,
im, ip4_af.fib_index,
- pool_elt_at_index
+ pool_elt_at_index
(lm->if_address_pool, if_address_index));
/* If pool did not grow/shrink: add duplicate address. */
@@ -804,7 +804,7 @@ VNET_IP4_UNICAST_FEATURE_INIT (ip4_flow_classify, static) = {
};
VNET_IP4_UNICAST_FEATURE_INIT (ip4_inacl, static) = {
- .node_name = "ip4-inacl",
+ .node_name = "ip4-inacl",
.runs_before = ORDER_CONSTRAINTS {"ip4-source-check-via-rx", 0},
.feature_index = &ip4_main.ip4_unicast_rx_feature_check_access,
};
@@ -812,14 +812,14 @@ VNET_IP4_UNICAST_FEATURE_INIT (ip4_inacl, static) = {
VNET_IP4_UNICAST_FEATURE_INIT (ip4_source_check_1, static) = {
.node_name = "ip4-source-check-via-rx",
.runs_before = ORDER_CONSTRAINTS {"ip4-source-check-via-any", 0},
- .feature_index =
+ .feature_index =
&ip4_main.ip4_unicast_rx_feature_source_reachable_via_rx,
};
VNET_IP4_UNICAST_FEATURE_INIT (ip4_source_check_2, static) = {
.node_name = "ip4-source-check-via-any",
.runs_before = ORDER_CONSTRAINTS {"ip4-policer-classify", 0},
- .feature_index =
+ .feature_index =
&ip4_main.ip4_unicast_rx_feature_source_reachable_via_any,
};
@@ -881,10 +881,10 @@ VNET_IP4_MULTICAST_FEATURE_INIT (ip4_mc_drop, static) = {
.feature_index = &ip4_main.ip4_multicast_rx_feature_drop,
};
-static char * rx_feature_start_nodes[] =
+static char * rx_feature_start_nodes[] =
{ "ip4-input", "ip4-input-no-checksum"};
-static char * tx_feature_start_nodes[] =
+static char * tx_feature_start_nodes[] =
{
"ip4-rewrite-transit",
"ip4-midchain",
@@ -932,8 +932,8 @@ ip4_feature_init (vlib_main_t * vm, ip4_main_t * im)
feature_start_nodes = tx_feature_start_nodes;
feature_start_len = ARRAY_LEN(tx_feature_start_nodes);
}
-
- if ((error = ip_feature_init_cast (vm, cm, vcm,
+
+ if ((error = vnet_feature_arc_init (vm, vcm,
feature_start_nodes,
feature_start_len,
im->next_feature[cast],
@@ -974,7 +974,7 @@ ip4_sw_interface_add_del (vnet_main_t * vnm,
feature_index = im->ip4_tx_feature_interface_output;
if (is_add)
- ci = vnet_config_add_feature (vm, vcm,
+ ci = vnet_config_add_feature (vm, vcm,
ci,
feature_index,
/* config data */ 0,
@@ -1015,7 +1015,7 @@ ip4_lookup_init (vlib_main_t * vm)
if (i < 32)
m = pow2_mask (i) << (32 - i);
- else
+ else
m = ~0;
im->fib_masks[i] = clib_host_to_net_u32 (m);
}
@@ -1133,7 +1133,7 @@ ip4_forward_next_trace (vlib_main_t * vm,
n_left = frame->n_vectors;
from = vlib_frame_vector_args (frame);
-
+
while (n_left >= 4)
{
u32 bi0, bi1;
@@ -1284,7 +1284,7 @@ ip4_tcp_udp_compute_checksum (vlib_main_t * vm, vlib_buffer_t * p0,
u32 n_this_buffer, n_bytes_left;
u16 sum16;
void * data_this_buffer;
-
+
/* Initialize checksum with ip header. */
ip_header_length = ip4_header_bytes (ip0);
payload_length_host_byte_order = clib_net_to_host_u16 (ip0->length) - ip_header_length;
@@ -1360,7 +1360,7 @@ ip4_local (vlib_main_t * vm,
from = vlib_frame_vector_args (frame);
n_left_from = frame->n_vectors;
next_index = node->cached_next_index;
-
+
if (node->flags & VLIB_NODE_FLAG_TRACE)
ip4_forward_next_trace (vm, node, frame, VLIB_TX);
@@ -1383,23 +1383,23 @@ ip4_local (vlib_main_t * vm,
u8 error0, is_udp0, is_tcp_udp0, good_tcp_udp0, proto0;
u8 error1, is_udp1, is_tcp_udp1, good_tcp_udp1, proto1;
u8 enqueue_code;
-
+
pi0 = to_next[0] = from[0];
pi1 = to_next[1] = from[1];
from += 2;
n_left_from -= 2;
to_next += 2;
n_left_to_next -= 2;
-
+
p0 = vlib_get_buffer (vm, pi0);
p1 = vlib_get_buffer (vm, pi1);
ip0 = vlib_buffer_get_current (p0);
ip1 = vlib_buffer_get_current (p1);
- fib_index0 = vec_elt (im->fib_index_by_sw_if_index,
+ fib_index0 = vec_elt (im->fib_index_by_sw_if_index,
vnet_buffer(p0)->sw_if_index[VLIB_RX]);
- fib_index1 = vec_elt (im->fib_index_by_sw_if_index,
+ fib_index1 = vec_elt (im->fib_index_by_sw_if_index,
vnet_buffer(p1)->sw_if_index[VLIB_RX]);
mtrie0 = &ip4_fib_get (fib_index0)->mtrie;
@@ -1505,7 +1505,7 @@ ip4_local (vlib_main_t * vm,
dpo0 = load_balance_get_bucket_i(lb0, 0);
dpo1 = load_balance_get_bucket_i(lb1, 0);
- /*
+ /*
* Must have a route to source otherwise we drop the packet.
* ip4 broadcasts are accepted, e.g. to make dhcp client work
*
@@ -1517,7 +1517,7 @@ ip4_local (vlib_main_t * vm,
*/
error0 = ((error0 == IP4_ERROR_UNKNOWN_PROTOCOL &&
dpo0->dpoi_type == DPO_RECEIVE) ?
- IP4_ERROR_SPOOFED_LOCAL_PACKETS :
+ IP4_ERROR_SPOOFED_LOCAL_PACKETS :
error0);
error0 = ((error0 == IP4_ERROR_UNKNOWN_PROTOCOL &&
!fib_urpf_check_size(lb0->lb_urpf) &&
@@ -1526,7 +1526,7 @@ ip4_local (vlib_main_t * vm,
: error0);
error1 = ((error1 == IP4_ERROR_UNKNOWN_PROTOCOL &&
dpo1->dpoi_type == DPO_RECEIVE) ?
- IP4_ERROR_SPOOFED_LOCAL_PACKETS :
+ IP4_ERROR_SPOOFED_LOCAL_PACKETS :
error1);
error1 = ((error1 == IP4_ERROR_UNKNOWN_PROTOCOL &&
!fib_urpf_check_size(lb1->lb_urpf) &&
@@ -1599,12 +1599,12 @@ ip4_local (vlib_main_t * vm,
n_left_from -= 1;
to_next += 1;
n_left_to_next -= 1;
-
+
p0 = vlib_get_buffer (vm, pi0);
ip0 = vlib_buffer_get_current (p0);
- fib_index0 = vec_elt (im->fib_index_by_sw_if_index,
+ fib_index0 = vec_elt (im->fib_index_by_sw_if_index,
vnet_buffer(p0)->sw_if_index[VLIB_RX]);
mtrie0 = &ip4_fib_get (fib_index0)->mtrie;
@@ -1679,7 +1679,7 @@ ip4_local (vlib_main_t * vm,
error0 = ((error0 == IP4_ERROR_UNKNOWN_PROTOCOL &&
dpo0->dpoi_type == DPO_RECEIVE) ?
- IP4_ERROR_SPOOFED_LOCAL_PACKETS :
+ IP4_ERROR_SPOOFED_LOCAL_PACKETS :
error0);
error0 = ((error0 == IP4_ERROR_UNKNOWN_PROTOCOL &&
!fib_urpf_check_size(lb0->lb_urpf) &&
@@ -1705,7 +1705,7 @@ ip4_local (vlib_main_t * vm,
n_left_to_next -= 1;
}
}
-
+
vlib_put_next_frame (vm, node, next_index, n_left_to_next);
}
@@ -1779,7 +1779,7 @@ ip4_arp_inline (vlib_main_t * vm,
uword n_left_from, n_left_to_next_drop, next_index;
static f64 time_last_seed_change = -1e100;
static u32 hash_seeds[3];
- static uword hash_bitmap[256 / BITS (uword)];
+ static uword hash_bitmap[256 / BITS (uword)];
f64 time_now;
if (node->flags & VLIB_NODE_FLAG_TRACE)
@@ -1830,7 +1830,7 @@ ip4_arp_inline (vlib_main_t * vm,
/*
* this is the Glean case, so we are ARPing for the
- * packet's destination
+ * packet's destination
*/
a0 = hash_seeds[0];
b0 = hash_seeds[1];
@@ -1872,7 +1872,7 @@ ip4_arp_inline (vlib_main_t * vm,
if (drop0)
continue;
- /*
+ /*
* Can happen if the control-plane is programming tables
* with traffic flowing; at least that's today's lame excuse.
*/
@@ -2008,7 +2008,7 @@ _(REPLICATE_FAIL)
clib_error_t * arp_notrace_init (vlib_main_t * vm)
{
- vlib_node_runtime_t *rt =
+ vlib_node_runtime_t *rt =
vlib_node_get_runtime (vm, ip4_arp_node.index);
/* don't trace ARP request packets */
@@ -2044,8 +2044,8 @@ ip4_probe_neighbor (vlib_main_t * vm, ip4_address_t * dst, u32 sw_if_index)
if (!(si->flags & VNET_SW_INTERFACE_FLAG_ADMIN_UP))
{
return clib_error_return (0, "%U: interface %U down",
- format_ip4_address, dst,
- format_vnet_sw_if_index_name, vnm,
+ format_ip4_address, dst,
+ format_vnet_sw_if_index_name, vnm,
sw_if_index);
}
@@ -2053,7 +2053,7 @@ ip4_probe_neighbor (vlib_main_t * vm, ip4_address_t * dst, u32 sw_if_index)
if (! src)
{
vnm->api_errno = VNET_API_ERROR_NO_MATCHING_INTERFACE;
- return clib_error_return
+ return clib_error_return
(0, "no matching interface address for destination %U (interface %U)",
format_ip4_address, dst,
format_vnet_sw_if_index_name, vnm, sw_if_index);
@@ -2111,7 +2111,7 @@ ip4_rewrite_inline (vlib_main_t * vm,
n_left_from = frame->n_vectors;
next_index = node->cached_next_index;
u32 cpu_index = os_get_cpu_number();
-
+
while (n_left_from > 0)
{
vlib_get_next_frame (vm, node, next_index, to_next, n_left_to_next);
@@ -2150,7 +2150,7 @@ ip4_rewrite_inline (vlib_main_t * vm,
n_left_from -= 2;
to_next += 2;
n_left_to_next -= 2;
-
+
p0 = vlib_get_buffer (vm, pi0);
p1 = vlib_get_buffer (vm, pi1);
@@ -2220,7 +2220,7 @@ ip4_rewrite_inline (vlib_main_t * vm,
/* Rewrite packet header and updates lengths. */
adj0 = ip_get_adjacency (lm, adj_index0);
adj1 = ip_get_adjacency (lm, adj_index1);
-
+
if (rewrite_for_locally_received_packets)
{
if (PREDICT_FALSE(adj0->lookup_next_index
@@ -2257,20 +2257,20 @@ ip4_rewrite_inline (vlib_main_t * vm,
if (rewrite_for_locally_received_packets)
next1 = next1 && next1_override ? next1_override : next1;
- /*
+ /*
* We've already accounted for an ethernet_header_t elsewhere
*/
if (PREDICT_FALSE (rw_len0 > sizeof(ethernet_header_t)))
- vlib_increment_combined_counter
+ vlib_increment_combined_counter
(&adjacency_counters,
- cpu_index, adj_index0,
+ cpu_index, adj_index0,
/* packet increment */ 0,
/* byte increment */ rw_len0-sizeof(ethernet_header_t));
if (PREDICT_FALSE (rw_len1 > sizeof(ethernet_header_t)))
- vlib_increment_combined_counter
+ vlib_increment_combined_counter
(&adjacency_counters,
- cpu_index, adj_index1,
+ cpu_index, adj_index1,
/* packet increment */ 0,
/* byte increment */ rw_len1-sizeof(ethernet_header_t));
@@ -2284,12 +2284,12 @@ ip4_rewrite_inline (vlib_main_t * vm,
vnet_buffer (p0)->sw_if_index[VLIB_TX] =
tx_sw_if_index0;
- if (PREDICT_FALSE
- (clib_bitmap_get (lm->tx_sw_if_has_ip_output_features,
+ if (PREDICT_FALSE
+ (clib_bitmap_get (lm->tx_sw_if_has_ip_output_features,
tx_sw_if_index0)))
{
- p0->current_config_index =
- vec_elt (cm->config_index_by_sw_if_index,
+ p0->current_config_index =
+ vec_elt (cm->config_index_by_sw_if_index,
tx_sw_if_index0);
vnet_get_config_data (&cm->config_main,
&p0->current_config_index,
@@ -2306,12 +2306,12 @@ ip4_rewrite_inline (vlib_main_t * vm,
vnet_buffer (p1)->sw_if_index[VLIB_TX] =
tx_sw_if_index1;
- if (PREDICT_FALSE
- (clib_bitmap_get (lm->tx_sw_if_has_ip_output_features,
+ if (PREDICT_FALSE
+ (clib_bitmap_get (lm->tx_sw_if_has_ip_output_features,
tx_sw_if_index1)))
{
- p1->current_config_index =
- vec_elt (cm->config_index_by_sw_if_index,
+ p1->current_config_index =
+ vec_elt (cm->config_index_by_sw_if_index,
tx_sw_if_index1);
vnet_get_config_data (&cm->config_main,
&p1->current_config_index,
@@ -2330,7 +2330,7 @@ ip4_rewrite_inline (vlib_main_t * vm,
adj0->sub_type.midchain.fixup_func(vm, adj0, p0);
adj1->sub_type.midchain.fixup_func(vm, adj1, p1);
}
-
+
vlib_validate_buffer_enqueue_x2 (vm, node, next_index,
to_next, n_left_to_next,
pi0, pi1, next0, next1);
@@ -2358,7 +2358,7 @@ ip4_rewrite_inline (vlib_main_t * vm,
ASSERT(adj_index0);
adj0 = ip_get_adjacency (lm, adj_index0);
-
+
ip0 = vlib_buffer_get_current (p0);
error0 = IP4_ERROR_NONE;
@@ -2399,7 +2399,7 @@ ip4_rewrite_inline (vlib_main_t * vm,
if (rewrite_for_locally_received_packets)
{
- /*
+ /*
* We have to override the next_index in ARP adjacencies,
* because they're set up for ip4-arp, not this node...
*/
@@ -2409,22 +2409,22 @@ ip4_rewrite_inline (vlib_main_t * vm,
}
/* Guess we are only writing on simple Ethernet header. */
- vnet_rewrite_one_header (adj0[0], ip0,
+ vnet_rewrite_one_header (adj0[0], ip0,
sizeof (ethernet_header_t));
-
+
/* Update packet buffer attributes/set output interface. */
rw_len0 = adj0[0].rewrite_header.data_bytes;
vnet_buffer(p0)->ip.save_rewrite_length = rw_len0;
-
+
if (PREDICT_FALSE (rw_len0 > sizeof(ethernet_header_t)))
- vlib_increment_combined_counter
+ vlib_increment_combined_counter
(&adjacency_counters,
- cpu_index, adj_index0,
+ cpu_index, adj_index0,
/* packet increment */ 0,
/* byte increment */ rw_len0-sizeof(ethernet_header_t));
-
+
/* Check MTU of outgoing interface. */
- error0 = (vlib_buffer_length_in_chain (vm, p0)
+ error0 = (vlib_buffer_length_in_chain (vm, p0)
> adj0[0].rewrite_header.max_l3_packet_bytes
? IP4_ERROR_MTU_EXCEEDED
: error0);
@@ -2447,12 +2447,12 @@ ip4_rewrite_inline (vlib_main_t * vm,
adj0->sub_type.midchain.fixup_func(vm, adj0, p0);
}
- if (PREDICT_FALSE
- (clib_bitmap_get (lm->tx_sw_if_has_ip_output_features,
+ if (PREDICT_FALSE
+ (clib_bitmap_get (lm->tx_sw_if_has_ip_output_features,
tx_sw_if_index0)))
{
- p0->current_config_index =
- vec_elt (cm->config_index_by_sw_if_index,
+ p0->current_config_index =
+ vec_elt (cm->config_index_by_sw_if_index,
tx_sw_if_index0);
vnet_get_config_data (&cm->config_main,
&p0->current_config_index,
@@ -2468,12 +2468,12 @@ ip4_rewrite_inline (vlib_main_t * vm,
n_left_from -= 1;
to_next += 1;
n_left_to_next -= 1;
-
+
vlib_validate_buffer_enqueue_x1 (vm, node, next_index,
to_next, n_left_to_next,
pi0, next0);
}
-
+
vlib_put_next_frame (vm, node, next_index, n_left_to_next);
}
@@ -2504,7 +2504,7 @@ ip4_rewrite_inline (vlib_main_t * vm,
- the rewrite adjacency index
- <code>adj->lookup_next_index</code>
- Must be IP_LOOKUP_NEXT_REWRITE or IP_LOOKUP_NEXT_ARP, otherwise
- the packet will be dropped.
+ the packet will be dropped.
- <code>adj->rewrite_header</code>
- Rewrite string length, rewrite string, next_index
@@ -2514,7 +2514,7 @@ ip4_rewrite_inline (vlib_main_t * vm,
<em>Next Indices:</em>
- <code> adj->rewrite_header.next_index </code>
- or @c error-drop
+ or @c error-drop
*/
static uword
ip4_rewrite_transit (vlib_main_t * vm,
@@ -2545,7 +2545,7 @@ ip4_rewrite_transit (vlib_main_t * vm,
- the rewrite adjacency index
- <code>adj->lookup_next_index</code>
- Must be IP_LOOKUP_NEXT_REWRITE or IP_LOOKUP_NEXT_ARP, otherwise
- the packet will be dropped.
+ the packet will be dropped.
- <code>adj->rewrite_header</code>
- Rewrite string length, rewrite string, next_index
@@ -2555,7 +2555,7 @@ ip4_rewrite_transit (vlib_main_t * vm,
<em>Next Indices:</em>
- <code> adj->rewrite_header.next_index </code>
- or @c error-drop
+ or @c error-drop
*/
static uword
@@ -2760,10 +2760,10 @@ ip4_lookup_multicast (vlib_main_t * vm,
ASSERT (lb1->lb_n_buckets > 0);
ASSERT (is_pow2 (lb1->lb_n_buckets));
- vnet_buffer (p0)->ip.flow_hash = ip4_compute_flow_hash
+ vnet_buffer (p0)->ip.flow_hash = ip4_compute_flow_hash
(ip0, lb0->lb_hash_config);
-
- vnet_buffer (p1)->ip.flow_hash = ip4_compute_flow_hash
+
+ vnet_buffer (p1)->ip.flow_hash = ip4_compute_flow_hash
(ip1, lb1->lb_hash_config);
dpo0 = load_balance_get_bucket_i(lb0,
@@ -2779,11 +2779,11 @@ ip4_lookup_multicast (vlib_main_t * vm,
vnet_buffer (p1)->ip.adj_index[VLIB_TX] = dpo1->dpoi_index;
if (1) /* $$$$$$ HACK FIXME */
- vlib_increment_combined_counter
+ vlib_increment_combined_counter
(cm, cpu_index, lb_index0, 1,
vlib_buffer_length_in_chain (vm, p0));
if (1) /* $$$$$$ HACK FIXME */
- vlib_increment_combined_counter
+ vlib_increment_combined_counter
(cm, cpu_index, lb_index1, 1,
vlib_buffer_length_in_chain (vm, p1));
@@ -2828,7 +2828,7 @@ ip4_lookup_multicast (vlib_main_t * vm,
}
}
}
-
+
while (n_left_from > 0 && n_left_to_next > 0)
{
vlib_buffer_t * p0;
@@ -2846,11 +2846,11 @@ ip4_lookup_multicast (vlib_main_t * vm,
ip0 = vlib_buffer_get_current (p0);
- fib_index0 = vec_elt (im->fib_index_by_sw_if_index,
+ fib_index0 = vec_elt (im->fib_index_by_sw_if_index,
vnet_buffer (p0)->sw_if_index[VLIB_RX]);
fib_index0 = (vnet_buffer(p0)->sw_if_index[VLIB_TX] == (u32)~0) ?
fib_index0 : vnet_buffer(p0)->sw_if_index[VLIB_TX];
-
+
lb_index0 = ip4_fib_table_lookup_lb (ip4_fib_get(fib_index0),
&ip0->dst_address);
@@ -2859,7 +2859,7 @@ ip4_lookup_multicast (vlib_main_t * vm,
ASSERT (lb0->lb_n_buckets > 0);
ASSERT (is_pow2 (lb0->lb_n_buckets));
- vnet_buffer (p0)->ip.flow_hash = ip4_compute_flow_hash
+ vnet_buffer (p0)->ip.flow_hash = ip4_compute_flow_hash
(ip0, lb0->lb_hash_config);
dpo0 = load_balance_get_bucket_i(lb0,
@@ -2870,7 +2870,7 @@ ip4_lookup_multicast (vlib_main_t * vm,
vnet_buffer (p0)->ip.adj_index[VLIB_TX] = dpo0->dpoi_index;
if (1) /* $$$$$$ HACK FIXME */
- vlib_increment_combined_counter
+ vlib_increment_combined_counter
(cm, cpu_index, lb_index0, 1,
vlib_buffer_length_in_chain (vm, p0));
@@ -2931,7 +2931,7 @@ int ip4_lookup_validate (ip4_address_t *a, u32 fib_index0)
ip4_fib_mtrie_t * mtrie0;
ip4_fib_mtrie_leaf_t leaf0;
u32 lbi0;
-
+
mtrie0 = &ip4_fib_get (fib_index0)->mtrie;
leaf0 = IP4_FIB_MTRIE_LEAF_ROOT;
@@ -2939,15 +2939,15 @@ int ip4_lookup_validate (ip4_address_t *a, u32 fib_index0)
leaf0 = ip4_fib_mtrie_lookup_step (mtrie0, leaf0, a, 1);
leaf0 = ip4_fib_mtrie_lookup_step (mtrie0, leaf0, a, 2);
leaf0 = ip4_fib_mtrie_lookup_step (mtrie0, leaf0, a, 3);
-
+
/* Handle default route. */
leaf0 = (leaf0 == IP4_FIB_MTRIE_LEAF_EMPTY ? mtrie0->default_leaf : leaf0);
-
+
lbi0 = ip4_fib_mtrie_leaf_get_adj_index (leaf0);
-
+
return lbi0 == ip4_fib_table_lookup_lb (ip4_fib_get(fib_index0), a);
}
-
+
static clib_error_t *
test_lookup_command_fn (vlib_main_t * vm,
unformat_input_t * input,
@@ -2981,12 +2981,12 @@ test_lookup_command_fn (vlib_main_t * vm,
if (!ip4_lookup_validate (&ip4_base_address, table_id))
errors++;
- ip4_base_address.as_u32 =
- clib_host_to_net_u32 (1 +
+ ip4_base_address.as_u32 =
+ clib_host_to_net_u32 (1 +
clib_net_to_host_u32 (ip4_base_address.as_u32));
}
- if (errors)
+ if (errors)
vlib_cli_output (vm, "%llu errors out of %d lookups\n", errors, n);
else
vlib_cli_output (vm, "No errors in %d lookups\n", n);
@@ -3014,7 +3014,7 @@ int vnet_set_ip4_flow_hash (u32 table_id, u32 flow_hash_config)
fib->flow_hash_config = flow_hash_config;
return 0;
}
-
+
static clib_error_t *
set_ip_flow_hash_command_fn (vlib_main_t * vm,
unformat_input_t * input,
@@ -3034,36 +3034,36 @@ set_ip_flow_hash_command_fn (vlib_main_t * vm,
#undef _
else break;
}
-
+
if (matched == 0)
return clib_error_return (0, "unknown input `%U'",
format_unformat_error, input);
-
+
rv = vnet_set_ip4_flow_hash (table_id, flow_hash_config);
switch (rv)
{
case 0:
break;
-
+
case VNET_API_ERROR_NO_SUCH_FIB:
return clib_error_return (0, "no such FIB table %d", table_id);
-
+
default:
clib_warning ("BUG: illegal flow hash config 0x%x", flow_hash_config);
break;
}
-
+
return 0;
}
-
+
VLIB_CLI_COMMAND (set_ip_flow_hash_command, static) = {
.path = "set ip flow-hash",
- .short_help =
+ .short_help =
"set ip table flow-hash table <fib-id> src dst sport dport proto reverse",
.function = set_ip_flow_hash_command_fn,
};
-
-int vnet_set_ip4_classify_intfc (vlib_main_t * vm, u32 sw_if_index,
+
+int vnet_set_ip4_classify_intfc (vlib_main_t * vm, u32 sw_if_index,
u32 table_index)
{
vnet_main_t * vnm = vnet_get_main();
@@ -3134,17 +3134,17 @@ set_ip_classify_command_fn (vlib_main_t * vm,
int table_index_set = 0;
u32 sw_if_index = ~0;
int rv;
-
+
while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) {
if (unformat (input, "table-index %d", &table_index))
table_index_set = 1;
- else if (unformat (input, "intfc %U", unformat_vnet_sw_interface,
+ else if (unformat (input, "intfc %U", unformat_vnet_sw_interface,
vnet_get_main(), &sw_if_index))
;
else
break;
}
-
+
if (table_index_set == 0)
return clib_error_return (0, "classify table-index must be specified");
@@ -3169,7 +3169,7 @@ set_ip_classify_command_fn (vlib_main_t * vm,
VLIB_CLI_COMMAND (set_ip_classify_command, static) = {
.path = "set ip classify",
- .short_help =
+ .short_help =
"set ip classify intfc <int> table-index <index>",
.function = set_ip_classify_command_fn,
};
diff --git a/vnet/vnet/ip/ip6.h b/vnet/vnet/ip/ip6.h
index b80317e0687..13d8d5fdf37 100644
--- a/vnet/vnet/ip/ip6.h
+++ b/vnet/vnet/ip/ip6.h
@@ -101,8 +101,8 @@ typedef enum ip6_fib_table_instance_type_t_ {
IP6_FIB_TABLE_FWDING,
/**
* The table that stores ALL routes learned by the DP.
- * Some of these routes may not be ready to install in forwarding
- * at a given time.
+ * Some of these routes may not be ready to install in forwarding
+ * at a given time.
* The key in this table is the prefix, the result is the fib_entry_t
*/
IP6_FIB_TABLE_NON_FWDING,
@@ -130,7 +130,7 @@ typedef struct ip6_main_t {
ip6_fib_table_instance_t ip6_table[IP6_FIB_NUM_TABLES];
ip_lookup_main_t lookup_main;
-
+
/* Pool of FIBs. */
struct fib_table_t_ * fibs;
@@ -163,7 +163,7 @@ typedef struct ip6_main_t {
/* feature path configuration lists */
vnet_ip_feature_registration_t * next_feature[VNET_N_IP_FEAT];
- /* Built-in unicast feature path indices, see ip_feature_init_cast(...) */
+ /* Built-in unicast feature path indices, see vnet_feature_arc_init(...) */
u32 ip6_unicast_rx_feature_check_access;
u32 ip6_unicast_rx_feature_policer_classify;
u32 ip6_unicast_rx_feature_flow_classify;
@@ -177,7 +177,7 @@ typedef struct ip6_main_t {
u32 ip6_multicast_rx_feature_drop;
u32 ip6_multicast_rx_feature_vpath;
u32 ip6_multicast_rx_feature_lookup;
-
+
/* Built-in tx feature path index */
u32 ip6_tx_feature_interface_output;
@@ -211,7 +211,7 @@ static void __vnet_add_feature_registration_uc_##x (void) \
uc_##x.next = im->next_feature[VNET_IP_RX_UNICAST_FEAT]; \
im->next_feature[VNET_IP_RX_UNICAST_FEAT] = &uc_##x; \
} \
-__VA_ARGS__ vnet_ip_feature_registration_t uc_##x
+__VA_ARGS__ vnet_ip_feature_registration_t uc_##x
#define VNET_IP6_MULTICAST_FEATURE_INIT(x,...) \
__VA_ARGS__ vnet_ip_feature_registration_t mc_##x; \
@@ -223,7 +223,7 @@ static void __vnet_add_feature_registration_mc_##x (void) \
mc_##x.next = im->next_feature[VNET_IP_RX_MULTICAST_FEAT]; \
im->next_feature[VNET_IP_RX_MULTICAST_FEAT] = &mc_##x; \
} \
-__VA_ARGS__ vnet_ip_feature_registration_t mc_##x
+__VA_ARGS__ vnet_ip_feature_registration_t mc_##x
#define VNET_IP6_TX_FEATURE_INIT(x,...) \
__VA_ARGS__ vnet_ip_feature_registration_t tx_##x; \
@@ -235,7 +235,7 @@ static void __vnet_add_feature_registration_tx_##x (void) \
tx_##x.next = im->next_feature[VNET_IP_TX_FEAT]; \
im->next_feature[VNET_IP_TX_FEAT] = &tx_##x; \
} \
-__VA_ARGS__ vnet_ip_feature_registration_t tx_##x
+__VA_ARGS__ vnet_ip_feature_registration_t tx_##x
/* Global ip6 input node. Errors get attached to ip6 input node. */
@@ -306,12 +306,12 @@ ip6_src_address_for_packet (ip_lookup_main_t * lm,
u32 sw_if_index,
ip6_address_t * src)
{
- u32 if_add_index =
+ u32 if_add_index =
lm->if_address_pool_index_by_sw_if_index[sw_if_index];
if (PREDICT_TRUE(if_add_index != ~0)) {
- ip_interface_address_t *if_add =
+ ip_interface_address_t *if_add =
pool_elt_at_index(lm->if_address_pool, if_add_index);
- ip6_address_t *if_ip =
+ ip6_address_t *if_ip =
ip_interface_address_get_address(lm, if_add);
*src = *if_ip;
return (0);
@@ -333,7 +333,7 @@ ip6_interface_address_matching_destination (ip6_main_t * im, ip6_address_t * dst
ip_interface_address_t * ia;
ip6_address_t * result = 0;
- foreach_ip_interface_address (lm, ia, sw_if_index,
+ foreach_ip_interface_address (lm, ia, sw_if_index,
1 /* honor unnumbered */,
({
ip6_address_t * a = ip_interface_address_get_address (lm, ia);
@@ -389,28 +389,28 @@ vnet_unset_ip6_ethernet_neighbor (vlib_main_t * vm,
u8 * link_layer_address,
uword n_bytes_link_layer_address);
-void
+void
ip6_link_local_address_from_ethernet_mac_address (ip6_address_t *ip,
u8 *mac);
-void
-ip6_ethernet_mac_address_from_link_local_address (u8 *mac,
+void
+ip6_ethernet_mac_address_from_link_local_address (u8 *mac,
ip6_address_t *ip);
int vnet_set_ip6_flow_hash (u32 table_id,
flow_hash_config_t flow_hash_config);
int
-ip6_neighbor_ra_config(vlib_main_t * vm, u32 sw_if_index,
+ip6_neighbor_ra_config(vlib_main_t * vm, u32 sw_if_index,
u8 suppress, u8 managed, u8 other,
- u8 ll_option, u8 send_unicast, u8 cease,
+ u8 ll_option, u8 send_unicast, u8 cease,
u8 use_lifetime, u32 lifetime,
- u32 initial_count, u32 initial_interval,
+ u32 initial_count, u32 initial_interval,
u32 max_interval, u32 min_interval,
u8 is_no);
int
-ip6_neighbor_ra_prefix(vlib_main_t * vm, u32 sw_if_index,
+ip6_neighbor_ra_prefix(vlib_main_t * vm, u32 sw_if_index,
ip6_address_t *prefix_addr, u8 prefix_len,
u8 use_default, u32 val_lifetime, u32 pref_lifetime,
u8 no_advertise, u8 off_link, u8 no_autoconfig, u8 no_onlink,
@@ -421,7 +421,7 @@ clib_error_t *
enable_ip6_interface(vlib_main_t * vm,
u32 sw_if_index);
-clib_error_t *
+clib_error_t *
disable_ip6_interface(vlib_main_t * vm,
u32 sw_if_index);
@@ -435,19 +435,19 @@ set_ip6_link_local_address(vlib_main_t * vm,
ip6_address_t *address,
u8 address_length);
-void vnet_register_ip6_neighbor_resolution_event(vnet_main_t * vnm,
+void vnet_register_ip6_neighbor_resolution_event(vnet_main_t * vnm,
void * address_arg,
uword node_index,
uword type_opaque,
uword data);
-int vnet_add_del_ip6_nd_change_event (vnet_main_t * vnm,
+int vnet_add_del_ip6_nd_change_event (vnet_main_t * vnm,
void * data_callback,
u32 pid,
void * address_arg,
uword node_index,
uword type_opaque,
- uword data,
+ uword data,
int is_add);
int vnet_ip6_nd_term (vlib_main_t * vm,
@@ -459,7 +459,7 @@ int vnet_ip6_nd_term (vlib_main_t * vm,
u16 bd_index,
u8 shg);
-int vnet_set_ip6_classify_intfc (vlib_main_t * vm, u32 sw_if_index,
+int vnet_set_ip6_classify_intfc (vlib_main_t * vm, u32 sw_if_index,
u32 table_index);
extern vlib_node_registration_t ip6_lookup_node;
@@ -477,10 +477,10 @@ ip6_compute_flow_hash (const ip6_header_t * ip,
t1 = (ip->src_address.as_u64[0] ^ ip->src_address.as_u64[1]);
t1 = (flow_hash_config & IP_FLOW_HASH_SRC_ADDR) ? t1 : 0;
-
+
t2 = (ip->dst_address.as_u64[0] ^ ip->dst_address.as_u64[1]);
t2 = (flow_hash_config & IP_FLOW_HASH_DST_ADDR) ? t2 : 0;
-
+
a = (flow_hash_config & IP_FLOW_HASH_REVERSE_SRC_DST) ? t2 : t1;
b = (flow_hash_config & IP_FLOW_HASH_REVERSE_SRC_DST) ? t1 : t2;
b ^= (flow_hash_config & IP_FLOW_HASH_PROTO) ? ip->protocol : 0;
@@ -490,7 +490,7 @@ ip6_compute_flow_hash (const ip6_header_t * ip,
t1 = (flow_hash_config & IP_FLOW_HASH_SRC_PORT) ? t1 : 0;
t2 = (flow_hash_config & IP_FLOW_HASH_DST_PORT) ? t2 : 0;
-
+
c = (flow_hash_config & IP_FLOW_HASH_REVERSE_SRC_DST) ?
((t1<<16) | t2) : ((t2<<16) | t1);
diff --git a/vnet/vnet/ip/ip6_forward.c b/vnet/vnet/ip/ip6_forward.c
index 4db6be5f7bb..23f00885118 100644
--- a/vnet/vnet/ip/ip6_forward.c
+++ b/vnet/vnet/ip/ip6_forward.c
@@ -126,19 +126,19 @@ ip6_lookup_inline (vlib_main_t * vm,
lb0 = load_balance_get (lbi0);
lb1 = load_balance_get (lbi1);
- vnet_buffer (p0)->ip.flow_hash =
+ vnet_buffer (p0)->ip.flow_hash =
vnet_buffer(p1)->ip.flow_hash = 0;
if (PREDICT_FALSE(lb0->lb_n_buckets > 1))
{
flow_hash_config0 = lb0->lb_hash_config;
- vnet_buffer (p0)->ip.flow_hash =
+ vnet_buffer (p0)->ip.flow_hash =
ip6_compute_flow_hash (ip0, flow_hash_config0);
}
if (PREDICT_FALSE(lb1->lb_n_buckets > 1))
{
flow_hash_config1 = lb1->lb_hash_config;
- vnet_buffer (p1)->ip.flow_hash =
+ vnet_buffer (p1)->ip.flow_hash =
ip6_compute_flow_hash (ip1, flow_hash_config1);
}
@@ -169,10 +169,10 @@ ip6_lookup_inline (vlib_main_t * vm,
vnet_buffer (p0)->ip.adj_index[VLIB_TX] = dpo0->dpoi_index;
vnet_buffer (p1)->ip.adj_index[VLIB_TX] = dpo1->dpoi_index;
- vlib_increment_combined_counter
+ vlib_increment_combined_counter
(cm, cpu_index, lbi0, 1,
vlib_buffer_length_in_chain (vm, p0));
- vlib_increment_combined_counter
+ vlib_increment_combined_counter
(cm, cpu_index, lbi1, 1,
vlib_buffer_length_in_chain (vm, p1));
@@ -217,7 +217,7 @@ ip6_lookup_inline (vlib_main_t * vm,
}
}
}
-
+
while (n_left_from > 0 && n_left_to_next > 0)
{
vlib_buffer_t * p0;
@@ -242,7 +242,7 @@ ip6_lookup_inline (vlib_main_t * vm,
fib_index0 = (vnet_buffer(p0)->sw_if_index[VLIB_TX] == (u32)~0) ?
fib_index0 : vnet_buffer(p0)->sw_if_index[VLIB_TX];
- flow_hash_config0 =
+ flow_hash_config0 =
ip6_fib_get (fib_index0)->flow_hash_config;
lbi0 = ip6_fib_table_fwding_lookup (im, fib_index0, dst_addr0);
@@ -254,7 +254,7 @@ ip6_lookup_inline (vlib_main_t * vm,
if (PREDICT_FALSE(lb0->lb_n_buckets > 1))
{
flow_hash_config0 = lb0->lb_hash_config;
- vnet_buffer (p0)->ip.flow_hash =
+ vnet_buffer (p0)->ip.flow_hash =
ip6_compute_flow_hash (ip0, flow_hash_config0);
}
@@ -272,7 +272,7 @@ ip6_lookup_inline (vlib_main_t * vm,
vnet_buffer (p0)->ip.adj_index[VLIB_TX] = dpo0->dpoi_index;
- vlib_increment_combined_counter
+ vlib_increment_combined_counter
(cm, cpu_index, lbi0, 1,
vlib_buffer_length_in_chain (vm, p0));
@@ -557,7 +557,7 @@ ip6_sw_interface_admin_up_down (vnet_main_t * vnm,
fib_index = vec_elt (im->fib_index_by_sw_if_index, sw_if_index);
- foreach_ip_interface_address (&im->lookup_main, ia, sw_if_index,
+ foreach_ip_interface_address (&im->lookup_main, ia, sw_if_index,
0 /* honor unnumbered */,
({
a = ip_interface_address_get_address (&im->lookup_main, ia);
@@ -583,7 +583,7 @@ VNET_IP6_UNICAST_FEATURE_INIT (ip6_flow_classify, static) = {
};
VNET_IP6_UNICAST_FEATURE_INIT (ip6_inacl, static) = {
- .node_name = "ip6-inacl",
+ .node_name = "ip6-inacl",
.runs_before = ORDER_CONSTRAINTS {"ip6-policer-classify", 0},
.feature_index = &ip6_main.ip6_unicast_rx_feature_check_access,
};
@@ -643,10 +643,10 @@ VNET_IP6_MULTICAST_FEATURE_INIT (ip6_drop_mc, static) = {
.feature_index = &ip6_main.ip6_multicast_rx_feature_drop,
};
-static char * rx_feature_start_nodes[] =
+static char * rx_feature_start_nodes[] =
{"ip6-input"};
-static char * tx_feature_start_nodes[] =
+static char * tx_feature_start_nodes[] =
{
"ip6-rewrite",
"ip6-midchain",
@@ -669,12 +669,12 @@ ip6_feature_init (vlib_main_t * vm, ip6_main_t * im)
vnet_config_main_t * vcm;
char **feature_start_nodes;
int feature_start_len;
-
+
for (cast = 0; cast < VNET_N_IP_FEAT; cast++)
{
cm = &lm->feature_config_mains[cast];
vcm = &cm->config_main;
-
+
if (cast < VNET_IP_TX_FEAT)
{
feature_start_nodes = rx_feature_start_nodes;
@@ -686,7 +686,7 @@ ip6_feature_init (vlib_main_t * vm, ip6_main_t * im)
feature_start_len = ARRAY_LEN(tx_feature_start_nodes);
}
- if ((error = ip_feature_init_cast (vm, cm, vcm,
+ if ((error = vnet_feature_arc_init (vm, vcm,
feature_start_nodes,
feature_start_len,
im->next_feature[cast],
@@ -719,7 +719,7 @@ ip6_sw_interface_add_del (vnet_main_t * vnm,
feature_index = im->ip6_unicast_rx_feature_drop;
else if (cast == VNET_IP_RX_MULTICAST_FEAT)
feature_index = im->ip6_multicast_rx_feature_drop;
- else
+ else
feature_index = im->ip6_tx_feature_interface_output;
if (is_add)
@@ -738,7 +738,7 @@ ip6_sw_interface_add_del (vnet_main_t * vnm,
im->ip_enabled_by_sw_if_index[sw_if_index] = 0;
}
cm->config_index_by_sw_if_index[sw_if_index] = ci;
- /*
+ /*
* note: do not update the tx feature count here.
*/
}
@@ -792,7 +792,7 @@ ip6_load_balance (vlib_main_t * vm,
vlib_get_next_frame (vm, node, next,
to_next, n_left_to_next);
-
+
while (n_left_from > 0 && n_left_to_next > 0)
{
ip_lookup_next_t next0;
@@ -814,14 +814,14 @@ ip6_load_balance (vlib_main_t * vm,
hc0 = lb0->lb_hash_config;
vnet_buffer(p0)->ip.flow_hash = ip6_compute_flow_hash(ip0, hc0);
- dpo0 = load_balance_get_bucket_i(lb0,
+ dpo0 = load_balance_get_bucket_i(lb0,
vnet_buffer(p0)->ip.flow_hash &
(lb0->lb_n_buckets - 1));
next0 = dpo0->dpoi_next_node;
vnet_buffer (p0)->ip.adj_index[VLIB_TX] = dpo0->dpoi_index;
- vlib_increment_combined_counter
+ vlib_increment_combined_counter
(cm, cpu_index, lbi0, 1,
vlib_buffer_length_in_chain (vm, p0));
@@ -1103,7 +1103,7 @@ u16 ip6_tcp_udp_icmp_compute_checksum (vlib_main_t * vm, vlib_buffer_t * p0, ip6
sum0 = ip0->payload_length + clib_host_to_net_u16 (ip0->protocol);
payload_length_host_byte_order = clib_net_to_host_u16 (ip0->payload_length);
data_this_buffer = (void *) (ip0 + 1);
-
+
for (i = 0; i < ARRAY_LEN (ip0->src_address.as_uword); i++)
{
sum0 = ip_csum_with_carry (sum0,
@@ -1123,7 +1123,7 @@ u16 ip6_tcp_udp_icmp_compute_checksum (vlib_main_t * vm, vlib_buffer_t * p0, ip6
skip_bytes = 8* (1 + ext_hdr->n_data_u64s);
data_this_buffer = (void *)((u8 *)data_this_buffer + skip_bytes);
-
+
payload_length_host_byte_order -= skip_bytes;
headers_size += skip_bytes;
}
@@ -1155,7 +1155,7 @@ u16 ip6_tcp_udp_icmp_compute_checksum (vlib_main_t * vm, vlib_buffer_t * p0, ip6
*bogus_lengthp = 1;
return 0xfefe;
}
- }
+ }
else sum0 = ip_incremental_checksum (sum0, data_this_buffer, n_this_buffer);
#else
if (p0 && n_this_buffer + headers_size > p0->current_length)
@@ -1226,7 +1226,7 @@ ip6_local (vlib_main_t * vm,
from = vlib_frame_vector_args (frame);
n_left_from = frame->n_vectors;
next_index = node->cached_next_index;
-
+
if (node->flags & VLIB_NODE_FLAG_TRACE)
ip6_forward_next_trace (vm, node, frame, VLIB_TX);
@@ -1245,14 +1245,14 @@ ip6_local (vlib_main_t * vm,
i32 len_diff0, len_diff1;
u8 error0, type0, good_l4_checksum0;
u8 error1, type1, good_l4_checksum1;
-
+
pi0 = to_next[0] = from[0];
pi1 = to_next[1] = from[1];
from += 2;
n_left_from -= 2;
to_next += 2;
n_left_to_next -= 2;
-
+
p0 = vlib_get_buffer (vm, pi0);
p1 = vlib_get_buffer (vm, pi1);
@@ -1364,13 +1364,13 @@ ip6_local (vlib_main_t * vm,
u32 pi0, ip_len0, udp_len0, flags0, next0;
i32 len_diff0;
u8 error0, type0, good_l4_checksum0;
-
+
pi0 = to_next[0] = from[0];
from += 1;
n_left_from -= 1;
to_next += 1;
n_left_to_next -= 1;
-
+
p0 = vlib_get_buffer (vm, pi0);
ip0 = vlib_buffer_get_current (p0);
@@ -1435,7 +1435,7 @@ ip6_local (vlib_main_t * vm,
to_next, n_left_to_next,
pi0, next0);
}
-
+
vlib_put_next_frame (vm, node, next_index, n_left_to_next);
}
@@ -1495,7 +1495,7 @@ ip6_discover_neighbor_inline (vlib_main_t * vm,
uword n_left_from, n_left_to_next_drop;
static f64 time_last_seed_change = -1e100;
static u32 hash_seeds[3];
- static uword hash_bitmap[256 / BITS (uword)];
+ static uword hash_bitmap[256 / BITS (uword)];
f64 time_now;
int bogus_length;
@@ -1592,8 +1592,8 @@ ip6_discover_neighbor_inline (vlib_main_t * vm,
if (!(hw_if0->flags & VNET_HW_INTERFACE_FLAG_LINK_UP))
drop0 = 1;
- p0->error =
- node->errors[drop0 ? IP6_DISCOVER_NEIGHBOR_ERROR_DROP
+ p0->error =
+ node->errors[drop0 ? IP6_DISCOVER_NEIGHBOR_ERROR_DROP
: IP6_DISCOVER_NEIGHBOR_ERROR_REQUEST_SENT];
if (drop0)
continue;
@@ -1603,13 +1603,13 @@ ip6_discover_neighbor_inline (vlib_main_t * vm,
icmp6_neighbor_solicitation_header_t * h0;
vlib_buffer_t * b0;
- h0 = vlib_packet_template_get_packet
+ h0 = vlib_packet_template_get_packet
(vm, &im->discover_neighbor_packet_template, &bi0);
- /*
+ /*
* Build ethernet header.
- * Choose source address based on destination lookup
- * adjacency.
+ * Choose source address based on destination lookup
+ * adjacency.
*/
if (ip6_src_address_for_packet (lm,
sw_if_index0,
@@ -1621,10 +1621,10 @@ ip6_discover_neighbor_inline (vlib_main_t * vm,
continue;
}
- /*
- * Destination address is a solicited node multicast address.
+ /*
+ * Destination address is a solicited node multicast address.
* We need to fill in
- * the low 24 bits with low 24 bits of target's address.
+ * the low 24 bits with low 24 bits of target's address.
*/
h0->ip.dst_address.as_u8[13] = ip0->dst_address.as_u8[13];
h0->ip.dst_address.as_u8[14] = ip0->dst_address.as_u8[14];
@@ -1632,24 +1632,24 @@ ip6_discover_neighbor_inline (vlib_main_t * vm,
h0->neighbor.target_address = ip0->dst_address;
- clib_memcpy (h0->link_layer_option.ethernet_address,
+ clib_memcpy (h0->link_layer_option.ethernet_address,
hw_if0->hw_address, vec_len (hw_if0->hw_address));
/* $$$$ appears we need this; why is the checksum non-zero? */
h0->neighbor.icmp.checksum = 0;
- h0->neighbor.icmp.checksum =
- ip6_tcp_udp_icmp_compute_checksum (vm, 0, &h0->ip,
+ h0->neighbor.icmp.checksum =
+ ip6_tcp_udp_icmp_compute_checksum (vm, 0, &h0->ip,
&bogus_length);
ASSERT (bogus_length == 0);
vlib_buffer_copy_trace_flag (vm, p0, bi0);
b0 = vlib_get_buffer (vm, bi0);
- vnet_buffer (b0)->sw_if_index[VLIB_TX]
+ vnet_buffer (b0)->sw_if_index[VLIB_TX]
= vnet_buffer (p0)->sw_if_index[VLIB_TX];
/* Add rewrite/encap string. */
- vnet_rewrite_one_header (adj0[0], h0,
+ vnet_rewrite_one_header (adj0[0], h0,
sizeof (ethernet_header_t));
vlib_buffer_advance (b0, -adj0->rewrite_header.data_bytes);
@@ -1659,7 +1659,7 @@ ip6_discover_neighbor_inline (vlib_main_t * vm,
}
}
- vlib_put_next_frame (vm, node, IP6_DISCOVER_NEIGHBOR_NEXT_DROP,
+ vlib_put_next_frame (vm, node, IP6_DISCOVER_NEIGHBOR_NEXT_DROP,
n_left_to_next_drop);
}
@@ -1684,7 +1684,7 @@ ip6_glean (vlib_main_t * vm,
static char * ip6_discover_neighbor_error_strings[] = {
[IP6_DISCOVER_NEIGHBOR_ERROR_DROP] = "address overflow drops",
- [IP6_DISCOVER_NEIGHBOR_ERROR_REQUEST_SENT]
+ [IP6_DISCOVER_NEIGHBOR_ERROR_REQUEST_SENT]
= "neighbor solicitations sent",
[IP6_DISCOVER_NEIGHBOR_ERROR_NO_SOURCE_ADDRESS]
= "no source address for ND solicitation",
@@ -1744,8 +1744,8 @@ ip6_probe_neighbor (vlib_main_t * vm, ip6_address_t * dst, u32 sw_if_index)
if (!(si->flags & VNET_SW_INTERFACE_FLAG_ADMIN_UP))
{
return clib_error_return (0, "%U: interface %U down",
- format_ip6_address, dst,
- format_vnet_sw_if_index_name, vnm,
+ format_ip6_address, dst,
+ format_vnet_sw_if_index_name, vnm,
sw_if_index);
}
@@ -1753,7 +1753,7 @@ ip6_probe_neighbor (vlib_main_t * vm, ip6_address_t * dst, u32 sw_if_index)
if (! src)
{
vnm->api_errno = VNET_API_ERROR_NO_MATCHING_INTERFACE;
- return clib_error_return
+ return clib_error_return
(0, "no matching interface address for destination %U (interface %U)",
format_ip6_address, dst,
format_vnet_sw_if_index_name, vnm, sw_if_index);
@@ -1774,7 +1774,7 @@ ip6_probe_neighbor (vlib_main_t * vm, ip6_address_t * dst, u32 sw_if_index)
clib_memcpy (h->link_layer_option.ethernet_address, hi->hw_address, vec_len (hi->hw_address));
- h->neighbor.icmp.checksum =
+ h->neighbor.icmp.checksum =
ip6_tcp_udp_icmp_compute_checksum (vm, 0, &h->ip, &bogus_length);
ASSERT(bogus_length == 0);
@@ -1819,7 +1819,7 @@ ip6_rewrite_inline (vlib_main_t * vm,
n_left_from = frame->n_vectors;
next_index = node->cached_next_index;
u32 cpu_index = os_get_cpu_number();
-
+
while (n_left_from > 0)
{
vlib_get_next_frame (vm, node, next_index, to_next, n_left_to_next);
@@ -1832,7 +1832,7 @@ ip6_rewrite_inline (vlib_main_t * vm,
u32 pi0, rw_len0, next0, error0, adj_index0;
u32 pi1, rw_len1, next1, error1, adj_index1;
u32 tx_sw_if_index0, tx_sw_if_index1;
-
+
/* Prefetch next iteration. */
{
vlib_buffer_t * p2, * p3;
@@ -1857,7 +1857,7 @@ ip6_rewrite_inline (vlib_main_t * vm,
n_left_from -= 2;
to_next += 2;
n_left_to_next -= 2;
-
+
p0 = vlib_get_buffer (vm, pi0);
p1 = vlib_get_buffer (vm, pi1);
@@ -1918,12 +1918,12 @@ ip6_rewrite_inline (vlib_main_t * vm,
vnet_buffer(p1)->ip.save_rewrite_length = rw_len1;
vlib_increment_combined_counter (&adjacency_counters,
- cpu_index,
+ cpu_index,
adj_index0,
/* packet increment */ 0,
/* byte increment */ rw_len0);
vlib_increment_combined_counter (&adjacency_counters,
- cpu_index,
+ cpu_index,
adj_index1,
/* packet increment */ 0,
/* byte increment */ rw_len1);
@@ -1948,12 +1948,12 @@ ip6_rewrite_inline (vlib_main_t * vm,
tx_sw_if_index0;
next0 = adj0[0].rewrite_header.next_index;
- if (PREDICT_FALSE
- (clib_bitmap_get (lm->tx_sw_if_has_ip_output_features,
+ if (PREDICT_FALSE
+ (clib_bitmap_get (lm->tx_sw_if_has_ip_output_features,
tx_sw_if_index0)))
{
- p0->current_config_index =
- vec_elt (cm->config_index_by_sw_if_index,
+ p0->current_config_index =
+ vec_elt (cm->config_index_by_sw_if_index,
tx_sw_if_index0);
vnet_get_config_data (&cm->config_main,
&p0->current_config_index,
@@ -1971,12 +1971,12 @@ ip6_rewrite_inline (vlib_main_t * vm,
tx_sw_if_index1;
next1 = adj1[0].rewrite_header.next_index;
- if (PREDICT_FALSE
- (clib_bitmap_get (lm->tx_sw_if_has_ip_output_features,
+ if (PREDICT_FALSE
+ (clib_bitmap_get (lm->tx_sw_if_has_ip_output_features,
tx_sw_if_index1)))
{
- p1->current_config_index =
- vec_elt (cm->config_index_by_sw_if_index,
+ p1->current_config_index =
+ vec_elt (cm->config_index_by_sw_if_index,
tx_sw_if_index1);
vnet_get_config_data (&cm->config_main,
&p1->current_config_index,
@@ -1989,7 +1989,7 @@ ip6_rewrite_inline (vlib_main_t * vm,
vnet_rewrite_two_headers (adj0[0], adj1[0],
ip0, ip1,
sizeof (ethernet_header_t));
-
+
if (is_midchain)
{
adj0->sub_type.midchain.fixup_func(vm, adj0, p0);
@@ -2009,7 +2009,7 @@ ip6_rewrite_inline (vlib_main_t * vm,
u32 pi0, rw_len0;
u32 adj_index0, next0, error0;
u32 tx_sw_if_index0;
-
+
pi0 = to_next[0] = from[0];
p0 = vlib_get_buffer (vm, pi0);
@@ -2020,7 +2020,7 @@ ip6_rewrite_inline (vlib_main_t * vm,
ASSERT(adj_index0);
adj0 = ip_get_adjacency (lm, adj_index0);
-
+
ip0 = vlib_buffer_get_current (p0);
error0 = IP6_ERROR_NONE;
@@ -2053,13 +2053,13 @@ ip6_rewrite_inline (vlib_main_t * vm,
/* Guess we are only writing on simple Ethernet header. */
vnet_rewrite_one_header (adj0[0], ip0, sizeof (ethernet_header_t));
-
+
/* Update packet buffer attributes/set output interface. */
rw_len0 = adj0[0].rewrite_header.data_bytes;
vnet_buffer(p0)->ip.save_rewrite_length = rw_len0;
vlib_increment_combined_counter (&adjacency_counters,
- cpu_index,
+ cpu_index,
adj_index0,
/* packet increment */ 0,
/* byte increment */ rw_len0);
@@ -2081,12 +2081,12 @@ ip6_rewrite_inline (vlib_main_t * vm,
vnet_buffer (p0)->sw_if_index[VLIB_TX] = tx_sw_if_index0;
next0 = adj0[0].rewrite_header.next_index;
- if (PREDICT_FALSE
- (clib_bitmap_get (lm->tx_sw_if_has_ip_output_features,
+ if (PREDICT_FALSE
+ (clib_bitmap_get (lm->tx_sw_if_has_ip_output_features,
tx_sw_if_index0)))
{
- p0->current_config_index =
- vec_elt (cm->config_index_by_sw_if_index,
+ p0->current_config_index =
+ vec_elt (cm->config_index_by_sw_if_index,
tx_sw_if_index0);
vnet_get_config_data (&cm->config_main,
&p0->current_config_index,
@@ -2106,7 +2106,7 @@ ip6_rewrite_inline (vlib_main_t * vm,
n_left_from -= 1;
to_next += 1;
n_left_to_next -= 1;
-
+
vlib_validate_buffer_enqueue_x1 (vm, node, next_index,
to_next, n_left_to_next,
pi0, next0);
@@ -2662,7 +2662,7 @@ ip6_lookup_init (vlib_main_t * vm)
if (im->lookup_table_size == 0)
im->lookup_table_size = IP6_FIB_DEFAULT_HASH_MEMORY_SIZE;
-
+
BV(clib_bihash_init) (&(im->ip6_table[IP6_FIB_TABLE_FWDING].ip6_hash),
"ip6 FIB fwding table",
im->lookup_table_nbuckets,
@@ -2761,7 +2761,7 @@ VLIB_CLI_COMMAND (set_interface_ip6_table_command, static) = {
.short_help = "set interface ip6 table <intfc> <table-id>"
};
-void
+void
ip6_link_local_address_from_ethernet_mac_address (ip6_address_t *ip,
u8 *mac)
{
@@ -2777,8 +2777,8 @@ ip6_link_local_address_from_ethernet_mac_address (ip6_address_t *ip,
ip->as_u8 [15] = mac[5];
}
-void
-ip6_ethernet_mac_address_from_link_local_address (u8 *mac,
+void
+ip6_ethernet_mac_address_from_link_local_address (u8 *mac,
ip6_address_t *ip)
{
/* Invert the previously inverted "u" bit */
@@ -2790,7 +2790,7 @@ ip6_ethernet_mac_address_from_link_local_address (u8 *mac,
mac[5] = ip->as_u8 [15];
}
-static clib_error_t *
+static clib_error_t *
test_ip6_link_command_fn (vlib_main_t * vm,
unformat_input_t * input,
vlib_cli_command_t * cmd)
@@ -2807,13 +2807,13 @@ test_ip6_link_command_fn (vlib_main_t * vm,
vlib_cli_output (vm, "Original MAC address: %U",
format_ethernet_address, mac);
}
-
+
return 0;
}
VLIB_CLI_COMMAND (test_link_command, static) = {
.path = "test ip6 link",
- .function = test_ip6_link_command_fn,
+ .function = test_ip6_link_command_fn,
.short_help = "test ip6 link <mac-address>",
};
@@ -2855,7 +2855,7 @@ set_ip6_flow_hash_command_fn (vlib_main_t * vm,
if (matched == 0)
return clib_error_return (0, "unknown input `%U'",
format_unformat_error, input);
-
+
rv = vnet_set_ip6_flow_hash (table_id, flow_hash_config);
switch (rv)
{
@@ -2864,18 +2864,18 @@ set_ip6_flow_hash_command_fn (vlib_main_t * vm,
case -1:
return clib_error_return (0, "no such FIB table %d", table_id);
-
+
default:
clib_warning ("BUG: illegal flow hash config 0x%x", flow_hash_config);
break;
}
-
+
return 0;
}
VLIB_CLI_COMMAND (set_ip6_flow_hash_command, static) = {
.path = "set ip6 flow-hash",
- .short_help =
+ .short_help =
"set ip table flow-hash table <fib-id> src dst sport dport proto reverse",
.function = set_ip6_flow_hash_command_fn,
};
@@ -2888,7 +2888,7 @@ show_ip6_local_command_fn (vlib_main_t * vm,
ip6_main_t * im = &ip6_main;
ip_lookup_main_t * lm = &im->lookup_main;
int i;
-
+
vlib_cli_output (vm, "Protocols handled by ip6_local");
for (i = 0; i < ARRAY_LEN(lm->local_next_by_ip_protocol); i++)
{
@@ -2906,7 +2906,7 @@ VLIB_CLI_COMMAND (show_ip6_local, static) = {
.short_help = "Show ip6 local protocol table",
};
-int vnet_set_ip6_classify_intfc (vlib_main_t * vm, u32 sw_if_index,
+int vnet_set_ip6_classify_intfc (vlib_main_t * vm, u32 sw_if_index,
u32 table_index)
{
vnet_main_t * vnm = vnet_get_main();
@@ -2977,20 +2977,20 @@ set_ip6_classify_command_fn (vlib_main_t * vm,
int table_index_set = 0;
u32 sw_if_index = ~0;
int rv;
-
+
while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) {
if (unformat (input, "table-index %d", &table_index))
table_index_set = 1;
- else if (unformat (input, "intfc %U", unformat_vnet_sw_interface,
+ else if (unformat (input, "intfc %U", unformat_vnet_sw_interface,
vnet_get_main(), &sw_if_index))
;
else
break;
}
-
+
if (table_index_set == 0)
return clib_error_return (0, "classify table-index must be specified");
-
+
if (sw_if_index == ~0)
return clib_error_return (0, "interface / subif must be specified");
@@ -3012,7 +3012,7 @@ set_ip6_classify_command_fn (vlib_main_t * vm,
VLIB_CLI_COMMAND (set_ip6_classify_command, static) = {
.path = "set ip6 classify",
- .short_help =
+ .short_help =
"set ip6 classify intfc <int> table-index <index>",
.function = set_ip6_classify_command_fn,
};
@@ -3063,7 +3063,7 @@ set_interface_ip6_output_feature_command_fn (vlib_main_t * vm,
ip6_main_t * im = &ip6_main;
ip_lookup_main_t * lm = &im->lookup_main;
- while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
+ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
{
if (unformat (input, "%U", unformat_vnet_sw_interface, vnm, &sw_if_index))
;
diff --git a/vnet/vnet/ip/ip_feature_registration.c b/vnet/vnet/ip/ip_feature_registration.c
index f09a894ca03..7ea5e79fca5 100644
--- a/vnet/vnet/ip/ip_feature_registration.c
+++ b/vnet/vnet/ip/ip_feature_registration.c
@@ -128,14 +128,30 @@ comma_split (u8 * s, u8 ** a, u8 ** b)
return 0;
}
+/**
+ * @brief Initialize a feature graph arc
+ * @param vm vlib main structure pointer
+ * @param vcm vnet config main structure pointer
+ * @param feature_start_nodes names of start-nodes which use this
+ * feature graph arc
+ * @param num_feature_start_nodes number of start-nodes
+ * @param first_reg first element in
+ * [an __attribute__((constructor)) function built, or
+ * otherwise created] singly-linked list of feature registrations
+ * @param [out] in_feature_nodes returned vector of
+ * topologically-sorted feature node names, for use in
+ * show commands
+ * @returns 0 on success, otherwise an error message. Errors
+ * are fatal since they invariably involve mistyped node-names, or
+ * genuinely missing node-names
+ */
clib_error_t *
-ip_feature_init_cast (vlib_main_t * vm,
- ip_config_main_t * cm,
- vnet_config_main_t * vcm,
- char **feature_start_nodes,
- int num_feature_start_nodes,
- vnet_ip_feature_registration_t * first_reg,
- char ***in_feature_nodes)
+vnet_feature_arc_init (vlib_main_t * vm,
+ vnet_config_main_t * vcm,
+ char **feature_start_nodes,
+ int num_feature_start_nodes,
+ vnet_ip_feature_registration_t * first_reg,
+ char ***in_feature_nodes)
{
uword *index_by_name;
uword *reg_by_index;
@@ -305,12 +321,12 @@ again:
return 0;
}
-#define foreach_af_cast \
-_(4, VNET_IP_RX_UNICAST_FEAT, "ip4 unicast") \
-_(4, VNET_IP_RX_MULTICAST_FEAT, "ip4 multicast") \
-_(4, VNET_IP_TX_FEAT, "ip4 output") \
-_(6, VNET_IP_RX_UNICAST_FEAT, "ip6 unicast") \
-_(6, VNET_IP_RX_MULTICAST_FEAT, "ip6 multicast") \
+#define foreach_af_cast \
+_(4, VNET_IP_RX_UNICAST_FEAT, "ip4 unicast") \
+_(4, VNET_IP_RX_MULTICAST_FEAT, "ip4 multicast") \
+_(4, VNET_IP_TX_FEAT, "ip4 output") \
+_(6, VNET_IP_RX_UNICAST_FEAT, "ip6 unicast") \
+_(6, VNET_IP_RX_MULTICAST_FEAT, "ip6 multicast") \
_(6, VNET_IP_TX_FEAT, "ip6 output")
/** Display the set of available ip features.
@@ -342,6 +358,15 @@ show_ip_features_command_fn (vlib_main_t * vm,
return 0;
}
+/*?
+ * Display the set of available ip features
+ *
+ * @cliexpar
+ * Example:
+ * @cliexcmd{show ip features}
+ * @cliexend
+ * @endparblock
+?*/
/* *INDENT-OFF* */
VLIB_CLI_COMMAND (show_ip_features_command, static) = {
.path = "show ip features",
@@ -437,6 +462,15 @@ show_ip_interface_features_command_fn (vlib_main_t * vm,
return 0;
}
+/*?
+ * Display the ip features configured on a specific interface
+ *
+ * @cliexpar
+ * Example:
+ * @cliexcmd{show ip interface features GigabitEthernet2/0/0}
+ * @cliexend
+ * @endparblock
+?*/
/* *INDENT-OFF* */
VLIB_CLI_COMMAND (show_ip_interface_features_command, static) = {
.path = "show ip interface features",
diff --git a/vnet/vnet/ip/ip_feature_registration.h b/vnet/vnet/ip/ip_feature_registration.h
index b86e3a626e1..7829980739a 100644
--- a/vnet/vnet/ip/ip_feature_registration.h
+++ b/vnet/vnet/ip/ip_feature_registration.h
@@ -23,7 +23,7 @@ typedef struct _vnet_ip_feature_registration
struct _vnet_ip_feature_registration *next;
/** Graph node name */
char *node_name;
- /** Pointer to this feature index, filled in by ip_feature_init_cast */
+ /** Pointer to this feature index, filled in by vnet_feature_arc_init */
u32 *feature_index;
/** Constraints of the form "this feature runs before X" */
char **runs_before;
@@ -40,13 +40,12 @@ typedef struct ip_config_main_t_
/** Syntactic sugar, the c-compiler won't initialize registrations without it */
#define ORDER_CONSTRAINTS (char*[])
-clib_error_t *ip_feature_init_cast (vlib_main_t * vm,
- ip_config_main_t * cm,
- vnet_config_main_t * vcm,
- char **feature_start_nodes,
- int num_feature_start_nodes,
- vnet_ip_feature_registration_t *
- first_reg, char ***feature_nodes);
+clib_error_t *vnet_feature_arc_init (vlib_main_t * vm,
+ vnet_config_main_t * vcm,
+ char **feature_start_nodes,
+ int num_feature_start_nodes,
+ vnet_ip_feature_registration_t *
+ first_reg, char ***feature_nodes);
void ip_interface_features_show (vlib_main_t * vm,
const char *pname,
diff --git a/vnet/vnet/mpls/mpls.h b/vnet/vnet/mpls/mpls.h
index e7fed192e57..5a09e5a0103 100644
--- a/vnet/vnet/mpls/mpls.h
+++ b/vnet/vnet/mpls/mpls.h
@@ -39,8 +39,8 @@ typedef enum {
MPLS_N_ERROR,
} mpls_gre_error_t;
-/*
- * No protocol info, MPLS labels don't have a next-header field
+/*
+ * No protocol info, MPLS labels don't have a next-header field
* presumably the label field tells all...
*/
@@ -100,7 +100,7 @@ typedef struct mpls_fib_t_
* A hash table of entries. 21 bit key
* Hash table for reduced memory footprint
*/
- uword * mf_entries;
+ uword * mf_entries;
/**
* The load-balance indeices keyed by 21 bit label+eos bit.
@@ -129,7 +129,7 @@ typedef struct {
/* rx/tx interface/feature configuration. */
ip_config_main_t feature_config_mains[VNET_N_IP_FEAT];
- /* Built-in unicast feature path indices, see ip_feature_init_cast(...) */
+ /* Built-in unicast feature path indices, see vnet_feature_arc_init(...) */
u32 mpls_rx_feature_lookup;
u32 mpls_rx_feature_not_enabled;
u32 mpls_tx_feature_interface_output;
@@ -195,7 +195,7 @@ static void __vnet_add_feature_registration_tx_##x (void) \
tx_##x.next = mm->next_feature[VNET_IP_TX_FEAT]; \
mm->next_feature[VNET_IP_TX_FEAT] = &tx_##x; \
} \
-__VA_ARGS__ vnet_ip_feature_registration_t tx_##x
+__VA_ARGS__ vnet_ip_feature_registration_t tx_##x
extern clib_error_t * mpls_feature_init(vlib_main_t * vm);
@@ -239,7 +239,7 @@ void mpls_sw_interface_enable_disable (mpls_main_t * mm,
u8 mpls_sw_interface_is_enabled (u32 sw_if_index);
-mpls_encap_t *
+mpls_encap_t *
mpls_encap_by_fib_and_dest (mpls_main_t * mm, u32 rx_fib, u32 dst_address);
int mpls_label_from_fib_id_and_dest (mpls_main_t *gm, u32 fib_id,
@@ -257,7 +257,7 @@ int vnet_mpls_gre_add_del_tunnel (ip4_address_t *src,
int vnet_mpls_ethernet_add_del_tunnel (u8 *dst,
ip4_address_t *intfc,
u32 mask_width,
- u32 inner_fib_id,
+ u32 inner_fib_id,
u32 tx_sw_if_index,
u32 * tunnel_sw_if_index,
u8 l2_only,
@@ -267,18 +267,18 @@ int vnet_mpls_gre_delete_fib_tunnels (u32 fib_id);
int mpls_fib_reset_labels (u32 fib_id);
-int vnet_mpls_add_del_decap (u32 rx_fib_id,
+int vnet_mpls_add_del_decap (u32 rx_fib_id,
u32 tx_fib_id,
- u32 label_host_byte_order,
+ u32 label_host_byte_order,
int s_bit, int next_index, int is_add);
-int vnet_mpls_add_del_encap (ip4_address_t *dest, u32 fib_id,
+int vnet_mpls_add_del_encap (ip4_address_t *dest, u32 fib_id,
u32 *labels_host_byte_order,
u32 policy_tunnel_index,
int no_dst_hash, u32 * indexp, int is_add);
-int vnet_mpls_policy_tunnel_add_rewrite (mpls_main_t * mm,
- mpls_encap_t * e,
+int vnet_mpls_policy_tunnel_add_rewrite (mpls_main_t * mm,
+ mpls_encap_t * e,
u32 policy_tunnel_index);
typedef struct {
@@ -326,7 +326,7 @@ typedef enum {
} mpls_lookup_next_t;
#define foreach_mpls_output_next \
-_(DROP, "error-drop")
+_(DROP, "error-drop")
typedef enum {
#define _(s,n) MPLS_OUTPUT_NEXT_##s,
diff --git a/vnet/vnet/mpls/mpls_features.c b/vnet/vnet/mpls/mpls_features.c
index 80002fcb6f9..3eb469c8768 100644
--- a/vnet/vnet/mpls/mpls_features.c
+++ b/vnet/vnet/mpls/mpls_features.c
@@ -124,7 +124,7 @@ static char * rx_feature_start_nodes[] =
{
"mpls-input",
};
-static char * tx_feature_start_nodes[] =
+static char * tx_feature_start_nodes[] =
{
"mpls-output",
"mpls-midchain",
@@ -137,22 +137,24 @@ mpls_feature_init (vlib_main_t * vm)
vnet_config_main_t * vcm = &cm->config_main;
clib_error_t *error;
- if ((error = ip_feature_init_cast (vm, cm, vcm,
- rx_feature_start_nodes,
- ARRAY_LEN(rx_feature_start_nodes),
- mpls_main.next_feature[VNET_IP_RX_UNICAST_FEAT],
- &mpls_main.feature_nodes[VNET_IP_RX_UNICAST_FEAT])))
+ error = vnet_feature_arc_init
+ (vm, vcm, rx_feature_start_nodes,
+ ARRAY_LEN(rx_feature_start_nodes),
+ mpls_main.next_feature[VNET_IP_RX_UNICAST_FEAT],
+ &mpls_main.feature_nodes[VNET_IP_RX_UNICAST_FEAT]);
+
+ if (error)
return error;
cm = &mpls_main.feature_config_mains[VNET_IP_TX_FEAT];
vcm = &cm->config_main;
- if ((error = ip_feature_init_cast (vm, cm, vcm,
- tx_feature_start_nodes,
- ARRAY_LEN(tx_feature_start_nodes),
- mpls_main.next_feature[VNET_IP_TX_FEAT],
- &mpls_main.feature_nodes[VNET_IP_TX_FEAT])))
- return error;
+ error = vnet_feature_arc_init
+ (vm, vcm,
+ tx_feature_start_nodes,
+ ARRAY_LEN(tx_feature_start_nodes),
+ mpls_main.next_feature[VNET_IP_TX_FEAT],
+ &mpls_main.feature_nodes[VNET_IP_TX_FEAT]);
return error;
}
@@ -256,7 +258,7 @@ show_mpls_interface_features_command_fn (vlib_main_t * vm,
vlib_cli_output (vm, "MPLS feature paths configured on %U...",
format_vnet_sw_if_index_name, vnm, sw_if_index);
- ip_interface_features_show (vm, "MPLS",
+ ip_interface_features_show (vm, "MPLS",
mpls_main.feature_config_mains,
sw_if_index);