diff options
author | Dino Simeon Madarang <dino.simeonx.madarang@intel.com> | 2016-01-26 13:49:59 +0000 |
---|---|---|
committer | Maryam Tahhan <maryam.tahhan@intel.com> | 2016-02-03 10:17:23 +0000 |
commit | 26d5dcc91e9bbf92a28892382094022997d07b5a (patch) | |
tree | 4ab23aced5a4d5f5dce9104a30f929a614bcd410 /tools/pkt_gen/ixia/pass_fail.tcl | |
parent | f463c563912abb806fe0d2fe85a4cf6825f416cc (diff) |
Add simple VxLAN decapsulation performance test
Measure OVS DPDK VXLAN decapsulation performance.
The DUT is configured as a VTEP (VXLAN Tunnel Endpoint)
which performs decapsulation of frames and sends traffic to
the 2nd traffic generator port.
This test is unidirectional.
Recent changes:
* Userguide update
* Move src/dstport from L2 to L4 (conf, TCL)
* Fix 'TestCase' object has no attribute '_tunnel_operation' error when
running non overlay tests
* Fix merge conflict
* Move doc to docs/userguide/integration.rst
* Add setting of DUT_NIC1_MAC and setting of other
variables to docs/userguide/integration.rst
Change-Id: Ia44f8888ef727831543c80f5c98c866686c5c92c
JIRA: VSPERF-190
Signed-off-by: Dino Simeon Madarang <dino.simeonx.madarang@intel.com>
Signed-off-by: Robert Wojciechowicz <robertx.wojciechowicz@intel.com>
Signed-off-by: Timo Puha <timox.puha@intel.com>
Reviewed-by: Maryam Tahhan <maryam.tahhan@intel.com>
Reviewed-by: Billy O Mahony <billy.o.mahony@intel.com>
Reviewed-by: Martin Klozik <martinx.klozik@intel.com>
Reviewed-by: Al Morton <acmorton@att.com>
Reviewed-by: Brian Castelli <brian.castelli@spirent.com
Diffstat (limited to 'tools/pkt_gen/ixia/pass_fail.tcl')
-rwxr-xr-x | tools/pkt_gen/ixia/pass_fail.tcl | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/tools/pkt_gen/ixia/pass_fail.tcl b/tools/pkt_gen/ixia/pass_fail.tcl index e10b393c..acb4443f 100755 --- a/tools/pkt_gen/ixia/pass_fail.tcl +++ b/tools/pkt_gen/ixia/pass_fail.tcl @@ -1,7 +1,7 @@ #!/usr/bin/env tclsh # Copyright (c) 2014, Ixia -# Copyright (c) 2015, Intel Corporation +# Copyright (c) 2015-2016, Intel Corporation # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -246,18 +246,24 @@ proc sendTraffic { flowSpec trafficSpec } { # extract nested dictionaries set trafficSpec_l2 [dict get $trafficSpec l2] set trafficSpec_l3 [dict get $trafficSpec l3] + set trafficSpec_l4 [dict get $trafficSpec l4] set trafficSpec_vlan [dict get $trafficSpec vlan] set frameSize [dict get $trafficSpec_l2 framesize] set srcMac [dict get $trafficSpec_l2 srcmac] set dstMac [dict get $trafficSpec_l2 dstmac] - set srcPort [dict get $trafficSpec_l2 srcport] - set dstPort [dict get $trafficSpec_l2 dstport] + set srcPort [dict get $trafficSpec_l4 srcport] + set dstPort [dict get $trafficSpec_l4 dstport] set proto [dict get $trafficSpec_l3 proto] set srcIp [dict get $trafficSpec_l3 srcip] set dstIp [dict get $trafficSpec_l3 dstip] + if {[dict exists $trafficSpec_l3 protocolpadbytes]} { + set protocolPad [dict get $trafficSpec_l4 protocolpad] + set protocolPadBytes [dict get $trafficSpec_l4 protocolpadbytes] + } + set vlanEnabled [dict get $trafficSpec_vlan enabled] if {$vlanEnabled == 1 } { # these keys won't exist if vlan wasn't enabled @@ -306,6 +312,10 @@ proc sendTraffic { flowSpec trafficSpec } { protocol config -enable802dot1qTag vlanSingle } + if {[info exists protocolPad]} { + protocol config -enableProtocolPad $protocolPad + } + ip setDefault ip config -ipProtocol ipV4Protocol[string totitle $proto] ip config -checksum "f6 75" @@ -328,6 +338,26 @@ proc sendTraffic { flowSpec trafficSpec } { errorMsg "Error calling $proto set $::chassis $::card $::port" } + if {[info exists protocolPad]} { + protocolPad setDefault + # VxLAN header with VNI 99 (0x63) + # Inner SRC 01:02:03:04:05:06 + # Inner DST 06:05:04:03:02:01 + # IP SRC 192.168.0.2 + # IP DST 192.168.240.9 + # SRC port 3000 (0x0BB8) + # DST port 3001 (0x0BB9) + # length 26 + # UDP Checksum 0x2E93 + + # From encap case capture + protocolPad config -dataBytes "$protocolPadBytes" + if {[protocolPad set $::chassis $::card $::port1]} { + errorMsg "Error calling protocolPad set $::chassis $::card $::port" + set retCode $::TCL_ERROR + } + } + if {$vlanEnabled == 1 } { vlan setDefault vlan config -vlanID $vlanId @@ -392,9 +422,15 @@ proc sendTraffic { flowSpec trafficSpec } { udp setDefault udp config -sourcePort $srcPort udp config -destPort $dstPort + set packetSize [dict get $trafficSpec_l3 packetsize] + stream config -framesize $packetSize if {[udp set $::chassis $::card $::port1]} { errorMsg "Error setting udp on port $::chassis.$::card.$::port1" } + errorMsg "frameSize: $frameSize, packetSize: $packetSize, srcMac: $srcMac, dstMac: $dstMac, srcPort: $srcPort, dstPort: $dstPort" + if {[info exists protocolPad]} { + errorMsg "protocolPad: $protocolPad, protocolPadBytes: $protocolPadBytes" + } } if {[stream set $::chassis $::card $::port1 $streamId]} { |