summaryrefslogtreecommitdiffstats
path: root/core/pktfwd_controller.py
diff options
context:
space:
mode:
authorRobert Wojciechowicz <robertx.wojciechowicz@intel.com>2015-12-09 10:07:38 +0000
committerMaryam Tahhan <maryam.tahhan@intel.com>2016-01-21 09:41:05 +0000
commit9a054248197bdaed71b32e9d9c0ac621bf89c1cd (patch)
treec186250f91e658845cd8f3a985517c33a9ba0220 /core/pktfwd_controller.py
parent7caf7a6be0fae6b341181b3e6286372e2e93b4b8 (diff)
Add testpmd as vswitch class
The purpose of using testpmd instead of OVS is to get the baseline of the DUT when performing hardware offloading operations. There are supported different checksum calculation and txq flags settings. Change-Id: I93c9b45dcb31eaa1f610b7e061f3dd5936b0e6ec JIRA: VSPERF-193 Signed-off-by: Robert Wojciechowicz <robertx.wojciechowicz@intel.com> Reviewed-by: Dino Simeon Madarang <dino.simeonx.madarang@intel.com> Reviewed-by: Maryam Tahhan <maryam.tahhan@intel.com> Reviewed-by: Brian Castelli <brian.castelli@spirent.com>
Diffstat (limited to 'core/pktfwd_controller.py')
-rw-r--r--core/pktfwd_controller.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/core/pktfwd_controller.py b/core/pktfwd_controller.py
new file mode 100644
index 00000000..4f300ce8
--- /dev/null
+++ b/core/pktfwd_controller.py
@@ -0,0 +1,68 @@
+# Copyright 2016 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Packet forwarder controller for Physical to Physical deployment
+"""
+
+import logging
+
+from conf import settings
+
+
+class PktFwdController(object):
+ """Packet forwarder controller for P2P deployment scenario.
+
+ Attributes:
+ _pktfwd_class: The packet forwarder class to be used.
+ _pktfwd: The packet forwarder object controlled by this controller
+ """
+ def __init__(self, pktfwd_class):
+ """Initializes up the prerequisites for the P2P deployment scenario.
+
+ :vswitch_class: the vSwitch class to be used.
+ """
+ self._logger = logging.getLogger(__name__)
+ self._pktfwd_class = pktfwd_class
+ self._pktfwd = pktfwd_class()
+ self._logger.debug('Creation using ' + str(self._pktfwd_class))
+
+ def setup(self):
+ """Sets up the packet forwarder for p2p.
+ """
+ self._logger.debug('Setup using ' + str(self._pktfwd_class))
+
+ try:
+ self._pktfwd.start()
+ except:
+ self._pktfwd.stop()
+ raise
+
+ def stop(self):
+ """Tears down the packet forwarder created in setup().
+ """
+ self._logger.debug('Stop using ' + str(self._pktfwd_class))
+ self._pktfwd.stop()
+
+ def __enter__(self):
+ self.setup()
+
+ def __exit__(self, type_, value, traceback):
+ self.stop()
+
+ def get_pktfwd(self):
+ """Get the controlled packet forwarder
+
+ :return: The controlled IPktFwd
+ """
+ return self._pktfwd