make test: add option in pg interfaces for duplicating packets 97/19397/6
authorAlexandre Poirrier <apoirrie@cisco.com>
Tue, 7 May 2019 08:43:41 +0000 (10:43 +0200)
committerPaul Vinciguerra <pvinci@vinciconsulting.com>
Tue, 28 May 2019 15:05:12 +0000 (15:05 +0000)
Change-Id: Ia6d6de5de0414291d5637fb4b8c1480925f646d3
Signed-off-by: Alexandre Poirrier <apoirrie@cisco.com>
test/vpp_pg_interface.py [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 8792e6c..518798d
@@ -68,6 +68,8 @@ class VppPGInterface(VppInterface):
     @property
     def input_cli(self):
         """CLI string to load the injected packets"""
+        if self._nb_replays is not None:
+            return "%s limit %d" % (self._input_cli, self._nb_replays)
         return self._input_cli
 
     @property
@@ -105,9 +107,13 @@ class VppPGInterface(VppInterface):
         self._input_cli = \
             "packet-generator new pcap %s source pg%u name %s" % (
                 self.in_path, self.pg_index, self.cap_name)
+        self._nb_replays = None
 
     def enable_capture(self):
-        """ Enable capture on this packet-generator interface"""
+        """ Enable capture on this packet-generator interface
+            of at most n packets.
+            If n < 0, this is no limit
+        """
         try:
             if os.path.isfile(self.out_path):
                 name = "%s/history.[timestamp:%f].[%s-counter:%04d].%s" % \
@@ -125,13 +131,17 @@ class VppPGInterface(VppInterface):
         self.test.vapi.cli(self.capture_cli)
         self._pcap_reader = None
 
-    def add_stream(self, pkts):
+    def disable_capture(self):
+        self.test.vapi.cli("%s disable" % self.capture_cli)
+
+    def add_stream(self, pkts, nb_replays=None):
         """
         Add a stream of packets to this packet-generator
 
         :param pkts: iterable packets
 
         """
+        self._nb_replays = nb_replays
         try:
             if os.path.isfile(self.in_path):
                 name = "%s/history.[timestamp:%f].[%s-counter:%04d].%s" %\