Fix releng-tox Jenkins job
[samplevnf.git] / docs / testing / user / userguide / 03-architecture.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, Intel Corporation and others.
5
6 ============
7 Architecture
8 ============
9
10 Abstract
11 ========
12 This chapter describes the samplevnf software architecture.
13 we will introduce it VNFs. More technical details will be introduced in this chapter.
14
15 Overview
16 ========
17
18 Architecture overview
19 ---------------------
20 This project provides a placeholder for various sample VNF (Virtual Network Function)
21 development which includes example reference architecture and optimization methods
22 related to VNF/Network service for high performance VNFs.
23
24 The sample VNFs are Open Source approximations* of Telco grade VNF’s using
25 optimized VNF + NFVi Infrastructure libraries, with Performance Characterization
26 of Sample† Traffic Flows.
27
28 ::
29
30  * Not a commercial product. Encourage the community to contribute and close the feature gaps.
31  † No Vendor/Proprietary Workloads
32
33 It helps to facilitate deterministic & repeatable bench-marking on Industry
34 standard high volume Servers. It augments well with a Test infrastructure to
35 help facilitate consistent/repeatable methodologies for characterizing &
36 validating the sample VNFs through OPEN SOURCE VNF approximations and test tools.
37 The VNFs belongs to this project are never meant for field deployment.
38 All the VNF source code part of this project requires Apache License Version 2.0.
39
40 Supported deployment
41 --------------------
42 * Bare-Metal - All VNFs can run on a Bare-Metal DUT
43 * Standalone Virtualization(SV): All VNFs can run on SV like VPP as switch, ovs,
44   ovs-dpdk, srioc
45 * Openstack: Latest Openstack supported
46
47 VNF supported
48 -------------
49  - Carrier Grade Network Address Translation (CG-NAT) VNF
50       The Carrier Grade Network Address and port Translation (vCG-NAPT) is a
51       VNF approximation extending the life of the service providers IPv4 network
52       infrastructure and mitigate IPv4 address exhaustion by using address and
53       port translation in large scale. It processes the traffic in both the directions.
54       It also supports the connectivity between the IPv6 access network to
55       IPv4 data network using the IPv6 to IPv4 address translation and vice versa.
56  - Firewall (vFW) VNF
57       The Virtual Firewall (vFW) is a VNF approximation serving as a state full
58       L3/L4 packet filter with connection tracking enabled for TCP, UDP and ICMP.
59       The VNF could be a part of Network Services (industry use-cases) deployed
60       to secure the enterprise network from un-trusted network.
61  - Access Control List (vACL) VNF
62       The vACL vNF is implemented as a DPDK application using VNF Infrastructure
63       Library (VIL). The VIL implements common VNF internal, optimized for
64       Intel Architecture functions like load balancing between cores, IPv4/IPv6
65       stack features, and interface to NFV infrastructure like OVS or SRIOV.
66  - UDP_Replay
67       The UDP Replay is implemented as a DPDK application using VNF Infrastructure
68       Library (VIL). Performs as a refelector of all the traffic on given port.
69  - Prox - Packet pROcessing eXecution engine.
70       Packet pROcessing eXecution Engine (PROX) which is a DPDK application.
71       PROX can do operations on packets in a highly configurable manner.
72       The PROX application is also displaying performance statistics that can
73       be used for performance investigations.
74       Intel® DPPD - PROX is an application built on top of DPDK which allows
75       creating software architectures, such as the one depicted below, through
76       small and readable configuration files.
77       This VNF can act as L2FWD, L3FWD, BNG etc.
78
79 Feature supported by the VNFs
80 -----------------------------
81
82 The following features were verified by SampleVNF test cases:
83
84    - vFW - Virtual Firewall
85
86      * Basic Packet filter dropping malformed, invalid packets based on L3/L4 packet headers
87      * Policy based filtering
88      * Dynamic Packet filtering through Connection Tracker for TCP and UDP
89      * SYN-flood protection via synproxy for TCP
90      * UDP, TCP and ICMP protocol pass-through
91      * CLI based enable/disable connection tracking, synproxy, basic packet filtering
92      * Multithread support
93      * Multiple physical port support
94      * Providing statistics on traffic traversing the VNF
95
96    - vCG-NAPT - Carrier Grade Network Address and port Translation
97
98      * Static and dynamic Network address translation.
99      * Static and dynamic Network address and port translation
100      * ARP (request, response, gratuitous)
101      * ICMP (terminal echo, echo response, pass-through)
102      * UDP, TCP and ICMP protocol pass-through
103      * Multithread support and Multiple physical port support
104      * Limiting max ports per client
105      * Limiting max clients per public IP address
106      * Live Session tracking to NAT flow
107      * NAT64 – connectivity between IPv6 access network to IPv4 data network.
108
109    - vACL - Access Control List
110
111      * CLI based Run-time rule configuration (Add, Delete, List, Display, Clear, Modify)
112      * IPv4 and IPv6 5 tuple packet Selector support
113      * Counting packets and bytes per rule
114      * Multithread support
115      * Multiple physical port support
116      * Forwarding packets to specific ports on base of rules
117      * Rules definition on base TCP/UDP connection tracking
118
119    - Prox - Packet pROcessing eXecution engine.
120
121      * Classify
122      * Drop
123      * Basic Forwarding (no touch)
124      * L2 Forwarding (change MAC)
125      * GRE encap/decap
126      * Load balance based on packet fields
127      * Symmetric load balancing
128      * QinQ encap/decap IPv4/IPv6
129      * ARP
130      * QoS
131      * Routing
132      * Unmpls
133      * Policing
134      * Basic ACL
135      * Basic CGNAT
136
137 Test Framework
138 --------------
139
140 .. _Yardstick_NSB: http://artifacts.opnfv.org/yardstick/docs/testing_user_userguide/index.html#document-11-nsb-overview
141 .. _ETSI GS NFV-TST 001: https://portal.etsi.org/webapp/workprogram/Report_WorkItem.asp?WKI_ID=46009
142
143 SampleVNF Test Infrastructure (NSB (Yardstick_NSB_)) in yardstick helps to facilitate
144 consistent/repeatable methodologies for characterizing & validating the
145 sample VNFs (:term:`VNF`) through OPEN SOURCE VNF approximations.
146
147
148 Network Service Benchmarking in yardstick framework follows `ETSI GS NFV-TST 001`_
149 to verify/characterize both :term:`NFVI` & :term:`VNF`
150
151 For more inforamtion refer, Yardstick_NSB_
152
153 SampleVNF Directory structure
154 =============================
155
156 **samplevnf/** - SampleVNF main directory.
157
158 *common/* - Common re-useable code like arp, nd, packet fwd etc
159
160 *docs/* - All documentation is stored here, such as configuration guides,
161           user guides and SampleVNF descriptions.
162
163 *tools/* - Currently contains tools to build image for VMs which are deployed
164            by Heat. Currently contains helper scripts like install, setup env
165
166 *VNFs/* - all VNF source code directory.
167
168 *VNF_Catalogue/* - Collection of all  Open Source VNFs
169
170 *heat_template/* - Sample HEAT templates for VNFs