*------------------------------------------------------------------
*/
-option version = "1.0.0";
+option version = "1.2.0";
+import "vnet/interface_types.api";
+import "vnet/ethernet/ethernet_types.api";
/** \brief
@param client_index - opaque cookie to identify the sender
ddddddddddddddddbbbbbbbbsssssfff
@param enable_elog - turn on elog (optional - default is off)
@param rxq_size - receive queue size (optional - default is 1024)
+ @param rxq_num - number of receive queues (optional - default is 1)
@param txq_size - transmit queue size (optional - default is 1024)
@param txq_num - number of transmit queues (optional - default is 1)
+ @param bind - automatically bind PCI to vfio-pci module
+ (optional - default is 0)
+ @param enable_gso - enable gso (optional - default is 0)
*/
define vmxnet3_create
u32 pci_addr;
i32 enable_elog;
u16 rxq_size;
+ u16 rxq_num;
u16 txq_size;
u16 txq_num;
+ u8 bind;
+ bool enable_gso;
+ option vat_help = "<pci-address> [rx-queue-size <size>] [tx-queue-size <size>] [num-tx-queues <num>] [num-rx-queues <num>] [bind] [gso]";
};
/** \brief
{
u32 context;
i32 retval;
- u32 sw_if_index;
+ vl_api_interface_index_t sw_if_index;
};
/** \brief
u32 client_index;
u32 context;
- u32 sw_if_index;
+ vl_api_interface_index_t sw_if_index;
+ option vat_help = "sw_if_index <sw_if_index>";
};
/** \brief vmxnet3_tx_list structure
@param tx_consume - tx consume index
*/
-typeonly define vmxnet3_tx_list
+typedef vmxnet3_tx_list
{
u16 tx_qsize;
u16 tx_next;
u16 tx_consume;
};
+/** \brief vmxnet3_rx_list structure
+ @param rx_qsize - rx queue size
+ @param rx_fill - rx fill count
+ @param rx_next - rx next index
+ @param rx_produce - rx produce index
+ @param rx_consume - rx consume index
+*/
+
+typedef vmxnet3_rx_list
+{
+ u16 rx_qsize;
+ u16 rx_fill[2];
+ u16 rx_next;
+ u16 rx_produce[2];
+ u16 rx_consume[2];
+};
+
/** \brief Memory interface details structure
@param context - sender context, to match reply w/ request (memif_dump)
@param sw_if_index - index of the interface
@param pci_addr - pci address of the interface
@param version - vmxnet3 hardware version
@param admin_up_down - interface administrative status
- @param rx_qsize - rx queue size
- @param rx_fill - rx fill count
- @param rx_next - rx next index
- @param rx_produce - rx produce index
- @param rx_consume - rx consume index
- @param tx_count - number of of elements in tx_list
+ @param rx_count - number of elements in rx_list
+ @param rx_list - list of vmxnet3_rx_list
+ @param tx_count - number of elements in tx_list
@param tx_list - list of vmnxnet3_tx_list
*/
define vmxnet3_details
{
u32 context;
- u32 sw_if_index;
- u8 if_name[64];
- u8 hw_addr[6];
+ vl_api_interface_index_t sw_if_index;
+ string if_name[64];
+ vl_api_mac_address_t hw_addr;
u32 pci_addr;
u8 version;
- u8 admin_up_down;
+ bool admin_up_down;
- u16 rx_qsize;
- u16 rx_fill[2];
- u16 rx_next;
- u16 rx_produce[2];
- u16 rx_consume[2];
+ u8 rx_count;
+ vl_api_vmxnet3_rx_list_t rx_list[16];
u8 tx_count;
vl_api_vmxnet3_tx_list_t tx_list[8];
*/
define vmxnet3_dump
{
+ option deprecated;
u32 client_index;
u32 context;
};
+/** \brief Dump vmxnet3 interfaces
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param vl_api_interface_index_t sw_if_index [default=0xffffffff];
+*/
+define sw_vmxnet3_interface_dump
+{
+ u32 client_index;
+ u32 context;
+ vl_api_interface_index_t sw_if_index [default=0xffffffff];
+};
+
+/** \brief Reply for vmxnet3_interface_dump
+ @param context - sender context, to match reply w/ request (memif_dump)
+ @param sw_if_index - index of the interface
+ @param if_name - name of the interface
+ @param hw_addr - interface MAC address
+ @param pci_addr - pci address of the interface
+ @param version - vmxnet3 hardware version
+ @param admin_up_down - interface administrative status
+ @param rx_count - number of elements in rx_list
+ @param rx_list - list of vmxnet3_rx_list
+ @param tx_count - number of elements in tx_list
+ @param tx_list - list of vmnxnet3_tx_list
+*/
+define sw_vmxnet3_interface_details
+{
+ u32 context;
+
+ vl_api_interface_index_t sw_if_index;
+ string if_name[64];
+ vl_api_mac_address_t hw_addr;
+ u32 pci_addr;
+ u8 version;
+ bool admin_up_down;
+
+ u8 rx_count;
+ vl_api_vmxnet3_rx_list_t rx_list[16];
+
+ u8 tx_count;
+ vl_api_vmxnet3_tx_list_t tx_list[8];
+};
+
/*
* Local Variables:
* eval: (c-set-style "gnu")