Files
vpp/src/plugins/vmxnet3/vmxnet3.api
T
Steven Luong 490e077fb9 vmxnet3: add sw_if_index filter to vmxnet3 interface dump
Introduce a replacement API for vmxnet3_dump which supports interface
filter.

Type: improvement

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I76074db2aa34b397ce570a2019c43e042a9c7838
2020-10-24 08:56:59 +00:00

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:
*/