@param txq_size - transmit queue size
*/
-autoreply define avf_create
+define avf_create
{
u32 client_index;
u32 context;
u16 txq_size;
};
+/** \brief
+ @param context - sender context, to match reply w/ request
+ @param retval - return value for request
+ @param sw_if_index - software index for the new avf interface
+*/
+
+define avf_create_reply
+{
+ u32 context;
+ i32 retval;
+ u32 sw_if_index;
+};
+
/** \brief
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
avf_main_t *am = &avf_main;
vl_api_avf_create_reply_t *rmp;
avf_create_if_args_t args;
- int rv = 0;
+ int rv;
memset (&args, 0, sizeof (avf_create_if_args_t));
args.enable_elog = ntohl (mp->enable_elog);
args.addr.as_u32 = ntohl (mp->pci_addr);
- args.rxq_size = ntohl (mp->rxq_size);
- args.txq_size = ntohl (mp->txq_size);
+ args.rxq_size = ntohs (mp->rxq_size);
+ args.txq_size = ntohs (mp->txq_size);
avf_create_if (vm, &args);
-
rv = args.rv;
- REPLY_MACRO (VL_API_AVF_CREATE_REPLY + am->msg_id_base);
+ /* *INDENT-OFF* */
+ REPLY_MACRO2 (VL_API_AVF_CREATE_REPLY + am->msg_id_base,
+ ({
+ rmp->sw_if_index = ntohl (args.sw_if_index);
+ }));
+ /* *INDENT-ON* */
}
static void
goto error;
vnet_sw_interface_t *sw = vnet_get_hw_sw_interface (vnm, ad->hw_if_index);
- ad->sw_if_index = sw->sw_if_index;
+ args->sw_if_index = ad->sw_if_index = sw->sw_if_index;
vnet_hw_interface_t *hw = vnet_get_hw_interface (vnm, ad->hw_if_index);
hw->flags |= VNET_HW_INTERFACE_FLAG_SUPPORTS_INT_MODE;