From 1317ec2f79902634e4d4ef99e1ad2e5ad97918b1 Mon Sep 17 00:00:00 2001 From: Derek Foster Date: Wed, 8 Jan 2025 19:25:40 -0800 Subject: [PATCH] [ovsp4rt] Update internal API to return status - Modified the functions in the internal C++ API to return absl::Status. Explicitly ignored return status in the C API wrappers. Status is currently for use in testing. Note that issue #618 proposes that public APIs should return status. - Moved ovsp4rt_str_to_tunnel_type() to a separate source file for C api functions that are not wrappers. Signed-off-by: Derek Foster --- ovs-p4rt/sidecar/CMakeLists.txt | 2 + ovs-p4rt/sidecar/newovsp4rt.cc | 171 ++++++++++------------- ovs-p4rt/sidecar/ovsp4rt_internal_api.h | 45 +++--- ovs-p4rt/sidecar/ovsp4rt_journal_api.cc | 31 +--- ovs-p4rt/sidecar/ovsp4rt_simple_api.cc | 22 +++ ovs-p4rt/sidecar/ovsp4rt_standard_api.cc | 29 +--- 6 files changed, 137 insertions(+), 163 deletions(-) create mode 100644 ovs-p4rt/sidecar/ovsp4rt_simple_api.cc diff --git a/ovs-p4rt/sidecar/CMakeLists.txt b/ovs-p4rt/sidecar/CMakeLists.txt index 657f94fa..3515f10b 100644 --- a/ovs-p4rt/sidecar/CMakeLists.txt +++ b/ovs-p4rt/sidecar/CMakeLists.txt @@ -35,10 +35,12 @@ if(BUILD_CLIENT) target_sources(ovs_sidecar_o PRIVATE ovsp4rt_internal_api.h ovsp4rt_journal_api.cc + ovsp4rt_simple_api.cc ) else() target_sources(ovs_sidecar_o PRIVATE ovsp4rt_internal_api.h + ovsp4rt_simple_api.cc ovsp4rt_standard_api.cc ) endif() diff --git a/ovs-p4rt/sidecar/newovsp4rt.cc b/ovs-p4rt/sidecar/newovsp4rt.cc index b85a786e..3e46f4f3 100644 --- a/ovs-p4rt/sidecar/newovsp4rt.cc +++ b/ovs-p4rt/sidecar/newovsp4rt.cc @@ -2223,19 +2223,19 @@ absl::Status ConfigSrcIpMacMapTableEntry(ClientInterface& client, // learn_info is passed by value because this function may make local // modifications to it. //---------------------------------------------------------------------- -void DoConfigFdbEntry(ClientInterface& client, - struct mac_learning_info learn_info, bool insert_entry, - const char* grpc_addr) { +absl::Status DoConfigFdbEntry(ClientInterface& client, + struct mac_learning_info learn_info, + bool insert_entry, const char* grpc_addr) { absl::Status status; // Start a new client session. status = client.connect(grpc_addr); - if (!status.ok()) return; + if (!status.ok()) return status; // Fetch P4Info object from server. ::p4::config::v1::P4Info p4info; status = client.getPipelineConfig(&p4info); - if (!status.ok()) return; + if (!status.ok()) return status; /* In the delete case, we do not know whether this is a Tunnel learn * entry or a regular VSI learn entry. Check for a match in one of @@ -2269,39 +2269,29 @@ void DoConfigFdbEntry(ClientInterface& client, GetFdbTunnelTableEntry(client, learn_info, p4info, true); if (status_or_read_response.ok()) { // Return if entry already exists. - return; + return status_or_read_response.status(); } } - status = - ConfigFdbTunnelTableEntry(client, learn_info, p4info, insert_entry); - if (!status.ok()) { - // Ignore errors (why?) - } + // Ignore errors (why?) + (void)ConfigFdbTunnelTableEntry(client, learn_info, p4info, insert_entry); - status = ConfigL2TunnelTableEntry(client, learn_info, p4info, insert_entry); - if (!status.ok()) { - // Ignore errors (why?) - } + // Ignore errors (why?) + (void)ConfigL2TunnelTableEntry(client, learn_info, p4info, insert_entry); - status = ConfigFdbSmacTableEntry(client, learn_info, p4info, insert_entry); - if (!status.ok()) { - // Ignore errors (why?) - } + // Ignore errors (why?) + (void)ConfigFdbSmacTableEntry(client, learn_info, p4info, insert_entry); } else { if (insert_entry) { auto status_or_read_response = GetFdbVlanTableEntry(client, learn_info, p4info, true); if (status_or_read_response.ok()) { // Return if entry already exists. - return; + return absl::OkStatus(); } - status = - ConfigFdbRxVlanTableEntry(client, learn_info, p4info, insert_entry); - if (!status.ok()) { - // Ignore errors (why?) - } + // Ignore errors (why?) + (void)ConfigFdbRxVlanTableEntry(client, learn_info, p4info, insert_entry); // TODO(derek): refactor (extract method) // @@ -2310,7 +2300,7 @@ void DoConfigFdbEntry(ClientInterface& client, auto response_or_status = GetTxAccVsiTableEntry(client, learn_info.src_port, p4info); if (!response_or_status.ok()) { - return; + return response_or_status.status(); } ::p4::v1::ReadResponse read_response = @@ -2344,57 +2334,55 @@ void DoConfigFdbEntry(ClientInterface& client, // end of refactoring } - status = - ConfigFdbTxVlanTableEntry(client, learn_info, p4info, insert_entry); - if (!status.ok()) { - // Ignore errors (why?) - } + // Ignore errors (why?) + (void)ConfigFdbTxVlanTableEntry(client, learn_info, p4info, insert_entry); - status = ConfigFdbSmacTableEntry(client, learn_info, p4info, insert_entry); - if (!status.ok()) { - // Ignore errors (why?) - } + // Ignore errors (why?) + (void)ConfigFdbSmacTableEntry(client, learn_info, p4info, insert_entry); } + + return absl::OkStatus(); } //---------------------------------------------------------------------- // DoConfigRxTunnelSrcEntry (ES2K) //---------------------------------------------------------------------- -void DoConfigRxTunnelSrcEntry(ClientInterface& client, - const struct tunnel_info& tunnel_info, - bool insert_entry, const char* grpc_addr) { +absl::Status DoConfigRxTunnelSrcEntry(ClientInterface& client, + const struct tunnel_info& tunnel_info, + bool insert_entry, + const char* grpc_addr) { absl::Status status; // Start a new client session. status = client.connect(grpc_addr); - if (!status.ok()) return; + if (!status.ok()) return status; // Fetch P4Info object from server. ::p4::config::v1::P4Info p4info; status = client.getPipelineConfig(&p4info); - if (!status.ok()) return; + if (!status.ok()) return status; - status = ConfigRxTunnelSrcPortTableEntry(client, tunnel_info, p4info, - insert_entry); - if (!status.ok()) return; + return ConfigRxTunnelSrcPortTableEntry(client, tunnel_info, p4info, + insert_entry); } //---------------------------------------------------------------------- // DoConfigTunnelSrcPortEntry (ES2K) //---------------------------------------------------------------------- -void DoConfigTunnelSrcPortEntry(ClientInterface& client, - const struct src_port_info& tnl_sp, - bool insert_entry, const char* grpc_addr) { +absl::Status DoConfigTunnelSrcPortEntry(ClientInterface& client, + const struct src_port_info& tnl_sp, + bool insert_entry, + const char* grpc_addr) { absl::Status status; // Start a new client session. status = client.connect(grpc_addr); - if (!status.ok()) return; + if (!status.ok()) return status; // Fetch P4Info object from server. ::p4::config::v1::P4Info p4info; status = client.getPipelineConfig(&p4info); - if (!status.ok()) return; + if (!status.ok()) return status; ::p4::v1::WriteRequest write_request; ::p4::v1::TableEntry* table_entry; @@ -2403,8 +2391,7 @@ void DoConfigTunnelSrcPortEntry(ClientInterface& client, PrepareSrcPortTableEntry(table_entry, tnl_sp, p4info, insert_entry); - status = client.sendWriteRequest(write_request); - if (!status.ok()) return; + return client.sendWriteRequest(write_request); } //---------------------------------------------------------------------- @@ -2413,18 +2400,19 @@ void DoConfigTunnelSrcPortEntry(ClientInterface& client, // vsi_sp is passed by value because this function makes local // modifications to it. //---------------------------------------------------------------------- -void DoConfigSrcPortEntry(ClientInterface& client, struct src_port_info vsi_sp, - bool insert_entry, const char* grpc_addr) { +absl::Status DoConfigSrcPortEntry(ClientInterface& client, + struct src_port_info vsi_sp, + bool insert_entry, const char* grpc_addr) { absl::Status status; // Start a new client session. status = client.connect(grpc_addr); - if (!status.ok()) return; + if (!status.ok()) return status; // Fetch P4Info object from server. ::p4::config::v1::P4Info p4info; status = client.getPipelineConfig(&p4info); - if (!status.ok()) return; + if (!status.ok()) return status; // TODO(derek): refactor (extract method) // @@ -2432,7 +2420,7 @@ void DoConfigSrcPortEntry(ClientInterface& client, struct src_port_info vsi_sp, // uint32_t src_port, uint32_t& vsi_port); auto response_or_status = GetTxAccVsiTableEntry(client, vsi_sp.src_port, p4info); - if (!response_or_status.ok()) return; + if (!response_or_status.ok()) return response_or_status.status(); ::p4::v1::ReadResponse read_response = std::move(response_or_status).value(); std::vector<::p4::v1::TableEntry> table_entries; @@ -2463,31 +2451,29 @@ void DoConfigSrcPortEntry(ClientInterface& client, struct src_port_info vsi_sp, vsi_sp.src_port = host_sp; // end of refactoring - status = ConfigureVsiSrcPortTableEntry(client, vsi_sp, p4info, insert_entry); - if (!status.ok()) return; + return ConfigureVsiSrcPortTableEntry(client, vsi_sp, p4info, insert_entry); } //---------------------------------------------------------------------- // DoConfigVlanEntry (ES2K) //---------------------------------------------------------------------- -void DoConfigVlanEntry(ClientInterface& client, uint16_t vlan_id, - bool insert_entry, const char* grpc_addr) { +absl::Status DoConfigVlanEntry(ClientInterface& client, uint16_t vlan_id, + bool insert_entry, const char* grpc_addr) { absl::Status status; // Start a new client session. status = client.connect(grpc_addr); - if (!status.ok()) return; + if (!status.ok()) return status; // Fetch P4Info object from server. ::p4::config::v1::P4Info p4info; status = client.getPipelineConfig(&p4info); - if (!status.ok()) return; + if (!status.ok()) return status; status = ConfigVlanPushTableEntry(client, vlan_id, p4info, insert_entry); - if (!status.ok()) return; + if (!status.ok()) return status; - status = ConfigVlanPopTableEntry(client, vlan_id, p4info, insert_entry); - if (!status.ok()) return; + return ConfigVlanPopTableEntry(client, vlan_id, p4info, insert_entry); } #elif defined(DPDK_TARGET) @@ -2495,19 +2481,19 @@ void DoConfigVlanEntry(ClientInterface& client, uint16_t vlan_id, //---------------------------------------------------------------------- // DoConfigFdbEntry (DPDK) //---------------------------------------------------------------------- -void DoConfigFdbEntry(ClientInterface& client, - struct mac_learning_info learn_info, bool insert_entry, - const char* grpc_addr) { +absl::Status DoConfigFdbEntry(ClientInterface& client, + struct mac_learning_info learn_info, + bool insert_entry, const char* grpc_addr) { absl::Status status; // Start a new client session. status = client.connect(grpc_addr); - if (!status.ok()) return; + if (!status.ok()) return status; // Fetch P4Info object from server. ::p4::config::v1::P4Info p4info; status = client.getPipelineConfig(&p4info); - if (!status.ok()) return; + if (!status.ok()) return status; if (learn_info.is_tunnel) { status = @@ -2515,12 +2501,12 @@ void DoConfigFdbEntry(ClientInterface& client, } else if (learn_info.is_vlan) { status = ConfigFdbTxVlanTableEntry(client, learn_info, p4info, insert_entry); - if (!status.ok()) return; + if (!status.ok()) return status; status = ConfigFdbRxVlanTableEntry(client, learn_info, p4info, insert_entry); - if (!status.ok()) return; } + return status; } #endif // DPDK_TARGET @@ -2528,31 +2514,29 @@ void DoConfigFdbEntry(ClientInterface& client, //---------------------------------------------------------------------- // DoConfigTunnelEntry (common) //---------------------------------------------------------------------- -void DoConfigTunnelEntry(ClientInterface& client, - const struct tunnel_info& tunnel_info, - bool insert_entry, const char* grpc_addr) { +absl::Status DoConfigTunnelEntry(ClientInterface& client, + const struct tunnel_info& tunnel_info, + bool insert_entry, const char* grpc_addr) { absl::Status status; // Start a new client session. status = client.connect(grpc_addr); - if (!status.ok()) return; + if (!status.ok()) return status; // Fetch P4Info object from server. ::p4::config::v1::P4Info p4info; status = client.getPipelineConfig(&p4info); - if (!status.ok()) return; + if (!status.ok()) return status; status = ConfigEncapTableEntry(client, tunnel_info, p4info, insert_entry); - if (!status.ok()) return; + if (!status.ok()) return status; #if defined(ES2K_TARGET) status = ConfigDecapTableEntry(client, tunnel_info, p4info, insert_entry); - if (!status.ok()) return; + if (!status.ok()) return status; #endif - status = - ConfigTunnelTermTableEntry(client, tunnel_info, p4info, insert_entry); - if (!status.ok()) return; + return ConfigTunnelTermTableEntry(client, tunnel_info, p4info, insert_entry); } #if defined(ES2K_TARGET) @@ -2560,19 +2544,19 @@ void DoConfigTunnelEntry(ClientInterface& client, //---------------------------------------------------------------------- // DoConfigIpMacMapEntry (ES2K) //---------------------------------------------------------------------- -void DoConfigIpMacMapEntry(ClientInterface& client, - const struct ip_mac_map_info& ip_info, - bool insert_entry, const char* grpc_addr) { +absl::Status DoConfigIpMacMapEntry(ClientInterface& client, + const struct ip_mac_map_info& ip_info, + bool insert_entry, const char* grpc_addr) { absl::Status status; // Start a new client session. status = client.connect(grpc_addr); - if (!status.ok()) return; + if (!status.ok()) return status; // Fetch P4Info object from server. ::p4::config::v1::P4Info p4info; status = client.getPipelineConfig(&p4info); - if (!status.ok()) return; + if (!status.ok()) return status; if (insert_entry) { auto status_or_read_response = GetVmSrcTableEntry(client, ip_info, p4info); @@ -2582,26 +2566,23 @@ void DoConfigIpMacMapEntry(ClientInterface& client, } if (ValidIpAddr(ip_info.src_ip_addr.ip.v4addr.s_addr)) { - status = ConfigSrcIpMacMapTableEntry(client, ip_info, p4info, insert_entry); - if (!status.ok()) { - // Ignore errors (why?) - } + // Ignore errors (why?) + (void)ConfigSrcIpMacMapTableEntry(client, ip_info, p4info, insert_entry); } try_dstip: if (insert_entry) { auto status_or_read_response = GetVmDstTableEntry(client, ip_info, p4info); if (status_or_read_response.ok()) { - return; + return status_or_read_response.status(); } } if (ValidIpAddr(ip_info.src_ip_addr.ip.v4addr.s_addr)) { - status = ConfigDstIpMacMapTableEntry(client, ip_info, p4info, insert_entry); - if (!status.ok()) { - // Ignore errors (why?) - } + // Ignore errors (why?) + (void)ConfigDstIpMacMapTableEntry(client, ip_info, p4info, insert_entry); } + return absl::OkStatus(); } #endif // ES2K_TARGET diff --git a/ovs-p4rt/sidecar/ovsp4rt_internal_api.h b/ovs-p4rt/sidecar/ovsp4rt_internal_api.h index 71bc7b45..8008b1e0 100644 --- a/ovs-p4rt/sidecar/ovsp4rt_internal_api.h +++ b/ovs-p4rt/sidecar/ovsp4rt_internal_api.h @@ -7,40 +7,43 @@ #ifndef OVSP4RT_INTERNAL_API_H_ #define OVSP4RT_INTERNAL_API_H_ +#include "absl/status/status.h" #include "client/ovsp4rt_client_interface.h" #include "ovsp4rt/ovs-p4rt.h" namespace ovsp4rt { -extern void DoConfigFdbEntry(ClientInterface& client, - struct mac_learning_info learn_info, - bool insert_entry, const char* grpc_addr); +extern absl::Status DoConfigFdbEntry(ClientInterface& client, + struct mac_learning_info learn_info, + bool insert_entry, const char* grpc_addr); -extern void DoConfigTunnelEntry(ClientInterface& client, - const struct tunnel_info& tunnel_info, - bool insert_entry, const char* grpc_addr); +extern absl::Status DoConfigTunnelEntry(ClientInterface& client, + const struct tunnel_info& tunnel_info, + bool insert_entry, + const char* grpc_addr); #if defined(ES2K_TARGET) -extern void DoConfigIpMacMapEntry(ClientInterface& client, - const struct ip_mac_map_info& ip_info, - bool insert_entry, const char* grpc_addr); +extern absl::Status DoConfigIpMacMapEntry(ClientInterface& client, + const struct ip_mac_map_info& ip_info, + bool insert_entry, + const char* grpc_addr); -extern void DoConfigRxTunnelSrcEntry(ClientInterface& client, - const struct tunnel_info& tunnel_info, - bool insert_entry, const char* grpc_addr); +extern absl::Status DoConfigRxTunnelSrcEntry( + ClientInterface& client, const struct tunnel_info& tunnel_info, + bool insert_entry, const char* grpc_addr); -extern void DoConfigSrcPortEntry(ClientInterface& client, - struct src_port_info vsi_sp, bool insert_entry, - const char* grpc_addr); +extern absl::Status DoConfigSrcPortEntry(ClientInterface& client, + struct src_port_info vsi_sp, + bool insert_entry, + const char* grpc_addr); -extern void DoConfigTunnelSrcPortEntry(ClientInterface& client, - const struct src_port_info& tnl_sp, - bool insert_entry, - const char* grpc_addr); +extern absl::Status DoConfigTunnelSrcPortEntry( + ClientInterface& client, const struct src_port_info& tnl_sp, + bool insert_entry, const char* grpc_addr); -extern void DoConfigVlanEntry(ClientInterface& client, uint16_t vlan_id, - bool insert_entry, const char* grpc_addr); +extern absl::Status DoConfigVlanEntry(ClientInterface& client, uint16_t vlan_id, + bool insert_entry, const char* grpc_addr); #endif // ES2K_TARGET diff --git a/ovs-p4rt/sidecar/ovsp4rt_journal_api.cc b/ovs-p4rt/sidecar/ovsp4rt_journal_api.cc index 2b66ee56..3505b7c0 100644 --- a/ovs-p4rt/sidecar/ovsp4rt_journal_api.cc +++ b/ovs-p4rt/sidecar/ovsp4rt_journal_api.cc @@ -18,7 +18,7 @@ void ovsp4rt_config_fdb_entry(struct mac_learning_info learn_info, JournalClient client; client.journal().recordInput(__func__, learn_info, insert_entry); - DoConfigFdbEntry(client, learn_info, insert_entry, grpc_addr); + (void)DoConfigFdbEntry(client, learn_info, insert_entry, grpc_addr); } //---------------------------------------------------------------------- @@ -31,24 +31,7 @@ void ovsp4rt_config_tunnel_entry(struct tunnel_info tunnel_info, JournalClient client; client.journal().recordInput(__func__, tunnel_info, insert_entry); - DoConfigTunnelEntry(client, tunnel_info, insert_entry, grpc_addr); -} - -//---------------------------------------------------------------------- -// ovsp4rt_str_to_tunnel_type (DPDK, ES2K) -// -// It is unclear whether this function belongs here or in a separate -// file. -//---------------------------------------------------------------------- -enum ovs_tunnel_type ovsp4rt_str_to_tunnel_type(const char* tnl_type) { - if (tnl_type) { - if (strcmp(tnl_type, "vxlan") == 0) { - return OVS_TUNNEL_VXLAN; - } else if (strcmp(tnl_type, "geneve") == 0) { - return OVS_TUNNEL_GENEVE; - } - } - return OVS_TUNNEL_UNKNOWN; + (void)DoConfigTunnelEntry(client, tunnel_info, insert_entry, grpc_addr); } #if defined(DPDK_TARGET) @@ -86,7 +69,7 @@ void ovsp4rt_config_ip_mac_map_entry(struct ip_mac_map_info ip_info, JournalClient client; client.journal().recordInput(__func__, ip_info, insert_entry); - DoConfigIpMacMapEntry(client, ip_info, insert_entry, grpc_addr); + (void)DoConfigIpMacMapEntry(client, ip_info, insert_entry, grpc_addr); } //---------------------------------------------------------------------- @@ -100,7 +83,7 @@ void ovsp4rt_config_rx_tunnel_src_entry(struct tunnel_info tunnel_info, JournalClient client; client.journal().recordInput(__func__, tunnel_info, insert_entry); - DoConfigRxTunnelSrcEntry(client, tunnel_info, insert_entry, grpc_addr); + (void)DoConfigRxTunnelSrcEntry(client, tunnel_info, insert_entry, grpc_addr); } //---------------------------------------------------------------------- @@ -113,7 +96,7 @@ void ovsp4rt_config_src_port_entry(struct src_port_info vsi_sp, JournalClient client; client.journal().recordInput(__func__, vsi_sp, insert_entry); - DoConfigSrcPortEntry(client, vsi_sp, insert_entry, grpc_addr); + (void)DoConfigSrcPortEntry(client, vsi_sp, insert_entry, grpc_addr); } //---------------------------------------------------------------------- @@ -127,7 +110,7 @@ void ovsp4rt_config_tunnel_src_port_entry(struct src_port_info tnl_sp, JournalClient client; client.journal().recordInput(__func__, tnl_sp, insert_entry); - DoConfigTunnelSrcPortEntry(client, tnl_sp, insert_entry, grpc_addr); + (void)DoConfigTunnelSrcPortEntry(client, tnl_sp, insert_entry, grpc_addr); } //---------------------------------------------------------------------- @@ -140,7 +123,7 @@ void ovsp4rt_config_vlan_entry(uint16_t vlan_id, bool insert_entry, JournalClient client; client.journal().recordInput(__func__, vlan_id, insert_entry); - DoConfigVlanEntry(client, vlan_id, insert_entry, grpc_addr); + (void)DoConfigVlanEntry(client, vlan_id, insert_entry, grpc_addr); } #endif // ES2K_TARGET diff --git a/ovs-p4rt/sidecar/ovsp4rt_simple_api.cc b/ovs-p4rt/sidecar/ovsp4rt_simple_api.cc new file mode 100644 index 00000000..16315885 --- /dev/null +++ b/ovs-p4rt/sidecar/ovsp4rt_simple_api.cc @@ -0,0 +1,22 @@ +// Copyright 2022-2025 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +// ovsprt C API functions that do not have a C++ implementation. + +#include + +#include "ovsp4rt/ovs-p4rt.h" + +//---------------------------------------------------------------------- +// ovsp4rt_str_to_tunnel_type (common) +//---------------------------------------------------------------------- +enum ovs_tunnel_type ovsp4rt_str_to_tunnel_type(const char* tnl_type) { + if (tnl_type) { + if (strcmp(tnl_type, "vxlan") == 0) { + return OVS_TUNNEL_VXLAN; + } else if (strcmp(tnl_type, "geneve") == 0) { + return OVS_TUNNEL_GENEVE; + } + } + return OVS_TUNNEL_UNKNOWN; +} diff --git a/ovs-p4rt/sidecar/ovsp4rt_standard_api.cc b/ovs-p4rt/sidecar/ovsp4rt_standard_api.cc index 4fa2a451..d501ad0c 100644 --- a/ovs-p4rt/sidecar/ovsp4rt_standard_api.cc +++ b/ovs-p4rt/sidecar/ovsp4rt_standard_api.cc @@ -17,7 +17,7 @@ void ovsp4rt_config_fdb_entry(struct mac_learning_info learn_info, Client client; - DoConfigFdbEntry(client, learn_info, insert_entry, grpc_addr); + (void)DoConfigFdbEntry(client, learn_info, insert_entry, grpc_addr); } //---------------------------------------------------------------------- @@ -29,24 +29,7 @@ void ovsp4rt_config_tunnel_entry(struct tunnel_info tunnel_info, Client client; - DoConfigTunnelEntry(client, tunnel_info, insert_entry, grpc_addr); -} - -//---------------------------------------------------------------------- -// ovsp4rt_str_to_tunnel_type (DPDK, ES2K) -// -// It is unclear whether this function belongs here or in a separate -// file. -//---------------------------------------------------------------------- -enum ovs_tunnel_type ovsp4rt_str_to_tunnel_type(const char* tnl_type) { - if (tnl_type) { - if (strcmp(tnl_type, "vxlan") == 0) { - return OVS_TUNNEL_VXLAN; - } else if (strcmp(tnl_type, "geneve") == 0) { - return OVS_TUNNEL_GENEVE; - } - } - return OVS_TUNNEL_UNKNOWN; + (void)DoConfigTunnelEntry(client, tunnel_info, insert_entry, grpc_addr); } #if defined(DPDK_TARGET) @@ -83,7 +66,7 @@ void ovsp4rt_config_ip_mac_map_entry(struct ip_mac_map_info ip_info, Client client; - DoConfigIpMacMapEntry(client, ip_info, insert_entry, grpc_addr); + (void)DoConfigIpMacMapEntry(client, ip_info, insert_entry, grpc_addr); } //---------------------------------------------------------------------- @@ -108,7 +91,7 @@ void ovsp4rt_config_src_port_entry(struct src_port_info vsi_sp, Client client; - DoConfigSrcPortEntry(client, vsi_sp, insert_entry, grpc_addr); + (void)DoConfigSrcPortEntry(client, vsi_sp, insert_entry, grpc_addr); } //---------------------------------------------------------------------- @@ -121,7 +104,7 @@ void ovsp4rt_config_tunnel_src_port_entry(struct src_port_info tnl_sp, Client client; - DoConfigTunnelSrcPortEntry(client, tnl_sp, insert_entry, grpc_addr); + (void)DoConfigTunnelSrcPortEntry(client, tnl_sp, insert_entry, grpc_addr); } //---------------------------------------------------------------------- @@ -133,7 +116,7 @@ void ovsp4rt_config_vlan_entry(uint16_t vlan_id, bool insert_entry, Client client; - DoConfigVlanEntry(client, vlan_id, insert_entry, grpc_addr); + (void)DoConfigVlanEntry(client, vlan_id, insert_entry, grpc_addr); } #endif // ES2K_TARGET