本文将会介绍 VPP TA-Inject,并详细阐述 TA-Inject 的优点,如何安装使用 TA-Inject,并给出详细的代码示例。
一、 TA-Inject 的优点
1、高效:TA-Inject 可以直接将数据包注入到 VPP 管道中,确保流量最大限度的发挥。
2、灵活:TA-Inject 可以配置注入数据包的速率和模板,方便满足不同的测试场景需求。
3、易用:TA-Inject 提供了友好的 UI 界面,方便用户进行配置和使用。
二、 TA-Inject 的安装及使用
1、安装 TA-Inject
cd /tmp
wget -qO- http://fast.dpdk.org/rel/dpdk-.tar.xz | tar -xJ
cd dpdk-
make install T=x86_64-native-linuxapp-gcc
2、配置 VPP
在 VPP 中配置以下命令:
unix { * { cli-listen /run/vpp/cli.sock } }
3、配置 TA-Inject
在 TA-Inject 中打开配置文件,并按需要进行修改:
{
"tx-burst-size": 128,
"pkt-template": {
"eth": {
"src-addr": "11:22:33:44:55:66",
"dst-addr": "11:22:33:44:55:66"
},
"ipv4": {
"src-addr": "192.168.0.1",
"dst-addr": "192.168.0.2"
},
"udp": {
"src-port": 1234,
"dst-port": 5678
},
"payload": "Hello, World!"
},
"rate": {
"pps": 100
}
}
4、启动 TA-Inject
使用以下命令启动 TA-Inject:
ta-inject -c -n -f
三、 TA-Inject 的使用示例
1、TCP 测试
首先,配置 TA-Inject 以进行 TCP 数据包注入:
{
"tx-burst-size": 32,
"pkt-template": {
"eth": {
"src-addr": "11:22:33:44:55:66",
"dst-addr": "11:22:33:44:55:66"
},
"ipv4": {
"src-addr": "192.168.0.1",
"dst-addr": "192.168.0.2"
},
"tcp": {
"src-port": 1234,
"dst-port": 5678
},
"payload": ""
},
"rate": {
"pps": 100
}
}
然后,使用以下命令在 VPP 中启动 TCP 服务:
set int state TenGigabitEthernet9/0/0 up
set interface ip address TenGigabitEthernet9/0/0 192.168.0.2/24
tcp { * 1234-1234 192.168.0.2 5678-5678 }
最后,在 TA-Inject 中使用以下命令进行流量注入:
ta-inject -c 1 -f tcp.json
2、UDP 测试
首先,配置 TA-Inject 以进行 UDP 数据包注入:
{
"tx-burst-size": 32,
"pkt-template": {
"eth": {
"src-addr": "11:22:33:44:55:66",
"dst-addr": "11:22:33:44:55:66"
},
"ipv4": {
"src-addr": "192.168.0.1",
"dst-addr": "192.168.0.2"
},
"udp": {
"src-port": 1234,
"dst-port": 5678
},
"payload": "Hello, World!"
},
"rate": {
"pps": 100
}
}
然后,在 VPP 中使用以下命令启动 UDP 服务:
set int state TenGigabitEthernet9/0/0 up
set interface ip address TenGigabitEthernet9/0/0 192.168.0.2/24
udp { * 5678-5678 192.168.0.2 }
最后,在 TA-Inject 中使用以下命令进行流量注入:
ta-inject -c 1 -f udp.json
四、总结
本文介绍了 VPP TA-Inject 的优点,并详细阐述了 TA-Inject 的安装和使用。通过多个测试示例,我们可以看到 TA-Inject 的高效、灵活和易用性。希望本文能够对大家理解和使用 TA-Inject 有所帮助。