Add initial installation documentation
[yardstick.git] / docs / vTC / README.rst
1 =========
2 Yardstick
3 =========
4
5 Overview of the virtual Traffic Classifier
6 ========
7 The virtual Traffic Classifier VNF [1], comprises in the current version of
8 1 VNFC [2]. The VNFC contains both the Traffic Inspection module, and the
9 Traffic forwarding module, needed to run the VNF. The exploitation of DPI
10 methods for traffic classification is built around two basic assumptions:
11 (i) third parties unaffiliated with either source or recipient are able to
12 inspect each IP packet’s payload and
13 (ii) the classifier knows the relevant syntax of each application’s packet
14 payloads (protocol signatures, data patterns, etc.).
15 The proposed DPI based approach will only use an indicative, small number of the
16 initial packets from each flow in order to identify the content and not inspect
17 each packet.
18 In this respect it follows the Packet Based per Flow State (PBFS).
19 This method uses a table to track each session based on the 5-tuples
20 (src address,dest address,src port,dest port,transport protocol)
21 that is maintained for each flow.
22
23 Concepts
24 ========
25 Traffic Inspection: The process of packet analysis and application
26 identification of network traffic that passes through the vTC.
27
28 Traffic Forwarding: The process of packet forwarding from an incoming
29 network interface to a pre-defined outgoing network interface.
30
31 Traffic Rule Application: The process of packet tagging, based on a
32 predefined set of rules. Packet tagging may include e.g. ToS field modification.
33
34 Architecture
35 ============
36
37 The Traffic Inspection module is the most computationally intensive component
38 of the VNF. It implements filtering and packet matching algorithms in order to
39 support the enhanced traffic forwarding capability of the VNF. The component
40 supports a flow table (exploiting hashing algorithms for fast indexing of flows)
41 and an inspection engine for traffic classification. The implementation used for
42 these experiments exploits the nDPI library. The packet capturing mechanism is
43 implemented using libpcap. When the DPI engine identifies a new flow, the flow
44 register is updated with the appropriate information and transmitted across the
45 Traffic Forwarding module, which then applies any required policy updates.
46 The Traffic Forwarding moudle is responsible for routing and packet forwarding.
47 It accepts incoming network traffic, consults the flow table for classification
48 information for each incoming flow and then applies pre-defined policies marking
49 e.g. type of Service/Differentiated Services Code Point (TOS/DSCP) multimedia
50 traffic for QoS enablement on the forwarded traffic. It is assumed that the
51 traffic is forwarded using the default policy until it is identified and new
52 policies are enforced. The expected response delay is considered to be
53 negligible,as only a small number of packets are required to identify each flow.
54
55 Graphical Overview
56 ==================
57
58 +----------------------------+
59 |                            |
60 | Virtual Traffic Classifier |
61 |                            |
62 |     Analysing/Forwarding   |
63 |         +-------->         |
64 |     ethA          ethB     |
65 +------+--------------+------+
66        |              ^
67        |              |
68        |              |
69        |              |
70        v              |
71 +------+--------------+------+
72 |                            |
73 |     Virtual Switch         |
74 |                            |
75 +----------------------------+
76
77
78 Install
79 =======
80
81 run the build.sh with root privileges
82
83 Run
84 ===
85
86 sudo ./pfbridge -a eth1 -b eth2
87
88 Custom Image
89 ============
90
91 TBD
92
93 Development Environment
94 =======================
95
96 Ubuntu 14.04 >= VM