FD.io VPP  v21.06-3-gbb25fbf28
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  */
vl_api_vmxnet3_dump_t
Dump all vmxnet3 interfaces.
Definition: vmxnet3.api:149
vl_api_vmxnet3_create_t
Definition: vmxnet3.api:38
tx_produce
u16 tx_produce
Definition: vmxnet3.api:93
vl_api_sw_vmxnet3_interface_dump_t::client_index
u32 client_index
Definition: vmxnet3.api:163
vl_api_vmxnet3_dump_t::client_index
u32 client_index
Definition: vmxnet3.api:152
vl_api_vmxnet3_create_t::vat_help
option vat_help
Definition: vmxnet3.api:51
vl_api_vmxnet3_create_t::rxq_size
u16 rxq_size
Definition: vmxnet3.api:45
vl_api_sw_vmxnet3_interface_dump_t::context
u32 context
Definition: vmxnet3.api:164
vl_api_vmxnet3_create_t::client_index
u32 client_index
Definition: vmxnet3.api:40
rx_next
u16 rx_next
Definition: vmxnet3.api:109
vl_api_vmxnet3_create_t::txq_num
u16 txq_num
Definition: vmxnet3.api:48
vl_api_sw_vmxnet3_interface_details_t
Reply for vmxnet3_interface_dump.
Definition: vmxnet3.api:181
vl_api_sw_vmxnet3_interface_dump_t::sw_if_index
vl_api_interface_index_t sw_if_index[default=0xffffffff]
Definition: vmxnet3.api:165
u16
unsigned short u16
Definition: types.h:57
vmxnet3_tx_list
typedef vmxnet3_tx_list
vmxnet3_tx_list structure
Definition: vmxnet3.api:90
vl_api_sw_vmxnet3_interface_details_t::hw_addr
vl_api_mac_address_t hw_addr
Definition: vmxnet3.api:187
i32
signed int i32
Definition: types.h:77
vl_api_vmxnet3_create_reply_t::sw_if_index
vl_api_interface_index_t sw_if_index
Definition: vmxnet3.api:64
vl_api_vmxnet3_details_t::pci_addr
u32 pci_addr
Definition: vmxnet3.api:134
rx_fill
u16 rx_fill[2]
Definition: vmxnet3.api:108
vl_api_vmxnet3_details_t::sw_if_index
vl_api_interface_index_t sw_if_index
Definition: vmxnet3.api:131
vl_api_vmxnet3_details_t::version
u8 version
Definition: vmxnet3.api:135
vl_api_vmxnet3_details_t::if_name
string if_name[64]
Definition: vmxnet3.api:132
vmxnet3_rx_list
typedef vmxnet3_rx_list
vmxnet3_rx_list structure
Definition: vmxnet3.api:106
vl_api_vmxnet3_details_t::rx_count
u8 rx_count
Definition: vmxnet3.api:138
vl_api_vmxnet3_create_t::pci_addr
u32 pci_addr
Definition: vmxnet3.api:43
vl_api_vmxnet3_create_t::txq_size
u16 txq_size
Definition: vmxnet3.api:47
vl_api_vmxnet3_dump_t::context
u32 context
Definition: vmxnet3.api:153
vl_api_vmxnet3_delete_t::sw_if_index
vl_api_interface_index_t sw_if_index
Definition: vmxnet3.api:78
vl_api_sw_vmxnet3_interface_details_t::admin_up_down
bool admin_up_down
Definition: vmxnet3.api:190
tx_next
u16 tx_next
Definition: vmxnet3.api:92
rx_produce
u16 rx_produce[2]
Definition: vmxnet3.api:110
vl_api_vmxnet3_delete_t::client_index
u32 client_index
Definition: vmxnet3.api:75
vl_api_vmxnet3_details_t::tx_list
vl_api_vmxnet3_tx_list_t tx_list[8]
Definition: vmxnet3.api:142
vl_api_vmxnet3_delete_t::vat_help
option vat_help
Definition: vmxnet3.api:79
vl_api_sw_vmxnet3_interface_details_t::sw_if_index
vl_api_interface_index_t sw_if_index
Definition: vmxnet3.api:185
vl_api_vmxnet3_create_reply_t::context
u32 context
Definition: vmxnet3.api:62
vl_api_vmxnet3_delete_t::context
u32 context
Definition: vmxnet3.api:76
vl_api_vmxnet3_details_t::hw_addr
vl_api_mac_address_t hw_addr
Definition: vmxnet3.api:133
vl_api_vmxnet3_details_t::rx_list
vl_api_vmxnet3_rx_list_t rx_list[16]
Definition: vmxnet3.api:139
vl_api_vmxnet3_create_t::enable_gso
bool enable_gso
Definition: vmxnet3.api:50
vl_api_vmxnet3_create_t::context
u32 context
Definition: vmxnet3.api:41
vl_api_vmxnet3_dump_t::deprecated
option deprecated
Definition: vmxnet3.api:151
vl_api_sw_vmxnet3_interface_details_t::rx_count
u8 rx_count
Definition: vmxnet3.api:192
u32
unsigned int u32
Definition: types.h:88
vl_api_vmxnet3_delete_t
Definition: vmxnet3.api:73
vl_api_sw_vmxnet3_interface_details_t::version
u8 version
Definition: vmxnet3.api:189
vl_api_vmxnet3_create_t::bind
u8 bind
Definition: vmxnet3.api:49
vl_api_vmxnet3_details_t::context
u32 context
Definition: vmxnet3.api:129
vl_api_vmxnet3_create_reply_t
Definition: vmxnet3.api:60
vl_api_sw_vmxnet3_interface_details_t::context
u32 context
Definition: vmxnet3.api:183
vl_api_sw_vmxnet3_interface_details_t::rx_list
vl_api_vmxnet3_rx_list_t rx_list[16]
Definition: vmxnet3.api:193
u8
unsigned char u8
Definition: types.h:56
vl_api_sw_vmxnet3_interface_details_t::pci_addr
u32 pci_addr
Definition: vmxnet3.api:188
vl_api_sw_vmxnet3_interface_dump_t
Dump vmxnet3 interfaces.
Definition: vmxnet3.api:161
vl_api_vmxnet3_details_t::tx_count
u8 tx_count
Definition: vmxnet3.api:141
vl_api_vmxnet3_details_t::admin_up_down
bool admin_up_down
Definition: vmxnet3.api:136
vl_api_vmxnet3_details_t
Memory interface details structure.
Definition: vmxnet3.api:127
tx_consume
u16 tx_consume
Definition: vmxnet3.api:94
vl_api_sw_vmxnet3_interface_details_t::tx_list
vl_api_vmxnet3_tx_list_t tx_list[8]
Definition: vmxnet3.api:196
sw_if_index
vl_api_interface_index_t sw_if_index
Definition: wireguard.api:34
vl_api_sw_vmxnet3_interface_details_t::tx_count
u8 tx_count
Definition: vmxnet3.api:195
rx_consume
u16 rx_consume[2]
Definition: vmxnet3.api:111
vl_api_vmxnet3_create_reply_t::retval
i32 retval
Definition: vmxnet3.api:63
vl_api_vmxnet3_create_t::rxq_num
u16 rxq_num
Definition: vmxnet3.api:46
vl_api_vmxnet3_create_t::enable_elog
i32 enable_elog
Definition: vmxnet3.api:44
vl_api_sw_vmxnet3_interface_details_t::if_name
string if_name[64]
Definition: vmxnet3.api:186
version
option version
Definition: vmxnet3.api:18