490e077fb9
Introduce a replacement API for vmxnet3_dump which supports interface filter. Type: improvement Signed-off-by: Steven Luong <sluong@cisco.com> Change-Id: I76074db2aa34b397ce570a2019c43e042a9c7838
204 lines
5.7 KiB
Plaintext
204 lines
5.7 KiB
Plaintext
/*
|
|
*------------------------------------------------------------------
|
|
* Copyright (c) 2018 Cisco and/or its affiliates.
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at:
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*------------------------------------------------------------------
|
|
*/
|
|
|
|
option version = "1.2.0";
|
|
import "vnet/interface_types.api";
|
|
import "vnet/ethernet/ethernet_types.api";
|
|
|
|
/** \brief
|
|
@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
|
|
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 client_index;
|
|
u32 context;
|
|
|
|
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
|
|
@param context - sender context, to match reply w/ request
|
|
@param retval - return value for request
|
|
@param sw_if_index - software index for the new vmxnet3 interface
|
|
*/
|
|
|
|
define vmxnet3_create_reply
|
|
{
|
|
u32 context;
|
|
i32 retval;
|
|
vl_api_interface_index_t sw_if_index;
|
|
};
|
|
|
|
/** \brief
|
|
@param client_index - opaque cookie to identify the sender
|
|
@param context - sender context, to match reply w/ request
|
|
@param sw_if_index - interface index
|
|
*/
|
|
|
|
autoreply define vmxnet3_delete
|
|
{
|
|
u32 client_index;
|
|
u32 context;
|
|
|
|
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 context - sender context, to match reply w/ request (memif_dump)
|
|
@param sw_if_index - index of the interface
|
|
@param if_name - name of the interface
|
|
@param hw_addr - interface MAC address
|
|
@param pci_addr - pci address of the interface
|
|
@param version - vmxnet3 hardware version
|
|
@param admin_up_down - interface administrative 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;
|
|
|
|
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;
|
|
|
|
u8 rx_count;
|
|
vl_api_vmxnet3_rx_list_t rx_list[16];
|
|
|
|
u8 tx_count;
|
|
vl_api_vmxnet3_tx_list_t tx_list[8];
|
|
};
|
|
|
|
/** \brief Dump all vmxnet3 interfaces
|
|
@param client_index - opaque cookie to identify the sender
|
|
@param context - sender context, to match reply w/ request
|
|
*/
|
|
define vmxnet3_dump
|
|
{
|
|
option deprecated;
|
|
u32 client_index;
|
|
u32 context;
|
|
};
|
|
|
|
/** \brief Dump vmxnet3 interfaces
|
|
@param client_index - opaque cookie to identify the sender
|
|
@param context - sender context, to match reply w/ request
|
|
@param vl_api_interface_index_t sw_if_index [default=0xffffffff];
|
|
*/
|
|
define sw_vmxnet3_interface_dump
|
|
{
|
|
u32 client_index;
|
|
u32 context;
|
|
vl_api_interface_index_t sw_if_index [default=0xffffffff];
|
|
};
|
|
|
|
/** \brief Reply for vmxnet3_interface_dump
|
|
@param context - sender context, to match reply w/ request (memif_dump)
|
|
@param sw_if_index - index of the interface
|
|
@param if_name - name of the interface
|
|
@param hw_addr - interface MAC address
|
|
@param pci_addr - pci address of the interface
|
|
@param version - vmxnet3 hardware version
|
|
@param admin_up_down - interface administrative 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 sw_vmxnet3_interface_details
|
|
{
|
|
u32 context;
|
|
|
|
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;
|
|
|
|
u8 rx_count;
|
|
vl_api_vmxnet3_rx_list_t rx_list[16];
|
|
|
|
u8 tx_count;
|
|
vl_api_vmxnet3_tx_list_t tx_list[8];
|
|
};
|
|
|
|
/*
|
|
* Local Variables:
|
|
* eval: (c-set-style "gnu")
|
|
* End:
|
|
*/
|