diff options
Diffstat (limited to 'src/plugins/nsh')
-rw-r--r-- | src/plugins/nsh/FEATURE.yaml | 1 | ||||
-rw-r--r-- | src/plugins/nsh/nsh-md2-ioam/export-nsh-md2-ioam/nsh_md2_ioam_export.c | 2 | ||||
-rw-r--r-- | src/plugins/nsh/nsh-md2-ioam/export-nsh-md2-ioam/nsh_md2_ioam_export_thread.c | 2 | ||||
-rw-r--r-- | src/plugins/nsh/nsh-md2-ioam/export-nsh-md2-ioam/nsh_md2_ioam_node.c | 2 | ||||
-rw-r--r-- | src/plugins/nsh/nsh-md2-ioam/md2_ioam_transit.c | 4 | ||||
-rw-r--r-- | src/plugins/nsh/nsh-md2-ioam/nsh_md2_ioam.c | 3 | ||||
-rw-r--r-- | src/plugins/nsh/nsh-md2-ioam/nsh_md2_ioam_api.c | 1 | ||||
-rw-r--r-- | src/plugins/nsh/nsh-md2-ioam/nsh_md2_ioam_trace.c | 6 | ||||
-rw-r--r-- | src/plugins/nsh/nsh.c | 46 | ||||
-rw-r--r-- | src/plugins/nsh/nsh_api.c | 8 | ||||
-rw-r--r-- | src/plugins/nsh/nsh_cli.c | 10 | ||||
-rw-r--r-- | src/plugins/nsh/nsh_node.c | 2 | ||||
-rw-r--r-- | src/plugins/nsh/nsh_output.c | 2 | ||||
-rw-r--r-- | src/plugins/nsh/nsh_pop.c | 1 |
14 files changed, 33 insertions, 57 deletions
diff --git a/src/plugins/nsh/FEATURE.yaml b/src/plugins/nsh/FEATURE.yaml index a6ef3749952..986008e41a5 100644 --- a/src/plugins/nsh/FEATURE.yaml +++ b/src/plugins/nsh/FEATURE.yaml @@ -8,6 +8,7 @@ features: - NSH Proxy - NSH OAM - NSH Metadata + - Requires vxlan_plugin.so to run description: "NSH for SFC" state: production diff --git a/src/plugins/nsh/nsh-md2-ioam/export-nsh-md2-ioam/nsh_md2_ioam_export.c b/src/plugins/nsh/nsh-md2-ioam/export-nsh-md2-ioam/nsh_md2_ioam_export.c index cb2bb2107c9..d2b59ababa9 100644 --- a/src/plugins/nsh/nsh-md2-ioam/export-nsh-md2-ioam/nsh_md2_ioam_export.c +++ b/src/plugins/nsh/nsh-md2-ioam/export-nsh-md2-ioam/nsh_md2_ioam_export.c @@ -136,14 +136,12 @@ set_nsh_md2_ioam_export_ipfix_command_fn (vlib_main_t * vm, return 0; } -/* *INDENT-OFF* */ VLIB_CLI_COMMAND (set_nsh_md2_ioam_ipfix_command, static) = { .path = "set nsh-md2-ioam export ipfix", .short_help = "set nsh-md2-ioam export ipfix collector <ip4-address> src <ip4-address>", .function = set_nsh_md2_ioam_export_ipfix_command_fn, }; -/* *INDENT-ON* */ #define IPFIX_NSH_MD2_IOAM_EXPORT_ID 274 // TODO: Move this to ioam/ioam_export.h diff --git a/src/plugins/nsh/nsh-md2-ioam/export-nsh-md2-ioam/nsh_md2_ioam_export_thread.c b/src/plugins/nsh/nsh-md2-ioam/export-nsh-md2-ioam/nsh_md2_ioam_export_thread.c index 54dc01bc021..40ff8c087dd 100644 --- a/src/plugins/nsh/nsh-md2-ioam/export-nsh-md2-ioam/nsh_md2_ioam_export_thread.c +++ b/src/plugins/nsh/nsh-md2-ioam/export-nsh-md2-ioam/nsh_md2_ioam_export_thread.c @@ -33,14 +33,12 @@ nsh_md2_ioam_export_process (vlib_main_t * vm, } -/* *INDENT-OFF* */ VLIB_REGISTER_NODE (nsh_md2_ioam_export_process_node, static) = { .function = nsh_md2_ioam_export_process, .type = VLIB_NODE_TYPE_PROCESS, .name = "nsh-md2-ioam-export-process", }; -/* *INDENT-ON* */ /* * fd.io coding-style-patch-verification: ON diff --git a/src/plugins/nsh/nsh-md2-ioam/export-nsh-md2-ioam/nsh_md2_ioam_node.c b/src/plugins/nsh/nsh-md2-ioam/export-nsh-md2-ioam/nsh_md2_ioam_node.c index 06874f64a73..b3bf8c59b96 100644 --- a/src/plugins/nsh/nsh-md2-ioam/export-nsh-md2-ioam/nsh_md2_ioam_node.c +++ b/src/plugins/nsh/nsh-md2-ioam/export-nsh-md2-ioam/nsh_md2_ioam_node.c @@ -129,7 +129,6 @@ nsh_md2_ioam_export_node_fn (vlib_main_t * vm, /* * Node for iOAM export */ -/* *INDENT-OFF* */ VLIB_REGISTER_NODE (nsh_md2_ioam_export_node) = { .function = nsh_md2_ioam_export_node_fn, @@ -144,7 +143,6 @@ VLIB_REGISTER_NODE (nsh_md2_ioam_export_node) = .next_nodes = {[EXPORT_NEXT_NSH_MD2_IOAM_INPUT] = "nsh-pop"}, }; -/* *INDENT-ON* */ /* * fd.io coding-style-patch-verification: ON diff --git a/src/plugins/nsh/nsh-md2-ioam/md2_ioam_transit.c b/src/plugins/nsh/nsh-md2-ioam/md2_ioam_transit.c index 876e00324e3..6c372a5bd4e 100644 --- a/src/plugins/nsh/nsh-md2-ioam/md2_ioam_transit.c +++ b/src/plugins/nsh/nsh-md2-ioam/md2_ioam_transit.c @@ -53,13 +53,11 @@ typedef enum } nsh_md2_ioam_encap_transit_next_t; -/* *INDENT-OFF* */ VNET_FEATURE_INIT (nsh_md2_ioam_encap_transit, static) = { .arc_name = "ip4-output", .node_name = "nsh-md2-ioam-encap-transit", }; -/* *INDENT-ON* */ static uword @@ -162,7 +160,6 @@ nsh_md2_ioam_encap_transit (vlib_main_t * vm, } extern u8 *format_nsh_node_map_trace (u8 * s, va_list * args); -/* *INDENT-OFF* */ VLIB_REGISTER_NODE (nsh_md2_ioam_encap_transit_node) = { .function = nsh_md2_ioam_encap_transit, .name = "nsh-md2-ioam-encap-transit", @@ -181,7 +178,6 @@ VLIB_REGISTER_NODE (nsh_md2_ioam_encap_transit_node) = { }, }; -/* *INDENT-ON* */ /* diff --git a/src/plugins/nsh/nsh-md2-ioam/nsh_md2_ioam.c b/src/plugins/nsh/nsh-md2-ioam/nsh_md2_ioam.c index 63e6a98fe27..2aac6760546 100644 --- a/src/plugins/nsh/nsh-md2-ioam/nsh_md2_ioam.c +++ b/src/plugins/nsh/nsh-md2-ioam/nsh_md2_ioam.c @@ -449,7 +449,6 @@ static clib_error_t *nsh_md2_ioam_set_transit_rewrite_command_fn return rv; } -/* *INDENT-OFF* */ VLIB_CLI_COMMAND (nsh_md2_ioam_set_transit_rewrite_cmd, static) = { .path = "set nsh-md2-ioam-transit", .short_help = "set nsh-ioam-lisp-gpe-transit dst-ip <dst_ip> [outer-fib-index <outer_fib_index>] [disable]", @@ -500,7 +499,7 @@ void nsh_md2_ioam_interface_init (void) { nsh_md2_ioam_main_t *hm = &nsh_md2_ioam_main; - hm->fib_entry_type = fib_node_register_new_type (&nsh_md2_ioam_vft); + hm->fib_entry_type = fib_node_register_new_type ("nsh", &nsh_md2_ioam_vft); return; } diff --git a/src/plugins/nsh/nsh-md2-ioam/nsh_md2_ioam_api.c b/src/plugins/nsh/nsh-md2-ioam/nsh_md2_ioam_api.c index 9ed835bd98f..36c221619e5 100644 --- a/src/plugins/nsh/nsh-md2-ioam/nsh_md2_ioam_api.c +++ b/src/plugins/nsh/nsh-md2-ioam/nsh_md2_ioam_api.c @@ -38,7 +38,6 @@ #undef vl_endianfun /* instantiate all the print functions we know about */ -#define vl_print(handle, ...) vlib_cli_output (handle, __VA_ARGS__) #define vl_printfun #include <nsh/nsh.api.h> #undef vl_printfun diff --git a/src/plugins/nsh/nsh-md2-ioam/nsh_md2_ioam_trace.c b/src/plugins/nsh/nsh-md2-ioam/nsh_md2_ioam_trace.c index aad3cffb1db..2c553b39e45 100644 --- a/src/plugins/nsh/nsh-md2-ioam/nsh_md2_ioam_trace.c +++ b/src/plugins/nsh/nsh-md2-ioam/nsh_md2_ioam_trace.c @@ -38,7 +38,6 @@ typedef union } time_u64_t; -/* *INDENT-OFF* */ typedef CLIB_PACKED(struct { u16 class; u8 type; @@ -48,7 +47,6 @@ typedef CLIB_PACKED(struct { u8 reserve; u32 elts[0]; /* Variable type. So keep it generic */ }) nsh_md2_ioam_trace_option_t; -/* *INDENT-ON* */ #define foreach_nsh_md2_ioam_trace_stats \ @@ -333,13 +331,11 @@ nsh_md2_ioam_show_ioam_trace_cmd_fn (vlib_main_t * vm, } -/* *INDENT-OFF* */ VLIB_CLI_COMMAND (nsh_md2_ioam_show_ioam_trace_cmd, static) = { .path = "show ioam nsh-lisp-gpe trace", .short_help = "iOAM trace statistics", .function = nsh_md2_ioam_show_ioam_trace_cmd_fn, }; -/* *INDENT-ON* */ int @@ -376,12 +372,10 @@ nsh_md2_ioam_trace_init (vlib_main_t * vm) return (0); } -/* *INDENT-OFF* */ VLIB_INIT_FUNCTION (nsh_md2_ioam_trace_init) = { .runs_after = VLIB_INITS ("nsh_init", "nsh_md2_ioam_init"), }; -/* *INDENT-ON* */ int nsh_md2_ioam_trace_profile_cleanup (void) diff --git a/src/plugins/nsh/nsh.c b/src/plugins/nsh/nsh.c index ea084e4a553..a2c24e27b26 100644 --- a/src/plugins/nsh/nsh.c +++ b/src/plugins/nsh/nsh.c @@ -18,8 +18,8 @@ #include <vnet/vnet.h> #include <vnet/plugin/plugin.h> #include <nsh/nsh.h> -#include <vnet/gre/gre.h> -#include <vnet/vxlan/vxlan.h> +#include <gre/gre.h> +#include <vxlan/vxlan.h> #include <vnet/vxlan-gpe/vxlan_gpe.h> #include <vnet/l2/l2_classify.h> #include <vnet/adj/adj.h> @@ -164,14 +164,12 @@ format_nsh_tunnel_with_length (u8 * s, va_list * args) return s; } -/* *INDENT-OFF* */ VNET_HW_INTERFACE_CLASS (nsh_hw_class) = { .name = "NSH", .format_header = format_nsh_tunnel_with_length, .build_rewrite = default_build_rewrite, .flags = VNET_HW_INTERFACE_CLASS_FLAG_P2P, }; -/* *INDENT-ON* */ void nsh_md2_set_next_ioam_export_override (uword next) @@ -184,10 +182,11 @@ nsh_md2_set_next_ioam_export_override (uword next) clib_error_t * nsh_init (vlib_main_t * vm) { - vlib_node_t *node; + vlib_node_t *node, *gre4_input, *gre6_input; nsh_main_t *nm = &nsh_main; clib_error_t *error = 0; uword next_node; + vlib_node_registration_t *vxlan4_input, *vxlan6_input; /* Init the main structures from VPP */ nm->vlib_main = vm; @@ -239,19 +238,32 @@ nsh_init (vlib_main_t * vm) vlib_node_add_next (vm, vxlan6_gpe_input_node.index, nsh_aware_vnf_proxy_node.index); - vlib_node_add_next (vm, gre4_input_node.index, nm->nsh_input_node_index); - vlib_node_add_next (vm, gre4_input_node.index, nm->nsh_proxy_node_index); - vlib_node_add_next (vm, gre4_input_node.index, - nsh_aware_vnf_proxy_node.index); - - vlib_node_add_next (vm, gre6_input_node.index, nm->nsh_input_node_index); - vlib_node_add_next (vm, gre6_input_node.index, nm->nsh_proxy_node_index); - vlib_node_add_next (vm, gre6_input_node.index, - nsh_aware_vnf_proxy_node.index); + gre4_input = vlib_get_node_by_name (vm, (u8 *) "gre4-input"); + gre6_input = vlib_get_node_by_name (vm, (u8 *) "gre6-input"); + if (gre4_input == 0 || gre6_input == 0) + { + error = clib_error_return (0, "gre_plugin.so is not loaded"); + return error; + } + vlib_node_add_next (vm, gre4_input->index, nm->nsh_input_node_index); + vlib_node_add_next (vm, gre4_input->index, nm->nsh_proxy_node_index); + vlib_node_add_next (vm, gre4_input->index, nsh_aware_vnf_proxy_node.index); + vlib_node_add_next (vm, gre6_input->index, nm->nsh_input_node_index); + vlib_node_add_next (vm, gre6_input->index, nm->nsh_proxy_node_index); + vlib_node_add_next (vm, gre6_input->index, nsh_aware_vnf_proxy_node.index); /* Add NSH-Proxy support */ - vlib_node_add_next (vm, vxlan4_input_node.index, nm->nsh_proxy_node_index); - vlib_node_add_next (vm, vxlan6_input_node.index, nm->nsh_proxy_node_index); + vxlan4_input = + vlib_get_plugin_symbol ("vxlan_plugin.so", "vxlan4_input_node"); + vxlan6_input = + vlib_get_plugin_symbol ("vxlan_plugin.so", "vxlan6_input_node"); + if (vxlan4_input == 0 || vxlan6_input == 0) + { + error = clib_error_return (0, "vxlan_plugin.so is not loaded"); + return error; + } + vlib_node_add_next (vm, vxlan4_input->index, nm->nsh_proxy_node_index); + vlib_node_add_next (vm, vxlan6_input->index, nm->nsh_proxy_node_index); /* Add NSH-Classifier support */ vlib_node_add_next (vm, ip4_classify_node.index, @@ -270,12 +282,10 @@ nsh_init (vlib_main_t * vm) VLIB_INIT_FUNCTION (nsh_init); -/* *INDENT-OFF* */ VLIB_PLUGIN_REGISTER () = { .version = VPP_BUILD_VER, .description = "Network Service Header (NSH)", }; -/* *INDENT-ON* */ /* * fd.io coding-style-patch-verification: ON diff --git a/src/plugins/nsh/nsh_api.c b/src/plugins/nsh/nsh_api.c index 1faaea36c50..c7a686c8b83 100644 --- a/src/plugins/nsh/nsh_api.c +++ b/src/plugins/nsh/nsh_api.c @@ -64,13 +64,11 @@ format_nsh_name (u8 * s, va_list * args) return format (s, "nsh_tunnel%d", dev_instance); } -/* *INDENT-OFF* */ VNET_DEVICE_CLASS (nsh_device_class, static) = { .name = "NSH", .format_device_name = format_nsh_name, .admin_up_down_function = nsh_interface_admin_up_down, }; -/* *INDENT-ON* */ static void send_nsh_entry_details (nsh_entry_t * t, vl_api_registration_t * rp, u32 context) @@ -169,7 +167,7 @@ vl_api_nsh_add_del_map_t_handler (vl_api_nsh_add_del_map_t * mp) { vl_api_nsh_add_del_map_reply_t *rmp; int rv; - nsh_add_del_map_args_t _a, *a = &_a; + nsh_add_del_map_args_t _a = { 0 }, *a = &_a; u32 map_index = ~0; a->is_add = mp->is_add; @@ -346,7 +344,7 @@ nsh_add_del_map (nsh_add_del_map_args_t * a, u32 * map_indexp) { nsh_hw_if = nm->free_nsh_tunnel_hw_if_indices [vec_len (nm->free_nsh_tunnel_hw_if_indices) - 1]; - _vec_len (nm->free_nsh_tunnel_hw_if_indices) -= 1; + vec_dec_len (nm->free_nsh_tunnel_hw_if_indices, 1); hi = vnet_get_hw_interface (vnm, nsh_hw_if); hi->dev_instance = map_index; @@ -550,7 +548,7 @@ static void vl_api_nsh_add_del_entry_t_handler { vl_api_nsh_add_del_entry_reply_t *rmp; int rv; - nsh_add_del_entry_args_t _a, *a = &_a; + nsh_add_del_entry_args_t _a = { 0 }, *a = &_a; u32 entry_index = ~0; u8 tlvs_len = 0; u8 *data = 0; diff --git a/src/plugins/nsh/nsh_cli.c b/src/plugins/nsh/nsh_cli.c index 7bcaf1c51ad..4288a9654c5 100644 --- a/src/plugins/nsh/nsh_cli.c +++ b/src/plugins/nsh/nsh_cli.c @@ -140,7 +140,6 @@ nsh_get_adj_by_sw_if_index (u32 sw_if_index) { adj_index_t ai = ~0; - /* *INDENT-OFF* */ pool_foreach_index (ai, adj_pool) { if (sw_if_index == adj_get_sw_if_index(ai)) @@ -148,7 +147,6 @@ nsh_get_adj_by_sw_if_index (u32 sw_if_index) return ai; } } - /* *INDENT-ON* */ return ~0; } @@ -290,7 +288,6 @@ nsh_add_del_map_command_fn (vlib_main_t * vm, return 0; } -/* *INDENT-OFF* */ VLIB_CLI_COMMAND (create_nsh_map_command, static) = { .path = "create nsh map", .short_help = @@ -299,7 +296,6 @@ VLIB_CLI_COMMAND (create_nsh_map_command, static) = { " encap-vxlan4-intf <nn> | encap-vxlan6-intf <nn>| encap-eth-intf <nn> | encap-none]\n", .function = nsh_add_del_map_command_fn, }; -/* *INDENT-ON* */ /** * CLI command for showing the mapping between NSH entries @@ -322,12 +318,10 @@ show_nsh_map_command_fn (vlib_main_t * vm, return 0; } -/* *INDENT-OFF* */ VLIB_CLI_COMMAND (show_nsh_map_command, static) = { .path = "show nsh map", .function = show_nsh_map_command_fn, }; -/* *INDENT-ON* */ /** * CLI command for adding NSH entry @@ -494,7 +488,6 @@ nsh_add_del_entry_command_fn (vlib_main_t * vm, return 0; } -/* *INDENT-OFF* */ VLIB_CLI_COMMAND (create_nsh_entry_command, static) = { .path = "create nsh entry", .short_help = @@ -502,7 +495,6 @@ VLIB_CLI_COMMAND (create_nsh_entry_command, static) = { " [c1 <nn> c2 <nn> c3 <nn> c4 <nn>] [tlv-ioam-trace] [del]\n", .function = nsh_add_del_entry_command_fn, }; -/* *INDENT-ON* */ /* format from network order */ u8 * @@ -621,12 +613,10 @@ show_nsh_entry_command_fn (vlib_main_t * vm, return 0; } -/* *INDENT-OFF* */ VLIB_CLI_COMMAND (show_nsh_entry_command, static) = { .path = "show nsh entry", .function = show_nsh_entry_command_fn, }; -/* *INDENT-ON* */ /* * fd.io coding-style-patch-verification: ON diff --git a/src/plugins/nsh/nsh_node.c b/src/plugins/nsh/nsh_node.c index a467d2c34c2..5c084985948 100644 --- a/src/plugins/nsh/nsh_node.c +++ b/src/plugins/nsh/nsh_node.c @@ -906,7 +906,6 @@ static char *nsh_node_error_strings[] = { #undef _ }; -/* *INDENT-OFF* */ /* register nsh-input node */ VLIB_REGISTER_NODE (nsh_input_node) = { @@ -978,7 +977,6 @@ VLIB_REGISTER_NODE (nsh_aware_vnf_proxy_node) = #undef _ }, }; -/* *INDENT-ON* */ /* * fd.io coding-style-patch-verification: ON diff --git a/src/plugins/nsh/nsh_output.c b/src/plugins/nsh/nsh_output.c index 3a3da02f764..9b7014a0ed0 100644 --- a/src/plugins/nsh/nsh_output.c +++ b/src/plugins/nsh/nsh_output.c @@ -366,7 +366,6 @@ VNET_FEATURE_INIT (nsh_interface_output, static) = { }; /* Built-in ip4 tx feature path definition */ -/* *INDENT-OFF* */ VNET_FEATURE_ARC_INIT (nsh_eth_output, static) = { .arc_name = "nsh-eth-output", @@ -379,7 +378,6 @@ VNET_FEATURE_INIT (nsh_eth_tx_drop, static) = .node_name = "error-drop", .runs_before = 0, /* not before any other features */ }; -/* *INDENT-ON* */ /** * @brief Next index values from the NSH incomplete adj node */ diff --git a/src/plugins/nsh/nsh_pop.c b/src/plugins/nsh/nsh_pop.c index 90b8a73b5fb..8de319e158b 100644 --- a/src/plugins/nsh/nsh_pop.c +++ b/src/plugins/nsh/nsh_pop.c @@ -19,7 +19,6 @@ #include <vnet/plugin/plugin.h> #include <nsh/nsh.h> #include <vnet/gre/packet.h> -#include <vnet/vxlan/vxlan.h> #include <vnet/vxlan-gpe/vxlan_gpe.h> #include <vnet/l2/l2_classify.h> |