The target is to make testpmd flexible to generate all kinds of packet
in just one line. Examples:
 
# send UDP packet to port 0 queue 0
testpmd> scapy 0 Ether()/IP()/UDP()/"hello_world"

# send 4 L3 VXLAN packets with inner UDP dport 1-4 to port 1 queue 1-4, one 
packet per queue
testpmd> scapy 1 Ether()/IP()/UDP()/VXLAN()/IPv6()/UDP(dport=(1,4))/"cool"

# Random
testpmd> scapy 2 
Ether(src=RandMAC())/IP(dst=RandIP())/TCP(sport=RandShort(),dport=0x1234)

This patch introduce scapy - a python tool to generate static packet templates.
Txonly forwarding mode is modified to support template if available.
 
Two new configuration:
CONFIG_RTE_TEST_PMD_SCAPY=y
CONFIG_RTE_PYTHON=python2.7

Scapy quick demo: http://www.secdev.org/projects/scapy/demo.html

There are 2 other potential solution to support more fancy sending in the 
future:
1. Invoke scapy and expose mbuf hugepage pointers to python
   This should allow more flexible and dynamic processing
2. Scapy uses wrapped DPDK port as regular port
   Make scapy capable to send high speed streams.

Xueming Li (2):
  app/testpmd: add packet template
  app/testpmd: add scapy command as pkt template

 app/test-pmd/Makefile  |  5 +++
 app/test-pmd/cmdline.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++++-
 app/test-pmd/testpmd.c |  3 ++
 app/test-pmd/testpmd.h |  1 +
 app/test-pmd/txonly.c  | 42 +++++++++++++--------
 config/common_base     |  2 +
 6 files changed, 135 insertions(+), 17 deletions(-)

-- 
2.13.3

Reply via email to