X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fvmxnet3%2Fvmxnet3.api;h=ff4bdf88f5cd503923f5193b715d31e6b05fda12;hb=277f03f06;hp=68beac030c133b49adffcbf22e38bcbf0dfa3e4f;hpb=df7f8e8cffcc43531f7daeda44d436b60e538141;p=vpp.git diff --git a/src/plugins/vmxnet3/vmxnet3.api b/src/plugins/vmxnet3/vmxnet3.api index 68beac030c1..ff4bdf88f5c 100644 --- a/src/plugins/vmxnet3/vmxnet3.api +++ b/src/plugins/vmxnet3/vmxnet3.api @@ -15,7 +15,9 @@ *------------------------------------------------------------------ */ -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 @@ -25,7 +27,12 @@ option version = "1.0.0"; 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 @@ -36,7 +43,12 @@ 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 = " [rx-queue-size ] [tx-queue-size ] [num-tx-queues ] [num-rx-queues ] [bind] [gso]"; }; /** \brief @@ -49,7 +61,7 @@ define vmxnet3_create_reply { u32 context; i32 retval; - u32 sw_if_index; + vl_api_interface_index_t sw_if_index; }; /** \brief @@ -63,7 +75,40 @@ autoreply define vmxnet3_delete u32 client_index; u32 context; - u32 sw_if_index; + vl_api_interface_index_t sw_if_index; + option vat_help = "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 @@ -71,41 +116,30 @@ autoreply define vmxnet3_delete @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