通过trex-console
启动trex client,通过执行python文件的方式来启动流量。
start -f /home/test/v2.95/automation/trex_control_plane/interactive/trex/examples/stl/fsp/l2brosdcast.py -m 100000 -d 100 -p 0 3 -t vlan_id=106,dst="00:00:00:00:00:66"
优点:可以直接用现成的流量文件,简单修改就能发流。还可以定制参数实现较复杂的流。
缺点:流量类型多的话,需要预先准备很多流文件,管理上相对麻烦。另外对结果的处理也需要额外的函数配合。
运行python文件,直接读取处理后的结果
[root@localhost stl]# python3 stl_ipv6_tools.py
[root@localhost v2.95]# ./t-rex-64 -f cap2/http_simple.yaml -d 100 -m 1 --nc
上述是两种调用现成case的例子。
优点:现成的例子,步骤和结果处理都在一个文件中完成。可以做到直接处理输出的结果。况且官方自带的实例也很丰富。
缺点:可定制型不强,需要大量的特定文件,管理麻烦。中间过程不可见,debug乏力。
类似现在ixia的api调用
ipython
import sys,os
sys.path
trex_path = "/home/test/v2.87/automation/trex_control_plane/interactive/trex/examples/stl/../../.."
sys.path.insert(0, os.path.abspath(trex_path))
import trex.stl.api
from trex.stl.api import *
from trex_stl_lib.api import *
c = STLClient(server = '127.0.0.1')
c
<trex.stl.trex_stl_client.STLClient at 0x7f8716133828>
c.connect()
c.disconnect()
<trex.stl.trex_stl_client.STLClient at 0x7f8716133828>
client.get_pgid_stats(0)['flow_stats']
rx = client.get_pgid_stats(0)['flow_stats'][0]['tx_pkts'][0]
tx = client.get_pgid_stats(1)['flow_stats'][1]['rx_pkts'][0]
优点:灵活,精确。
缺点:需要自己包装需要的操作,官方的API不太全。