[PATCH 19/20] drivers: add testpmd commands for private features
liujie5 at linkdatatechnology.com
liujie5 at linkdatatechnology.com
Sun Jun 14 11:23:03 CEST 2026
æ¨å¥½ï¼
æè°¢è¯¦ç»çå®¡æ¥æè§ã以䏿¯æä»¬å¯¹æ¯æ¡åé¦çéæ¡åå¤ä»¥å v2 计ååæ´ã
---
### 1. strtoul() å¼è¶çå¤ç
éæ°æ£æ¥äº [`sxe2_ethdev.c`](drivers/net/sxe2/sxe2_ethdev.c) ä¸ç devargs è§£æä»£ç åï¼æä»¬ç¡®è®¤ææè§£æå¨é½å·²å¤çè¶çå¼ï¼
- [`sxe2_parse_u8()`](drivers/net/sxe2/sxe2_ethdev.c:1074) â æ£æ¥ `val > UINT8_MAX`ï¼ç¬¬ 1092 è¡ï¼ï¼è¿å `-ERANGE`
- [`sxe2_parse_bool()`](drivers/net/sxe2/sxe2_ethdev.c:1103) â æ£æ¥ `bool_val != 0 && bool_val != 1`ï¼ç¬¬ 1121 è¡ï¼
- [`sxe2_parse_fnav_stat_type()`](drivers/net/sxe2/sxe2_ethdev.c:989) â æ£æ¥æ¯å¦è¶
è¿ `SXE2_FNAV_STAT_ENA_ALL`ï¼ç¬¬ 1007 è¡ï¼
- [`sxe2_parse_sched_layer_mode()`](drivers/net/sxe2/sxe2_ethdev.c:1018) â æ£æ¥æ¯å¦è¶
è¿ `SXE2_TXSCH_NODE_ADJ_LVL_MAX`ï¼ç¬¬ 1036 è¡ï¼
- [`sxe2_parse_high_performance_mode()`](drivers/net/sxe2/sxe2_ethdev.c:1046) â æ£æ¥ `high_performance_mode != 1`ï¼ç¬¬ 1064 è¡ï¼ï¼è¦çé¶åè¶çå¼
æ¯ä¸ªå½æ°å¨ `strtoul()` å设置 `errno = 0`ï¼ä¹åæ£æ¥ `errno != 0`ï¼ä»èæè· `ERANGE`ï¼æº¢åºï¼ãä¹ååæ§è¡è¯ä¹èå´æ£æ¥ãv2 䏿们å°å¨æ¯ä¸ª `strtoul()` è°ç¨åå¢å æ¾å¼ç `ULONG_MAX` æ¯è¾ä»¥å¢å é²å¾¡æ§ã
---
### 2. ä»é©±å¨åºå¯¼åº testpmd 符å·
**åæã** 没æä¸æ¸¸é©±å¨ä¸ºå
¶ testpmd å½ä»¤å¯¼åºç¬¦å·ãv2 ä¸å°ï¼
- å° `sxe2_testpmd_lib.c` çå®ç°ç§»è³ `sxe2_testpmd.c`ï¼éè¿ meson.build ä¸ç `testpmd_sources` ç¼è¯ï¼ä¸ i40eãixgbeãmlx5ãbnxt ç驱å¨ç模å¼ä¸è´ã
- **å 餿æ 14 个 `RTE_EXPORT_EXPERIMENTAL_SYMBOL` æ¡ç®ã** è¿äºä»æªä½ä¸ºå
Œ
± APIã
- å°åºç¨ç¶æï¼`g_tx_session[][]`ã`g_rx_session[][]`ã`g_esp_header_offset[]`ã`g_sess_pool`ï¼ç§»è³ testpmd 侧代ç ã
- 驱å¨å
é¨å½æ°ç»§ç»éè¿ `drivers/net/sxe2/` ä¸çå
é¨å¤´æä»¶è®¿é®ã
---
### 3. 䏿 å testpmd åè½éå¤çå½ä»¤
**ä¸ä¸ªå½ä»¤é½åæå é¤ã**
- **"sxe2 flow rule dump"** â æä»¬å°å®ç° `rte_flow_dev_dump` opãä¹åæ åå½ä»¤ `flow dump <port_id> all` å³å¯æ£å¸¸å·¥ä½ãç§æå½ä»¤å°è¢«å é¤ã
- **"sxe2 udp_tunnel_port add|rm"** â 该å½ä»¤è°ç¨ `rte_eth_dev_udp_tunnel_port_add/rm`ï¼å·²ç± `port config <port_id> udp_tunnel_port add|rm` æ´é²ãç§æå½ä»¤æ¯åä½çï¼å°è¢«å é¤ã
- **"sxe2 show stats"** â æä»¬å°å®¡æ¥ xstats å¹¶è¡¥å
缺失ç计æ°å¨ï¼ç¨æ·æ¹ç¨ `show port xstats <port_id>`ãç§æå½ä»¤å°è¢«å é¤ã
---
### 4. IPsec SA 管çå¥ä»¶
**åæã** æä»¬å°ï¼
- ä» testpmd æ©å±ä¸å é¤ 9 个åå½ä»¤ç ipsec SA 管çå½ä»¤ã
- ææ¡£ä¸è¯´æ `examples/ipsec-secgw` æ¯ä½¿ç¨æ¤é©±å¨éªè¯ inline crypto çæ¯ææ¹å¼ï¼ä¸å
¶ä» inline-crypto PMD ä¸è´ã
- 妿尿¥éè¦ testpmd ä¸ç交äºå¼ SA 管çï¼æä»¬å°æè®®ä½ä¸ºéç¨ç testpmd å½ä»¤åºäº `rte_security` å®ç°ï¼ä½¿ææé©±å¨åçã
---
### 5. ç§æ devargs
ææ 7 个 devargs çææ¡£å·²æ·»å å° [`doc/guides/nics/sxe2.rst`](doc/guides/nics/sxe2.rst)ï¼Runtime Configuration ç« èï¼ï¼åæ¶æ·»å äº `RTE_PMD_REGISTER_PARAM_STRING` 以ä¿è¯å¯åç°æ§ã以䏿¯ä¿çæ¯ä¸ª devargs ççç±ï¼
**flow-duplicate-pattern** â æ§å¶ç¡¬ä»¶ switch engine æ¯å¦æ¥åéå¤ç flow ruleãè¿ä¸ä¼æ¹å `rte_flow` è¯ä¹ï¼å®é
ç½®äºä¸ä¸ªç¡¬ä»¶ç¹å®çè½åãswitch engine æ¯æä¸¤ç§æ¨¡å¼ï¼(a) æç»éå¤è§åç¨äºéè¯¯æ£æµï¼(b) éè¿ per-rule å
æ°æ®æ å¿å
许éå¤ãé»è®¤å¼ï¼1 = å
许ï¼ç¡®ä¿æ åè¡ä¸ºãç®åæ²¡ææ å API ç¨äºæ§å¶ switch 级å«çéå¤è§åè¡ä¸ºã
**fnav-stat-type** â å¨åå§åæ¶éæ©ç¡¬ä»¶è®¡æ°å¨èµæºé
ç½®ï¼ä»
å
è®¡æ° / ä»
åèè®¡æ° / 两è
ï¼ãè¿æ¯ä¸ä¸ªéæç¡¬ä»¶é
ç½®å³çï¼èéè¿è¡æ¶å¼å
³ãç®åæ²¡ææ å API ç¨äºéæ©è®¡æ°å¨èµæºåé
模å¼ã
**drv-sw-stats** â æäºå
ç±»åä¸ç¡¬ä»¶è®¡æ°å¨å¯è½åå¨ä¸åç¡®æ§ãæ¤åæ°å¯ç¨ Rx æ°æ®è·¯å¾ä¸ç软件累计路å¾ä½ä¸º workaroundãper-packet 软件åç±»çå¼é使å¾éè¿ devarg æ§å¶èéå§ç»å¼å¯æ¯åççã计æ°å¨éè¿ xstats æ´é²ï¼`rx_sw_unicast_packets` çï¼ã
**sched-layer-mode** â ä¸å硬件 SKU æ¯æä¸åçæå¤§è°åº¦å±çº§æ°ï¼0-3ï¼ãè¯¥åæ°å¨åå§åæ¶éå¶å±çº§æ·±åº¦ã`rte_tm` API ç®å没æå¨é
ç½®åæ¥è¯¢æå¤§è°åº¦æ·±åº¦çæ¥å£ã
**high-performance-mode** â Tx ç»è¿ç¡¬ä»¶è°åº¦å¨ä»¥è·å¾æ´ä½å»¶è¿ãä¸éåä½ä¸ºé»è®¤å¼ï¼å 为 TM åè½å¯¹è®¸å¤ç¨æ·å¾éè¦ãç°å·²è®°å½å®æ´çæ§è½æè¡¡è¯´æã
**rx-low-latency** â Rx 䏿è°èè°ä¼ã类似 devarg å¨å
¶ä»é©±å¨ä¸ä¹åå¨ï¼ä¾å¦ mlx5 ç `rxqs_min_bth`ï¼ã
**function-flow-direct** â æ§å¶ flow rule ç PF/VF éå®åèå´ã`rte_flow` 没æé对æ¤åè½ç per-rule æ å¿ã
---
### v2 计ååæ´
1. devarg è§£æå¨ä¸ `strtoul()` åå¢å é²å¾¡æ§ `ULONG_MAX` æ£æ¥
2. testpmd å½ä»¤ç§»åºé©±å¨åºï¼å é¤ 14 个 `RTE_EXPORT_EXPERIMENTAL_SYMBOL`
3. å®ç° `rte_flow_dev_dump` opï¼å é¤ "sxe2 flow rule dump" å½ä»¤
4. å é¤ "sxe2 udp_tunnel_port add|rm" å½ä»¤ï¼åä½ï¼
5. å®å xstats è¦çï¼å é¤ "sxe2 show stats" å½ä»¤
6. å é¤ ipsec SA 管ç testpmd å½ä»¤
7. ä¿ç 7 个 devargsï¼å¨ sxe2.rst 䏿ä¾å®æ´ææ¡£åçç±
8. ä¸ºææ devargs æ·»å `RTE_PMD_REGISTER_PARAM_STRING`
æä»¬å°å°½å¿«åé v2ã妿å
¶ä»é®é¢è¯·åç¥ã
谢谢ï¼
[ç½²å]
More information about the dev
mailing list