From 7243bf4de72f4b795f08f6abe99e05da4c06491b Mon Sep 17 00:00:00 2001
From: "Sridhar K. N. Rao" <sridhar.rao@spirent.com>
Date: Tue, 28 Nov 2017 16:23:01 +0530
Subject: llc-management: Support for LLC management with RMD

This patch adds support for LLC-Last level cache
management using RMD. The changes include:
1. 08_llcmanagement.conf: The configuration file to define cache
allocation policy.
2. testcase.py: To trigger llc-allocation and cleanup before and
after the test, respectively.
3. llc_management/rmd.py: The main file the performs the llc
allocation and cleanup.
4. llc_management/resthttp.py: Generic utility to call rest APIs,
with http.
5. Fixed a build error due to change in name mismatch.
6. Fixed pylint errors. Override built-in function error.
7. Added empty __init__.py to avoid import errors
8. Fixed deprecated functions errors
9. Fixed copyright issues, removed python-3 checking.
10. Removed pylint disables.
11. resthttp.py is already part of stcrestclient used in
tools/pkt_gen/testcenter/ scripts. Hence, deleted from the source.
12. Year update from the license
13. Fixed some testcases.py collision issue

JIRA: VSPERF-544

Change-Id: I7cbd155dd66f5a0cef544751841e71b95c9b6821
Signed-off-by: Sridhar K. N. Rao <sridhar.rao@spirent.com>
---
 testcases/testcase.py | 13 +++++++++++++
 1 file changed, 13 insertions(+)

(limited to 'testcases')

diff --git a/testcases/testcase.py b/testcases/testcase.py
index 991c2890..5d4a6ea9 100644
--- a/testcases/testcase.py
+++ b/testcases/testcase.py
@@ -36,6 +36,7 @@ from tools import functions
 from tools import namespace
 from tools import veth
 from tools.teststepstools import TestStepsTools
+from tools.llc_management import rmd
 
 CHECK_PREFIX = 'validate_'
 
@@ -185,6 +186,10 @@ class TestCase(object):
                 if step[0].startswith('vnf'):
                     self._step_vnf_list[step[0]] = None
 
+        # if llc allocation is required, initialize it.
+        if S.getValue('LLC_ALLOCATION'):
+            self._rmd = rmd.CacheAllocator()
+
     def run_initialize(self):
         """ Prepare test execution environment
         """
@@ -257,6 +262,10 @@ class TestCase(object):
 
         self._step_status = {'status' : True, 'details' : ''}
 
+        # Perform LLC-allocations
+        if S.getValue('LLC_ALLOCATION'):
+            self._rmd.setup_llc_allocation()
+
         self._logger.debug("Setup:")
 
     def run_finalize(self):
@@ -265,6 +274,10 @@ class TestCase(object):
         # Stop all VNFs started by TestSteps in case that something went wrong
         self.step_stop_vnfs()
 
+        # Cleanup any LLC-allocations
+        if S.getValue('LLC_ALLOCATION'):
+            self._rmd.cleanup_llc_allocation()
+
         # Stop all processes executed by testcase
         tasks.terminate_all_tasks(self._logger)
 
-- 
cgit