Refine documentation
[yardstick.git] / docs / testing / user / userguide / 09-vtc-overview.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International
2 .. License.
3 .. http://creativecommons.org/licenses/by/4.0
4 .. (c) OPNFV, National Center of Scientific Research "Demokritos" and others.
5
6 ==========================
7 Virtual Traffic Classifier
8 ==========================
9
10 Abstract
11 ========
12
13 .. _TNOVA: http://www.t-nova.eu/
14 .. _TNOVAresults: http://www.t-nova.eu/results/
15 .. _Yardstick: https://wiki.opnfv.org/yardstick
16
17 This chapter provides an overview of the virtual Traffic Classifier, a
18 contribution to OPNFV Yardstick_ from the EU Project TNOVA_.
19 Additional documentation is available in TNOVAresults_.
20
21 Overview
22 ========
23
24 The virtual Traffic Classifier (:term:`VTC`) :term:`VNF`, comprises of a
25 Virtual Network Function Component (:term:`VNFC`). The :term:`VNFC` contains
26 both the Traffic Inspection module, and the Traffic forwarding module, needed
27 to run the :term:`VNF`. The exploitation of Deep Packet Inspection
28 (:term:`DPI`) methods for traffic classification is built around two basic
29 assumptions:
30
31 * third parties unaffiliated with either source or recipient are able to
32 inspect each IP packet’s payload
33
34 * the classifier knows the relevant syntax of each application’s packet
35 payloads (protocol signatures, data patterns, etc.).
36
37 The proposed :term:`DPI` based approach will only use an indicative, small
38 number of the initial packets from each flow in order to identify the content
39 and not inspect each packet.
40
41 In this respect it follows the Packet Based per Flow State (term:`PBFS`). This
42 method uses a table to track each session based on the 5-tuples (src address,
43 dest address, src port,dest port, transport protocol) that is maintained for
44 each flow.
45
46 Concepts
47 ========
48
49 * *Traffic Inspection*: The process of packet analysis and application
50 identification of network traffic that passes through the :term:`VTC`.
51
52 * *Traffic Forwarding*: The process of packet forwarding from an incoming
53 network interface to a pre-defined outgoing network interface.
54
55 * *Traffic Rule Application*: The process of packet tagging, based on a
56 predefined set of rules. Packet tagging may include e.g. Type of Service
57 (:term:`ToS`) field modification.
58
59 Architecture
60 ============
61
62 The Traffic Inspection module is the most computationally intensive component
63 of the :term:`VNF`. It implements filtering and packet matching algorithms in
64 order to support the enhanced traffic forwarding capability of the :term:`VNF`.
65 The component supports a flow table (exploiting hashing algorithms for fast
66 indexing of flows) and an inspection engine for traffic classification.
67
68 The implementation used for these experiments exploits the nDPI library.
69 The packet capturing mechanism is implemented using libpcap. When the
70 :term:`DPI` engine identifies a new flow, the flow register is updated with the
71 appropriate information and transmitted across the Traffic Forwarding module,
72 which then applies any required policy updates.
73
74 The Traffic Forwarding moudle is responsible for routing and packet forwarding.
75 It accepts incoming network traffic, consults the flow table for classification
76 information for each incoming flow and then applies pre-defined policies
77 marking e.g. :term:`ToS`/Differentiated Services Code Point (:term:`DSCP`)
78 multimedia traffic for Quality of Service (:term:`QoS`) enablement on the
79 forwarded traffic.
80 It is assumed that the traffic is forwarded using the default policy until it
81 is identified and new policies are enforced.
82
83 The expected response delay is considered to be negligible, as only a small
84 number of packets are required to identify each flow.
85
86 Graphical Overview
87 ==================
88
89 .. code-block:: console
90
91   +----------------------------+
92   |                            |
93   | Virtual Traffic Classifier |
94   |                            |
95   |     Analysing/Forwarding   |
96   |        ------------>       |
97   |     ethA          ethB     |
98   |                            |
99   +----------------------------+
100        |              ^
101        |              |
102        v              |
103   +----------------------------+
104   |                            |
105   |     Virtual Switch         |
106   |                            |
107   +----------------------------+
108
109 Install
110 =======
111
112 run the vTC/build.sh with root privileges
113
114 Run
115 ===
116
117 ::
118
119     sudo ./pfbridge -a eth1 -b eth2
120
121
122 .. note:: Virtual Traffic Classifier is not support in OPNFV Danube release.
123
124
125 Development Environment
126 =======================
127
128 Ubuntu 14.04 Ubuntu 16.04