X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Fvom%2Fvom%2Fvxlan_tunnel.hpp;h=4c46e75a70070998faa8a5163841bab1280205b2;hb=4dd4cf4f9;hp=136f0380e6dbd65af6762d9f387c4dc0c3012eb0;hpb=193c47d900bfbc15e4e46ede7c25ecf1ca95b898;p=vpp.git diff --git a/extras/vom/vom/vxlan_tunnel.hpp b/extras/vom/vom/vxlan_tunnel.hpp index 136f0380e6d..4c46e75a700 100644 --- a/extras/vom/vom/vxlan_tunnel.hpp +++ b/extras/vom/vom/vxlan_tunnel.hpp @@ -82,7 +82,8 @@ public: { ~mode_t() = default; const static mode_t STANDARD; - const static mode_t GBP; + const static mode_t GBP_L2; + const static mode_t GBP_L3; const static mode_t GPE; private: @@ -97,15 +98,15 @@ public: const boost::asio::ip::address& dst, uint32_t vni, const mode_t& mode = mode_t::STANDARD); - - /** - * Construct a new object matching the desried state with a handle - * read from VPP - */ - vxlan_tunnel(const handle_t& hdl, - const boost::asio::ip::address& src, + vxlan_tunnel(const boost::asio::ip::address& src, + const boost::asio::ip::address& dst, + uint32_t vni, + const interface& mcast_itf, + const mode_t& mode = mode_t::STANDARD); + vxlan_tunnel(const boost::asio::ip::address& src, const boost::asio::ip::address& dst, uint32_t vni, + const route_domain& rd, const mode_t& mode = mode_t::STANDARD); /* @@ -118,6 +119,11 @@ public: */ vxlan_tunnel(const vxlan_tunnel& o); + /** + * comparison operator + */ + bool operator==(const vxlan_tunnel& vx) const; + /** * Return the matching 'singular instance' */ @@ -220,6 +226,22 @@ private: */ mode_t m_mode; + /** + * The interface on which to send the packets if the destination + * is multicast + */ + std::shared_ptr m_mcast_itf; + + /** + * The RD an L3 interface is bound to + */ + std::shared_ptr m_rd; + + /** + * HW state of the VPP table mapping + */ + HW::item m_table_id; + /** * Construct a unique name for the tunnel */