* Local interface type (specific to VPP)
*/
const static type_t LOCAL;
- /**
- * TAP interface type
- */
- const static type_t TAP;
/**
* TAPv2 interface type
*/
const static type_t BOND;
+ /**
+ * pipe-parent type
+ */
+ const static type_t PIPE;
+
+ /**
+ * pipe-end type
+ */
+ const static type_t PIPE_END;
+
/**
* Convert VPP's name of the interface to a type
*/
* A base class for interface Create commands
*/
template <typename MSG>
- class create_cmd : public rpc_cmd<HW::item<handle_t>, HW::item<handle_t>, MSG>
+ class create_cmd : public rpc_cmd<HW::item<handle_t>, MSG>
{
public:
create_cmd(HW::item<handle_t>& item, const std::string& name)
- : rpc_cmd<HW::item<handle_t>, HW::item<handle_t>, MSG>(item)
+ : rpc_cmd<HW::item<handle_t>, MSG>(item)
, m_name(name)
{
}
*/
void succeeded()
{
- rpc_cmd<HW::item<handle_t>, HW::item<handle_t>, MSG>::succeeded();
+ rpc_cmd<HW::item<handle_t>, MSG>::succeeded();
interface::add(m_name, this->item());
}
int sw_if_index = reply.get_response().get_payload().sw_if_index;
int retval = reply.get_response().get_payload().retval;
- VOM_LOG(log_level_t::DEBUG) << this->to_string() << " " << retval;
+ VOM_LOG(log_level_t::DEBUG) << this->to_string() << " res:" << retval
+ << " sw-if-index:" << sw_if_index;
rc_t rc = rc_t::from_vpp_retval(retval);
handle_t handle = handle_t::INVALID;
handle = sw_if_index;
}
- HW::item<handle_t> res(handle, rc);
-
- this->fulfill(res);
+ this->fulfill(HW::item<handle_t>(handle, rc));
return (VAPI_OK);
}
* Base class for intterface Delete commands
*/
template <typename MSG>
- class delete_cmd : public rpc_cmd<HW::item<handle_t>, HW::item<handle_t>, MSG>
+ class delete_cmd : public rpc_cmd<HW::item<handle_t>, MSG>
{
public:
delete_cmd(HW::item<handle_t>& item, const std::string& name)
- : rpc_cmd<HW::item<handle_t>, HW::item<handle_t>, MSG>(item)
+ : rpc_cmd<HW::item<handle_t>, MSG>(item)
, m_name(name)
{
}
delete_cmd(HW::item<handle_t>& item)
- : rpc_cmd<HW::item<handle_t>, HW::item<handle_t>, MSG>(item)
+ : rpc_cmd<HW::item<handle_t>, MSG>(item)
, m_name()
{
}
*/
void set(const handle_t& handle);
friend class interface_factory;
+ friend class pipe;
/**
* The SW interface handle VPP has asigned to the interface