]>
Commit | Line | Data |
---|---|---|
11fdf7f2 TL |
1 | .. SPDX-License-Identifier: BSD-3-Clause |
2 | Copyright(c) 2017 Intel Corporation. | |
3 | ||
4 | Features Overview | |
5 | ================= | |
6 | ||
7 | This section explains the supported features that are listed in the | |
8 | :doc:`overview`. | |
9 | ||
10 | As a guide to implementers it also shows the structs where the features are | |
11 | defined and the APIs that can be use to get/set the values. | |
12 | ||
13 | Following tags used for feature details, these are from driver point of view: | |
14 | ||
15 | ``[uses]`` : Driver uses some kind of input from the application. | |
16 | ||
17 | ``[implements]`` : Driver implements a functionality. | |
18 | ||
19 | ``[provides]`` : Driver provides some kind of data to the application. It is possible | |
20 | to provide data by implementing some function, but "provides" is used | |
21 | for cases where provided data can't be represented simply by a function. | |
22 | ||
23 | ``[related]`` : Related API with that feature. | |
24 | ||
25 | ||
26 | .. _nic_features_speed_capabilities: | |
27 | ||
28 | Speed capabilities | |
29 | ------------------ | |
30 | ||
31 | Supports getting the speed capabilities that the current device is capable of. | |
32 | ||
33 | * **[provides] rte_eth_dev_info**: ``speed_capa:ETH_LINK_SPEED_*``. | |
34 | * **[related] API**: ``rte_eth_dev_info_get()``. | |
35 | ||
36 | ||
37 | .. _nic_features_link_status: | |
38 | ||
39 | Link status | |
40 | ----------- | |
41 | ||
42 | Supports getting the link speed, duplex mode and link state (up/down). | |
43 | ||
44 | * **[implements] eth_dev_ops**: ``link_update``. | |
45 | * **[implements] rte_eth_dev_data**: ``dev_link``. | |
46 | * **[related] API**: ``rte_eth_link_get()``, ``rte_eth_link_get_nowait()``. | |
47 | ||
48 | ||
49 | .. _nic_features_link_status_event: | |
50 | ||
51 | Link status event | |
52 | ----------------- | |
53 | ||
54 | Supports Link Status Change interrupts. | |
55 | ||
56 | * **[uses] user config**: ``dev_conf.intr_conf.lsc``. | |
57 | * **[uses] rte_eth_dev_data**: ``dev_flags:RTE_ETH_DEV_INTR_LSC``. | |
58 | * **[uses] rte_eth_event_type**: ``RTE_ETH_EVENT_INTR_LSC``. | |
59 | * **[implements] rte_eth_dev_data**: ``dev_link``. | |
60 | * **[provides] rte_pci_driver.drv_flags**: ``RTE_PCI_DRV_INTR_LSC``. | |
61 | * **[related] API**: ``rte_eth_link_get()``, ``rte_eth_link_get_nowait()``. | |
62 | ||
63 | ||
64 | .. _nic_features_removal_event: | |
65 | ||
66 | Removal event | |
67 | ------------- | |
68 | ||
69 | Supports device removal interrupts. | |
70 | ||
71 | * **[uses] user config**: ``dev_conf.intr_conf.rmv``. | |
72 | * **[uses] rte_eth_dev_data**: ``dev_flags:RTE_ETH_DEV_INTR_RMV``. | |
73 | * **[uses] rte_eth_event_type**: ``RTE_ETH_EVENT_INTR_RMV``. | |
74 | * **[provides] rte_pci_driver.drv_flags**: ``RTE_PCI_DRV_INTR_RMV``. | |
75 | ||
76 | ||
77 | .. _nic_features_queue_status_event: | |
78 | ||
79 | Queue status event | |
80 | ------------------ | |
81 | ||
82 | Supports queue enable/disable events. | |
83 | ||
84 | * **[uses] rte_eth_event_type**: ``RTE_ETH_EVENT_QUEUE_STATE``. | |
85 | ||
86 | ||
87 | .. _nic_features_rx_interrupt: | |
88 | ||
89 | Rx interrupt | |
90 | ------------ | |
91 | ||
92 | Supports Rx interrupts. | |
93 | ||
94 | * **[uses] user config**: ``dev_conf.intr_conf.rxq``. | |
95 | * **[implements] eth_dev_ops**: ``rx_queue_intr_enable``, ``rx_queue_intr_disable``. | |
96 | * **[related] API**: ``rte_eth_dev_rx_intr_enable()``, ``rte_eth_dev_rx_intr_disable()``. | |
97 | ||
98 | ||
99 | .. _nic_features_lock-free_tx_queue: | |
100 | ||
101 | Lock-free Tx queue | |
102 | ------------------ | |
103 | ||
104 | If a PMD advertises DEV_TX_OFFLOAD_MT_LOCKFREE capable, multiple threads can | |
105 | invoke rte_eth_tx_burst() concurrently on the same Tx queue without SW lock. | |
106 | ||
107 | * **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_MT_LOCKFREE``. | |
108 | * **[provides] rte_eth_dev_info**: ``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_MT_LOCKFREE``. | |
109 | * **[related] API**: ``rte_eth_tx_burst()``. | |
110 | ||
111 | ||
112 | .. _nic_features_fast_mbuf_free: | |
113 | ||
114 | Fast mbuf free | |
115 | -------------- | |
116 | ||
117 | Supports optimization for fast release of mbufs following successful Tx. | |
118 | Requires that per queue, all mbufs come from the same mempool and has refcnt = 1. | |
119 | ||
120 | * **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_MBUF_FAST_FREE``. | |
121 | * **[provides] rte_eth_dev_info**: ``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_MBUF_FAST_FREE``. | |
122 | ||
123 | ||
124 | .. _nic_features_free_tx_mbuf_on_demand: | |
125 | ||
126 | Free Tx mbuf on demand | |
127 | ---------------------- | |
128 | ||
129 | Supports freeing consumed buffers on a Tx ring. | |
130 | ||
131 | * **[implements] eth_dev_ops**: ``tx_done_cleanup``. | |
132 | * **[related] API**: ``rte_eth_tx_done_cleanup()``. | |
133 | ||
134 | ||
135 | .. _nic_features_queue_start_stop: | |
136 | ||
137 | Queue start/stop | |
138 | ---------------- | |
139 | ||
140 | Supports starting/stopping a specific Rx/Tx queue of a port. | |
141 | ||
142 | * **[implements] eth_dev_ops**: ``rx_queue_start``, ``rx_queue_stop``, ``tx_queue_start``, | |
143 | ``tx_queue_stop``. | |
144 | * **[related] API**: ``rte_eth_dev_rx_queue_start()``, ``rte_eth_dev_rx_queue_stop()``, | |
145 | ``rte_eth_dev_tx_queue_start()``, ``rte_eth_dev_tx_queue_stop()``. | |
146 | ||
147 | ||
148 | .. _nic_features_mtu_update: | |
149 | ||
150 | MTU update | |
151 | ---------- | |
152 | ||
153 | Supports updating port MTU. | |
154 | ||
155 | * **[implements] eth_dev_ops**: ``mtu_set``. | |
156 | * **[implements] rte_eth_dev_data**: ``mtu``. | |
157 | * **[provides] rte_eth_dev_info**: ``max_rx_pktlen``. | |
158 | * **[related] API**: ``rte_eth_dev_set_mtu()``, ``rte_eth_dev_get_mtu()``. | |
159 | ||
160 | ||
161 | .. _nic_features_jumbo_frame: | |
162 | ||
163 | Jumbo frame | |
164 | ----------- | |
165 | ||
166 | Supports Rx jumbo frames. | |
167 | ||
168 | * **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_JUMBO_FRAME``. | |
169 | ``dev_conf.rxmode.max_rx_pkt_len``. | |
170 | * **[related] rte_eth_dev_info**: ``max_rx_pktlen``. | |
171 | * **[related] API**: ``rte_eth_dev_set_mtu()``. | |
172 | ||
173 | ||
174 | .. _nic_features_scattered_rx: | |
175 | ||
176 | Scattered Rx | |
177 | ------------ | |
178 | ||
179 | Supports receiving segmented mbufs. | |
180 | ||
181 | * **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_SCATTER``. | |
182 | * **[implements] datapath**: ``Scattered Rx function``. | |
183 | * **[implements] rte_eth_dev_data**: ``scattered_rx``. | |
184 | * **[provides] eth_dev_ops**: ``rxq_info_get:scattered_rx``. | |
185 | * **[related] eth_dev_ops**: ``rx_pkt_burst``. | |
186 | ||
187 | ||
188 | .. _nic_features_lro: | |
189 | ||
190 | LRO | |
191 | --- | |
192 | ||
193 | Supports Large Receive Offload. | |
194 | ||
195 | * **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_TCP_LRO``. | |
196 | * **[implements] datapath**: ``LRO functionality``. | |
197 | * **[implements] rte_eth_dev_data**: ``lro``. | |
198 | * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_LRO``, ``mbuf.tso_segsz``. | |
199 | * **[provides] rte_eth_dev_info**: ``rx_offload_capa,rx_queue_offload_capa:DEV_RX_OFFLOAD_TCP_LRO``. | |
200 | ||
201 | ||
202 | .. _nic_features_tso: | |
203 | ||
204 | TSO | |
205 | --- | |
206 | ||
207 | Supports TCP Segmentation Offloading. | |
208 | ||
209 | * **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_TCP_TSO``. | |
210 | * **[uses] rte_eth_desc_lim**: ``nb_seg_max``, ``nb_mtu_seg_max``. | |
9f95a23c | 211 | * **[uses] mbuf**: ``mbuf.ol_flags:`` ``PKT_TX_TCP_SEG``, ``PKT_TX_IPV4``, ``PKT_TX_IPV6``, ``PKT_TX_IP_CKSUM``. |
11fdf7f2 TL |
212 | * **[uses] mbuf**: ``mbuf.tso_segsz``, ``mbuf.l2_len``, ``mbuf.l3_len``, ``mbuf.l4_len``. |
213 | * **[implements] datapath**: ``TSO functionality``. | |
214 | * **[provides] rte_eth_dev_info**: ``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_TCP_TSO,DEV_TX_OFFLOAD_UDP_TSO``. | |
215 | ||
216 | ||
217 | .. _nic_features_promiscuous_mode: | |
218 | ||
219 | Promiscuous mode | |
220 | ---------------- | |
221 | ||
222 | Supports enabling/disabling promiscuous mode for a port. | |
223 | ||
224 | * **[implements] eth_dev_ops**: ``promiscuous_enable``, ``promiscuous_disable``. | |
225 | * **[implements] rte_eth_dev_data**: ``promiscuous``. | |
226 | * **[related] API**: ``rte_eth_promiscuous_enable()``, ``rte_eth_promiscuous_disable()``, | |
227 | ``rte_eth_promiscuous_get()``. | |
228 | ||
229 | ||
230 | .. _nic_features_allmulticast_mode: | |
231 | ||
232 | Allmulticast mode | |
233 | ----------------- | |
234 | ||
235 | Supports enabling/disabling receiving multicast frames. | |
236 | ||
237 | * **[implements] eth_dev_ops**: ``allmulticast_enable``, ``allmulticast_disable``. | |
238 | * **[implements] rte_eth_dev_data**: ``all_multicast``. | |
239 | * **[related] API**: ``rte_eth_allmulticast_enable()``, | |
240 | ``rte_eth_allmulticast_disable()``, ``rte_eth_allmulticast_get()``. | |
241 | ||
242 | ||
243 | .. _nic_features_unicast_mac_filter: | |
244 | ||
245 | Unicast MAC filter | |
246 | ------------------ | |
247 | ||
248 | Supports adding MAC addresses to enable whitelist filtering to accept packets. | |
249 | ||
250 | * **[implements] eth_dev_ops**: ``mac_addr_set``, ``mac_addr_add``, ``mac_addr_remove``. | |
251 | * **[implements] rte_eth_dev_data**: ``mac_addrs``. | |
252 | * **[related] API**: ``rte_eth_dev_default_mac_addr_set()``, | |
253 | ``rte_eth_dev_mac_addr_add()``, ``rte_eth_dev_mac_addr_remove()``, | |
254 | ``rte_eth_macaddr_get()``. | |
255 | ||
256 | ||
257 | .. _nic_features_multicast_mac_filter: | |
258 | ||
259 | Multicast MAC filter | |
260 | -------------------- | |
261 | ||
262 | Supports setting multicast addresses to filter. | |
263 | ||
264 | * **[implements] eth_dev_ops**: ``set_mc_addr_list``. | |
265 | * **[related] API**: ``rte_eth_dev_set_mc_addr_list()``. | |
266 | ||
267 | ||
268 | .. _nic_features_rss_hash: | |
269 | ||
270 | RSS hash | |
271 | -------- | |
272 | ||
273 | Supports RSS hashing on RX. | |
274 | ||
275 | * **[uses] user config**: ``dev_conf.rxmode.mq_mode`` = ``ETH_MQ_RX_RSS_FLAG``. | |
276 | * **[uses] user config**: ``dev_conf.rx_adv_conf.rss_conf``. | |
277 | * **[provides] rte_eth_dev_info**: ``flow_type_rss_offloads``. | |
278 | * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_RSS_HASH``, ``mbuf.rss``. | |
279 | ||
280 | ||
281 | .. _nic_features_inner_rss: | |
282 | ||
283 | Inner RSS | |
284 | --------- | |
285 | ||
286 | Supports RX RSS hashing on Inner headers. | |
287 | ||
9f95a23c | 288 | * **[uses] rte_flow_action_rss**: ``level``. |
11fdf7f2 TL |
289 | * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_RSS_HASH``, ``mbuf.rss``. |
290 | ||
291 | ||
292 | .. _nic_features_rss_key_update: | |
293 | ||
294 | RSS key update | |
295 | -------------- | |
296 | ||
297 | Supports configuration of Receive Side Scaling (RSS) hash computation. Updating | |
298 | Receive Side Scaling (RSS) hash key. | |
299 | ||
300 | * **[implements] eth_dev_ops**: ``rss_hash_update``, ``rss_hash_conf_get``. | |
301 | * **[provides] rte_eth_dev_info**: ``hash_key_size``. | |
302 | * **[related] API**: ``rte_eth_dev_rss_hash_update()``, | |
303 | ``rte_eth_dev_rss_hash_conf_get()``. | |
304 | ||
305 | ||
306 | .. _nic_features_rss_reta_update: | |
307 | ||
308 | RSS reta update | |
309 | --------------- | |
310 | ||
311 | Supports updating Redirection Table of the Receive Side Scaling (RSS). | |
312 | ||
313 | * **[implements] eth_dev_ops**: ``reta_update``, ``reta_query``. | |
314 | * **[provides] rte_eth_dev_info**: ``reta_size``. | |
315 | * **[related] API**: ``rte_eth_dev_rss_reta_update()``, ``rte_eth_dev_rss_reta_query()``. | |
316 | ||
317 | ||
318 | .. _nic_features_vmdq: | |
319 | ||
320 | VMDq | |
321 | ---- | |
322 | ||
323 | Supports Virtual Machine Device Queues (VMDq). | |
324 | ||
325 | * **[uses] user config**: ``dev_conf.rxmode.mq_mode`` = ``ETH_MQ_RX_VMDQ_FLAG``. | |
326 | * **[uses] user config**: ``dev_conf.rx_adv_conf.vmdq_dcb_conf``. | |
327 | * **[uses] user config**: ``dev_conf.rx_adv_conf.vmdq_rx_conf``. | |
328 | * **[uses] user config**: ``dev_conf.tx_adv_conf.vmdq_dcb_tx_conf``. | |
329 | * **[uses] user config**: ``dev_conf.tx_adv_conf.vmdq_tx_conf``. | |
330 | ||
331 | ||
332 | .. _nic_features_sriov: | |
333 | ||
334 | SR-IOV | |
335 | ------ | |
336 | ||
337 | Driver supports creating Virtual Functions. | |
338 | ||
339 | * **[implements] rte_eth_dev_data**: ``sriov``. | |
340 | ||
341 | .. _nic_features_dcb: | |
342 | ||
343 | DCB | |
344 | --- | |
345 | ||
346 | Supports Data Center Bridging (DCB). | |
347 | ||
348 | * **[uses] user config**: ``dev_conf.rxmode.mq_mode`` = ``ETH_MQ_RX_DCB_FLAG``. | |
349 | * **[uses] user config**: ``dev_conf.rx_adv_conf.vmdq_dcb_conf``. | |
350 | * **[uses] user config**: ``dev_conf.rx_adv_conf.dcb_rx_conf``. | |
351 | * **[uses] user config**: ``dev_conf.tx_adv_conf.vmdq_dcb_tx_conf``. | |
352 | * **[uses] user config**: ``dev_conf.tx_adv_conf.vmdq_tx_conf``. | |
353 | * **[implements] eth_dev_ops**: ``get_dcb_info``. | |
354 | * **[related] API**: ``rte_eth_dev_get_dcb_info()``. | |
355 | ||
356 | ||
357 | .. _nic_features_vlan_filter: | |
358 | ||
359 | VLAN filter | |
360 | ----------- | |
361 | ||
362 | Supports filtering of a VLAN Tag identifier. | |
363 | ||
364 | * **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_VLAN_FILTER``. | |
365 | * **[implements] eth_dev_ops**: ``vlan_filter_set``. | |
366 | * **[related] API**: ``rte_eth_dev_vlan_filter()``. | |
367 | ||
368 | ||
369 | .. _nic_features_ethertype_filter: | |
370 | ||
371 | Ethertype filter | |
372 | ---------------- | |
373 | ||
374 | Supports filtering on Ethernet type. | |
375 | ||
376 | * **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_ETHERTYPE``. | |
377 | * **[related] API**: ``rte_eth_dev_filter_ctrl()``, ``rte_eth_dev_filter_supported()``. | |
378 | ||
379 | .. _nic_features_ntuple_filter: | |
380 | ||
381 | N-tuple filter | |
382 | -------------- | |
383 | ||
384 | Supports filtering on N-tuple values. | |
385 | ||
386 | * **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_NTUPLE``. | |
387 | * **[related] API**: ``rte_eth_dev_filter_ctrl()``, ``rte_eth_dev_filter_supported()``. | |
388 | ||
389 | ||
390 | .. _nic_features_syn_filter: | |
391 | ||
392 | SYN filter | |
393 | ---------- | |
394 | ||
395 | Supports TCP syn filtering. | |
396 | ||
397 | * **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_SYN``. | |
398 | * **[related] API**: ``rte_eth_dev_filter_ctrl()``, ``rte_eth_dev_filter_supported()``. | |
399 | ||
400 | ||
401 | .. _nic_features_tunnel_filter: | |
402 | ||
403 | Tunnel filter | |
404 | ------------- | |
405 | ||
406 | Supports tunnel filtering. | |
407 | ||
408 | * **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_TUNNEL``. | |
409 | * **[related] API**: ``rte_eth_dev_filter_ctrl()``, ``rte_eth_dev_filter_supported()``. | |
410 | ||
411 | ||
412 | .. _nic_features_flexible_filter: | |
413 | ||
414 | Flexible filter | |
415 | --------------- | |
416 | ||
417 | Supports a flexible (non-tuple or Ethertype) filter. | |
418 | ||
419 | * **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_FLEXIBLE``. | |
420 | * **[related] API**: ``rte_eth_dev_filter_ctrl()``, ``rte_eth_dev_filter_supported()``. | |
421 | ||
422 | ||
423 | .. _nic_features_hash_filter: | |
424 | ||
425 | Hash filter | |
426 | ----------- | |
427 | ||
428 | Supports Hash filtering. | |
429 | ||
430 | * **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_HASH``. | |
431 | * **[related] API**: ``rte_eth_dev_filter_ctrl()``, ``rte_eth_dev_filter_supported()``. | |
432 | ||
433 | ||
434 | .. _nic_features_flow_director: | |
435 | ||
436 | Flow director | |
437 | ------------- | |
438 | ||
439 | Supports Flow Director style filtering to queues. | |
440 | ||
441 | * **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_FDIR``. | |
442 | * **[provides] mbuf**: ``mbuf.ol_flags:`` ``PKT_RX_FDIR``, ``PKT_RX_FDIR_ID``, | |
443 | ``PKT_RX_FDIR_FLX``. | |
444 | * **[related] API**: ``rte_eth_dev_filter_ctrl()``, ``rte_eth_dev_filter_supported()``. | |
445 | ||
446 | ||
447 | .. _nic_features_flow_control: | |
448 | ||
449 | Flow control | |
450 | ------------ | |
451 | ||
452 | Supports configuring link flow control. | |
453 | ||
454 | * **[implements] eth_dev_ops**: ``flow_ctrl_get``, ``flow_ctrl_set``, | |
455 | ``priority_flow_ctrl_set``. | |
456 | * **[related] API**: ``rte_eth_dev_flow_ctrl_get()``, ``rte_eth_dev_flow_ctrl_set()``, | |
457 | ``rte_eth_dev_priority_flow_ctrl_set()``. | |
458 | ||
459 | ||
460 | .. _nic_features_flow_api: | |
461 | ||
462 | Flow API | |
463 | -------- | |
464 | ||
465 | Supports the DPDK Flow API for generic filtering. | |
466 | ||
467 | * **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_GENERIC``. | |
468 | * **[implements] rte_flow_ops**: ``All``. | |
469 | ||
470 | ||
471 | .. _nic_features_rate_limitation: | |
472 | ||
473 | Rate limitation | |
474 | --------------- | |
475 | ||
476 | Supports Tx rate limitation for a queue. | |
477 | ||
478 | * **[implements] eth_dev_ops**: ``set_queue_rate_limit``. | |
479 | * **[related] API**: ``rte_eth_set_queue_rate_limit()``. | |
480 | ||
481 | ||
482 | .. _nic_features_traffic_mirroring: | |
483 | ||
484 | Traffic mirroring | |
485 | ----------------- | |
486 | ||
487 | Supports adding traffic mirroring rules. | |
488 | ||
489 | * **[implements] eth_dev_ops**: ``mirror_rule_set``, ``mirror_rule_reset``. | |
490 | * **[related] API**: ``rte_eth_mirror_rule_set()``, ``rte_eth_mirror_rule_reset()``. | |
491 | ||
492 | ||
493 | .. _nic_features_inline_crypto_doc: | |
494 | ||
495 | Inline crypto | |
496 | ------------- | |
497 | ||
9f95a23c | 498 | Supports inline crypto processing (e.g. inline IPsec). See Security library and PMD documentation for more details. |
11fdf7f2 TL |
499 | |
500 | * **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_SECURITY``, | |
501 | * **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_SECURITY``. | |
502 | * **[implements] rte_security_ops**: ``session_create``, ``session_update``, | |
503 | ``session_stats_get``, ``session_destroy``, ``set_pkt_metadata``, ``capabilities_get``. | |
504 | * **[provides] rte_eth_dev_info**: ``rx_offload_capa,rx_queue_offload_capa:DEV_RX_OFFLOAD_SECURITY``, | |
505 | ``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_SECURITY``. | |
506 | * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_SEC_OFFLOAD``, | |
507 | ``mbuf.ol_flags:PKT_TX_SEC_OFFLOAD``, ``mbuf.ol_flags:PKT_RX_SEC_OFFLOAD_FAILED``. | |
508 | ||
509 | ||
510 | .. _nic_features_crc_offload: | |
511 | ||
512 | CRC offload | |
513 | ----------- | |
514 | ||
515 | Supports CRC stripping by hardware. | |
9f95a23c | 516 | A PMD assumed to support CRC stripping by default. PMD should advertise if it supports keeping CRC. |
11fdf7f2 | 517 | |
9f95a23c | 518 | * **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_KEEP_CRC``. |
11fdf7f2 TL |
519 | |
520 | ||
521 | .. _nic_features_vlan_offload: | |
522 | ||
523 | VLAN offload | |
524 | ------------ | |
525 | ||
526 | Supports VLAN offload to hardware. | |
527 | ||
528 | * **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_VLAN_STRIP,DEV_RX_OFFLOAD_VLAN_FILTER,DEV_RX_OFFLOAD_VLAN_EXTEND``. | |
529 | * **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_VLAN_INSERT``. | |
9f95a23c | 530 | * **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_VLAN``, ``mbuf.vlan_tci``. |
11fdf7f2 | 531 | * **[implements] eth_dev_ops**: ``vlan_offload_set``. |
9f95a23c | 532 | * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_VLAN_STRIPPED``, ``mbuf.ol_flags:PKT_RX_VLAN`` ``mbuf.vlan_tci``. |
11fdf7f2 TL |
533 | * **[provides] rte_eth_dev_info**: ``rx_offload_capa,rx_queue_offload_capa:DEV_RX_OFFLOAD_VLAN_STRIP``, |
534 | ``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_VLAN_INSERT``. | |
535 | * **[related] API**: ``rte_eth_dev_set_vlan_offload()``, | |
536 | ``rte_eth_dev_get_vlan_offload()``. | |
537 | ||
538 | ||
539 | .. _nic_features_qinq_offload: | |
540 | ||
541 | QinQ offload | |
542 | ------------ | |
543 | ||
544 | Supports QinQ (queue in queue) offload. | |
545 | ||
546 | * **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_QINQ_STRIP``. | |
547 | * **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_QINQ_INSERT``. | |
9f95a23c TL |
548 | * **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_QINQ``, ``mbuf.vlan_tci_outer``. |
549 | * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_QINQ_STRIPPED``, ``mbuf.ol_flags:PKT_RX_QINQ``, | |
550 | ``mbuf.ol_flags:PKT_RX_VLAN_STRIPPED``, ``mbuf.ol_flags:PKT_RX_VLAN`` | |
551 | ``mbuf.vlan_tci``, ``mbuf.vlan_tci_outer``. | |
11fdf7f2 TL |
552 | * **[provides] rte_eth_dev_info**: ``rx_offload_capa,rx_queue_offload_capa:DEV_RX_OFFLOAD_QINQ_STRIP``, |
553 | ``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_QINQ_INSERT``. | |
554 | ||
555 | ||
556 | .. _nic_features_l3_checksum_offload: | |
557 | ||
558 | L3 checksum offload | |
559 | ------------------- | |
560 | ||
561 | Supports L3 checksum offload. | |
562 | ||
563 | * **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_IPV4_CKSUM``. | |
564 | * **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_IPV4_CKSUM``. | |
565 | * **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_IP_CKSUM``, | |
566 | ``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``. | |
9f95a23c | 567 | * **[uses] mbuf**: ``mbuf.l2_len``, ``mbuf.l3_len``. |
11fdf7f2 TL |
568 | * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_IP_CKSUM_UNKNOWN`` | |
569 | ``PKT_RX_IP_CKSUM_BAD`` | ``PKT_RX_IP_CKSUM_GOOD`` | | |
570 | ``PKT_RX_IP_CKSUM_NONE``. | |
571 | * **[provides] rte_eth_dev_info**: ``rx_offload_capa,rx_queue_offload_capa:DEV_RX_OFFLOAD_IPV4_CKSUM``, | |
572 | ``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_IPV4_CKSUM``. | |
573 | ||
574 | ||
575 | .. _nic_features_l4_checksum_offload: | |
576 | ||
577 | L4 checksum offload | |
578 | ------------------- | |
579 | ||
580 | Supports L4 checksum offload. | |
581 | ||
9f95a23c | 582 | * **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_UDP_CKSUM,DEV_RX_OFFLOAD_TCP_CKSUM,DEV_RX_OFFLOAD_SCTP_CKSUM``. |
11fdf7f2 TL |
583 | * **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_UDP_CKSUM,DEV_TX_OFFLOAD_TCP_CKSUM,DEV_TX_OFFLOAD_SCTP_CKSUM``. |
584 | * **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``, | |
585 | ``mbuf.ol_flags:PKT_TX_L4_NO_CKSUM`` | ``PKT_TX_TCP_CKSUM`` | | |
586 | ``PKT_TX_SCTP_CKSUM`` | ``PKT_TX_UDP_CKSUM``. | |
9f95a23c | 587 | * **[uses] mbuf**: ``mbuf.l2_len``, ``mbuf.l3_len``. |
11fdf7f2 TL |
588 | * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_L4_CKSUM_UNKNOWN`` | |
589 | ``PKT_RX_L4_CKSUM_BAD`` | ``PKT_RX_L4_CKSUM_GOOD`` | | |
590 | ``PKT_RX_L4_CKSUM_NONE``. | |
9f95a23c | 591 | * **[provides] rte_eth_dev_info**: ``rx_offload_capa,rx_queue_offload_capa:DEV_RX_OFFLOAD_UDP_CKSUM,DEV_RX_OFFLOAD_TCP_CKSUM,DEV_RX_OFFLOAD_SCTP_CKSUM``, |
11fdf7f2 TL |
592 | ``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_UDP_CKSUM,DEV_TX_OFFLOAD_TCP_CKSUM,DEV_TX_OFFLOAD_SCTP_CKSUM``. |
593 | ||
594 | .. _nic_features_hw_timestamp: | |
595 | ||
596 | Timestamp offload | |
597 | ----------------- | |
598 | ||
599 | Supports Timestamp. | |
600 | ||
601 | * **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_TIMESTAMP``. | |
602 | * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_TIMESTAMP``. | |
603 | * **[provides] mbuf**: ``mbuf.timestamp``. | |
604 | * **[provides] rte_eth_dev_info**: ``rx_offload_capa,rx_queue_offload_capa: DEV_RX_OFFLOAD_TIMESTAMP``. | |
605 | ||
606 | .. _nic_features_macsec_offload: | |
607 | ||
608 | MACsec offload | |
609 | -------------- | |
610 | ||
611 | Supports MACsec. | |
612 | ||
613 | * **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_MACSEC_STRIP``. | |
614 | * **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_MACSEC_INSERT``. | |
615 | * **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_MACSEC``. | |
616 | * **[provides] rte_eth_dev_info**: ``rx_offload_capa,rx_queue_offload_capa:DEV_RX_OFFLOAD_MACSEC_STRIP``, | |
617 | ``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_MACSEC_INSERT``. | |
618 | ||
619 | ||
620 | .. _nic_features_inner_l3_checksum: | |
621 | ||
622 | Inner L3 checksum | |
623 | ----------------- | |
624 | ||
625 | Supports inner packet L3 checksum. | |
626 | ||
627 | * **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM``. | |
628 | * **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM``. | |
629 | * **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_IP_CKSUM``, | |
630 | ``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``, | |
631 | ``mbuf.ol_flags:PKT_TX_OUTER_IP_CKSUM``, | |
632 | ``mbuf.ol_flags:PKT_TX_OUTER_IPV4`` | ``PKT_TX_OUTER_IPV6``. | |
633 | * **[uses] mbuf**: ``mbuf.outer_l2_len``, ``mbuf.outer_l3_len``. | |
634 | * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_EIP_CKSUM_BAD``. | |
635 | * **[provides] rte_eth_dev_info**: ``rx_offload_capa,rx_queue_offload_capa:DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM``, | |
636 | ``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM``. | |
637 | ||
638 | ||
639 | .. _nic_features_inner_l4_checksum: | |
640 | ||
641 | Inner L4 checksum | |
642 | ----------------- | |
643 | ||
644 | Supports inner packet L4 checksum. | |
645 | ||
9f95a23c TL |
646 | * **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_OUTER_UDP_CKSUM``. |
647 | * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_OUTER_L4_CKSUM_UNKNOWN`` | | |
648 | ``PKT_RX_OUTER_L4_CKSUM_BAD`` | ``PKT_RX_OUTER_L4_CKSUM_GOOD`` | ``PKT_RX_OUTER_L4_CKSUM_INVALID``. | |
649 | * **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_OUTER_UDP_CKSUM``. | |
650 | * **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_OUTER_IPV4`` | ``PKT_TX_OUTER_IPV6``. | |
651 | ``mbuf.ol_flags:PKT_TX_OUTER_UDP_CKSUM``. | |
652 | * **[uses] mbuf**: ``mbuf.outer_l2_len``, ``mbuf.outer_l3_len``. | |
653 | * **[provides] rte_eth_dev_info**: ``rx_offload_capa,rx_queue_offload_capa:DEV_RX_OFFLOAD_OUTER_UDP_CKSUM``, | |
654 | ``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_OUTER_UDP_CKSUM``. | |
655 | ||
11fdf7f2 TL |
656 | |
657 | .. _nic_features_packet_type_parsing: | |
658 | ||
659 | Packet type parsing | |
660 | ------------------- | |
661 | ||
662 | Supports packet type parsing and returns a list of supported types. | |
663 | ||
664 | * **[implements] eth_dev_ops**: ``dev_supported_ptypes_get``. | |
665 | * **[related] API**: ``rte_eth_dev_get_supported_ptypes()``. | |
666 | ||
667 | ||
668 | .. _nic_features_timesync: | |
669 | ||
670 | Timesync | |
671 | -------- | |
672 | ||
673 | Supports IEEE1588/802.1AS timestamping. | |
674 | ||
675 | * **[implements] eth_dev_ops**: ``timesync_enable``, ``timesync_disable`` | |
676 | ``timesync_read_rx_timestamp``, ``timesync_read_tx_timestamp``, | |
677 | ``timesync_adjust_time``, ``timesync_read_time``, ``timesync_write_time``. | |
678 | * **[related] API**: ``rte_eth_timesync_enable()``, ``rte_eth_timesync_disable()``, | |
679 | ``rte_eth_timesync_read_rx_timestamp()``, | |
680 | ``rte_eth_timesync_read_tx_timestamp``, ``rte_eth_timesync_adjust_time()``, | |
681 | ``rte_eth_timesync_read_time()``, ``rte_eth_timesync_write_time()``. | |
682 | ||
683 | ||
684 | .. _nic_features_rx_descriptor_status: | |
685 | ||
686 | Rx descriptor status | |
687 | -------------------- | |
688 | ||
689 | Supports check the status of a Rx descriptor. When ``rx_descriptor_status`` is | |
690 | used, status can be "Available", "Done" or "Unavailable". When | |
691 | ``rx_descriptor_done`` is used, status can be "DD bit is set" or "DD bit is | |
692 | not set". | |
693 | ||
694 | * **[implements] eth_dev_ops**: ``rx_descriptor_status``. | |
695 | * **[related] API**: ``rte_eth_rx_descriptor_status()``. | |
696 | * **[implements] eth_dev_ops**: ``rx_descriptor_done``. | |
697 | * **[related] API**: ``rte_eth_rx_descriptor_done()``. | |
698 | ||
699 | ||
700 | .. _nic_features_tx_descriptor_status: | |
701 | ||
702 | Tx descriptor status | |
703 | -------------------- | |
704 | ||
705 | Supports checking the status of a Tx descriptor. Status can be "Full", "Done" | |
706 | or "Unavailable." | |
707 | ||
708 | * **[implements] eth_dev_ops**: ``tx_descriptor_status``. | |
709 | * **[related] API**: ``rte_eth_tx_descriptor_status()``. | |
710 | ||
711 | ||
712 | .. _nic_features_basic_stats: | |
713 | ||
714 | Basic stats | |
715 | ----------- | |
716 | ||
717 | Support basic statistics such as: ipackets, opackets, ibytes, obytes, | |
718 | imissed, ierrors, oerrors, rx_nombuf. | |
719 | ||
720 | And per queue stats: q_ipackets, q_opackets, q_ibytes, q_obytes, q_errors. | |
721 | ||
722 | These apply to all drivers. | |
723 | ||
724 | * **[implements] eth_dev_ops**: ``stats_get``, ``stats_reset``. | |
725 | * **[related] API**: ``rte_eth_stats_get``, ``rte_eth_stats_reset()``. | |
726 | ||
727 | ||
728 | .. _nic_features_extended_stats: | |
729 | ||
730 | Extended stats | |
731 | -------------- | |
732 | ||
733 | Supports Extended Statistics, changes from driver to driver. | |
734 | ||
735 | * **[implements] eth_dev_ops**: ``xstats_get``, ``xstats_reset``, ``xstats_get_names``. | |
736 | * **[implements] eth_dev_ops**: ``xstats_get_by_id``, ``xstats_get_names_by_id``. | |
737 | * **[related] API**: ``rte_eth_xstats_get()``, ``rte_eth_xstats_reset()``, | |
738 | ``rte_eth_xstats_get_names``, ``rte_eth_xstats_get_by_id()``, | |
739 | ``rte_eth_xstats_get_names_by_id()``, ``rte_eth_xstats_get_id_by_name()``. | |
740 | ||
741 | ||
742 | .. _nic_features_stats_per_queue: | |
743 | ||
744 | Stats per queue | |
745 | --------------- | |
746 | ||
747 | Supports configuring per-queue stat counter mapping. | |
748 | ||
749 | * **[implements] eth_dev_ops**: ``queue_stats_mapping_set``. | |
750 | * **[related] API**: ``rte_eth_dev_set_rx_queue_stats_mapping()``, | |
751 | ``rte_eth_dev_set_tx_queue_stats_mapping()``. | |
752 | ||
753 | ||
754 | .. _nic_features_fw_version: | |
755 | ||
756 | FW version | |
757 | ---------- | |
758 | ||
759 | Supports getting device hardware firmware information. | |
760 | ||
761 | * **[implements] eth_dev_ops**: ``fw_version_get``. | |
762 | * **[related] API**: ``rte_eth_dev_fw_version_get()``. | |
763 | ||
764 | ||
765 | .. _nic_features_eeprom_dump: | |
766 | ||
767 | EEPROM dump | |
768 | ----------- | |
769 | ||
770 | Supports getting/setting device eeprom data. | |
771 | ||
772 | * **[implements] eth_dev_ops**: ``get_eeprom_length``, ``get_eeprom``, ``set_eeprom``. | |
773 | * **[related] API**: ``rte_eth_dev_get_eeprom_length()``, ``rte_eth_dev_get_eeprom()``, | |
774 | ``rte_eth_dev_set_eeprom()``. | |
775 | ||
776 | ||
777 | .. _nic_features_module_eeprom_dump: | |
778 | ||
779 | Module EEPROM dump | |
780 | ------------------ | |
781 | ||
782 | Supports getting information and data of plugin module eeprom. | |
783 | ||
784 | * **[implements] eth_dev_ops**: ``get_module_info``, ``get_module_eeprom``. | |
785 | * **[related] API**: ``rte_eth_dev_get_module_info()``, ``rte_eth_dev_get_module_eeprom()``. | |
786 | ||
787 | ||
788 | .. _nic_features_register_dump: | |
789 | ||
790 | Registers dump | |
791 | -------------- | |
792 | ||
793 | Supports retrieving device registers and registering attributes (number of | |
794 | registers and register size). | |
795 | ||
796 | * **[implements] eth_dev_ops**: ``get_reg``. | |
797 | * **[related] API**: ``rte_eth_dev_get_reg_info()``. | |
798 | ||
799 | ||
800 | .. _nic_features_led: | |
801 | ||
802 | LED | |
803 | --- | |
804 | ||
805 | Supports turning on/off a software controllable LED on a device. | |
806 | ||
807 | * **[implements] eth_dev_ops**: ``dev_led_on``, ``dev_led_off``. | |
808 | * **[related] API**: ``rte_eth_led_on()``, ``rte_eth_led_off()``. | |
809 | ||
810 | ||
811 | .. _nic_features_multiprocess_aware: | |
812 | ||
813 | Multiprocess aware | |
814 | ------------------ | |
815 | ||
816 | Driver can be used for primary-secondary process model. | |
817 | ||
818 | ||
819 | .. _nic_features_bsd_nic_uio: | |
820 | ||
821 | BSD nic_uio | |
822 | ----------- | |
823 | ||
824 | BSD ``nic_uio`` module supported. | |
825 | ||
826 | ||
827 | .. _nic_features_linux_uio: | |
828 | ||
829 | Linux UIO | |
830 | --------- | |
831 | ||
832 | Works with ``igb_uio`` kernel module. | |
833 | ||
834 | * **[provides] RTE_PMD_REGISTER_KMOD_DEP**: ``igb_uio``. | |
835 | ||
836 | .. _nic_features_linux_vfio: | |
837 | ||
838 | Linux VFIO | |
839 | ---------- | |
840 | ||
841 | Works with ``vfio-pci`` kernel module. | |
842 | ||
843 | * **[provides] RTE_PMD_REGISTER_KMOD_DEP**: ``vfio-pci``. | |
844 | ||
845 | .. _nic_features_other_kdrv: | |
846 | ||
847 | Other kdrv | |
848 | ---------- | |
849 | ||
850 | Kernel module other than above ones supported. | |
851 | ||
852 | ||
853 | .. _nic_features_armv7: | |
854 | ||
855 | ARMv7 | |
856 | ----- | |
857 | ||
858 | Support armv7 architecture. | |
859 | ||
860 | Use ``defconfig_arm-armv7a-*-*``. | |
861 | ||
862 | ||
863 | .. _nic_features_armv8: | |
864 | ||
865 | ARMv8 | |
866 | ----- | |
867 | ||
868 | Support armv8a (64bit) architecture. | |
869 | ||
870 | Use ``defconfig_arm64-armv8a-*-*`` | |
871 | ||
872 | ||
873 | .. _nic_features_power8: | |
874 | ||
875 | Power8 | |
876 | ------ | |
877 | ||
878 | Support PowerPC architecture. | |
879 | ||
880 | Use ``defconfig_ppc_64-power8-*-*`` | |
881 | ||
882 | .. _nic_features_x86-32: | |
883 | ||
884 | x86-32 | |
885 | ------ | |
886 | ||
887 | Support 32bits x86 architecture. | |
888 | ||
889 | Use ``defconfig_x86_x32-native-*-*`` and ``defconfig_i686-native-*-*``. | |
890 | ||
891 | ||
892 | .. _nic_features_x86-64: | |
893 | ||
894 | x86-64 | |
895 | ------ | |
896 | ||
897 | Support 64bits x86 architecture. | |
898 | ||
899 | Use ``defconfig_x86_64-native-*-*``. | |
900 | ||
901 | ||
902 | .. _nic_features_usage_doc: | |
903 | ||
904 | Usage doc | |
905 | --------- | |
906 | ||
907 | Documentation describes usage. | |
908 | ||
909 | See ``doc/guides/nics/*.rst`` | |
910 | ||
911 | ||
912 | .. _nic_features_design_doc: | |
913 | ||
914 | Design doc | |
915 | ---------- | |
916 | ||
917 | Documentation describes design. | |
918 | ||
919 | See ``doc/guides/nics/*.rst``. | |
920 | ||
921 | ||
922 | .. _nic_features_perf_doc: | |
923 | ||
924 | Perf doc | |
925 | -------- | |
926 | ||
927 | Documentation describes performance values. | |
928 | ||
929 | See ``dpdk.org/doc/perf/*``. | |
930 | ||
931 | .. _nic_features_runtime_rx_queue_setup: | |
932 | ||
933 | Runtime Rx queue setup | |
934 | ---------------------- | |
935 | ||
936 | Supports Rx queue setup after device started. | |
937 | ||
938 | * **[provides] rte_eth_dev_info**: ``dev_capa:RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP``. | |
939 | * **[related] API**: ``rte_eth_dev_info_get()``. | |
940 | ||
941 | .. _nic_features_runtime_tx_queue_setup: | |
942 | ||
943 | Runtime Tx queue setup | |
944 | ---------------------- | |
945 | ||
946 | Supports Tx queue setup after device started. | |
947 | ||
948 | * **[provides] rte_eth_dev_info**: ``dev_capa:RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP``. | |
949 | * **[related] API**: ``rte_eth_dev_info_get()``. | |
950 | ||
951 | .. _nic_features_other: | |
952 | ||
953 | Other dev ops not represented by a Feature | |
954 | ------------------------------------------ | |
955 | ||
956 | * ``rxq_info_get`` | |
957 | * ``txq_info_get`` | |
958 | * ``vlan_tpid_set`` | |
959 | * ``vlan_strip_queue_set`` | |
960 | * ``vlan_pvid_set`` | |
961 | * ``rx_queue_count`` | |
962 | * ``l2_tunnel_offload_set`` | |
963 | * ``uc_hash_table_set`` | |
964 | * ``uc_all_hash_table_set`` | |
965 | * ``udp_tunnel_port_add`` | |
966 | * ``udp_tunnel_port_del`` | |
967 | * ``l2_tunnel_eth_type_conf`` | |
968 | * ``l2_tunnel_offload_set`` | |
969 | * ``tx_pkt_prepare`` |