[dts] [next] [RFC V1] framework: new packet generator module proposal

Lijuan Tu lijuan.tu at intel.com
Mon Jul 16 19:14:21 CEST 2018

Hi all,

I am appreciate if you could spend a few minutes to review this RFC.

This is a proposal to improve pktgen module in next branch.

In next branch, a new module named packet generator was introduced, which
redifined the old module etgen. It is intended to support several packet
generators and unify the interfaces. Both hardware generator and software
generator would be supported.

Aim to support Trex, Pktgen, IxExplorer and IxNetwork:

 * These tools would provide APIs to dts to control generators, therefore
   our goal is to implement modules which based on these APIs.

 * Trex is an open source traffic generator fuelled by DPDK. It's API has
   been called in DTS next branch although only a simple functionality 
   was implemented now.
   Link: http://trex-tgn.cisco.com

 * Pktgen is also a software generator powered by DPDK.
   Link: http://pktgen-dpdk.readthedocs.io

 * IxExplorer is a basic tool provided with ixia chassis, it can control
   hardware generator by low level API. There is a module implemented in
   master branch to control ixia chassis via IxExplorer function API.
   Link: https://www.ixiacom.com/

 * IxNetwork is a tool which also can control ixia chassis but focus on
   L2-3 network infrastructure performance testing. It provide high level
   API to control hardware generator.
   link: https://www.ixiacom.com/products/ixnetwork

Overall functionalities:

 * Throughput
 * Packet Loss
 * Zero Packet Loss (RFC2544)
 * Latency
 * Packet in-order check

Current Requirements:

 * Single/Multiple streams
 * Dst/Src IP random
 * Dst/Src IP increase by number
 * Dst/Src IP increase by mask
 * Percentage of each flow and One burst flow
 * Port flow control enable and inject flow control packet in certain rate
 * Dst mac increase by number and vlan id increase by number

Plan our works (Prioritize them with user cases):
Assume all functionalities listed above will be supported.

 * Integrate IxExplorer API, the goal is have the same functionalities as
   master branch.
 * Implement more functionalities base on Trex API to align with
   IxExplorer module.
 * Integrate IxNetwork API, focus on high level functionalities, such as
 * Integrate Pktgen, as limitation, would be a little functionalities.

Risk to be taken:

 * Some limitation or restriction that are not considered would cause API
 * As limited contribution, it would take a long time to finished.

It would be great to see any discussions within the community regarding
both current implementation and future work.

Signed-off-by: Lijuan Tu <lijuan.tu at intel.com>

More information about the dts mailing list