From 9ef1c0adbf9399c55deeede3cf629dd4e8c20304 Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Fri, 3 Nov 2017 04:39:05 -0700 Subject: 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 Signed-off-by: Mohsin Kazmi --- src/vpp-api/vom/acl_binding.hpp | 206 +++------------------------------------- 1 file changed, 12 insertions(+), 194 deletions(-) (limited to 'src/vpp-api/vom/acl_binding.hpp') diff --git a/src/vpp-api/vom/acl_binding.hpp b/src/vpp-api/vom/acl_binding.hpp index faf9b245cae..1e87a888ec4 100644 --- a/src/vpp-api/vom/acl_binding.hpp +++ b/src/vpp-api/vom/acl_binding.hpp @@ -25,7 +25,6 @@ #include "vom/interface.hpp" #include "vom/object_base.hpp" #include "vom/om.hpp" -#include "vom/rpc_cmd.hpp" #include "vom/singular_db.hpp" namespace VOM { @@ -34,7 +33,7 @@ namespace ACL { * A binding between an ACL and an interface. * A representation of the application of the ACL to the interface. */ -template +template class binding : public object_base { public: @@ -98,159 +97,6 @@ public: */ static void dump(std::ostream& os) { m_db.dump(os); } - /** - * A command class that binds the ACL to the interface - */ - class bind_cmd : public rpc_cmd, rc_t, BIND> - { - public: - /** - * Constructor - */ - bind_cmd(HW::item& item, - const direction_t& direction, - const handle_t& itf, - const handle_t& acl) - : rpc_cmd, rc_t, BIND>(item) - , m_direction(direction) - , m_itf(itf) - , m_acl(acl) - { - } - - /** - * Issue the command to VPP/HW - */ - rc_t issue(connection& con); - - /** - * convert to string format for debug purposes - */ - std::string to_string() const - { - std::ostringstream s; - s << "acl-bind:[" << m_direction.to_string() - << " itf:" << m_itf.to_string() << " acl:" << m_acl.to_string() << "]"; - - return (s.str()); - } - - /** - * Comparison operator - only used for UT - */ - bool operator==(const bind_cmd& other) const - { - return ((m_itf == other.m_itf) && (m_acl == m_acl)); - } - - private: - /** - * The direction of the binding - */ - const direction_t m_direction; - - /** - * The interface to bind to - */ - const handle_t m_itf; - - /** - * The ACL to bind - */ - const handle_t m_acl; - }; - - /** - * A command class that binds the ACL to the interface - */ - class unbind_cmd : public rpc_cmd, rc_t, BIND> - { - public: - /** - * Constructor - */ - unbind_cmd(HW::item& item, - const direction_t& direction, - const handle_t& itf, - const handle_t& acl) - : rpc_cmd, rc_t, BIND>(item) - , m_direction(direction) - , m_itf(itf) - , m_acl(acl) - { - } - - /** - * Issue the command to VPP/HW - */ - rc_t issue(connection& con); - - /** - * convert to string format for debug purposes - */ - std::string to_string() const - { - std::ostringstream s; - s << "acl-unbind:[" << m_direction.to_string() - << " itf:" << m_itf.to_string() << " acl:" << m_acl.to_string() << "]"; - - return (s.str()); - } - - /** - * Comparison operator - only used for UT - */ - bool operator==(const unbind_cmd& other) const - { - return ((m_itf == other.m_itf) && (m_acl == m_acl)); - } - - private: - /** - * The direction of the binding - */ - const direction_t m_direction; - - /** - * The interface to bind to - */ - const handle_t m_itf; - - /** - * The ACL to bind - */ - const handle_t m_acl; - }; - - /** - * A cmd class that Dumps all the ACLs - */ - class dump_cmd : public VOM::dump_cmd - { - public: - /** - * Constructor - */ - dump_cmd() = default; - dump_cmd(const dump_cmd& d) = default; - - /** - * Issue the command to VPP/HW - */ - rc_t issue(connection& con); - - /** - * convert to string format for debug purposes - */ - std::string to_string() const { return ("acl-bind-dump"); } - - private: - /** - * HW reutrn code - */ - HW::item item; - }; - private: /** * Class definition for listeners to OM events @@ -294,14 +140,7 @@ private: /** * Enquue commonds to the VPP command Q for the update */ - void update(const binding& obj) - { - if (!m_binding) { - HW::enqueue( - new bind_cmd(m_binding, m_direction, m_itf->handle(), m_acl->handle())); - } - HW::write(); - } + void update(const binding& obj); /** * Find or Add the instance in the DB @@ -325,25 +164,12 @@ private: /** * Sweep/reap the object if still stale */ - void sweep(void) - { - if (m_binding) { - HW::enqueue(new unbind_cmd(m_binding, m_direction, m_itf->handle(), - m_acl->handle())); - } - HW::write(); - } + void sweep(void); /** * Replay the objects state to HW */ - void replay(void) - { - if (m_binding) { - HW::enqueue( - new bind_cmd(m_binding, m_direction, m_itf->handle(), m_acl->handle())); - } - } + void replay(void); /** * The direction the of the packets on which to apply the ACL @@ -380,30 +206,22 @@ private: /** * Typedef the L3 binding type */ -typedef binding - l3_binding; +typedef binding l3_binding; /** * Typedef the L2 binding type */ -typedef binding - l2_binding; +typedef binding l2_binding; /** * Definition of the static Singular DB for ACL bindings */ -template -singular_db::key_t, - ACL::binding> - binding::m_db; - -template -typename ACL::binding::event_handler - binding::m_evh; +template +singular_db::key_t, ACL::binding> + binding::m_db; + +template +typename ACL::binding::event_handler binding::m_evh; }; std::ostream& operator<<( -- cgit 1.2.3-korg