* limitations under the License.
*/
-#include "vom/bridge_domain.hpp"
-#include "vom/cmd.hpp"
+#include "vom/bridge_domain_cmds.hpp"
DEFINE_VAPI_MSG_IDS_L2_API_JSON;
namespace VOM {
-bridge_domain::create_cmd::create_cmd(HW::item<uint32_t>& item)
+namespace bridge_domain_cmds {
+create_cmd::create_cmd(HW::item<uint32_t>& item,
+ const bridge_domain::learning_mode_t& lmode,
+ const bridge_domain::arp_term_mode_t& amode,
+ const bridge_domain::flood_mode_t& fmode,
+ const bridge_domain::mac_age_mode_t& mmode)
: rpc_cmd(item)
+ , m_learning_mode(lmode)
+ , m_arp_term_mode(amode)
+ , m_flood_mode(fmode)
+ , m_mac_age_mode(mmode)
{
}
bool
-bridge_domain::create_cmd::operator==(const create_cmd& other) const
+create_cmd::operator==(const create_cmd& other) const
{
return (m_hw_item.data() == other.m_hw_item.data());
}
rc_t
-bridge_domain::create_cmd::issue(connection& con)
+create_cmd::issue(connection& con)
{
msg_t req(con.ctx(), std::ref(*this));
auto& payload = req.get_request().get_payload();
payload.bd_id = m_hw_item.data();
- payload.flood = 1;
- payload.uu_flood = 1;
+ payload.flood = m_flood_mode.value();
+ payload.uu_flood = m_flood_mode.value();
payload.forward = 1;
- payload.learn = 1;
- payload.arp_term = 1;
- payload.mac_age = 0;
+ payload.learn = m_learning_mode.value();
+ payload.arp_term = m_arp_term_mode.value();
+ payload.mac_age = m_mac_age_mode.value();
payload.is_add = 1;
VAPI_CALL(req.execute());
}
std::string
-bridge_domain::create_cmd::to_string() const
+create_cmd::to_string() const
{
std::ostringstream s;
s << "bridge-domain-create: " << m_hw_item.to_string();
return (s.str());
}
-bridge_domain::delete_cmd::delete_cmd(HW::item<uint32_t>& item)
+delete_cmd::delete_cmd(HW::item<uint32_t>& item)
: rpc_cmd(item)
{
}
bool
-bridge_domain::delete_cmd::operator==(const delete_cmd& other) const
+delete_cmd::operator==(const delete_cmd& other) const
{
return (m_hw_item == other.m_hw_item);
}
rc_t
-bridge_domain::delete_cmd::issue(connection& con)
+delete_cmd::issue(connection& con)
{
msg_t req(con.ctx(), std::ref(*this));
}
std::string
-bridge_domain::delete_cmd::to_string() const
+delete_cmd::to_string() const
{
std::ostringstream s;
s << "bridge-domain-delete: " << m_hw_item.to_string();
return (s.str());
}
-bridge_domain::dump_cmd::dump_cmd()
+dump_cmd::dump_cmd()
{
}
bool
-bridge_domain::dump_cmd::operator==(const dump_cmd& other) const
+dump_cmd::operator==(const dump_cmd& other) const
{
return (true);
}
rc_t
-bridge_domain::dump_cmd::issue(connection& con)
+dump_cmd::issue(connection& con)
{
m_dump.reset(new msg_t(con.ctx(), std::ref(*this)));
}
std::string
-bridge_domain::dump_cmd::to_string() const
+dump_cmd::to_string() const
{
return ("bridge-domain-dump");
}
}
+}
/*
* fd.io coding-style-patch-verification: ON