[dts] [PATCH V1] Add a function used to verify keep packets' order feature

Liu, Yong yong.liu at intel.com
Fri Nov 10 06:31:10 CET 2017


Yuwei,
Look like we can't change packet content for sequence check. Is it possible to do that like latency function?
And another two comments are in inline.

Thanks,
Marvin

> -----Original Message-----
> From: dts [mailto:dts-bounces at dpdk.org] On Behalf Of Yuwei Zhang
> Sent: Thursday, November 02, 2017 10:53 PM
> To: dts at dpdk.org
> Cc: Zhang, Yuwei1 <yuwei1.zhang at intel.com>
> Subject: [dts] [PATCH V1] Add a function used to verify keep packets'
> order feature
> 
> use ixia to send and check packets' order captured which could be used to
> verify keep packets' order feature
> 
> Signed-off-by: Yuwei Zhang <yuwei1.zhang at intel.com>
> ---
>  framework/etgen.py  | 20 ++++++++++++++++++++
>  framework/tester.py |  7 +++++++
>  2 files changed, 27 insertions(+)
> 
> diff --git a/framework/etgen.py b/framework/etgen.py
> index b19ae84..3892252 100644
> --- a/framework/etgen.py
> +++ b/framework/etgen.py
> @@ -558,6 +558,26 @@ class IxiaPacketGenerator(SSHConnection):
>          rxPortlist, txPortlist = self._configure_everything(port_list,
> rate_percent)
>          return self.get_transmission_results(rxPortlist, txPortlist,
> delay)
> 
> +    def is_packet_ordered(self, port_list, rate_percent=100, delay=5,
> latency=False):

If argument "rate_percent" is useful, please implement rate setting in this function. Otherwise, please remove it.

> +        self.send_expect("port setFactoryDefaults %d %d %d" %
> (self.chasId, self.ports[0]['card'], self.ports[0]['port']), '%')
> +        self.send_expect('port config -receiveMode [expr
> $::portCapture|$::portRxFirstTimeStamp|$::portRxSequenceChecking|$::portRx
> ModeWidePacketGroup]', '%')
> +        self.send_expect('port config -autonegotiate true', '%')
> +        self.send_expect('lappend portTxList [list %d %d %d]' %
> (self.chasId, self.ports[0]['card'], self.ports[0]['port']), '%')
> +        self.send_expect('ixWritePortsToHardware portTxList', '%')
> +        self.send_expect('set streamId 1', '%')
> +        self.send_expect('stream setDefault', '%')
> +        self.send_expect('ixStartPortPacketGroups %d %d %d' %
> (self.chasId, self.ports[0]['card'], self.ports[0]['port']), '%')
> +        self.send_expect('ixStartTransmit portTxList', '%')
> +        self.send_expect('after 1000', '%')

1000 here should be delay * 1000.

> +        self.send_expect('ixStopTransmit portTxList', '%')
> +        self.send_expect('ixStopPortPacketGroups %d %d %d' % (self.chasId,
> self.ports[0]['card'], self.ports[0]['port']), '%')
> +        self.send_expect('after 5000', '%')
> +        self.send_expect('packetGroupStats get %d %d %d 1 1' %
> (self.chasId, self.ports[0]['card'], self.ports[0]['port']), '%')
> +        self.send_expect('packetroupStats getGroup 1', '%')
> +        self.send_expect('set reverseSequenceError [packetGroupStats cget
> -reverseSequenceError]]', '%')
> +        output = self.send_expect('puts $reverseSequenceError', '%')
> +        return int(output[:-2])
> +
>      def _configure_everything(self, port_list, rate_percent,
> latency=False):
>          """
>          Prepare and configure IXIA ports for performance test.
> diff --git a/framework/tester.py b/framework/tester.py
> index 9208b0e..7062356 100644
> --- a/framework/tester.py
> +++ b/framework/tester.py
> @@ -502,6 +502,13 @@ class Tester(Crb):
>              return None
>          return self.packet_gen.throughput(portList, rate_percent)
> 
> +    def verify_packet_order(self, portList, rate_percent=100, delay=5):
> +        if self.check_port_list(portList, 'ixia'):
> +            return self.ixia_packet_gen.is_packet_ordered(portList,
> rate_percent, delay)
> +        else:
> +            self.logger.warning("Only ixia port support check verify
> packet order function")
> +            return False
> +
>      def run_rfc2544(self, portlist, delay=120, permit_loss_rate=0):
>          """
>          test_rate: the line rate we are going to test.
> --
> 2.14.1.windows.1



More information about the dts mailing list