diff options
Diffstat (limited to 'src/vnet/devices/virtio')
-rw-r--r-- | src/vnet/devices/virtio/virtio.api | 31 | ||||
-rw-r--r-- | src/vnet/devices/virtio/virtio_api.c | 6 |
2 files changed, 21 insertions, 16 deletions
diff --git a/src/vnet/devices/virtio/virtio.api b/src/vnet/devices/virtio/virtio.api index f2a3a412126..b191810d71b 100644 --- a/src/vnet/devices/virtio/virtio.api +++ b/src/vnet/devices/virtio/virtio.api @@ -13,13 +13,17 @@ * limitations under the License. */ -option version = "1.0.0"; +option version = "2.0.0"; + +import "vnet/interface_types.api"; +import "vnet/ethernet/ethernet_types.api"; +import "vnet/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_random not set @param gso_enabled - enable gso feature if available, 1 to enable @@ -29,10 +33,10 @@ define virtio_pci_create { 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; u64 features; }; @@ -45,7 +49,7 @@ define virtio_pci_create_reply { u32 context; i32 retval; - u32 sw_if_index; + vl_api_interface_index_t sw_if_index; }; /** \brief Delete virtio pci interface @@ -57,7 +61,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 */ @@ -69,8 +73,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 @@ -79,9 +82,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; diff --git a/src/vnet/devices/virtio/virtio_api.c b/src/vnet/devices/virtio/virtio_api.c index 9d009f37a38..ac167e827c6 100644 --- a/src/vnet/devices/virtio/virtio_api.c +++ b/src/vnet/devices/virtio/virtio_api.c @@ -25,6 +25,7 @@ #include <vnet/ip/ip.h> #include <vnet/devices/virtio/virtio.h> #include <vnet/devices/virtio/pci.h> +#include <vnet/pci/pci_types_api.h> #include <vnet/vnet_msg_enum.h> @@ -59,7 +60,7 @@ vl_api_virtio_pci_create_t_handler (vl_api_virtio_pci_create_t * mp) clib_memset (ap, 0, sizeof (*ap)); - ap->addr = ntohl (mp->pci_addr); + pci_address_decode (&mp->pci_addr, (vlib_pci_addr_t *) & ap->addr); if (!mp->use_random_mac) { clib_memcpy (ap->mac_addr, mp->mac_address, 6); @@ -136,7 +137,8 @@ virtio_pci_send_sw_interface_details (vpe_api_main_t * am, clib_memset (mp, 0, sizeof (*mp)); mp->_vl_msg_id = htons (VL_API_SW_INTERFACE_VIRTIO_PCI_DETAILS); - mp->pci_addr = htonl (vif->pci_addr.as_u32); + pci_address_encode ((vlib_pci_addr_t *) & vif->pci_addr.as_u32, + &mp->pci_addr); mp->sw_if_index = htonl (vif->sw_if_index); virtio_vring_t *vring = vec_elt_at_index (vif->rxq_vrings, 0); mp->rx_ring_sz = htons (vring->size); |