FD.io VPP  v21.01.1
Vector Packet Processing
vmxnet3.api
Go to the documentation of this file.
1 /*
2  *------------------------------------------------------------------
3  * Copyright (c) 2018 Cisco and/or its affiliates.
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at:
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *------------------------------------------------------------------
16  */
17 
18 option version = "1.2.0";
19 import "vnet/interface_types.api";
20 import "vnet/ethernet/ethernet_types.api";
21 
22 /** \brief
23  @param client_index - opaque cookie to identify the sender
24  @param context - sender context, to match reply w/ request
25  @param pci_addr - pci address as unsigned 32bit integer:
26  0-15 domain, 16-23 bus, 24-28 slot, 29-31 function
27  ddddddddddddddddbbbbbbbbsssssfff
28  @param enable_elog - turn on elog (optional - default is off)
29  @param rxq_size - receive queue size (optional - default is 1024)
30  @param rxq_num - number of receive queues (optional - default is 1)
31  @param txq_size - transmit queue size (optional - default is 1024)
32  @param txq_num - number of transmit queues (optional - default is 1)
33  @param bind - automatically bind PCI to vfio-pci module
34  (optional - default is 0)
35  @param enable_gso - enable gso (optional - default is 0)
36 */
37 
38 define vmxnet3_create
39 {
42 
50  bool enable_gso;
51  option vat_help = "<pci-address> [rx-queue-size <size>] [tx-queue-size <size>] [num-tx-queues <num>] [num-rx-queues <num>] [bind] [gso]";
52 };
53 
54 /** \brief
55  @param context - sender context, to match reply w/ request
56  @param retval - return value for request
57  @param sw_if_index - software index for the new vmxnet3 interface
58 */
59 
60 define vmxnet3_create_reply
61 {
64  vl_api_interface_index_t sw_if_index;
65 };
66 
67 /** \brief
68  @param client_index - opaque cookie to identify the sender
69  @param context - sender context, to match reply w/ request
70  @param sw_if_index - interface index
71 */
72 
73 autoreply define vmxnet3_delete
74 {
77 
78  vl_api_interface_index_t sw_if_index;
79  option vat_help = "sw_if_index <sw_if_index>";
80 };
81 
82 /** \brief vmxnet3_tx_list structure
83  @param tx_qsize - tx queue size
84  @param tx_next - tx next index
85  @param tx_produce - tx produce index
86  @param tx_consume - tx consume index
87 */
88 
89 typedef vmxnet3_tx_list
90 {
91  u16 tx_qsize;
95 };
96 
97 /** \brief vmxnet3_rx_list structure
98  @param rx_qsize - rx queue size
99  @param rx_fill - rx fill count
100  @param rx_next - rx next index
101  @param rx_produce - rx produce index
102  @param rx_consume - rx consume index
103 */
104 
105 typedef vmxnet3_rx_list
106 {
107  u16 rx_qsize;
112 };
113 
114 /** \brief Memory interface details structure
115  @param context - sender context, to match reply w/ request (memif_dump)
116  @param sw_if_index - index of the interface
117  @param if_name - name of the interface
118  @param hw_addr - interface MAC address
119  @param pci_addr - pci address of the interface
120  @param version - vmxnet3 hardware version
121  @param admin_up_down - interface administrative status
122  @param rx_count - number of elements in rx_list
123  @param rx_list - list of vmxnet3_rx_list
124  @param tx_count - number of elements in tx_list
125  @param tx_list - list of vmnxnet3_tx_list
126 */
127 define vmxnet3_details
128 {
130 
131  vl_api_interface_index_t sw_if_index;
132  string if_name[64];
133  vl_api_mac_address_t hw_addr;
137 
139  vl_api_vmxnet3_rx_list_t rx_list[16];
140 
142  vl_api_vmxnet3_tx_list_t tx_list[8];
143 };
144 
145 /** \brief Dump all vmxnet3 interfaces
146  @param client_index - opaque cookie to identify the sender
147  @param context - sender context, to match reply w/ request
148 */
149 define vmxnet3_dump
150 {
151  option deprecated;
154 };
155 
156 /** \brief Dump vmxnet3 interfaces
157  @param client_index - opaque cookie to identify the sender
158  @param context - sender context, to match reply w/ request
159  @param vl_api_interface_index_t sw_if_index [default=0xffffffff];
160 */
161 define sw_vmxnet3_interface_dump
162 {
165  vl_api_interface_index_t sw_if_index [default=0xffffffff];
166 };
167 
168 /** \brief Reply for vmxnet3_interface_dump
169  @param context - sender context, to match reply w/ request (memif_dump)
170  @param sw_if_index - index of the interface
171  @param if_name - name of the interface
172  @param hw_addr - interface MAC address
173  @param pci_addr - pci address of the interface
174  @param version - vmxnet3 hardware version
175  @param admin_up_down - interface administrative status
176  @param rx_count - number of elements in rx_list
177  @param rx_list - list of vmxnet3_rx_list
178  @param tx_count - number of elements in tx_list
179  @param tx_list - list of vmnxnet3_tx_list
180 */
181 define sw_vmxnet3_interface_details
182 {
184 
185  vl_api_interface_index_t sw_if_index;
186  string if_name[64];
187  vl_api_mac_address_t hw_addr;
191 
193  vl_api_vmxnet3_rx_list_t rx_list[16];
194 
196  vl_api_vmxnet3_tx_list_t tx_list[8];
197 };
198 
199 /*
200  * Local Variables:
201  * eval: (c-set-style "gnu")
202  * End:
203  */
u16 rx_next
Definition: vmxnet3.api:109
vl_api_interface_index_t sw_if_index
Definition: vmxnet3.api:185
u16 rx_produce[2]
Definition: vmxnet3.api:110
typedef vmxnet3_tx_list
vmxnet3_tx_list structure
Definition: vmxnet3.api:90
unsigned char u8
Definition: types.h:56
typedef vmxnet3_rx_list
vmxnet3_rx_list structure
Definition: vmxnet3.api:106
vl_api_interface_index_t sw_if_index
Definition: vmxnet3.api:64
unsigned int u32
Definition: types.h:88
option version
Definition: vmxnet3.api:18
unsigned short u16
Definition: types.h:57
u16 tx_next
Definition: vmxnet3.api:92
vl_api_interface_index_t sw_if_index
Definition: vmxnet3.api:131
vl_api_interface_index_t sw_if_index
Definition: vmxnet3.api:78
vl_api_mac_address_t hw_addr
Definition: vmxnet3.api:133
u16 rx_consume[2]
Definition: vmxnet3.api:111
signed int i32
Definition: types.h:77
u16 tx_consume
Definition: vmxnet3.api:94
u16 rx_fill[2]
Definition: vmxnet3.api:108
u16 tx_produce
Definition: vmxnet3.api:93
vl_api_interface_index_t sw_if_index
Definition: wireguard.api:34