X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvpp-api%2Fvom%2Finterface.hpp;h=0099bde42ba6a335bd3061b0bc4061e8e86ddf94;hb=ed76ee24dfe76fb9400470a4efb3871acd37cad9;hp=8cba2fa2c2c2e3de284c8be2d59a6b602914c02d;hpb=fd920609819a5b10d3d7c8d34fe4fa4214c7da22;p=vpp.git diff --git a/src/vpp-api/vom/interface.hpp b/src/vpp-api/vom/interface.hpp index 8cba2fa2c2c..0099bde42ba 100644 --- a/src/vpp-api/vom/interface.hpp +++ b/src/vpp-api/vom/interface.hpp @@ -31,7 +31,7 @@ namespace VOM { * Forward declaration of the stats and events command */ namespace interface_cmds { -class stats_cmd; +class stats_enable_cmd; class events_cmd; }; @@ -90,6 +90,16 @@ public: */ const static type_t TAP; + /** + * vhost-user interface type + */ + const static type_t VHOST; + + /** + * bond interface type + */ + const static type_t BOND; + /** * Convert VPP's name of the interface to a type */ @@ -157,7 +167,10 @@ public: /** * Construct a new object matching the desried state */ - interface(const std::string& name, type_t type, admin_state_t state); + interface(const std::string& name, + type_t type, + admin_state_t state, + const std::string& tag = ""); /** * Construct a new object matching the desried state mapped * to a specific route_domain @@ -165,7 +178,8 @@ public: interface(const std::string& name, type_t type, admin_state_t state, - const route_domain& rd); + const route_domain& rd, + const std::string& tag = ""); /** * Destructor */ @@ -214,6 +228,11 @@ public: */ const l2_address_t& l2_address() const; + /** + * Set the admin state of the interface + */ + void set(const admin_state_t& state); + /** * Set the L2 Address */ @@ -224,6 +243,11 @@ public: */ void set(const oper_state_t& state); + /** + * Set the tag to the interface + */ + void set(const std::string& tag); + /** * Comparison operator - only used for UT */ @@ -335,7 +359,7 @@ public: void succeeded() {} /** - * add the created interface to the DB + * remove the deleted interface from the DB */ void remove_interface() { interface::remove(this->item()); } @@ -390,7 +414,8 @@ public: * Virtual function called on the listener when the command has data * ready to process */ - virtual void handle_interface_stat(interface_cmds::stats_cmd* cmd) = 0; + virtual void handle_interface_stat( + interface_cmds::stats_enable_cmd* cmd) = 0; /** * Return the HW::item representing the status @@ -426,13 +451,10 @@ public: protected: /** - * Construct an interface object with a handle and a HW address + * Set the handle of an interface object. Only called by the interface + * factory during the populate */ - interface(const handle_t& handle, - const l2_address_t& l2_address, - const std::string& name, - type_t type, - admin_state_t state); + void set(const handle_t& handle); friend class interface_factory; /** @@ -560,7 +582,7 @@ private: /** * shared pointer to the stats object for this interface. */ - std::shared_ptr m_stats; + std::shared_ptr m_stats; /** * The state of the interface @@ -582,6 +604,11 @@ private: */ oper_state_t m_oper; + /** + * tag of the interface + */ + std::string m_tag; + /** * A map of all interfaces keyed against VPP's handle */