f59dba72bd320266ca75d0a3a828d1b17a9e2b57
[vswitchperf.git] / tools / report / report.jinja
1 # CHARACTERIZE VSWITCH PERFORMANCE FOR TELCO NFV USE CASES LEVEL TEST REPORT
2
3 ## Table of Contents
4
5 - [1. Introduction](#Introduction)
6   - [1.1. Document identifier](#DocId)
7   - [1.2. Scope](#Scope)
8   - [1.3. References](#References)
9 - [2. Details of the Level Test Report](#DetailsoftheLevelTestReport)
10   - [2.1. Overview of test results](#OverviewOfTestResults)
11   - [2.2. Detailed test results](#DetailedTestResults)
12   - [2.3. Rationale for decisions](#RationaleForDecisions)
13   - [2.4. Conclusions and recommendations](#ConclusionsandRecommendations)
14 - [3. General](#General)
15   - [3.1. Glossary](#Glossary)
16   - [3.2. Document change procedures and history](#DocChangeProceduresandHistory)
17
18 ---
19
20 <a name="Introduction"></a>
21 ## 1. Introduction
22
23 The objective of the OPNFV project titled **"Characterise vSwitch Performance for Telco NFV Use Cases"**, is to evaluate a virtual switch to identify its suitability for a Telco Network Function Virtualization (NFV) environment. As well as this, the project aims to identify any gaps or bottlenecks in order to drive architectural changes to improve virtual switch performance and determinism. The purpose of this document is to summarize the results of the tests carried out on the virtual switch in the Network Function Virtualization Infrastructure (NFVI) and, from these results, provide evaluations and recommendations for the virtual switch. Test results will be outlined in [Details of the Level Test Report](#DetailsoftheLevelTestReport), preceded by the [Document Identifier](#DocId), [Scope](#Scope) and [References](#References).
24
25 This document is currently in draft form.
26
27 <a name="DocId"></a>
28 ### 1.1. Document identifier
29
30 The document id will be used to uniquely identify versions of the LTR. The format for the document id will be: `OPNFV_vswitchperf_LTR_ver_NUM_MONTH_YEAR_AUTHOR_STATUS`, where by the AUTHOR field should be replaced with the initials of the author and the status is one of: DRAFT, REVIEWED, CORRECTED or FINAL. The document id for this version of the LTR is: `OPNFV_vswitchperf_LTR_ver_1.1_Jan_15_CN_DRAFT`.
31
32 <a name="Scope"></a>
33 ### 1.2. Scope
34
35 The scope of this report is to detail the results of the tests that have been performed on the virtual switch. This report will also evaluate the results of these tests and, based on these evaluations, provide recommendations on the suitability of the virtual switch for use in a Telco NFV environment.
36
37 <a name="References"></a>
38 ### 1.3. References
39
40 - `OPNFV_vswitchperf_LTD_ver_1.6_Jan_15_DRAFT`
41
42 ---
43
44 <a name="DetailsoftheLevelTestReport"></a>
45 ## 2. Details of the Level Test Report
46
47 This section provides an overview of the test results ([Section 2.1.](#OveriewOfTestResults)) as well as detailed test results for each test ([Section 2.2.](#DetailedTestResults)). Also included are the rationale used to evaluate each test ([Section 2.3.](#RationaleForDecisions)) and the conclusions and recommendations for each test ([Section 2.4.](#ConclusionsandRecommendations)).
48
49 <a name="OverviewOfTestResults"></a>
50 ### 2.1. Overview of test results
51
52 ##### Test Environment
53
54 Below is the environment that the test was performed in:
55
56 - OS: {{tests[0].env.os}}
57 - Kernel Version: {{tests[0].env.kernel}}
58 - NIC(s): {{tests[0].env.nic}}
59 - Board: {{tests[0].env.platform}}
60 - CPU: {{tests[0].env.cpu}}
61 - CPU cores: {{tests[0].env.cpu_cores}}
62 - Memory: {{tests[0].env.memory}}
63 - Virtual Switch Set-up: {{tests[0].deployment}}
64 - vswitchperf: GIT tag: {{tests[0].env.vsperf['git_tag']}}
65 - Traffic Generator: {{tests[0].env.traffic_gen['name']}}, Version: {{tests[0].env.traffic_gen['version']}}, GIT tag: {{tests[0].env.traffic_gen['git_tag']}}
66 - vSwitch: {{tests[0].env.vswitch['name']}}, Version: {{tests[0].env.vswitch['version']}}, GIT tag: {{tests[0].env.vswitch['git_tag']}}
67 - DPDK Version: {{tests[0].env.dpdk['version']}}, GIT tag: {{tests[0].env.dpdk['git_tag']}}
68 {%- if 'vnf' in tests[0].env %}
69 - VNF: {{tests[0].env.vnf['name']}}, Version: {{tests[0].env.vnf['version']}}, GIT tag: {{tests[0].env.vnf['git_tag']}}
70 - VM images: {% for guest_image in tests[0].env.guest_image %}{{guest_image}}  {% endfor %}
71 - VM loopback apps: {% for loopback_app in tests[0].env.loopback_app %}{{loopback_app['name']}}, Version: {{loopback_app['version']}}, GIT tag: {{loopback_app['git_tag']}}
72                     {% endfor %}
73 {%- endif %}
74
75 For each test, a summary of the key test results is provided.
76 {% for test in tests %}
77 #### Test ID: {{ test.ID }}
78
79 Below are test details:
80
81 - Test ID: {{ "%s"|format(test.id) }}
82 - Description: {{ "%s"|format(test.conf['Description']) }}
83 - Deployment: {{ "%s"|format(test.deployment) }}
84 - Traffic type: {{ "%s"|format(test.result['type']) }}
85 - Packet size: {{ "%s"|format(test.result['packet_size']) }}
86 - Bidirectional : {{ "%s"|format(test.conf['biDirectional']) }}
87 {% endfor %}
88
89 <a name="DetailedTestResults"></a>
90 ### 2.2. Detailed test results
91
92 A detailed summary of the main results for each test is outlined below.
93 {% for test in tests %}
94 #### Test ID: {{ test.ID }}
95
96 ##### Results/Metrics Collected
97
98 The following are the metrics obtained during this test:
99
100 |             Metric             |             Result             |
101 | ------------------------------ | ------------------------------ |
102 {%- for item, value in test.result.items() %}
103 | {{ "%-30s | %30s |"|format(item,value)}}
104 {%- endfor %}
105
106 ##### Statistics collected
107
108 The following system statistics were collected during testcase execution:
109 {% for process in test.stats %}
110 | --------------------------------------------------------------- |
111 | Process: {{ "%-54s |"|format('_'.join(process.split('_')[:-1])) }}
112 | ------------------------------ | ------------------------------ |
113 |           Statistic            |             Value              |
114 | ------------------------------ | ------------------------------ |
115 {%- for item, value in test.stats[process].items() %}
116 | {{ "%-30s | %30s |"|format(item,value)}}
117 {%- endfor %}
118
119 {% endfor %}
120
121 ##### Anomalies
122
123 No anomalies were detected during the course of this test.
124
125 ##### Testing Activities/Events
126
127 There were no significant testing activities for this test.
128 {% endfor %}
129 <a name="RationaleForDecisions"></a>
130 ### 2.3. Rationale for decisions
131
132 TODO.
133
134 <a name="ConclusionsandRecommendations"></a>
135 ### 2.4. Conclusions and recommendations
136
137 TODO.
138
139 -----
140
141 <a name="General"></a>
142 ## 3. General
143
144 <a name="Glossary"></a>
145 ### 3.1. Glossary
146
147 - NFV - Network Function Virtualization
148 - Mbps - 1,000,000bps
149
150 <a name="DocChangeProceduresandHistory"></a>
151 ### 3.2. Document change procedures and history
152
153 | Document ID | Author | Date Modified |
154 | ----------- |------- | ------------- |
155 | `OPNFV_vswitchperf_LTR_ver_1.0_Jan_15_CN_DRAFT` | Christopher Nolan | 23/01/2015
156 | `OPNFV_vswitchperf_LTR_ver_1.1_Jan_15_CN_DRAFT` | Christopher Nolan | 28/01/2015