diff options
Diffstat (limited to 'extras/vom/vom/l2_binding_cmds.cpp')
-rw-r--r-- | extras/vom/vom/l2_binding_cmds.cpp | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/extras/vom/vom/l2_binding_cmds.cpp b/extras/vom/vom/l2_binding_cmds.cpp index 6976e345a04..8769444032c 100644 --- a/extras/vom/vom/l2_binding_cmds.cpp +++ b/extras/vom/vom/l2_binding_cmds.cpp @@ -20,11 +20,11 @@ namespace l2_binding_cmds { bind_cmd::bind_cmd(HW::item<bool>& item, const handle_t& itf, uint32_t bd, - bool is_bvi) + const l2_binding::l2_port_type_t& port_type) : rpc_cmd(item) , m_itf(itf) , m_bd(bd) - , m_is_bvi(is_bvi) + , m_port_type(port_type) { } @@ -32,7 +32,7 @@ bool bind_cmd::operator==(const bind_cmd& other) const { return ((m_itf == other.m_itf) && (m_bd == other.m_bd) && - (m_is_bvi == other.m_is_bvi)); + (m_port_type == other.m_port_type)); } rc_t @@ -44,8 +44,13 @@ bind_cmd::issue(connection& con) payload.rx_sw_if_index = m_itf.value(); payload.bd_id = m_bd; payload.shg = 0; - payload.port_type = - (m_is_bvi ? L2_API_PORT_TYPE_BVI : L2_API_PORT_TYPE_NORMAL); + if (m_port_type == l2_binding::l2_port_type_t::L2_PORT_TYPE_BVI) + payload.port_type = L2_API_PORT_TYPE_BVI; + else if (m_port_type == l2_binding::l2_port_type_t::L2_PORT_TYPE_UU_FWD) + payload.port_type = L2_API_PORT_TYPE_UU_FWD; + else + payload.port_type = L2_API_PORT_TYPE_NORMAL; + payload.enable = 1; VAPI_CALL(req.execute()); @@ -58,7 +63,7 @@ bind_cmd::to_string() const { std::ostringstream s; s << "L2-bind: " << m_hw_item.to_string() << " itf:" << m_itf.to_string() - << " bd:" << m_bd; + << " bd:" << m_bd << " port-type:" << m_port_type.to_string(); return (s.str()); } @@ -66,11 +71,11 @@ bind_cmd::to_string() const unbind_cmd::unbind_cmd(HW::item<bool>& item, const handle_t& itf, uint32_t bd, - bool is_bvi) + const l2_binding::l2_port_type_t& port_type) : rpc_cmd(item) , m_itf(itf) , m_bd(bd) - , m_is_bvi(is_bvi) + , m_port_type(port_type) { } @@ -78,7 +83,7 @@ bool unbind_cmd::operator==(const unbind_cmd& other) const { return ((m_itf == other.m_itf) && (m_bd == other.m_bd) && - (m_is_bvi == other.m_is_bvi)); + (m_port_type == other.m_port_type)); } rc_t @@ -90,8 +95,13 @@ unbind_cmd::issue(connection& con) payload.rx_sw_if_index = m_itf.value(); payload.bd_id = m_bd; payload.shg = 0; - payload.port_type = - (m_is_bvi ? L2_API_PORT_TYPE_BVI : L2_API_PORT_TYPE_NORMAL); + if (m_port_type == l2_binding::l2_port_type_t::L2_PORT_TYPE_BVI) + payload.port_type = L2_API_PORT_TYPE_BVI; + else if (m_port_type == l2_binding::l2_port_type_t::L2_PORT_TYPE_UU_FWD) + payload.port_type = L2_API_PORT_TYPE_UU_FWD; + else + payload.port_type = L2_API_PORT_TYPE_NORMAL; + payload.enable = 0; VAPI_CALL(req.execute()); @@ -107,7 +117,7 @@ unbind_cmd::to_string() const { std::ostringstream s; s << "L2-unbind: " << m_hw_item.to_string() << " itf:" << m_itf.to_string() - << " bd:" << m_bd; + << " bd:" << m_bd << " port-type:" << m_port_type; return (s.str()); } |