diff options
author | 2018-04-11 08:08:30 -0700 | |
---|---|---|
committer | 2018-07-17 08:53:33 +0000 | |
commit | 208c29aac523231af2420a95ba7e5d361698780b (patch) | |
tree | d16ac1d772d55afdf5277345a1ec8db211d1f27f /extras/vom/vom/interface.hpp | |
parent | 4faab21a75a208d83c184bd424938c4dbf6b38e4 (diff) |
VOM: support for pipes
Change-Id: I5c381dfe2f926f94a34ee8ed8f1b9ec6038d5fe2
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Diffstat (limited to 'extras/vom/vom/interface.hpp')
-rw-r--r-- | extras/vom/vom/interface.hpp | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/extras/vom/vom/interface.hpp b/extras/vom/vom/interface.hpp index 92e14a791d6..a46b114833e 100644 --- a/extras/vom/vom/interface.hpp +++ b/extras/vom/vom/interface.hpp @@ -115,6 +115,16 @@ public: const static type_t BOND; /** + * pipe-parent type + */ + const static type_t PIPE; + + /** + * pipe-end type + */ + const static type_t PIPE_END; + + /** * Convert VPP's name of the interface to a type */ static type_t from_string(const std::string& str); @@ -271,11 +281,11 @@ public: * A base class for interface Create commands */ template <typename MSG> - class create_cmd : public rpc_cmd<HW::item<handle_t>, HW::item<handle_t>, MSG> + class create_cmd : public rpc_cmd<HW::item<handle_t>, MSG> { public: create_cmd(HW::item<handle_t>& item, const std::string& name) - : rpc_cmd<HW::item<handle_t>, HW::item<handle_t>, MSG>(item) + : rpc_cmd<HW::item<handle_t>, MSG>(item) , m_name(name) { } @@ -298,7 +308,7 @@ public: */ void succeeded() { - rpc_cmd<HW::item<handle_t>, HW::item<handle_t>, MSG>::succeeded(); + rpc_cmd<HW::item<handle_t>, MSG>::succeeded(); interface::add(m_name, this->item()); } @@ -321,9 +331,7 @@ public: handle = sw_if_index; } - HW::item<handle_t> res(handle, rc); - - this->fulfill(res); + this->fulfill(HW::item<handle_t>(handle, rc)); return (VAPI_OK); } @@ -339,17 +347,17 @@ public: * Base class for intterface Delete commands */ template <typename MSG> - class delete_cmd : public rpc_cmd<HW::item<handle_t>, HW::item<handle_t>, MSG> + class delete_cmd : public rpc_cmd<HW::item<handle_t>, MSG> { public: delete_cmd(HW::item<handle_t>& item, const std::string& name) - : rpc_cmd<HW::item<handle_t>, HW::item<handle_t>, MSG>(item) + : rpc_cmd<HW::item<handle_t>, MSG>(item) , m_name(name) { } delete_cmd(HW::item<handle_t>& item) - : rpc_cmd<HW::item<handle_t>, HW::item<handle_t>, MSG>(item) + : rpc_cmd<HW::item<handle_t>, MSG>(item) , m_name() { } @@ -471,6 +479,7 @@ protected: */ void set(const handle_t& handle); friend class interface_factory; + friend class pipe; /** * The SW interface handle VPP has asigned to the interface |