diff options
Diffstat (limited to 'src/plugins/geneve')
-rw-r--r-- | src/plugins/geneve/decap.c | 6 | ||||
-rw-r--r-- | src/plugins/geneve/encap.c | 2 | ||||
-rw-r--r-- | src/plugins/geneve/geneve.c | 67 | ||||
-rw-r--r-- | src/plugins/geneve/geneve.h | 2 | ||||
-rw-r--r-- | src/plugins/geneve/geneve_api.c | 12 | ||||
-rw-r--r-- | src/plugins/geneve/geneve_test.c | 14 |
6 files changed, 34 insertions, 69 deletions
diff --git a/src/plugins/geneve/decap.c b/src/plugins/geneve/decap.c index bd189913f71..c64121e2829 100644 --- a/src/plugins/geneve/decap.c +++ b/src/plugins/geneve/decap.c @@ -812,7 +812,6 @@ static char *geneve_error_strings[] = { #undef _ }; -/* *INDENT-OFF* */ VLIB_REGISTER_NODE (geneve4_input_node) = { .name = "geneve4-input", /* Takes a vector of packets. */ @@ -847,7 +846,6 @@ VLIB_REGISTER_NODE (geneve6_input_node) = { .format_trace = format_geneve_rx_trace, // $$$$ .unformat_buffer = unformat_geneve_header, }; -/* *INDENT-ON* */ typedef enum { @@ -1252,7 +1250,6 @@ VLIB_NODE_FN (ip4_geneve_bypass_node) (vlib_main_t * vm, return ip_geneve_bypass_inline (vm, node, frame, /* is_ip4 */ 1); } -/* *INDENT-OFF* */ VLIB_REGISTER_NODE (ip4_geneve_bypass_node) = { .name = "ip4-geneve-bypass", @@ -1265,7 +1262,6 @@ VLIB_REGISTER_NODE (ip4_geneve_bypass_node) = .format_buffer = format_ip4_header, .format_trace = format_ip4_forward_next_trace, }; -/* *INDENT-ON* */ VLIB_NODE_FN (ip6_geneve_bypass_node) (vlib_main_t * vm, vlib_node_runtime_t * node, @@ -1274,7 +1270,6 @@ VLIB_NODE_FN (ip6_geneve_bypass_node) (vlib_main_t * vm, return ip_geneve_bypass_inline (vm, node, frame, /* is_ip4 */ 0); } -/* *INDENT-OFF* */ VLIB_REGISTER_NODE (ip6_geneve_bypass_node) = { .name = "ip6-geneve-bypass", @@ -1288,7 +1283,6 @@ VLIB_REGISTER_NODE (ip6_geneve_bypass_node) = .format_buffer = format_ip6_header, .format_trace = format_ip6_forward_next_trace, }; -/* *INDENT-ON* */ /* * fd.io coding-style-patch-verification: ON diff --git a/src/plugins/geneve/encap.c b/src/plugins/geneve/encap.c index 6a84d0c5490..609da2218cf 100644 --- a/src/plugins/geneve/encap.c +++ b/src/plugins/geneve/encap.c @@ -544,7 +544,6 @@ VLIB_NODE_FN (geneve6_encap_node) (vlib_main_t * vm, return geneve_encap_inline (vm, node, from_frame, /* is_ip4 */ 0); } -/* *INDENT-OFF* */ VLIB_REGISTER_NODE (geneve4_encap_node) = { .name = "geneve4-encap", .vector_size = sizeof (u32), @@ -570,7 +569,6 @@ VLIB_REGISTER_NODE (geneve6_encap_node) = { [GENEVE_ENCAP_NEXT_DROP] = "error-drop", }, }; -/* *INDENT-ON* */ /* * fd.io coding-style-patch-verification: ON diff --git a/src/plugins/geneve/geneve.c b/src/plugins/geneve/geneve.c index 62502ef3fde..37b83d01761 100644 --- a/src/plugins/geneve/geneve.c +++ b/src/plugins/geneve/geneve.c @@ -114,7 +114,6 @@ geneve_mac_change (vnet_hw_interface_t * hi, return (NULL); } -/* *INDENT-OFF* */ VNET_DEVICE_CLASS (geneve_device_class, static) = { .name = "GENEVE", .format_device_name = format_geneve_name, @@ -122,7 +121,6 @@ VNET_DEVICE_CLASS (geneve_device_class, static) = { .admin_up_down_function = geneve_interface_admin_up_down, .mac_addr_change_function = geneve_mac_change, }; -/* *INDENT-ON* */ static u8 * format_geneve_header_with_length (u8 * s, va_list * args) @@ -132,13 +130,11 @@ format_geneve_header_with_length (u8 * s, va_list * args) return s; } -/* *INDENT-OFF* */ VNET_HW_INTERFACE_CLASS (geneve_hw_class) = { .name = "GENEVE", .format_header = format_geneve_header_with_length, .build_rewrite = default_build_rewrite, }; -/* *INDENT-ON* */ static void geneve_tunnel_restack_dpo (geneve_tunnel_t * t) @@ -425,18 +421,15 @@ int vnet_geneve_add_del_tunnel vnet_hw_interface_t *hi; if (a->l3_mode) { + vnet_eth_interface_registration_t eir = {}; u32 t_idx = t - vxm->tunnels; u8 address[6] = { 0xd0, 0x0b, 0xee, 0xd0, (u8) (t_idx >> 8), (u8) t_idx }; - clib_error_t *error = - ethernet_register_interface (vnm, geneve_device_class.index, - t_idx, - address, &hw_if_index, 0); - if (error) - { - clib_error_report (error); - return VNET_API_ERROR_INVALID_REGISTRATION; - } + + eir.dev_class_index = geneve_device_class.index; + eir.dev_instance = t_idx; + eir.address = address; + hw_if_index = vnet_eth_register_interface (vnm, &eir); } else { @@ -473,7 +466,8 @@ int vnet_geneve_add_del_tunnel fib_prefix_t tun_remote_pfx; vnet_flood_class_t flood_class = VNET_FLOOD_CLASS_TUNNEL_NORMAL; - fib_prefix_from_ip46_addr (&t->remote, &tun_remote_pfx); + fib_protocol_t fp = fib_ip_proto (is_ip6); + fib_prefix_from_ip46_addr (fp, &t->remote, &tun_remote_pfx); if (!ip46_address_is_multicast (&t->remote)) { /* Unicast tunnel - @@ -497,8 +491,6 @@ int vnet_geneve_add_del_tunnel * with different VNIs, create the output fib adjecency only if * it does not already exist */ - fib_protocol_t fp = fib_ip_proto (is_ip6); - if (vtep_addr_ref (&vxm->vtep_table, t->encap_fib_index, &t->remote) == 1) { @@ -524,15 +516,16 @@ int vnet_geneve_add_del_tunnel * - the forwarding interface is for-us * - the accepting interface is that from the API */ - mfib_table_entry_path_update (t->encap_fib_index, - &mpfx, MFIB_SOURCE_GENEVE, &path); + mfib_table_entry_path_update (t->encap_fib_index, &mpfx, + MFIB_SOURCE_GENEVE, + MFIB_ENTRY_FLAG_NONE, &path); path.frp_sw_if_index = a->mcast_sw_if_index; path.frp_flags = FIB_ROUTE_PATH_FLAG_NONE; path.frp_mitf_flags = MFIB_ITF_FLAG_ACCEPT; - mfei = mfib_table_entry_path_update (t->encap_fib_index, - &mpfx, - MFIB_SOURCE_GENEVE, &path); + mfei = mfib_table_entry_path_update ( + t->encap_fib_index, &mpfx, MFIB_SOURCE_GENEVE, + MFIB_ENTRY_FLAG_NONE, &path); /* * Create the mcast adjacency to send traffic to the group @@ -881,7 +874,6 @@ done: * Example of how to delete a GENEVE Tunnel: * @cliexcmd{create geneve tunnel local 10.0.3.1 remote 10.0.3.3 vni 13 del} ?*/ -/* *INDENT-OFF* */ VLIB_CLI_COMMAND (create_geneve_tunnel_command, static) = { .path = "create geneve tunnel", .short_help = @@ -890,7 +882,6 @@ VLIB_CLI_COMMAND (create_geneve_tunnel_command, static) = { " [encap-vrf-id <nn>] [decap-next [l2|node <name>]] [l3-mode] [del]", .function = geneve_add_del_tunnel_command_fn, }; -/* *INDENT-ON* */ static clib_error_t * show_geneve_tunnel_command_fn (vlib_main_t * vm, @@ -920,13 +911,11 @@ show_geneve_tunnel_command_fn (vlib_main_t * vm, * [0] local 10.0.3.1 remote 10.0.3.3 vni 13 encap_fib_index 0 sw_if_index 5 decap_next l2 * @cliexend ?*/ -/* *INDENT-OFF* */ VLIB_CLI_COMMAND (show_geneve_tunnel_command, static) = { .path = "show geneve tunnel", .short_help = "show geneve tunnel", .function = show_geneve_tunnel_command_fn, }; -/* *INDENT-ON* */ void @@ -995,7 +984,7 @@ set_ip4_geneve_bypass (vlib_main_t * vm, /*? * This command adds the 'ip4-geneve-bypass' graph node for a given interface. * By adding the IPv4 geneve-bypass graph node to an interface, the node checks - * for and validate input geneve packet and bypass ip4-lookup, ip4-local, + * for and validate input geneve packet and bypass ip4-lookup, ip4-local, * ip4-udp-lookup nodes to speedup geneve packet forwarding. This node will * cause extra overhead to for non-geneve packets which is kept at a minimum. * @@ -1014,13 +1003,13 @@ set_ip4_geneve_bypass (vlib_main_t * vm, * * Example of graph node after ip4-geneve-bypass is enabled: * @cliexstart{show vlib graph ip4-geneve-bypass} - * Name Next Previous - * ip4-geneve-bypass error-drop [0] ip4-input - * geneve4-input [1] ip4-input-no-checksum - * ip4-lookup [2] + * Name Next Previous + * ip4-geneve-bypass error-drop [0] ip4-input + * geneve4-input [1] ip4-input-no-checksum + * ip4-lookup [2] * @cliexend * - * Example of how to display the feature enabed on an interface: + * Example of how to display the feature enabled on an interface: * @cliexstart{show ip interface features GigabitEthernet2/0/0} * IP feature paths configured on GigabitEthernet2/0/0... * ... @@ -1034,13 +1023,11 @@ set_ip4_geneve_bypass (vlib_main_t * vm, * @cliexcmd{set interface ip geneve-bypass GigabitEthernet2/0/0 del} * @endparblock ?*/ -/* *INDENT-OFF* */ VLIB_CLI_COMMAND (set_interface_ip_geneve_bypass_command, static) = { .path = "set interface ip geneve-bypass", .function = set_ip4_geneve_bypass, .short_help = "set interface ip geneve-bypass <interface> [del]", }; -/* *INDENT-ON* */ static clib_error_t * set_ip6_geneve_bypass (vlib_main_t * vm, @@ -1052,7 +1039,7 @@ set_ip6_geneve_bypass (vlib_main_t * vm, /*? * This command adds the 'ip6-geneve-bypass' graph node for a given interface. * By adding the IPv6 geneve-bypass graph node to an interface, the node checks - * for and validate input geneve packet and bypass ip6-lookup, ip6-local, + * for and validate input geneve packet and bypass ip6-lookup, ip6-local, * ip6-udp-lookup nodes to speedup geneve packet forwarding. This node will * cause extra overhead to for non-geneve packets which is kept at a minimum. * @@ -1071,13 +1058,13 @@ set_ip6_geneve_bypass (vlib_main_t * vm, * * Example of graph node after ip6-geneve-bypass is enabled: * @cliexstart{show vlib graph ip6-geneve-bypass} - * Name Next Previous - * ip6-geneve-bypass error-drop [0] ip6-input - * geneve6-input [1] ip4-input-no-checksum - * ip6-lookup [2] + * Name Next Previous + * ip6-geneve-bypass error-drop [0] ip6-input + * geneve6-input [1] ip4-input-no-checksum + * ip6-lookup [2] * @cliexend * - * Example of how to display the feature enabed on an interface: + * Example of how to display the feature enabled on an interface: * @cliexstart{show ip interface features GigabitEthernet2/0/0} * IP feature paths configured on GigabitEthernet2/0/0... * ... @@ -1091,13 +1078,11 @@ set_ip6_geneve_bypass (vlib_main_t * vm, * @cliexcmd{set interface ip6 geneve-bypass GigabitEthernet2/0/0 del} * @endparblock ?*/ -/* *INDENT-OFF* */ VLIB_CLI_COMMAND (set_interface_ip6_geneve_bypass_command, static) = { .path = "set interface ip6 geneve-bypass", .function = set_ip6_geneve_bypass, .short_help = "set interface ip6 geneve-bypass <interface> [del]", }; -/* *INDENT-ON* */ clib_error_t * geneve_init (vlib_main_t * vm) diff --git a/src/plugins/geneve/geneve.h b/src/plugins/geneve/geneve.h index 0cc14214b9b..deb51abe126 100644 --- a/src/plugins/geneve/geneve.h +++ b/src/plugins/geneve/geneve.h @@ -187,9 +187,7 @@ typedef struct u16 msg_id_base; /* cache for last 8 geneve tunnel */ -#ifdef CLIB_HAVE_VEC512 vtep4_cache_t vtep4_u512; -#endif } geneve_main_t; diff --git a/src/plugins/geneve/geneve_api.c b/src/plugins/geneve/geneve_api.c index d35a1bf5dbc..120fab93561 100644 --- a/src/plugins/geneve/geneve_api.c +++ b/src/plugins/geneve/geneve_api.c @@ -97,12 +97,10 @@ static void vl_api_geneve_add_del_tunnel_t_handler rv = vnet_geneve_add_del_tunnel (&a, &sw_if_index); out: - /* *INDENT-OFF* */ REPLY_MACRO2(VL_API_GENEVE_ADD_DEL_TUNNEL_REPLY, ({ rmp->sw_if_index = ntohl (sw_if_index); })); - /* *INDENT-ON* */ } static void vl_api_geneve_add_del_tunnel2_t_handler @@ -149,12 +147,10 @@ static void vl_api_geneve_add_del_tunnel2_t_handler rv = vnet_geneve_add_del_tunnel (&a, &sw_if_index); out: - /* *INDENT-OFF* */ REPLY_MACRO2(VL_API_GENEVE_ADD_DEL_TUNNEL2_REPLY, ({ rmp->sw_if_index = ntohl (sw_if_index); })); - /* *INDENT-ON* */ } static void send_geneve_tunnel_details @@ -201,12 +197,10 @@ static void vl_api_geneve_tunnel_dump_t_handler if (~0 == sw_if_index) { - /* *INDENT-OFF* */ pool_foreach (t, vxm->tunnels) { send_geneve_tunnel_details(t, reg, mp->context); } - /* *INDENT-ON* */ } else { @@ -238,8 +232,8 @@ geneve_api_hookup (vlib_main_t * vm) */ geneve_base_msg_id = setup_message_id_table (); - am->api_trace_cfg[VL_API_GENEVE_ADD_DEL_TUNNEL + REPLY_MSG_ID_BASE].size += - 16 * sizeof (u32); + vl_api_increase_msg_trace_size ( + am, VL_API_GENEVE_ADD_DEL_TUNNEL + REPLY_MSG_ID_BASE, 16 * sizeof (u32)); return 0; } @@ -249,12 +243,10 @@ VLIB_API_INIT_FUNCTION (geneve_api_hookup); #include <vlib/unix/plugin.h> #include <vpp/app/version.h> -/* *INDENT-OFF* */ VLIB_PLUGIN_REGISTER () = { .version = VPP_BUILD_VER, .description = "GENEVE Tunnels", }; -/* *INDENT-ON* */ /* * fd.io coding-style-patch-verification: ON diff --git a/src/plugins/geneve/geneve_test.c b/src/plugins/geneve/geneve_test.c index ad6d3296ef6..e777e9b998e 100644 --- a/src/plugins/geneve/geneve_test.c +++ b/src/plugins/geneve/geneve_test.c @@ -26,7 +26,7 @@ #include <vnet/format_fns.h> #include <geneve/geneve.api_enum.h> #include <geneve/geneve.api_types.h> -#include <vpp/api/vpe.api_types.h> +#include <vlibmemory/vlib.api_types.h> typedef struct { @@ -41,13 +41,11 @@ geneve_test_main_t geneve_test_main; #define __plugin_msg_base geneve_test_main.msg_id_base #include <vlibapi/vat_helper_macros.h> -/* Macro to finish up custom dump fns */ -#define vl_print(handle, ...) vlib_cli_output (handle, __VA_ARGS__) -#define FINISH \ - vec_add1 (s, 0); \ - vl_print (handle, (char *)s); \ - vec_free (s); \ - return handle; +#define FINISH \ + vec_add1 (s, 0); \ + vlib_cli_output (handle, (char *) s); \ + vec_free (s); \ + return handle; static void vl_api_geneve_add_del_tunnel_reply_t_handler (vl_api_geneve_add_del_tunnel_reply_t * mp) |