aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extras/vom/vom/vxlan_tunnel.cpp8
-rw-r--r--extras/vom/vom/vxlan_tunnel.hpp5
2 files changed, 12 insertions, 1 deletions
diff --git a/extras/vom/vom/vxlan_tunnel.cpp b/extras/vom/vom/vxlan_tunnel.cpp
index ca0790103ff..faf49bd93cd 100644
--- a/extras/vom/vom/vxlan_tunnel.cpp
+++ b/extras/vom/vom/vxlan_tunnel.cpp
@@ -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,
diff --git a/extras/vom/vom/vxlan_tunnel.hpp b/extras/vom/vom/vxlan_tunnel.hpp
index 63124e73426..c085ba0b629 100644
--- a/extras/vom/vom/vxlan_tunnel.hpp
+++ b/extras/vom/vom/vxlan_tunnel.hpp
@@ -114,6 +114,11 @@ public:
vxlan_tunnel(const vxlan_tunnel& o);
/**
+ * comparison operator
+ */
+ bool operator==(const vxlan_tunnel& vx) const;
+
+ /**
* Return the matching 'singular instance'
*/
std::shared_ptr<vxlan_tunnel> singular() const;