Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
fib: fib api updates
[vpp.git]
/
src
/
plugins
/
abf
/
abf_itf_attach.c
diff --git
a/src/plugins/abf/abf_itf_attach.c
b/src/plugins/abf/abf_itf_attach.c
index
67aa5b1
..
337eed8
100644
(file)
--- a/
src/plugins/abf/abf_itf_attach.c
+++ b/
src/plugins/abf/abf_itf_attach.c
@@
-184,7
+184,7
@@
abf_itf_attach (fib_protocol_t fproto,
return (VNET_API_ERROR_ENTRY_ALREADY_EXISTS);
/*
return (VNET_API_ERROR_ENTRY_ALREADY_EXISTS);
/*
- * constru
t a new attachem
nt object
+ * constru
ct a new attachme
nt object
*/
pool_get (abf_itf_attach_pool, aia);
*/
pool_get (abf_itf_attach_pool, aia);
@@
-210,7
+210,7
@@
abf_itf_attach (fib_protocol_t fproto,
if (1 == vec_len (abf_per_itf[fproto][sw_if_index]))
{
/*
if (1 == vec_len (abf_per_itf[fproto][sw_if_index]))
{
/*
- * when enabling the first ABF pol
ci
y on the interface
+ * when enabling the first ABF pol
ic
y on the interface
* we need to enable the interface input feature
*/
vnet_feature_enable_disable ((FIB_PROTOCOL_IP4 == fproto ?
* we need to enable the interface input feature
*/
vnet_feature_enable_disable ((FIB_PROTOCOL_IP4 == fproto ?
@@
-236,7
+236,7
@@
abf_itf_attach (fib_protocol_t fproto,
abf_setup_acl_lc (fproto, sw_if_index);
/*
abf_setup_acl_lc (fproto, sw_if_index);
/*
- * become a child of the ABF po
il
cy so we are notified when
+ * become a child of the ABF po
li
cy so we are notified when
* its forwarding changes.
*/
aia->aia_sibling = fib_node_child_add (abf_policy_fib_node_type,
* its forwarding changes.
*/
aia->aia_sibling = fib_node_child_add (abf_policy_fib_node_type,
@@
-253,15
+253,15
@@
abf_itf_detach (fib_protocol_t fproto, u32 policy_id, u32 sw_if_index)
u32 index;
/*
u32 index;
/*
- * check this is a valid attahment
+ * check this is a valid atta
c
hment
*/
aia = abf_itf_attach_db_find (policy_id, sw_if_index);
if (NULL == aia)
*/
aia = abf_itf_attach_db_find (policy_id, sw_if_index);
if (NULL == aia)
- return (VNET_API_ERROR_
ENTRY_ALREADY_EXISTS
);
+ return (VNET_API_ERROR_
NO_SUCH_ENTRY
);
/*
/*
- * first remove from the interface's vec
ot
r
+ * first remove from the interface's vec
to
r
*/
ASSERT (abf_per_itf[fproto]);
ASSERT (abf_per_itf[fproto][sw_if_index]);
*/
ASSERT (abf_per_itf[fproto]);
ASSERT (abf_per_itf[fproto][sw_if_index]);
@@
-275,7
+275,7
@@
abf_itf_detach (fib_protocol_t fproto, u32 policy_id, u32 sw_if_index)
if (0 == vec_len (abf_per_itf[fproto][sw_if_index]))
{
/*
if (0 == vec_len (abf_per_itf[fproto][sw_if_index]))
{
/*
- * when deleting the last ABF pol
ci
y on the interface
+ * when deleting the last ABF pol
ic
y on the interface
* we need to disable the interface input feature
*/
vnet_feature_enable_disable ((FIB_PROTOCOL_IP4 == fproto ?
* we need to disable the interface input feature
*/
vnet_feature_enable_disable ((FIB_PROTOCOL_IP4 == fproto ?
@@
-307,7
+307,7
@@
abf_itf_detach (fib_protocol_t fproto, u32 policy_id, u32 sw_if_index)
aia->aia_abf, aia->aia_sibling);
/*
aia->aia_abf, aia->aia_sibling);
/*
- * remove the atta
hc
ment from the DB
+ * remove the atta
ch
ment from the DB
*/
abf_itf_attach_db_del (policy_id, sw_if_index);
*/
abf_itf_attach_db_del (policy_id, sw_if_index);
@@
-331,7
+331,7
@@
format_abf_intf_attach (u8 * s, va_list * args)
abf_policy_t *ap;
ap = abf_policy_get (aia->aia_abf);
abf_policy_t *ap;
ap = abf_policy_get (aia->aia_abf);
- s = format (s, "abf-interface-attach: policy:%d prioity:%d",
+ s = format (s, "abf-interface-attach: policy:%d prio
r
ity:%d",
ap->ap_id, aia->aia_prio);
s = format (s, "\n %U", format_dpo_id, &aia->aia_dpo, 2);
ap->ap_id, aia->aia_prio);
s = format (s, "\n %U", format_dpo_id, &aia->aia_dpo, 2);
@@
-505,12
+505,12
@@
abf_input_inline (vlib_main_t * vm,
vlib_node_runtime_t * node,
vlib_frame_t * frame, fib_protocol_t fproto)
{
vlib_node_runtime_t * node,
vlib_frame_t * frame, fib_protocol_t fproto)
{
- u32 n_left_from, *from, *to_next, next_index, matches;
+ u32 n_left_from, *from, *to_next, next_index, matches
, misses
;
from = vlib_frame_vector_args (frame);
n_left_from = frame->n_vectors;
next_index = node->cached_next_index;
from = vlib_frame_vector_args (frame);
n_left_from = frame->n_vectors;
next_index = node->cached_next_index;
- matches = 0;
+ matches =
misses =
0;
while (n_left_from > 0)
{
while (n_left_from > 0)
{
@@
-530,6
+530,7
@@
abf_input_inline (vlib_main_t * vm,
u32 match_acl_pos = ~0;
u32 match_rule_index = ~0;
u32 trace_bitmap = 0;
u32 match_acl_pos = ~0;
u32 match_rule_index = ~0;
u32 trace_bitmap = 0;
+ u32 lc_index;
u8 action;
bi0 = from[0];
u8 action;
bi0 = from[0];
@@
-549,7
+550,7
@@
abf_input_inline (vlib_main_t * vm,
/*
* check if any of the policies attached to this interface matches.
*/
/*
* check if any of the policies attached to this interface matches.
*/
-
u32
lc_index = abf_alctx_per_itf[fproto][sw_if_index0];
+ lc_index = abf_alctx_per_itf[fproto][sw_if_index0];
/*
A non-inline version looks like this:
/*
A non-inline version looks like this:
@@
-589,6
+590,7
@@
abf_input_inline (vlib_main_t * vm,
* move on down the feature arc
*/
vnet_feature_next (&next0, b0);
* move on down the feature arc
*/
vnet_feature_next (&next0, b0);
+ misses++;
}
if (PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED))
}
if (PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED))
@@
-614,6
+616,11
@@
abf_input_inline (vlib_main_t * vm,
abf_ip4_node.index :
abf_ip6_node.index),
ABF_ERROR_MATCHED, matches);
abf_ip4_node.index :
abf_ip6_node.index),
ABF_ERROR_MATCHED, matches);
+ vlib_node_increment_counter (vm,
+ (fproto = FIB_PROTOCOL_IP6 ?
+ abf_ip4_node.index :
+ abf_ip6_node.index),
+ ABF_ERROR_MISSED, misses);
return frame->n_vectors;
}
return frame->n_vectors;
}
@@
-759,12
+766,17
@@
abf_itf_bond_init (vlib_main_t * vm)
return (acl_init_res);
abf_acl_user_id =
return (acl_init_res);
abf_acl_user_id =
- acl_plugin.register_user_module ("
abp
plugin", "sw_if_index", NULL);
+ acl_plugin.register_user_module ("
ABF
plugin", "sw_if_index", NULL);
return (NULL);
}
return (NULL);
}
-VLIB_INIT_FUNCTION (abf_itf_bond_init);
+/* *INDENT-OFF* */
+VLIB_INIT_FUNCTION (abf_itf_bond_init) =
+{
+ .runs_after = VLIB_INITS("acl_init"),
+};
+/* *INDENT-ON* */
/*
* fd.io coding-style-patch-verification: ON
/*
* fd.io coding-style-patch-verification: ON