VOM: vxlan_tunnel equals operator
[vpp.git] / extras / vom / vom / vxlan_tunnel.cpp
index 2bc386c..faf49bd 100644 (file)
@@ -26,8 +26,8 @@ const std::string VXLAN_TUNNEL_NAME = "vxlan-tunnel-itf";
 vxlan_tunnel::event_handler vxlan_tunnel::m_evh;
 
 const vxlan_tunnel::mode_t vxlan_tunnel::mode_t::STANDARD(0, "standard");
-const vxlan_tunnel::mode_t vxlan_tunnel::mode_t::GBP(0, "GBP");
-const vxlan_tunnel::mode_t vxlan_tunnel::mode_t::GPE(0, "GPE");
+const vxlan_tunnel::mode_t vxlan_tunnel::mode_t::GBP(1, "GBP");
+const vxlan_tunnel::mode_t vxlan_tunnel::mode_t::GPE(2, "GPE");
 
 vxlan_tunnel::mode_t::mode_t(int v, const std::string s)
   : enum_base<vxlan_tunnel::mode_t>(v, s)
@@ -116,6 +116,12 @@ vxlan_tunnel::vxlan_tunnel(const vxlan_tunnel& o)
 {
 }
 
+bool
+vxlan_tunnel::operator==(const vxlan_tunnel& other) const
+{
+  return ((m_tep == other.m_tep) && (m_mode == other.m_mode));
+}
+
 const handle_t&
 vxlan_tunnel::handle() const
 {
@@ -177,7 +183,7 @@ vxlan_tunnel::update(const vxlan_tunnel& desired)
   /*
    * the desired state is always that the interface should be created
    */
-  if (!m_hdl) {
+  if (rc_t::OK != m_hdl.rc()) {
     if (mode_t::STANDARD == m_mode)
       HW::enqueue(new vxlan_tunnel_cmds::create_cmd(
         m_hdl, name(), m_tep,