X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fdevices%2Fvirtio%2Fvirtio.api;h=3c8aed2e1591f7175871ce176b5bc0d3b8dd30c8;hb=00f21fb2f;hp=cb672960afd3a490e5a7bd7121af882b2d9708a9;hpb=d6c15af33f3f153e084f14484e884f3ca68dbc23;p=vpp.git diff --git a/src/vnet/devices/virtio/virtio.api b/src/vnet/devices/virtio/virtio.api index cb672960afd..3c8aed2e159 100644 --- a/src/vnet/devices/virtio/virtio.api +++ b/src/vnet/devices/virtio/virtio.api @@ -13,28 +13,33 @@ * 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 tx_ring_sz - the number of entries of TX ring - @param rx_ring_sz - the number of entries of RX ring + @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]; - u16 tx_ring_sz; /* optional, default is 256 entries, must be power of 2 */ - u16 rx_ring_sz; /* optional, default is 256 entries, must be power of 2 */ + 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; }; @@ -44,10 +49,51 @@ define virtio_pci_create @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 @@ -59,7 +105,7 @@ autoreply define virtio_pci_delete { u32 client_index; u32 context; - u32 sw_if_index; + vl_api_interface_index_t sw_if_index; }; /** \brief Dump virtio pci interfaces request */ @@ -71,8 +117,7 @@ define sw_interface_virtio_pci_dump /** \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 @@ -81,9 +126,9 @@ define sw_interface_virtio_pci_dump 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;