*------------------------------------------------------------------
*/
-option version = "1.0.0";
+option version = "1.1.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_qsize - tx queue size
+ @param tx_next - tx next index
+ @param tx_produce - tx produce index
+ @param tx_consume - tx consume index
+*/
+
+typedef vmxnet3_tx_list
+{
+ u16 tx_qsize;
+ u16 tx_next;
+ u16 tx_produce;
+ 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 sw_if_index - index of the interface
@param if_name - name of the interface
@param hw_addr - interface MAC address
- @param id - id associated with the interface
- @param role - role of the interface in the connection (master/slave)
- @param mode - interface mode
- @param socket_id - id of the socket filename used by this interface
- to establish new connections
- @param ring_size - the number of entries of RX/TX rings
- @param buffer_size - size of the buffer allocated for each ring entry
+ @param pci_addr - pci address of the interface
+ @param version - vmxnet3 hardware version
@param admin_up_down - interface administrative status
- @param link_up_down - interface link 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 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;
+ bool admin_up_down;
- u16 rx_qid;
- u16 rx_qsize;
- u16 rx_fill[2];
- u16 rx_next;
- u16 rx_produce[2];
- u16 rx_consume[2];
-
- u16 tx_qid;
- u16 tx_qsize;
- u16 tx_next;
- u16 tx_produce;
- u16 tx_consume;
+ u8 rx_count;
+ vl_api_vmxnet3_rx_list_t rx_list[16];
- u8 admin_up_down;
+ u8 tx_count;
+ vl_api_vmxnet3_tx_list_t tx_list[8];
};
/** \brief Dump all vmxnet3 interfaces