已合并
[docs]新增sp233兼容性资料 #248
penghd创建于 7 天前
[docs]新增sp233兼容性资料 #248
已合并
penghd创建于 7 天前
25 个文件变更+308-42
MREADME.md+1-1
@@ -62,7 +62,7 @@ K-NET加速特性的详细使用方式、注意事项等请参见[特性指南](
62 62 
63### 硬件支持63### 硬件支持
64 64 
65-K-NET支持Huawei SP670网卡,网卡驱动和固件可通过support官网获取。65+K-NET支持Huawei SP670/SP233网卡,网卡驱动和固件可通过support官网获取。
H

确认此处是SP233,是否应该是SP230?

likedislike
penghd
penghd
6 天前 评论:
66 66 
67### 特性支持67### 特性支持
68 68 
Mdocs/zh/configuration_reference_items.md+2-2
@@ -81,12 +81,12 @@
81| 配置项 | 说明 |缺省值 | 取值范围|81| 配置项 | 说明 |缺省值 | 取值范围|
82|----------|--------|-----|-----|82|----------|--------|-----|-----|
83|core_list_global|数据面绑核,将数据面绑定的核号固定。<p>用数字列表设置应用程序使用的CPU核,例如:“0,1”,表示绑定0号核和1号核。</p><p>多进程模式下,绑多个核时,可以使用“-”,如“1-10”,表示绑定1号核到10号核。</p><p> **注意:**</p> <li>绑定核的个数必须等于max_worker_num,仅除开启cothread_enable后,此配置项不会进行读取与校验。</li><li>ctrl_vcpu_ids指定的控制线程核号和此配置项指定的核号必须不同。</li>|"1"|0~服务器的CPU个数-1|83|core_list_global|数据面绑核,将数据面绑定的核号固定。<p>用数字列表设置应用程序使用的CPU核,例如:“0,1”,表示绑定0号核和1号核。</p><p>多进程模式下,绑多个核时,可以使用“-”,如“1-10”,表示绑定1号核到10号核。</p><p> **注意:**</p> <li>绑定核的个数必须等于max_worker_num,仅除开启cothread_enable后,此配置项不会进行读取与校验。</li><li>ctrl_vcpu_ids指定的控制线程核号和此配置项指定的核号必须不同。</li>|"1"|0~服务器的CPU个数-1|
84-|queue_num|所有worker使用的队列数。<li>单进程:总的队列个数,均分到每个worker上。</li><li>多进程:无效,每个从进程默认一个队列。</li><p> **说明:**</p> 单进程模式下:<p>- 仅单进程,可配置`queue_num>=max_worker_num`,此时worker会共享使能的队列。</p><p> - 开共线程时,即“cothread_enable”: 1时:max_worker_num为1,queue_num可配置大于等于1;max_worker_num大于1,queue_num需要与max_worker_num一致。</p><p>- 开流分叉时,即“bifur_enable”:1时:默认queue_num最大值为8;用户可根据实际需要配置32队列,参考[流量分叉支持配置32队列](./feature_guide/traffic_bifurcation.md#流量分叉支持配置32队列)支持配置32队列,此时queue_num最大值为32。</p>|1|1~64|84+|queue_num|所有worker使用的队列数。<li>单进程:总的队列个数,均分到每个worker上。</li><li>多进程:无效,每个从进程默认一个队列。</li><p> **说明:**</p> 单进程模式下:<p>- 仅单进程,可配置`queue_num>=max_worker_num`,此时worker会共享使能的队列。</p><p> - 开共线程时,即“cothread_enable”: 1时:max_worker_num为1,queue_num可配置大于等于1;max_worker_num大于1,queue_num需要与max_worker_num一致。</p><p>- 开流分叉时,即“bifur_enable”:1时:默认queue_num最大值为8;用户可根据实际需要配置32队列,参考[流量分叉支持配置32队列](./feature_guide/traffic_bifurcation_sp670.md#流量分叉支持配置32队列)支持配置32队列,此时queue_num最大值为32。</p>|1|1~64|
85|tx_cache_size|发送缓存大小,单位个。<p> **约束:**</p> tx_cache_size \* 业务实例个数 + rx_cache_size \* 业务实例个数 < max_mbuf。业务实例个数为实际启动的业务进程个数。|256|256~16384|85|tx_cache_size|发送缓存大小,单位个。<p> **约束:**</p> tx_cache_size \* 业务实例个数 + rx_cache_size \* 业务实例个数 < max_mbuf。业务实例个数为实际启动的业务进程个数。|256|256~16384|
86|rx_cache_size|接收缓存大小,单位个。<p> **约束:**</p>tx_cache_size \*业务实例个数 + rx_cache_size\* 业务实例个数 < max_mbuf。业务实例个数为实际启动的业务进程个数。|256|256~16384|86|rx_cache_size|接收缓存大小,单位个。<p> **约束:**</p>tx_cache_size \*业务实例个数 + rx_cache_size\* 业务实例个数 < max_mbuf。业务实例个数为实际启动的业务进程个数。|256|256~16384|
87|socket_mem |预分配每个socket大页内存大小,单位MB。<p>多个参数间请使用“,”分隔。例如:</p>`"socket_mem" : "--socket-mem=1024,2048"`<p>表示在0号socket上预分配1024M,在1号socket上分配2048M。</p>|--socket-mem=1024|0~服务器分配现有的可用大页内存总量|87|socket_mem |预分配每个socket大页内存大小,单位MB。<p>多个参数间请使用“,”分隔。例如:</p>`"socket_mem" : "--socket-mem=1024,2048"`<p>表示在0号socket上预分配1024M,在1号socket上分配2048M。</p>|--socket-mem=1024|0~服务器分配现有的可用大页内存总量|
88|socket_limit |限制每个socket上可分配的最大内存。不支持传统内存模式。单位MB。<p> **约束:**</p>socket_limit大于等于socket_mem的内存数。|--socket-limit=1024|0~服务器分配现有的可用大页内存总量|88|socket_limit |限制每个socket上可分配的最大内存。不支持传统内存模式。单位MB。<p> **约束:**</p>socket_limit大于等于socket_mem的内存数。|--socket-limit=1024|0~服务器分配现有的可用大页内存总量|
89-|external_driver|不同场景填写不同的PMD驱动。注意前面有个-d。<p>SP670</p>`"external_driver" : "-dlibrte_net_hinic3.so"`|-dlibrte_net_hinic3.so|-dlibrte_net_hinic3.so,置空|89+|external_driver|不同场景填写不同的PMD驱动。注意前面有个-d。<p>SP670/SP233</p>`"external_driver" : "-dlibrte_net_hinic3.so"`|-dlibrte_net_hinic3.so|-dlibrte_net_hinic3.so,置空|
90|telemetry |统计信息的开关。<li>0:表示不开启。</li><li>1:表示开启。</li>|1|0,1|90|telemetry |统计信息的开关。<li>0:表示不开启。</li><li>1:表示开启。</li>|1|0,1|
91|huge_dir |大页挂载路径。<p>例如:</p>`"huge_dir" : "--huge-dir=/home/username/hugepages"`|-|-|91|huge_dir |大页挂载路径。<p>例如:</p>`"huge_dir" : "--huge-dir=/home/username/hugepages"`|-|-|
92|base-virtaddr|DPDK主进程内存映射起始虚拟地址基地址。<p>例如:</p>`"base-virtaddr": "--base-virtaddr=0x100000000"`|-|-|92|base-virtaddr|DPDK主进程内存映射起始虚拟地址基地址。<p>例如:</p>`"base-virtaddr": "--base-virtaddr=0x100000000"`|-|-|
Mdocs/zh/feature_guide/_toc.yaml+7-5
@@ -11,15 +11,13 @@ sections:
11 href: ./feature_overview.md11 href: ./feature_overview.md
12 - label: 内核流量转发功能12 - label: 内核流量转发功能
13 href: ./kernel_traffic_forwarding.md13 href: ./kernel_traffic_forwarding.md
14- - label: 多进程加速功能14+ - label: 多进程模式加速
15 href: ./multi_process_model_acceleration.md15 href: ./multi_process_model_acceleration.md
16 - label: 网络加速功能16 - label: 网络加速功能
17 href: ./network_acceleration_verification.md17 href: ./network_acceleration_verification.md
18- - label: 单进程加速功能18+ - label: 单进程模式加速
19 href: ./single_process_model_acceleration.md19 href: ./single_process_model_acceleration.md
20- - label: 网卡流量分叉功能20+ - label: 用户态网卡bond功能
21- href: ./traffic_bifurcation.md
22- - label: 用户态网卡Bond功能
23 href: ./using_dpdk_user_space_virtual_bonding.md21 href: ./using_dpdk_user_space_virtual_bonding.md
24 - label: 零拷贝功能22 - label: 零拷贝功能
25 href: ./zero_copy.md23 href: ./zero_copy.md
@@ -29,3 +27,7 @@ sections:
29 href: ./usage_example.md27 href: ./usage_example.md
30 - label: 使用共线程、零拷贝功能进行Tperf加速28 - label: 使用共线程、零拷贝功能进行Tperf加速
31 href: ../../../demo/tperf/tperf.md29 href: ../../../demo/tperf/tperf.md
30+ - label: 网卡流量分叉功能(SP233网卡)
31+ href: ./traffic_bifurcation_sp233.md
32+ - label: 网卡流量分叉功能(SP670网卡)
33+ href: ./traffic_bifurcation_sp670.md
Mdocs/zh/feature_guide/environment_configuration.md+17-2
@@ -93,11 +93,18 @@
938. 执行命令,确认要用的网口。<a id="确认所用网口"></a>938. 执行命令,确认要用的网口。<a id="确认所用网口"></a>
94 94 
95 hinicadm工具直接查询:95 hinicadm工具直接查询:
96+ SP670网卡查询命令
96 97 
97 ```bash98 ```bash
98 hinicadm3 info99 hinicadm3 info
99 ```100 ```
100 101 
102+ SP233网卡查询命令
103+ 
104+ ```bash
105+ hinicadm5 info
106+ ```
107+ 
101 回显示例如下,获取到可用网口设备为“enp6s0”,BDF号为“0000:06:00.0”。108 回显示例如下,获取到可用网口设备为“enp6s0”,BDF号为“0000:06:00.0”。
102 109 
103 ```text110 ```text
@@ -142,7 +149,7 @@
142 149
143 回显示例如下,此处说明所在NUMA为1。150 回显示例如下,此处说明所在NUMA为1。
144 151 
145- ![](../figures/zh-cn_image_0000002503837758.png)152+ ![查看NUMA](../figures/zh-cn_image_0000002503837758.png)
146 153 
147 ```bash154 ```bash
148 echo never > /sys/kernel/mm/transparent_hugepage/enabled # 关闭透明大页155 echo never > /sys/kernel/mm/transparent_hugepage/enabled # 关闭透明大页
@@ -239,7 +246,7 @@
239> - **标准模式**:DPDK完全接管网卡。适用于大多数场景。246> - **标准模式**:DPDK完全接管网卡。适用于大多数场景。
240> - **流量分叉模式**:无需DPDK接管网卡,K-NET与内核态协议栈同时工作。适用于需要同时使用K-NET加速和内核态网络的场景。247> - **流量分叉模式**:无需DPDK接管网卡,K-NET与内核态协议栈同时工作。适用于需要同时使用K-NET加速和内核态网络的场景。
241> 248>
242-> 若使用**流量分叉模式**,请跳过本章节的步骤2(DPDK接管网卡),完成本章其他配置后,参考[流量分叉功能](traffic_bifurcation.md)文档进行后续使用。249+> 若使用**流量分叉模式**,请跳过本章节的步骤2(DPDK接管网卡),完成本章其他配置后,使用SP670网卡请参考[SP670流量分叉功能](traffic_bifurcation_sp670.md)文档进行后续使用,使用SP233网卡请参考[SP233流量分叉功能](traffic_bifurcation_sp233.md)文档进行后续使用
243 250 
2441. 修改配置文件。2511. 修改配置文件。
245 252 
@@ -320,9 +327,17 @@
320 > [!NOTE]说明327 > [!NOTE]说明
321 >如果想要取消DPDK接管网卡,执行:328 >如果想要取消DPDK接管网卡,执行:
322 >329 >
330+ >SP670网卡取消DPDK接管网卡命令:
331+ >
323 >```bash332 >```bash
324 >dpdk-devbind.py -b "hisdk3" 0000:06:00.0 # "hisdk3"为SP670网卡使用的驱动333 >dpdk-devbind.py -b "hisdk3" 0000:06:00.0 # "hisdk3"为SP670网卡使用的驱动
Q
Qqiuqianhw7 天前

这里要分开写,不然用户会直接把两条命令直接拷贝进去,要写清楚SP670网卡:xx,SP233网卡

likedislike
325 >```334 >```
335+ >
336+ >SP233网卡取消DPDK接管网卡命令:
337+ >
338+ >```bash
339+ >dpdk-devbind.py -b "hisdk5" 0000:06:00.0 # "hisdk5"为SP233网卡使用的驱动
340+ >```
326 341 
3273. 配置K-NET动态库、knet_mp_daemon、knet_comm.conf以及业务软件相关权限。3423. 配置K-NET动态库、knet_mp_daemon、knet_comm.conf以及业务软件相关权限。
328 343 
Mdocs/zh/feature_guide/feature_menu.md+2-1
@@ -5,7 +5,8 @@
5- [网络加速功能](./network_acceleration_verification.md)5- [网络加速功能](./network_acceleration_verification.md)
6 - [单进程加速功能](./single_process_model_acceleration.md)6 - [单进程加速功能](./single_process_model_acceleration.md)
7 - [多进程加速功能](./multi_process_model_acceleration.md)7 - [多进程加速功能](./multi_process_model_acceleration.md)
8- - [网卡流量分叉功能](./traffic_bifurcation.md)8+ - [网卡流量分叉功能(SP670)](./traffic_bifurcation_sp670.md)
9+ - [网卡流量分叉功能(SP233)](./traffic_bifurcation_sp233.md)
9 - [零拷贝功能](./zero_copy.md)10 - [零拷贝功能](./zero_copy.md)
10 - [共线程功能](./cothread.md)11 - [共线程功能](./cothread.md)
11 - [用户态网卡Bond功能](./using_dpdk_user_space_virtual_bonding.md)12 - [用户态网卡Bond功能](./using_dpdk_user_space_virtual_bonding.md)
Mdocs/zh/feature_guide/feature_overview.md+10-10
@@ -1,15 +1,15 @@
1# 特性支持1# 特性支持
2 2 
3-|序号|特性|描述|支持网卡|支持OS|支持软件|3+|序号|特性|描述|支持网卡OS|支持软件|
4-|--|--|--|--|--|--|4+|--|--|--|--|--|
5-|1|单进程加速功能|提供高性能用户态协议栈处理能力,支持针对单进程业务场景进行网络加速。|SP670|openEuler 22.03 LTS SP4 ARM、 CTyunos-2.0.1-220311-aarch64、 openEuler 24.03 LTS SP3 ARM、 openEuler 22.03 LTS SP1 X86|Redis 6.0.20|5+|1|单进程加速功能|提供高性能用户态协议栈处理能力,支持针对单进程业务场景进行网络加速。|SP670openEuler 22.03 LTS SP4 ARM、 CTyunos-2.0.1-220311-aarch64、 openEuler 24.03 LTS SP3 ARM、 openEuler 22.03 LTS SP1 X86 <br>SP233:Kylin-Sever-V10-SP3-2403-Release|Redis 6.0.20|
6-|2|多进程加速功能|提供多个业务进程并发运行的网络处理能力,支持针对多进程业务场景进行网络加速。|SP670|openEuler 22.03 LTS SP4 ARM、CTyunos-2.0.1-220311-aarch64, openEuler 24.03 LTS SP3 ARM、openEuler 22.03 LTS SP1 X86|Redis 6.0.20|6+|2|多进程加速功能|提供多个业务进程并发运行的网络处理能力,支持针对多进程业务场景进行网络加速。|SP670openEuler 22.03 LTS SP4 ARM、CTyunos-2.0.1-220311-aarch64openEuler 24.03 LTS SP3 ARM、openEuler 22.03 LTS SP1 X86 <br>SP233:Kylin-Sever-V10-SP3-2403-Release|Redis 6.0.20|
7-|3|网卡流量分叉功能|提供流量分叉能力开关,通过流表进程流量分发,支持内核态与K-NET应用的同时使能。|SP670|CTyunos-2.0.1-220311-aarch64|iPerf3 3.16|7+|3|网卡流量分叉功能|提供流量分叉能力开关,通过流表进程流量分发,支持内核态与K-NET应用的同时使能。|SP670CTyunos-2.0.1-220311-aarch64 <br>SP233:Kylin-Sever-V10-SP3-2403-Release|iPerf3 3.16|
8-|4|用户态网卡bond功能|提供基于用户态的网卡聚合能力开关,支持将两个物理网口在用户态进行逻辑绑定,实现带宽叠加,可靠性增强。|SP670|CTyunos-2.0.1-220311-aarch64、openEuler 24.03 LTS SP3 ARM|iPerf3 3.16|8+|4|用户态网卡bond功能|提供基于用户态的网卡聚合能力开关,支持将两个物理网口在用户态进行逻辑绑定,实现带宽叠加,可靠性增强。|SP670CTyunos-2.0.1-220311-aarch64、openEuler 24.03 LTS SP3 ARM |iPerf3 3.16|
9-|5|内核流量转发功能|提供内核流量转发功能开关,支持通过用户态协议栈对内核态流量进行转发,支持内核态与K-NET应用的同时使能。主要适用于网卡不支持硬件流量分叉场景。|SP670|CTyunos-2.0.1-220311-aarch64、openEuler 24.03 LTS SP3 ARM|iPerf3 3.16|9+|5|内核流量转发功能|提供内核流量转发功能开关,支持通过用户态协议栈对内核态流量进行转发,支持内核态与K-NET应用的同时使能。主要适用于网卡不支持硬件流量分叉场景。|SP670CTyunos-2.0.1-220311-aarch64、openEuler 24.03 LTS SP3 ARM <br>SP233:Kylin-Sever-V10-SP3-2403-Release|iPerf3 3.16|
10-|6|零拷贝功能|提供零拷贝定制接口,支持用户调用零拷贝接口,避免应用于用户态协议栈之间的内存拷贝,显著降低CPU开销与内存带宽消耗。|SP670|CTyunos-2.0.1-220311-aarch64、openEuler 24.03 LTS SP3 ARM|iPerf3 3.16、Tperf 1.0|10+|6|零拷贝功能|提供零拷贝定制接口,支持用户调用零拷贝接口,避免应用于用户态协议栈之间的内存拷贝,显著降低CPU开销与内存带宽消耗。|SP670CTyunos-2.0.1-220311-aarch64、openEuler 24.03 LTS SP3 ARM、<br>SP233:Kylin-Sever-V10-SP3-2403-Release|iPerf3 3.16、Tperf 1.0|
11-|7|共线程功能|提供共线程定制接口,支持在业务线程直接驱动协议栈,具有节省转发CPU核的优势。|SP670|CTyunos-2.0.1-220311-aarch64、openEuler 24.03 LTS SP3 ARM|Tperf 1.0|11+|7|共线程功能|提供共线程定制接口,支持在业务线程直接驱动协议栈,具有节省转发CPU核的优势。|SP670CTyunos-2.0.1-220311-aarch64、openEuler 24.03 LTS SP3 ARM <br>SP233:Kylin-Sever-V10-SP3-2403-Release|Tperf 1.0|
12-|8|本地流量环回功能|提供本地流量环回能力,支持K-NET进程与本地进程网络通信的功能。|SP670|CTyunos-2.0.1-220311-aarch64、openEuler 24.03 LTS SP3 ARM|iPerf3 3.16|12+|8|本地流量环回功能|提供本地流量环回能力,支持K-NET进程与本地进程网络通信的功能。|SP670CTyunos-2.0.1-220311-aarch64、openEuler 24.03 LTS SP3 ARM <br>SP233:Kylin-Sever-V10-SP3-2403-Release|iPerf3 3.16|
13 13 
14> [!NOTE]说明14> [!NOTE]说明
15>示例软件仅支持本章节提供的测试功能,其他功能不保证。15>示例软件仅支持本章节提供的测试功能,其他功能不保证。
Mdocs/zh/feature_guide/network_acceleration_verification.md+1-1
@@ -4,7 +4,7 @@
4 4 
5- [2、多进程加速功能](./multi_process_model_acceleration.md)5- [2、多进程加速功能](./multi_process_model_acceleration.md)
6 6 
7-- [3、网卡流量分叉功能](./traffic_bifurcation.md)7+- [3、网卡流量分叉功能(SP670)](./traffic_bifurcation_sp670.md)或[3、网卡流量分叉功能(SP233)](./traffic_bifurcation_sp233.md)
8 8 
9- [4、零拷贝功能](./zero_copy.md)9- [4、零拷贝功能](./zero_copy.md)
10 10 
Adocs/zh/feature_guide/traffic_bifurcation_sp233.md+202-0
@@ -0,0 +1,202 @@
1+# 网卡流量分叉功能(SP233网卡)
2+ 
3+## 功能描述
4+ 
5+提供流量分叉能力开关,通过流表进程流量分发,支持内核态与<term>K-NET</term>应用的同时使能。
6+ 
7+> [!NOTE]说明
8+>
9+> - SP233网卡流量分叉功能支持在Kylin-V10-SP3-2403-release系统上使用。
10+> - SP233网卡支持流量分叉功能,通过hinicadm5工具将队列分组,每组队列数为最大支持的队列数减去工具分配给用户态的队列数,至多创建8个分组。
11+> - 开启流量分叉时,支持使用SP233 Bond全卸载功能。
12+> - 业务IP配置约束:非Bond卸载场景下,业务IP(配置于 `/etc/knet/knet_comm.conf` 的 `interface->ip` 字段)必须绑定至K-NET使用的网卡(配置于同文件的 `interface->bdf_nums` 字段对应的网口);Bond全卸载场景下,在指定物理端口创建卸载bond后,这些端口对应的function共享端口在Bond模式的能力(模式4下,流量会对每个port负载均衡)。网卡各function仍保持独立使用,仅其出端口的转发模式发生变化。
13+ 
14+流量分叉能使DPDK无需接管网卡即可使用K-NET网络加速特性。使用前需使能网卡的流量分叉功能和K-NET流量分叉配置。
15+ 
16+## 前提条件
17+ 
18+- 服务端已完成[环境配置](environment_configuration.md)。
19+- (可选)客户端如需启用K-NET加速(双端加速模式),也需完成相同的环境配置。
20+- 默认示例为单端加速模式(仅服务端启用K-NET)。
21+ 
22+## 使用示例
23+ 
24+本章示例以iPerf3为例。
25+ 
26+### 流量分叉基础功能
27+ 
28+以iPerf3单进程为例,说明如何使用流量分叉功能。
29+ 
30+1. (服务端)确认并配置网卡模板。
31+ 
32+ 首先使用以下命令查看系统中可用的网卡设备,确定网卡名称(如hinic0):
33+ 
34+ ```bash
35+ hinicadm5 info
36+ ```
37+ 
38+ 回显中“Card”字段显示的即为网卡名称,示例如下:
39+ 
40+ ```text
41+ Card num:1
42+ Device Information:
43+ Card PCIe Function
44+ |----hinic0(CAL_SP23X_2X25G)
45+ |----0000:01:00.0(NIC:enp1s0f0)
46+ |----0000:01:00.1(NIC:enp1s0f1)
47+ ```
48+ 
49+2. (服务端)启用网卡流量分叉功能。
50+ SP233配置流量分叉时需要将网卡down掉,先修改内核态队列个数,保证有队列预留给用户态,执行ethtool -L相关命令进行修改;使用hinicadm5 traffic_bifur设置用户态队列个数和查询用户态队列信息。配置完成后,需要将网卡up起来。
51+ 
52+ ```bash
53+ ip link set dev enp1s0f0 down
54+ ethtool -L enp1s0f0 combined 32 # 设置内核态队列个数
55+ hinicadm5 traffic_bifur -i enp1s0f0 -t queue -n 32 # 设置用户态队列个数
56+ ip link set dev enp1s0f0 up
57+ ```
58+ 
59+ 有以下回显则代表设置成功。
60+ 
61+ ```text
62+ Set qpooling group success, group is 2
63+ ```
64+ 
65+ 查询流分叉使能状态:
66+ 
67+ ```bash
68+ hinicadm5 traffic_bifur -i enp1s0f0 -t queue -q
69+ ```
70+ 
71+ 回显中存在“traffic_bifur state is enablement”,代表流量分叉功能已使能。
72+ 
73+3. (服务端)K-NET启用网卡流量分叉功能。
74+ 
75+ ```bash
76+ vi /etc/knet/knet_comm.conf
77+ ```
78+ 
79+ 按“i”进入编辑模式。
80+ 
81+ ```json
82+ # common配置项
83+ "hw_offload": {
84+ "bifur_enable": 1
85+ }
86+ ```
87+ 
88+ 完成修改后按“ESC”键,输入“:wq!”保存并退出文件。
89+ 
90+4. (服务端)无需DPDK接管网卡,启动K-NET iPerf3。
91+ 
92+ ```bash
93+ LD_PRELOAD=/usr/lib64/libknet_frame.so iperf3 -s -4 -p 10001 --bind 192.168.*.*
94+ ```
95+ 
96+ > [!NOTE]说明
97+ > bind的地址为服务端配置文件中配置的业务IP地址。
98+ 
99+ ![启动回显](../figures/zh-cn_image_0000002477733316.png)
100+ 
101+5. (服务端)启动内核态iPerf3(另开一个终端)。
102+ 
103+ ```bash
104+ iperf3 -s -4 -p 10002 --bind 192.168.*.*
Q
Qqiuqianhw7 天前

IP要解释

likedislike
105+ ```
106+ 
107+6. (客户端)同时向服务端的K-NET、内核态iPerf3打流。
108+ 
109+ 使用`-t 10`参数指定打流时间为10秒,测试完成后客户端会自动退出:
110+ 
111+ ```bash
112+ iperf3 -c 192.168.*.* -t 10 -p 10001 -b 0 -l 64 -P 1 # K-NET
113+
114+ iperf3 -c 192.168.*.* -t 10 -p 10002 -b 0 -l 64 -P 1 # 内核态iPerf3
115+ ```
116+ 
117+ K-NET和内核态iPerf3均会收到流量。
118+ 
119+ ![打流测试](../figures/zh-cn_image_0000002509653267.png)
120+ 
121+7. 测试完成后,在服务端使用`Ctrl+C`退出所有iPerf3进程。
122+ 
123+### 流量分叉支持Bond卸载
124+ 
125+流量分叉场景支持网卡Bond卸载功能。Bond全卸载配置请参考[《SP230 标准网卡 用户指南》](https://support.huawei.com/enterprise/zh/doc/EDOC1100575890/7e4bd2d6)中“hinicadm5管理工具命令参考/NIC命令/bond”章节。Bond卸载功能仅支持LACP动态协商聚合(IEEE 802.3ad Dynamic link aggregation)和Bond mode 4。K-NET不支持Bond mode 1的bond卸载,由于Bond机制问题无法从K-NET软件侧拦截,请勿配置为Bond mode 1。
126+ 
127+(服务端和客户端)配置Bond:
128+ 
129+```bash
130+hinicadm5 bond -i hinic0 -t add -s0 phy_port_0 -s1 phy_port_1 -m 1
131+```
132+ 
133+phy_port_x为需要绑定的物理端口,其中x的取值范围时0~3。
134+ 
135+(交换机)配置参考如下:
Q
Qqiuqianhw7 天前

这里看不懂怎么操作,是要去交换机上,怎么切换,怎么打开

likedislike
penghd
penghd
7 天前 评论:
136+ 
137+```bash
138+system-view # 进入系统视图
139+inter eth-trunk 0 #(创建或者进入trunk 0,确保不和已有trunk编号名称冲突)
140+inter 100GE1/0/1 #进入网口
141+eth-trunk 0 #将网卡加入eth-trunk0
142+commit #保存配置
143+ 
144+inter 100GE1/0/2 #进入网口
145+eth-trunk 0 #将网卡加入网口1所在的eth-trunk0
146+commit #保存配置
147+ 
148+inter eth-trunk 0 #进入trunk 0口
149+mode lacp-dynamic #启用lacp动态协商进行聚合
150+lacp timeout fast #启用lacp超时时间为fast
151+commit #保存配置
152+```
153+ 
154+> [!NOTE]说明
155+> 服务端和客户端的bond配置需添加lacp_rate fast,交换机的trunk口配置需添加lacp timeout fast,以实现网口故障快速切换。
156+ 
157+1. (服务端)启用网卡流量分叉功能。
158+ 
159+ ```bash
160+ ip link set dev enp1s0f0 down
161+ ethtool -L enp1s0f0 combined 32
162+ hinicadm5 traffic_bifur -i enp1s0f0 -t queue -n 32
163+ ip link set dev enp1s0f0 up
164+ ```
165+ 
166+2. (服务端)<term>K-NET</term>启用网卡流量分叉功能。
167+ 
168+ ```bash
169+ vi /etc/knet/knet_comm.conf
170+ ```
171+ 
172+ 按“i”进入编辑模式。
173+
174+ ```json
175+ # common配置项
176+ "hw_offload": {
177+ "bifur_enable": 1
178+ }
179+ ```
180+ 
181+ 完成修改后按“ESC”键,输入“:wq!”保存并退出文件。
182+ 
183+3. (服务端)无需<term>DPDK</term>接管网卡,启动K-NET iPerf3。
184+ 
185+ ```bash
186+ LD_PRELOAD=/usr/lib64/libknet_frame.so iperf3 -s -4 -p 10001 --bind 192.168.*.*
187+ ```
188+ 
189+ > [!NOTE]说明
190+ > bind的地址为服务端配置文件中配置的业务IP地址。
191+ 
192+4. (客户端)向服务端进行iPerf3打流。
193+ 
194+ 使用`-t 10`参数指定打流时间为10秒,测试完成后客户端会自动退出:
195+ 
196+ ```bash
197+ iperf3 -c 192.168.*.* -t 10 -p 10001 -b 0 -l 64 -P 1
198+ ```
199+ 
200+ ![打流测试](../figures/zh-cn_image_0000002477573338.png)
201+ 
202+5. 测试完成后,在服务端使用`Ctrl+C`退出iPerf3进程。
H

和上述步骤保持统一 (服务端)

likedislike
Rdocs/zh/feature_guide/traffic_bifurcation.mddocs/zh/feature_guide/traffic_bifurcation_sp670.md+2-2
@@ -1,4 +1,4 @@
1-# 网卡流量分叉功能1+# 网卡流量分叉功能(SP670网卡)
2 2 
3## 功能描述3## 功能描述
4 4 
@@ -6,7 +6,7 @@
6 6 
7> [!NOTE]说明7> [!NOTE]说明
8>8>
9-> - 流量分叉功能支持在CTyunos-2.0.1系统上使用。9+> - SP670网卡流量分叉功能支持在CTyunos-2.0.1系统上使用。
10> - 流量分叉功能仅支持在物理机环境下SP670网卡的ROCE_2X100G_UN_ADAP模板中使用。10> - 流量分叉功能仅支持在物理机环境下SP670网卡的ROCE_2X100G_UN_ADAP模板中使用。
11> - 默认支持8队列,队列规格受网卡约束,可通过网卡hinicadm3工具将规格扩展至32队列。11> - 默认支持8队列,队列规格受网卡约束,可通过网卡hinicadm3工具将规格扩展至32队列。
12> - 开启流量分叉时,支持使用SP670 Bond卸载功能。12> - 开启流量分叉时,支持使用SP670 Bond卸载功能。
Mdocs/zh/figures/IP.png+0-0

确认直接交网卡吗,还是说SP670/SP230网卡?再或者华为系列网卡

likedislike
Mdocs/zh/figures/knetall.png+0-0
Mdocs/zh/figures/mult_mode.png+0-0
Mdocs/zh/figures/om_arch.png+0-0
Mdocs/zh/figures/om_arch_1.png+0-0
Mdocs/zh/figures/single_mode.png+0-0
Mdocs/zh/figures/typical_storage.png+0-0
Mdocs/zh/figures/运维管理架构-智能网卡-0.png+0-0
Mdocs/zh/figures/运维管理架构-智能网卡.png+0-0
Mdocs/zh/installation/environment_setup.md+48-4
@@ -98,7 +98,11 @@
98 yum makecache98 yum makecache
99 ```99 ```
100 100 
101-### 安装SP670驱动101+### 安装驱动
102+ 
103+请用户根据自己的硬件环境选择安装SP670或SP233驱动。
104+ 
105+#### 安装SP670驱动
102 106 
1031. 智能网卡的驱动,固件及管理工具安装请参考[《SP200&SP600 标准网卡用户指南》](https://support.huawei.com/enterprise/zh/doc/EDOC1100309168/426cffd9)中“软件安装/独立部件场景下安装/安装驱动和管理工具/一键安装驱动和管理工具(17.12.2.0及之后版本)”章节。若使用流量分叉,需执行以下命令:1071. 智能网卡的驱动,固件及管理工具安装请参考[《SP200&SP600 标准网卡用户指南》](https://support.huawei.com/enterprise/zh/doc/EDOC1100309168/426cffd9)中“软件安装/独立部件场景下安装/安装驱动和管理工具/一键安装驱动和管理工具(17.12.2.0及之后版本)”章节。若使用流量分叉,需执行以下命令:
104 108 
@@ -142,6 +146,33 @@
142 146 
143 重启后请再次查看当前网卡模板。147 重启后请再次查看当前网卡模板。
144 148 
149+ > [!NOTE]说明
150+ >若使用流量分叉功能,需切换模板为ROCE_2X100G_UN_ADAP,命令如下:
151+ >
152+ >```bash
153+ >hinicadm3 cfg_template -i hinic0 -s 3
154+ >```
155+ 
156+#### 安装SP233驱动
157+ 
158+1. 智能网卡的驱动,固件及管理工具安装请参考[《SP230 标准网卡 用户指南》](https://support.huawei.com/enterprise/zh/doc/EDOC1100575890/7e4bd2d6)中“软件安装/安装驱动和管理工具/一键安装驱动和管理工具”章节。若使用流量分叉,需执行以下命令:
159+ 
160+ ```bash
161+ sh install.sh bifur
162+ ```
163+ 
164+2. 对于麒麟OS Kylin-V10-SP3-2403-release版本,需执行以下命令修改网口pf1的bar_size为64:
165+ 
166+ ```bash
167+ hinicadm5 cfg_data -i hinic0 -pfbar 1 -pfbar_size 64 -bar_mode 0
168+ ```
169+ 
170+ 完成修改后重启物理机生效。
171+ 
172+ ```bash
173+ reboot
174+ ```
175+ 
145## 搭建虚拟机环境176## 搭建虚拟机环境
146 177 
147若用户要在虚拟机上执行业务,则需在搭建物理机环境之后再搭建虚拟机环境。若用户在物理机上运行业务软件,则无需参照本章搭建虚拟机。178若用户要在虚拟机上执行业务,则需在搭建物理机环境之后再搭建虚拟机环境。若用户在物理机上运行业务软件,则无需参照本章搭建虚拟机。
@@ -156,6 +187,7 @@
156 ```187 ```
157 188 
1582. 安装虚拟机参考[《QEMU-KVM虚拟机 安装指南(openEuler 22.03)》](https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/ecosystemEnable/QEMU-KVM/kunpengqemukvm_03_0002.html),但是需要将里面的openEuler 22.03 SP3换成[版本配套关系](../release_note.md)中要求的系统版本。1892. 安装虚拟机参考[《QEMU-KVM虚拟机 安装指南(openEuler 22.03)》](https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/ecosystemEnable/QEMU-KVM/kunpengqemukvm_03_0002.html),但是需要将里面的openEuler 22.03 SP3换成[版本配套关系](../release_note.md)中要求的系统版本。
190+ 
1593. 系统安装完成后按照安装界面的指示重启,然后连接虚拟机。_以虚拟机名为vm_perf_2203_为例。1913. 系统安装完成后按照安装界面的指示重启,然后连接虚拟机。_以虚拟机名为vm_perf_2203_为例。
160 192 
161 若重启虚拟机失败,进入shell页面,请参见[重启虚拟机失败进入shell界面](../troubleshooting/vm_restart.md)进行恢复。193 若重启虚拟机失败,进入shell页面,请参见[重启虚拟机失败进入shell界面](../troubleshooting/vm_restart.md)进行恢复。
@@ -352,12 +384,24 @@
352 ```384 ```
353 385 
354 > [!NOTE]说明386 > [!NOTE]说明
355- >192.168.32.2/24:用户根据实际情况配置IP地址和掩码。387+ > 192.168.32.2/24:用户根据实际情况配置IP地址和掩码。
356 388 
357-### 安装SP670驱动389+### 安装驱动
358 390 
359-用户需要在虚拟化环境上运行业务,还需要重新在虚拟机上安装SP670驱动,可参考[《SP200&SP600 标准网卡 用户指南》](https://support.huawei.com/enterprise/zh/doc/EDOC1100309168/426cffd9)中“软件安装/独立部件场景下安装/安装驱动和管理工具/一键安装驱动和管理工具(17.12.2.0及之后版本)”章节虚拟机中无需重新安装固件,请执行以下命令安装驱动。391+用户根据自己的硬件环境选择安装SP670或SP233驱动。
392+ 
393+#### 安装SP670驱动
394+ 
395+若用户需要在虚拟化环境上运行业务,还需要重新在虚拟机上安装SP670驱动,可参考[《SP200&SP600 标准网卡 用户指南》](https://support.huawei.com/enterprise/zh/doc/EDOC1100309168/426cffd9)中“软件安装/独立部件场景下安装/安装驱动和管理工具/一键安装驱动和管理工具(17.12.2.0及之后版本)”章节。虚拟机中无需重新安装固件,请执行以下命令安装驱动。
360 396 
361```bash397```bash
362sh install.sh -i driver_only398sh install.sh -i driver_only
363```399```
400+ 
401+#### 安装SP233驱动
402+ 
403+若用户需要在虚拟化环境上运行业务,还需要重新在虚拟机上安装SP233网卡驱动,可参考[《SP230 标准网卡 用户指南》](https://support.huawei.com/enterprise/zh/doc/EDOC1100575890/7e4bd2d6)中“软件安装/安装驱动和管理工具/一键安装驱动和管理工具”章节。虚拟机中无需重新安装固件,请执行以下命令安装驱动。
404+ 
405+```bash
406+sh install.sh driver_only
407+```
Mdocs/zh/om/dpdk_telemetry.md+1-1
@@ -53,7 +53,7 @@ dpdk-telemetry.py -f knet -i 1
53|`/knet/ethdev/usage,<port> <time>`|是|/knet/ethdev/usage,0 1|port 为网口号,time表示统计带宽、包率的时间段,time为1表示统计接下来1秒内的带宽包率,回显输出一条“0-1s”的内容。若time 为2,将会输出两条,即“0-1s” 和“1-2s”的内容。|53|`/knet/ethdev/usage,<port> <time>`|是|/knet/ethdev/usage,0 1|port 为网口号,time表示统计带宽、包率的时间段,time为1表示统计接下来1秒内的带宽包率,回显输出一条“0-1s”的内容。若time 为2,将会输出两条,即“0-1s” 和“1-2s”的内容。|
54 54 
55> [!NOTE]说明55> [!NOTE]说明
56->SP670网卡当前获取ethdev端口的扩展统计信息使用 /ethdev/xstats,<port\>。当没有客户端产生通信时/knet/stack/tcp\_stat和/knet/stack/abn\_stat命令查询到的信息回显为空。56+>SP670网卡当前获取ethdev端口的扩展统计信息使用 /ethdev/xstats<port\>。当没有客户端产生通信时/knet/stack/tcp_stat和/knet/stack/abn_stat命令查询到的信息回显为空。
57 57 
58## 使用前配置58## 使用前配置
59 59 
Mdocs/zh/om/dumpcap.md+1-1
@@ -4,7 +4,7 @@
4>4>
5>- 请用户先参见[安装抓包工具](../installation/installation.md#可选安装抓包工具)后再参考本章节进行使用。5>- 请用户先参见[安装抓包工具](../installation/installation.md#可选安装抓包工具)后再参考本章节进行使用。
6>- K-NET使用的DPDK版本必须与抓包依赖的DPDK版本保持一致。当前仅支持21.11.7版本,该程序会随版本变更,需确保在正确版本下使用抓包工具。6>- K-NET使用的DPDK版本必须与抓包依赖的DPDK版本保持一致。当前仅支持21.11.7版本,该程序会随版本变更,需确保在正确版本下使用抓包工具。
7->- SP670网卡用户抓包时需要使用**LD\_PRELOAD=/usr/lib64/librte\_net\_hinic3.so**。7+>- SP670网卡用户抓包时需要使用**LD_PRELOAD=/usr/lib64/librte_net_hinic3.so**。
8 8 
9## 抓包工具保留说明9## 抓包工具保留说明
10 10 
Mdocs/zh/product_descriptions/solution_architecture.md+3-2
@@ -2,7 +2,7 @@
2 2 
3## 架构描述3## 架构描述
4 4 
5-<term>K-NET</term>网络加速套件,主要面向通用协议加速、网络安全加速业务场景,同时也面向通用计算业务、安全通信业务,基于SP670网卡,提供用户态TCP/IP协议栈加速。5+<term>K-NET</term>网络加速套件,主要面向通用协议加速、网络安全加速业务场景,同时也面向通用计算业务、安全通信业务,基于SP670/SP233网卡,提供用户态TCP/IP协议栈加速。
6网络安全加速详情介绍和使用请参见[https://atomgit.com/src-openeuler/strongswan](https://atomgit.com/src-openeuler/strongswan)。6网络安全加速详情介绍和使用请参见[https://atomgit.com/src-openeuler/strongswan](https://atomgit.com/src-openeuler/strongswan)。
7 7 
8![](../figures/knetall.png)8![](../figures/knetall.png)
@@ -15,7 +15,7 @@ K-NET通信协议加速子系统中包含框架层、用户态TCP/IP协议栈、
15 15 
16- 框架层:提供标准的POSIX API接口,可以直接对业务标准的POSIX Socket接口重定向,替换为协议栈Socket接口;同时提供扩展socket接口,通过使用诸如零拷贝的扩展socket接口,可以得到更优性能。16- 框架层:提供标准的POSIX API接口,可以直接对业务标准的POSIX Socket接口重定向,替换为协议栈Socket接口;同时提供扩展socket接口,通过使用诸如零拷贝的扩展socket接口,可以得到更优性能。
17- 用户态TCP/IP协议:用户态协议栈加速核心,提供标准TCP/IP协议能力,将原生内核态协议栈切到用户态协议栈进行加速。17- 用户态TCP/IP协议:用户态协议栈加速核心,提供标准TCP/IP协议能力,将原生内核态协议栈切到用户态协议栈进行加速。
18-- 硬件加速层:提供高性能的报文转发能力,含控制面和数据面;结合鲲鹏SP670释放网卡硬件能力。18+- 硬件加速层:提供高性能的报文转发能力,含控制面和数据面;结合鲲鹏SP670/SP233释放网卡硬件能力。
19 19 
20![](../figures/om_arch.png)20![](../figures/om_arch.png)
21 21 
@@ -33,3 +33,4 @@ K-NET通信协议加速用户态TCP/IP协议栈特性:
33## 硬件平台33## 硬件平台
34 34 
35SP670标准网卡的具体描述请参见[《SP600 标准网卡 用户指南》](https://support.huawei.com/enterprise/zh/doc/EDOC1100309168?idPath=23710424%7C251364417%7C9856629%7C253287505)。35SP670标准网卡的具体描述请参见[《SP600 标准网卡 用户指南》](https://support.huawei.com/enterprise/zh/doc/EDOC1100309168?idPath=23710424%7C251364417%7C9856629%7C253287505)。
36+SP233标准网卡的具体描述请参见[《SP230 标准网卡 用户指南》](https://support.huawei.com/enterprise/zh/doc/EDOC1100575890/698b6ba5?idPath=23710424%7C251364417%7C262279635%7C266212652)。
Mdocs/zh/product_descriptions/typical_application_scenarios.md+2-2
@@ -22,7 +22,7 @@
22 22 
23组网概要:23组网概要:
24 24 
25-- SP670插入计算节点的PCIe插槽中,通过PCIe与计算节点的CPU互通。25+- SP670/SP233插入计算节点的PCIe插槽中,通过PCIe与计算节点的CPU互通。
26- NIC提供的高带宽网口接入到公有云/私有云的计算网络中,支持本节点上的裸金属对接其他的计算节点,采用TCP/IP通信。26- NIC提供的高带宽网口接入到公有云/私有云的计算网络中,支持本节点上的裸金属对接其他的计算节点,采用TCP/IP通信。
27- 支持Redis主从和集群组网场景。27- 支持Redis主从和集群组网场景。
28 28 
@@ -42,7 +42,7 @@ K-NET网络加速套件结合鲲鹏服务器板载网卡,应用在分布式存
42 42 
43组网概要:43组网概要:
44 44 
45-- 存储节点通过SP670接入交换机及网络,并采用TCP/IP通信。45+- 存储节点通过SP670/SP233接入交换机及网络,并采用TCP/IP通信。
46- 三个存储节点上均部署K-NET,计算节点不部署。46- 三个存储节点上均部署K-NET,计算节点不部署。
47 47 
48**图 1** 典型存储集群组网图48**图 1** 典型存储集群组网图
Mdocs/zh/release_note.md+7-7
@@ -10,13 +10,13 @@
10 10 
11### 鲲鹏环境11### 鲲鹏环境
12 12 
13-| 项目 | 兼容性1 | 兼容性2 | 兼容性3 |13+| 项目 | 兼容性1 | 兼容性2 | 兼容性3 | 兼容性4 |
14-|------------|-------------|-----------|-----------|14+|------------|-------------|-----------|-----------|---------|
15-| 操作系统 | openEuler 22.03 LTS SP4 | CTyunos-2.0.1-220311-aarch64(4.19.90-2102.2.0.0062.ctl2.aarch64) | openEuler 24.03 LTS SP3 |15+| 操作系统 | openEuler 22.03 LTS SP4 | CTyunos-2.0.1-220311-aarch64(4.19.90-2102.2.0.0062.ctl2.aarch64) | openEuler 24.03 LTS SP3 | Kylin-Sever-V10-SP3-2403-Release |
16-| 服务器 | TaiShan 200服务器(型号2280 VD) | TaiShan 200服务器(型号2280 VD) | TaiShan 200服务器(新型号) |16+| 服务器 | TaiShan 200服务器(型号2280 VD) | TaiShan 200服务器(型号2280 VD) | TaiShan 200服务器(新型号) | TaiShan 200服务器(型号2280 VD) |
17-| 网卡 | SP670 | SP670 | SP670 |17+| 网卡 | SP670 | SP670 | SP670 | SP233 |
18-| CPU | 鲲鹏920 7260处理器 | 鲲鹏920 7260处理器 | 鲲鹏920 7260T处理器 |18+| CPU | 鲲鹏920 7260处理器 | 鲲鹏920 7260处理器 | 鲲鹏920 7260T处理器 | 鲲鹏920新型号 7260T处理器 |
19-| DPDK | 21.11.7 | 21.11.7 | 23.11.6 |19+| DPDK | 21.11.7 | 21.11.7 | 23.11.6 | 21.11.7 |
20 20 
21### x86环境21### x86环境
22 22 
Mdocs/zh/user_guide.md+2-1
@@ -19,7 +19,8 @@
19 - [网络加速功能](./feature_guide/network_acceleration_verification.md)19 - [网络加速功能](./feature_guide/network_acceleration_verification.md)
20 - [单进程加速功能](./feature_guide/single_process_model_acceleration.md)20 - [单进程加速功能](./feature_guide/single_process_model_acceleration.md)
21 - [多进程加速功能](./feature_guide/multi_process_model_acceleration.md)21 - [多进程加速功能](./feature_guide/multi_process_model_acceleration.md)
22- - [网卡流量分叉功能](./feature_guide/traffic_bifurcation.md)22+ - [网卡流量分叉功能(SP670)](./feature_guide/traffic_bifurcation_sp670.md)
23+ - [网卡流量分叉功能(SP233)](./feature_guide/traffic_bifurcation_sp233.md)
23 - [零拷贝功能](./feature_guide/zero_copy.md)24 - [零拷贝功能](./feature_guide/zero_copy.md)
24 - [共线程功能](./feature_guide/cothread.md)25 - [共线程功能](./feature_guide/cothread.md)
25 - [用户态网卡Bond功能](./feature_guide/using_dpdk_user_space_virtual_bonding.md)26 - [用户态网卡Bond功能](./feature_guide/using_dpdk_user_space_virtual_bonding.md)