aboutsummaryrefslogtreecommitdiffstats
path: root/src/vpp-api/vom/route.hpp
diff options
context:
space:
mode:
authorNeale Ranns <neale.ranns@cisco.com>2017-11-03 04:39:05 -0700
committerNeale Ranns <nranns@cisco.com>2017-11-06 17:44:21 +0000
commit9ef1c0adbf9399c55deeede3cf629dd4e8c20304 (patch)
tree0eeed8f869eee35a48797b6b837c16222a627e46 /src/vpp-api/vom/route.hpp
parentaddb55b9e0533c5f720b1cc1bdeeb4bbd0e6bf2a (diff)
VOM reshuffle
split the VOM into two halves; a top/front-end and a bottom/backend. Only the backend includes the auto-generated VAPI. This serves two purposes: 1 - improves ompile times for VOM, since the VAPI is included only in the backend. 2 - does not expose VAPI to users of VOM Change-Id: I17b93aeaef10c0eba8612016d9034aca5628d9f7 Signed-off-by: Neale Ranns <neale.ranns@cisco.com> Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Diffstat (limited to 'src/vpp-api/vom/route.hpp')
-rw-r--r--src/vpp-api/vom/route.hpp148
1 files changed, 11 insertions, 137 deletions
diff --git a/src/vpp-api/vom/route.hpp b/src/vpp-api/vom/route.hpp
index d175bee80eb..4f27ff1d20b 100644
--- a/src/vpp-api/vom/route.hpp
+++ b/src/vpp-api/vom/route.hpp
@@ -21,8 +21,6 @@
#include "vom/route_domain.hpp"
#include "vom/singular_db.hpp"
-#include <vapi/ip.api.vapi.hpp>
-
namespace VOM {
/**
* Types belonging to Routing
@@ -110,7 +108,6 @@ public:
/**
* Convert the path into the VPP API representation
*/
- void to_vpp(vapi_type_fib_path& path) const;
void to_vpp(vapi_payload_ip_add_del_route& payload) const;
/**
@@ -123,6 +120,17 @@ public:
*/
std::string to_string() const;
+ /**
+ * Getters
+ */
+ special_t type() const;
+ nh_proto_t nh_proto() const;
+ const boost::asio::ip::address& nh() const;
+ std::shared_ptr<route_domain> rd() const;
+ std::shared_ptr<interface> itf() const;
+ uint8_t weight() const;
+ uint8_t preference() const;
+
private:
/**
* The special path tpye
@@ -237,140 +245,6 @@ public:
*/
std::string to_string() const;
- /**
- * A command class that creates or updates the route
- */
- class update_cmd
- : public rpc_cmd<HW::item<bool>, rc_t, vapi::Ip_add_del_route>
- {
- public:
- /**
- * Constructor
- */
- update_cmd(HW::item<bool>& item,
- table_id_t id,
- const prefix_t& prefix,
- const path_list_t& paths);
-
- /**
- * Issue the command to VPP/HW
- */
- rc_t issue(connection& con);
-
- /**
- * convert to string format for debug purposes
- */
- std::string to_string() const;
-
- /**
- * Comparison operator - only used for UT
- */
- bool operator==(const update_cmd& i) const;
-
- private:
- route::table_id_t m_id;
- prefix_t m_prefix;
- const path_list_t m_paths;
- };
-
- /**
- * A cmd class that deletes a route
- */
- class delete_cmd
- : public rpc_cmd<HW::item<bool>, rc_t, vapi::Ip_add_del_route>
- {
- public:
- /**
- * Constructor
- */
- delete_cmd(HW::item<bool>& item, table_id_t id, const prefix_t& prefix);
-
- /**
- * Issue the command to VPP/HW
- */
- rc_t issue(connection& con);
-
- /**
- * convert to string format for debug purposes
- */
- std::string to_string() const;
-
- /**
- * Comparison operator - only used for UT
- */
- bool operator==(const delete_cmd& i) const;
-
- private:
- route::table_id_t m_id;
- prefix_t m_prefix;
- };
-
- /**
- * A cmd class that Dumps ipv4 fib
- */
- class dump_v4_cmd : public VOM::dump_cmd<vapi::Ip_fib_dump>
- {
- public:
- /**
- * Constructor
- */
- dump_v4_cmd();
- dump_v4_cmd(const dump_cmd& d);
-
- /**
- * Issue the command to VPP/HW
- */
- rc_t issue(connection& con);
- /**
- * convert to string format for debug purposes
- */
- std::string to_string() const;
-
- /**
- * Comparison operator - only used for UT
- */
- bool operator==(const dump_v4_cmd& i) const;
-
- private:
- /**
- * HW reutrn code
- */
- HW::item<bool> item;
- };
-
- /**
- * A cmd class that Dumps ipv6 fib
- */
- class dump_v6_cmd : public VOM::dump_cmd<vapi::Ip6_fib_dump>
- {
- public:
- /**
- * Constructor
- */
- dump_v6_cmd();
- dump_v6_cmd(const dump_cmd& d);
-
- /**
- * Issue the command to VPP/HW
- */
- rc_t issue(connection& con);
- /**
- * convert to string format for debug purposes
- */
- std::string to_string() const;
-
- /**
- * Comparison operator - only used for UT
- */
- bool operator==(const dump_v6_cmd& i) const;
-
- private:
- /**
- * HW reutrn code
- */
- HW::item<bool> item;
- };
-
private:
/**
* Class definition for listeners to OM events