summaryrefslogtreecommitdiffstats
path: root/docs/vCGNAPT/README.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/vCGNAPT/README.rst')
-rw-r--r--docs/vCGNAPT/README.rst58
1 files changed, 33 insertions, 25 deletions
diff --git a/docs/vCGNAPT/README.rst b/docs/vCGNAPT/README.rst
index eda94831..dd6bb079 100644
--- a/docs/vCGNAPT/README.rst
+++ b/docs/vCGNAPT/README.rst
@@ -4,10 +4,10 @@
.. (c) opnfv, national center of scientific research "demokritos" and others.
========================================================
-Carrier Grade Network Address Port Translation - vCGNAPT
+vCGNAPT - Readme
========================================================
-1 Introduction
+Introduction
==============
This application implements vCGNAPT. The idea of vCGNAPT is to extend the life of
the service providers IPv4 network infrastructure and mitigate IPv4 address
@@ -27,12 +27,12 @@ This document assumes the reader possess the knowledge of DPDK concepts and IP
Pipeline Framework. For more details, read DPDK Getting Started Guide, DPDK
Programmers Guide, DPDK Sample Applications Guide.
-2. Scope
+Scope
==========
This application provides a standalone DPDK based high performance vCGNAPT
Virtual Network Function implementation.
-3. Features
+Features
===========
The vCGNAPT VNF currently supports the following functionality:
• Static NAT
@@ -53,7 +53,7 @@ The vCGNAPT VNF currently supports the following functionality:
• ALG SIP
• ALG FTP
-4. High Level Design
+High Level Design
====================
The Upstream path defines the traffic from Private to Public and the downstream
path defines the traffic from Public to Private. The vCGNAPT has same set of
@@ -77,6 +77,7 @@ and mitigate IPv4 address exhaustion by using address and port translation in la
It processes the traffic in both the directions.
.. code-block:: console
+
+------------------+
| +-----+
| Private consumer | CPE |---------------+
@@ -96,8 +97,10 @@ It processes the traffic in both the directions.
Figure 1: vCGNAPT deployment in Service provider network
+
Components of vCGNAPT
=====================
+
In vCGNAPT, each component is constructed as a packet framework. It includes Master pipeline
component, driver, load balancer pipeline component and vCGNAPT worker pipeline component. A
pipeline framework is a collection of input ports, table(s), output ports and actions
@@ -112,14 +115,13 @@ ARPICMP pipeline
------------------------
ARPICMP pipeline is responsible for handling all l2l3 arp related packets.
-----------------
This component does not process any packets and should configure with Core 0,
to save cores for other components which processes traffic. The component
is responsible for:
- 1. Initializing each component of the Pipeline application in different threads
- 2. Providing CLI shell for the user
- 3. Propagating the commands from user to the corresponding components.
- 4. ARP and ICMP are handled here.
+1. Initializing each component of the Pipeline application in different threads
+2. Providing CLI shell for the user
+3. Propagating the commands from user to the corresponding components.
+4. ARP and ICMP are handled here.
Load Balancer pipeline
------------------------
@@ -133,7 +135,7 @@ affinity of flows to worker threads.
Tuple can be modified/configured using configuration file
-4. vCGNAPT - Static
+vCGNAPT - Static
====================
The vCGNAPT component performs translation of private IP & port to public IP &
port at egress side and public IP & port to private IP & port at Ingress side
@@ -144,7 +146,7 @@ port and will be forwarded to the output port. The packets that do not have a
match will be taken a default action. The default action may result in drop of
the packets.
-5. vCGNAPT- Dynamic
+vCGNAPT - Dynamic
===================
The vCGNAPT component performs translation of private IP & port to public IP & port
at egress side and public IP & port to private IP & port at Ingress side based on the
@@ -158,32 +160,38 @@ port and will be forwarded to the output port defined in the entry.
Dynamic vCGNAPT acts as static one too, we can do NAT entries statically. Static NAT
entries port range must not conflict to dynamic NAT port range.
-vCGNAPT Static Topology:
+vCGNAPT Static Topology
------------------------
+
::
+
IXIA(Port 0)-->(Port 0)VNF(Port 1)-->(Port 1) IXIA
operation:
- Egress --> The packets sent out from ixia(port 0) will be CGNAPTed to ixia(port 1).
- Igress --> The packets sent out from ixia(port 1) will be CGNAPTed to ixia(port 0).
+ Egress --> The packets sent out from ixia(port 0) will be CGNAPTed to ixia(port 1).
+ Igress --> The packets sent out from ixia(port 1) will be CGNAPTed to ixia(port 0).
-vCGNAPT Dynamic Topology (L4REPLAY):
+vCGNAPT Dynamic Topology (L4REPLAY)
------------------------------------
+
::
+
IXIA(Port 0)-->(Port 0)VNF(Port 1)-->(Port 0)L4REPLAY
operation:
- Egress --> The packets sent out from ixia will be CGNAPTed to L3FWD/L4REPLAY.
- Ingress --> The L4REPLAY upon reception of packets (Private to Public Network),
- will immediately replay back the traffic to IXIA interface. (Pub -->Priv).
+ Egress --> The packets sent out from ixia will be CGNAPTed to L3FWD/L4REPLAY.
+ Ingress --> The L4REPLAY upon reception of packets (Private to Public Network),
+ will immediately replay back the traffic to IXIA interface. (Pub -->Priv).
-How to run L4Replay:
+How to run L4Replay
--------------------
+After the installation of samplevnf:
+
::
- 1. After the installation of samplevnf:
- go to <samplevnf/VNFs/L4Replay>
- 2. ./buid/L4replay -c core_mask -n no_of_channels(let it be as 2) -- -p PORT_MASK --config="(port,queue,lcore)"
+
+ go to <samplevnf/VNFs/L4Replay>
+ ./buid/L4replay -c core_mask -n no_of_channels(let it be as 2) -- -p PORT_MASK --config="(port,queue,lcore)"
eg: ./L4replay -c 0xf -n 4 -- -p 0x3 --config="(0,0,1)"
-6. Installation, Compile and Execution
------------------------------------------------------------------
+Installation, Compile and Execution
+====================================
Plase refer to <samplevnf>/docs/vCGNAPT/INSTALL.rst for installation, configuration, compilation
and execution.