VOM: vxlan-tunnel mcast interface fix
[vpp.git] / extras / vom / vom / vxlan_tunnel.cpp
index ca07901..248aadf 100644 (file)
@@ -113,9 +113,17 @@ vxlan_tunnel::vxlan_tunnel(const vxlan_tunnel& o)
   : interface(o)
   , m_tep(o.m_tep)
   , m_mode(o.m_mode)
+  , m_mcast_itf(o.m_mcast_itf)
 {
 }
 
+bool
+vxlan_tunnel::operator==(const vxlan_tunnel& other) const
+{
+  return ((m_tep == other.m_tep) && (m_mode == other.m_mode) &&
+          (m_mcast_itf == other.m_mcast_itf));
+}
+
 const handle_t&
 vxlan_tunnel::handle() const
 {
@@ -167,6 +175,8 @@ vxlan_tunnel::to_string() const
   std::ostringstream s;
   s << "vxlan-tunnel: " << m_hdl.to_string() << " " << m_mode.to_string() << " "
     << m_tep.to_string();
+  if (m_mcast_itf)
+    s << " " << m_mcast_itf->to_string();
 
   return (s.str());
 }
@@ -177,7 +187,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,