X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Fvom%2Fvom%2Fl2_binding_cmds.cpp;h=8769444032c305ccee8b77cb22e4d7b32171cff7;hb=762d83c198c6c24cce4eb94a6d027f520d0b8383;hp=6976e345a047ca73777459882e316635b237f18a;hpb=539663c401b087e4576e41af35144e73e1907c9d;p=vpp.git 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& 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& 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()); }