* limitations under the License.
*/
-option version = "1.0.0";
+option version = "3.0.0";
-/** \brief Initialize a new virtio pci interface with the given paramters
+import "vnet/interface_types.api";
+import "vnet/ethernet/ethernet_types.api";
+import "vlib/pci/pci_types.api";
+
+
+/** \brief Initialize a new virtio pci interface with the given parameters
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
- @param pci_addr - pci address as unsigned 32bit integer:
- 0-15 domain, 16-23 bus, 24-28 slot, 29-31 function
+ @param pci_addr - pci address
@param use_random_mac - let the system generate a unique mac address
- @param mac_address - mac addr to assign to the interface if use_radom not set
+ @param mac_address - mac addr to assign to the interface if use_random not set
@param gso_enabled - enable gso feature if available, 1 to enable
+ @param checksum_offload_enabled - enable checksum feature if available, 1 to enable
@param features - the virtio features which driver should negotiate with device
*/
define virtio_pci_create
{
+ option deprecated;
u32 client_index;
u32 context;
- u32 pci_addr;
- u8 use_random_mac;
- u8 mac_address[6];
- u8 gso_enabled;
+ vl_api_pci_address_t pci_addr;
+ bool use_random_mac;
+ vl_api_mac_address_t mac_address;
+ bool gso_enabled;
+ bool checksum_offload_enabled;
u64 features;
};
@param sw_if_index - software index allocated for the new virtio pci interface
*/
define virtio_pci_create_reply
+{
+ option deprecated;
+ u32 context;
+ i32 retval;
+ vl_api_interface_index_t sw_if_index;
+};
+
+enum virtio_flags {
+ VIRTIO_API_FLAG_GSO = 1, /* enable gso on the interface */
+ VIRTIO_API_FLAG_CSUM_OFFLOAD = 2, /* enable checksum offload without gso on the interface */
+ VIRTIO_API_FLAG_GRO_COALESCE = 4, /* enable packet coalescing on tx side, provided gso enabled */
+ VIRTIO_API_FLAG_PACKED = 8, /* enable packed ring support, provided it is available from backend */
+ VIRTIO_API_FLAG_IN_ORDER = 16, /* enable in order support, provided it is available from backend */
+};
+
+/** \brief Initialize a new virtio pci interface with the given parameters
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param pci_addr - pci address
+ @param use_random_mac - let the system generate a unique mac address
+ @param mac_address - mac addr to assign to the interface if use_random not set
+ @param virtio_flags - feature flags to enable
+ @param features - the virtio features which driver should negotiate with device
+*/
+define virtio_pci_create_v2
+{
+ u32 client_index;
+ u32 context;
+ vl_api_pci_address_t pci_addr;
+ bool use_random_mac;
+ vl_api_mac_address_t mac_address;
+ vl_api_virtio_flags_t virtio_flags;
+ u64 features;
+};
+
+/** \brief Reply for virtio pci create reply
+ @param context - returned sender context, to match reply w/ request
+ @param retval - return code
+ @param sw_if_index - software index allocated for the new virtio pci interface
+*/
+define virtio_pci_create_v2_reply
{
u32 context;
i32 retval;
- u32 sw_if_index;
+ vl_api_interface_index_t sw_if_index;
};
/** \brief Delete virtio pci interface
{
u32 client_index;
u32 context;
- u32 sw_if_index;
+ vl_api_interface_index_t sw_if_index;
};
/** \brief Dump virtio pci interfaces request */
/** \brief Reply for virtio pci interface dump request
@param sw_if_index - software index of virtio pci interface
- @param pci_addr - pci address as unsigned 32bit integer:
- 0-15 domain, 16-23 bus, 24-28 slot, 29-31 function
+ @param pci_addr - pci address
@param mac_addr - native virtio device mac address
@param tx_ring_sz - the number of entries of TX ring
@param rx_ring_sz - the number of entries of RX ring
define sw_interface_virtio_pci_details
{
u32 context;
- u32 sw_if_index;
- u32 pci_addr;
- u8 mac_addr[6];
+ vl_api_interface_index_t sw_if_index;
+ vl_api_pci_address_t pci_addr;
+ vl_api_mac_address_t mac_addr;
u16 tx_ring_sz;
u16 rx_ring_sz;
u64 features;