summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/testing/user/userguide/06-How_to_use_REST_api.rst175
-rw-r--r--docs/testing/user/userguide/07-Config_files.rst84
-rw-r--r--docs/testing/user/userguide/08-CLI_Commands_Reference.rst531
-rw-r--r--docs/testing/user/userguide/index.rst1
4 files changed, 675 insertions, 116 deletions
diff --git a/docs/testing/user/userguide/06-How_to_use_REST_api.rst b/docs/testing/user/userguide/06-How_to_use_REST_api.rst
index c2c8836e..53726464 100644
--- a/docs/testing/user/userguide/06-How_to_use_REST_api.rst
+++ b/docs/testing/user/userguide/06-How_to_use_REST_api.rst
@@ -91,68 +91,67 @@ for your VNF.
URI definition for different VNF’s
===================================
-::
-URI REST Method Arguments Description
+URI REST Method Arguments Description
===========================================================================================================================
-/vnf GET None Displays top level methods available
-
-/vnf/config GET None Displays the current config set
- POST pci_white_list: Command success/failure
- num_worker(o):
- vnf_type(o):
- pkt_type (o):
- num_lb(o):
- sw_lb(o):
- sock_in(o):
- hyperthread(o) :
-
-/vnf/config/arp GET None Displays ARP/ND info
- POST action: <add/del/req> Command success/failure
- ipv4/ipv6: <address>
- portid: <>
- macaddr: <> for add
-
-/vnf/config/link GET None
- POST link_id:<> Command success/failure
- state: <1/0>
-
-/vnf/config/link/<link id> GET None
- POST Command success/failure
- ipv4/ipv6: <address>
- depth: <>
-
-/vnf/config/route GET None Displays gateway route entries
- POST portid: <> Adds route entries for default gateway
- nhipv4/nhipv6: <addr>
- depth: <>
- type:"net/host"
-
-/vnf/config/rules(vFW/vACL only) GET None Displays the methods /load/clear
-/vnf/config/rules/load GET None Displays if file was loaded
- PUT <script file
- with cmds> Executes each command from script file
-/vnf/config/rules/clear GET None Command success/failure clear the stat
-
-/vnf/config/nat(vCGNAPT only) GET None Displays the methods /load/clear
-/vnf/config/nat/load GET None Displays if file was loaded
- PUT <script file
- with commands> Executes each command from script file
-
-/vnf/config/nat/clear GET None Command success/failure clear the stats
-/vnf/log GET None This needs to be implemented for each VNF
- just keeping this as placeholder.
-
-/vnf/dbg GET None Will display methods supported like /pipelines/cmd
-/vnf/dbg/pipelines GET None Displays pipeline information(names)
- of each pipelines
-/vnf/dbg/pipelines/<pipe id> GET None Displays debug level for particular pipeline
-
-/vnf/dbg/cmd GET None Last executed command parameters
- POST cmd: Command success/failure
- dbg:
- d1:
- d2:
+/vnf GET None Displays top level methods available
+
+/vnf/config GET None Displays the current config set
+ POST pci_white_list: Command success/failure
+ num_worker(o):
+ vnf_type(o):
+ pkt_type (o):
+ num_lb(o):
+ sw_lb(o):
+ sock_in(o):
+ hyperthread(o) :
+
+/vnf/config/arp GET None Displays ARP/ND info
+ POST action: <add/del/req> Command success/failure
+ ipv4/ipv6: <address>
+ portid: <>
+ macaddr: <> for add
+
+/vnf/config/link GET None
+ POST link_id:<> Command success/failure
+ state: <1/0>
+
+/vnf/config/link/<link id> GET None
+ POST ipv4/ipv6: <address> Command success/failure
+ depth: <>
+
+
+/vnf/config/route GET None Displays gateway route entries
+ POST portid: <> Adds route entries for default gateway
+ nhipv4/nhipv6: <addr>
+ depth: <>
+ type:"net/host"
+
+/vnf/config/rules(vFW/vACL only) GET None Displays the methods /load/clear
+/vnf/config/rules/load GET None Displays if file was loaded
+ PUT <script file
+ with cmds> Executes each command from script file
+/vnf/config/rules/clear GET None Command success/failure clear the stat
+
+/vnf/config/nat(vCGNAPT only) GET None Displays the methods /load/clear
+/vnf/config/nat/load GET None Displays if file was loaded
+ PUT <script file
+ with commands> Executes each command from script file
+
+/vnf/config/nat/clear GET None Command success/failure clear the stats
+/vnf/log GET None This needs to be implemented for each VNF
+ just keeping this as placeholder.
+
+/vnf/dbg GET None Will display methods supported like /pipelines/cmd
+/vnf/dbg/pipelines GET None Displays pipeline information(names)
+ of each pipelines
+/vnf/dbg/pipelines/<pipe id> GET None Displays debug level for particular pipeline
+
+/vnf/dbg/cmd GET None Last executed command parameters
+ POST cmd: Command success/failure
+ dbg:
+ d1:
+ d2:
API Usage
===============
@@ -181,7 +180,7 @@ void rest_api_<vnf>_init(struct mg_context *ctx, struct app_params *app)
{
myapp = app;
- VNF specific command registration
+ VNF specific command registration
mg_set_request_handler(,,,);
}
@@ -199,7 +198,7 @@ export VNF_CORE=`pwd`
export RTE_SDK=`pwd`/dpdk-16.04
export RTE_TARGET=x86_64-native-linuxapp-gcc
-./build/vFW -p 0x3 (Without the -f & -s option)
+./build/vFW (Without the -f & -s option)
1. When VNF(vCGNAPT/vACL/vFW) is launched it waits for user to provide the
/vnf/config REST method. A typical curl command if used will look like below
@@ -220,10 +219,10 @@ public_ip_port_range being added, please note the "/" being used to seperate mul
inputs for public_ip_port_range.
e.g curl -X POST -H "Content-Type:application/json" -d '{"pci_white_list": "0000:05:00.0 0000:05:00.2 0000:07:00.0 0000:07:00.2",
- "num_lb":"2", "num_worker":"10","public_ip_port_range_0": "04040000:(1, 65535)/04040001:(1, 65535)",
- "public_ip_port_range_1": "05050000:(1, 65535)/05050001:(1, 65535)" }' http://10.223.197.179/vnf/config
+ "num_lb":"2", "num_worker":"10","public_ip_port_range_0": "04040000:(1, 65535)/04040001:(1, 65535)",
+ "public_ip_port_range_1": "05050000:(1, 65535)/05050001:(1, 65535)" }' http://10.223.197.179/vnf/config
-2. Check the Link IP's using the REST API
+2. Check the Link IP's using the REST API (vCGNAPT/vACL/vFW)
e.g curl <IP>/vnf/config/link
This would indicate the number of links enabled. You should enable all the links
@@ -234,7 +233,7 @@ http://<IP>/vnf/config/link
curl -X POST -H "Content-Type:application/json" -d '{"linkid": "1", "state": "1"}'
http://<IP>/vnf/config/link
-3. Now that links are enabled we can configure IP's using link method as follows
+3. Now that links are enabled we can configure IP's using link method as follows (vCGNAPT/vACL/vFW)
e.g curl -X POST -H "Content-Type:application/json" -d '{"ipv4":"<IP to be configured>","depth":"24"}'
http://<IP>/vnf/config/link/0
@@ -248,33 +247,61 @@ required.
curl -X POST -H "Content-Type:application/json" -d '{"portid":"0", "nhipv4":"IPV4 address",
"depth":"8", "type":"net"}' http://<IP>/vnf/config/route
+4. Adding arp entries we can use this method (vCGNAPT/vACL/vFW)
+/vnf/config/arp
-4. For Firewall/ACL in order to load the rules a script file needs to be posted
-using a script.
+e.g
+
+curl -X POST -H "Content-Type:application/json" -d '{"action":"add", "ipv4":"202.16.100.20",
+ "portid":"0", "macaddr":"00:00:00:00:00:01"}'
+ http://10.223.166.213/vnf/config/arp
+
+curl -X POST -H "Content-Type:application/json" -d '{"action":"add", "ipv4":"172.16.40.20",
+ "portid":"1", "macaddr":"00:00:00:00:00:02"}'
+ http://10.223.166.213/vnf/config/arp
+
+5. Adding route entries we can use this method (vCGNAPT/vACL/vFW)
+vnf/config/route
+
+e.g curl -X POST -H "Content-Type:application/json" -d '{"type":"net", "depth":"8", "nhipv4":"202.16.100.20",
+ "portid":"0"}' http://10.223.166.240/vnf/config/route
+curl -X POST -H "Content-Type:application/json" -d '{"type":"net", "depth":8", "nhipv4":"172.16.100.20",
+ "portid":"1"}' http://10.223.166.240/vnf/config/route
+
+5. In order to load the rules a script file needs to be posting a script.(vACL/vFW)
/vnf/config/rules/load
Typical example for loading a script file is shown below
curl -X PUT -F 'image=@<path to file>' http://<IP>/vnf/config/rules/load
-vCGNAPT can use the following REST api's for runtime configuring through a script
+typically arpadd/routeadd commands can be provided as part of this to
+add static arp entries & adding route entries providing the NHIP's.
+
+6. The following REST api's for runtime configuring through a script (vCGNAPT Only)
/vnf/config/rules/clear
-/vnf/config/nat(vCGNAPT only)
+/vnf/config/nat
/vnf/config/nat/load
-For debug purpose following REST API's could be used as described above.
+7. For debug purpose following REST API's could be used as described above.(vCGNAPT/vACL/vFW)
/vnf/dbg
+
+e.g curl http://10.223.166.240/vnf/config/dbg
+
/vnf/dbg/pipelines
+e.g curl http://10.223.166.240/vnf/config/dbg/pipelines
+
/vnf/dbg/pipelines/<pipe id>
+e.g curl http://10.223.166.240/vnf/config/dbg/pipelines/<id>
+
/vnf/dbg/cmd
-5. For stats we can use the following method
+8. For stats we can use the following method (vCGNAPT/vACL/vFW)
/vnf/stats
e.g curl <IP>/vnf/stats
-6. For quittiong the application
+9. For quittiong the application (vCGNAPT/vACL/vFW)
/vnf/quit
e.g curl <IP>/vnf/quit
-
diff --git a/docs/testing/user/userguide/07-Config_files.rst b/docs/testing/user/userguide/07-Config_files.rst
index 6ad6c6fb..9061ee57 100644
--- a/docs/testing/user/userguide/07-Config_files.rst
+++ b/docs/testing/user/userguide/07-Config_files.rst
@@ -7,14 +7,14 @@ SampleVNF - Config files
========================
The configuration files are created based on the DUT test scenarios.
-The example reference files are provided as part of the VNFs in the
+The example reference files are provided as part of the VNFs in the
config folder.
Following parameters will define the config files.
-1. Loadbalancing: Hardware or Software
+1. Load balancing type: Hardware or Software
2. Traffic type: IPv4 or IPv6
-3. Number of Ports: pairs: Single port or Multi-Port
+3. Number of Port Pairs: Single or Multi
Following are the example configuration files for sampleVNFs.
@@ -31,7 +31,7 @@ The reference configuration files explained here are for Software and Hardware
loadbalancing with IPv4 traffic type and single port pair.
For other configurations liek IPv6 and Multi-port, refer to example config
files provided as part of the source code in config(VNFs/vFW/config) folder
-of the VNFs.
+of the VNFs.
1. SWLB, IPv4, Single Port Pair, 4WT:
@@ -40,35 +40,35 @@ of the VNFs.
[PIPELINE0]
type = MASTER
core = 0
-
+
[PIPELINE1]
type = ARPICMP
core = 0
-
+
pktq_in = SWQ2
pktq_out = TXQ0.0 TXQ1.0
-
+
; IPv4 ARP route table entries (dst_ip, mask, if_port, nh) hex values with no 0x
; arp_route_tbl = (ac102814,ff000000,1,ac102814) (ca106414,ff000000,0,ca106414)
-
+
; IPv6 ARP route table entries (dst_ip, mask, if_port, nh) hex values with no 0x
;nd_route_tbl = (fec0::6a05:caff:fe30:21b0,64,0,fec0::6a05:caff:fe30:21b0)
;nd_route_tbl = (2012::6a05:caff:fe30:2081,64,1,2012::6a05:caff:fe30:2081)
-
+
; egress (private interface) info
pktq_in_prv = RXQ0.0
-
+
;for pub port <-> prv port mapping (prv, pub)
prv_to_pub_map = (0,1)
prv_que_handler = (0)
-
+
[PIPELINE2]
type = TXRX
core = 1
pktq_in = RXQ0.0 RXQ1.0
pktq_out = SWQ0 SWQ1 SWQ2
pipeline_txrx_type = RXRX
-
+
[PIPELINE3]
type = LOADB
core = 2
@@ -79,13 +79,13 @@ of the VNFs.
prv_que_handler = (0)
n_lb_tuples = 5 ; tuple(src_ip,dst_ip, src_port, dst_port, protocol)
;loadb_debug = 0
-
+
[PIPELINE4]
type = VFW
core = 3
pktq_in = SWQ3 SWQ4
pktq_out = SWQ11 SWQ12;TXQ0.0 TXQ1.0
-
+
n_rules = 4096 ; Max number of ACL rules
;n_flows gets round up to power of 2
n_flows = 1048576 ; Max number of connections/flows per vFW WT
@@ -97,13 +97,13 @@ of the VNFs.
;udp_unreplied and udp_replied controls udp "connection" timeouts, normally 30/180
udp_unreplied = 180 ; UDP timeouts for unreplied traffic
udp_replied = 180 ; UDP timeout for replied traffic
-
+
[PIPELINE5]
type = VFW
core = 4
pktq_in = SWQ5 SWQ6
pktq_out = SWQ13 SWQ14;TXQ0.0 TXQ1.0
-
+
n_rules = 4096
;n_flows gets round up to power of 2
n_flows = 1048576
@@ -115,13 +115,13 @@ of the VNFs.
;udp_unreplied and udp_replied controls udp "connection" timeouts, normally 30/180
udp_unreplied = 180
udp_replied = 180
-
+
[PIPELINE6]
type = VFW
core = 5
pktq_in = SWQ7 SWQ8
pktq_out = SWQ15 SWQ16
-
+
n_rules = 4096
;n_flows gets round up to power of 2
n_flows = 1048576
@@ -133,24 +133,24 @@ of the VNFs.
;udp_unreplied and udp_replied controls udp "connection" timeouts, normally 30/180
udp_unreplied = 180
udp_replied = 180
-
+
[PIPELINE7]
type = VFW
core = 6
pktq_in = SWQ9 SWQ10
pktq_out = SWQ17 SWQ18
-
+
n_rules = 4096
;n_flows gets round up to power of 2
n_flows = 1048576
- traffic_type = 4 ; IPv4 Traffic
+ traffic_type = 4 ; IPv4 Traffic
;traffic_type = 6 ; IPv6 Traffic
; tcp_time_wait controls timeout for closed connection, normally 120
tcp_time_wait = 10
tcp_be_liberal = 0
udp_unreplied = 180
udp_replied = 180
-
+
[PIPELINE8]
type = TXRX
core = 1h
@@ -168,30 +168,30 @@ This configuration doesn't require LOADB and TXRX pipelines
[PIPELINE0]
type = MASTER
core = 0
-
+
[PIPELINE1]
type = ARPICMP
core = 0
pktq_in = SWQ0 SWQ1 SWQ2 SWQ3
pktq_out = TXQ0.0 TXQ1.0
-
+
; egress (private interface) info
pktq_in_prv = RXQ0.0
-
+
;for pub port <-> prv port mapping (prv, pub)
prv_to_pub_map = (0,1)
prv_que_handler = (0)
-
+
[PIPELINE2]
type = VFW
core = 1
pktq_in = RXQ0.0 RXQ1.0
pktq_out = TXQ0.1 TXQ1.1 SWQ0
-
+
n_rules = 4096
;n_flows gets round up to power of 2
n_flows = 1048576
-
+
traffic_type = 4 ; IPv4 Traffic
;traffic_type = 6 ; IPv6 Traffic
; tcp_time_wait controls timeout for closed connection, normally 120
@@ -200,17 +200,17 @@ This configuration doesn't require LOADB and TXRX pipelines
;udp_unreplied and udp_replied controls udp "connection" timeouts, normally 30/180
udp_unreplied = 180
udp_replied = 180
-
+
[PIPELINE3]
type = VFW
core = 2
pktq_in = RXQ0.1 RXQ1.1
pktq_out = TXQ0.2 TXQ1.2 SWQ1
-
+
n_rules = 4096
;n_flows gets round up to power of 2
n_flows = 1048576
-
+
traffic_type = 4 ; IPv4 Traffic
;traffic_type = 6 ; IPv6 Traffic
; tcp_time_wait controls timeout for closed connection, normally 120
@@ -219,17 +219,17 @@ This configuration doesn't require LOADB and TXRX pipelines
;udp_unreplied and udp_replied controls udp "connection" timeouts, normally 30/180
udp_unreplied = 180
udp_replied = 180
-
+
[PIPELINE4]
type = VFW
core = 3
pktq_in = RXQ0.2 RXQ1.2
pktq_out = TXQ0.3 TXQ1.3 SWQ2
-
+
n_rules = 4096
;n_flows gets round up to power of 2
n_flows = 1048576
-
+
traffic_type = 4 ; IPv4 Traffic
;traffic_type = 6 ; IPv6 Traffic
; tcp_time_wait controls timeout for closed connection, normally 120
@@ -238,17 +238,17 @@ This configuration doesn't require LOADB and TXRX pipelines
;udp_unreplied and udp_replied controls udp "connection" timeouts, normally 30/180
udp_unreplied = 180
udp_replied = 180
-
+
[PIPELINE5]
type = VFW
core = 4
pktq_in = RXQ0.3 RXQ1.3
pktq_out = TXQ0.4 TXQ1.4 SWQ3
-
+
n_rules = 4096
;n_flows gets round up to power of 2
n_flows = 1048576
-
+
traffic_type = 4 ; IPv4 Traffic
;traffic_type = 6 ; IPv6 Traffic
; tcp_time_wait controls timeout for closed connection, normally 120
@@ -266,7 +266,7 @@ The reference configuration files explained here are for Software and Hardware
loadbalancing with IPv4 traffic type and single port pair.
For other configurations liek IPv6 and Multi-port, refer to example config
files provided as part of the source code in config(VNFs/vACL/config) folder
-of the VNFs.
+of the VNFs.
1. SWLB, IPv4, Single Port Pair, 1 WT:
@@ -276,7 +276,7 @@ of the VNFs.
# add pci whitelist eg below
w = 05:00.0 ; Network Ports binded to dpdk
w = 05:00.1 ; Network Ports binded to dpdk
-
+
[PIPELINE0]
type = MASTER
core = 0
@@ -289,7 +289,7 @@ of the VNFs.
pktq_in_prv = RXQ0.0
prv_to_pub_map = (0,1)
prv_que_handler = (0)
-
+
[PIPELINE2]
type = TXRX
core = 1
@@ -327,13 +327,13 @@ of the VNFs.
2. SWLB, IPv4, Single Port Pair, 1 WT:
- ::
+ ::
[EAL]
# add pci whitelist eg below
w = 05:00.0
w = 05:00.1
-
+
[PIPELINE0]
type = MASTER
core = 0
diff --git a/docs/testing/user/userguide/08-CLI_Commands_Reference.rst b/docs/testing/user/userguide/08-CLI_Commands_Reference.rst
new file mode 100644
index 00000000..ece0986d
--- /dev/null
+++ b/docs/testing/user/userguide/08-CLI_Commands_Reference.rst
@@ -0,0 +1,531 @@
+.. This work is licensed under a creative commons attribution 4.0 international
+.. license.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) opnfv, national center of scientific research "demokritos" and others.
+
+=====================
+CLI Command Reference
+=====================
+
+Introduction
+============
+This chapter provides a commonly used sampleVNFs CLI commmands description.
+The more detailed information and details will be available from the CLI
+prompt of the VNF.
+
+Generic commands
+================
+
+routeadd
+--------
+The routeadd command provides a mechanism to add the routing entries for the
+VNF.
+
+The destination device me be directly(host) attached or attached to net. The
+parameter net or host should be used accordngly along with other information.
+
+IPv4 interaface:
+
+::
+
+ Syntax:
+
+ routeadd <net/host> <port #> <ipv4 nhip address in decimal> <Mask/NotApplicable>
+
+ Example:
+
+ routeadd net 0 202.16.100.20 0xffff0000
+ routeadd net 1 172.16.40.20 0xffff0000
+ routeadd host 0 202.16.100.20
+ routeadd host 1 172.16.40.20
+
+
+IPv6 interaface:
+
+::
+
+ Syntax:
+
+ routeadd <net/host> <port #> <ipv6 nhip address in hex> <Depth/NotApplicable>
+
+ Example:
+
+ routeadd net 0 fec0::6a05:caff:fe30:21b0 64
+ routeadd net 1 2012::6a05:caff:fe30:2081 64
+ routeadd host 0 fec0::6a05:caff:fe30:21b0
+ routeadd host 1 2012::6a05:caff:fe30:2081
+
+
+The route can also be added to the VNF as a config parameters. This method is
+deprecated and not recommended to use but is supported for backward
+compatiblity.
+
+IPv4 interaface:
+
+::
+
+ Syntax:
+
+ ARP route table entries (ip, mask, if_port, nh) hex values with no 0x
+
+ Example:
+
+ arp_route_tbl = (c0106414,FFFF0000,0,c0106414)
+ arp_route_tbl = (ac102814,FFFF0000,1,ac102814)
+
+
+IPv6 interaface:
+
+::
+
+ Syntax:
+
+ ARP route table entries (ip, mask, if_port, nh) hex values with no 0x
+
+ Example:
+
+ nd_route_tbl = (0064:ff9b:0:0:0:0:9810:6414,120,0,0064:ff9b:0:0:0:0:9810:6414)
+ nd_route_tbl = (0064:ff9b:0:0:0:0:9810:2814,120,1,0064:ff9b:0:0:0:0:9810:2814)
+
+
+arpadd
+------
+The arpadd command is provided to add the static arp entries to the VNF.
+
+IPv4 interface:
+
+::
+
+ Syntax:
+
+ p <arpicmp_pipe_id> arpadd <interface_id> <ip_address in deciaml> <mac addr in hex>
+
+ Example:
+
+ p 1 arpadd 0 202.16.100.20 00:ca:10:64:14:00
+ p 1 arpadd 1 172.16.40.20 00:ac:10:28:14:00
+
+
+IPv6 interface:
+
+::
+
+ Syntax:
+
+ p <arpicmp_pipe_id> arpadd <interface_id> <ip_address in deciaml> <mac addr in hex>
+
+ Example:
+
+ p 1 arpadd 0 0064:ff9b:0:0:0:0:9810:6414 00:00:00:00:00:01
+ p 1 arpadd 1 0064:ff9b:0:0:0:0:9810:2814 00:00:00:00:00:02
+
+
+lbentry
+-------
+Loadbalancer CLI commands for debug
+
+::
+
+ LB Commands
+ -------------------------------------------------------------
+ Commands Description
+ -------------------------------------------------------------
+ p <pipe_id> lbentry dbg 0 0 To show received packets count
+ p <pipe_id> lbentry dbg 1 0 To reset received packets count
+ p <pipe_id> lbentry dbg 2 0 To set debug level
+ p <pipe_id> lbentry dbg 3 0 To display debug level
+ p <pipe_id> lbentry dbg 4 0 To display port statistics
+
+
+arpls
+-----
+
+The arpls command is used to list the arp and route entries.
+
+::
+
+ Syntax:
+
+ P <pipe_id> arpls <0: IPv4, 1: IPv6>
+
+ Example:
+
+ p 1 arpls 0
+ p 1 arpls 1
+
+
+vFW Specific commands
+=====================
+The following list of commands are specific to VFW pipeline.
+
+action add
+----------
+Refer to "action add" CLI command line help to get more details.
+Many options are available for this command for accept, fwd, count, conntrack
+etc.
+
+applyruleset
+------------
+This command must be executed to apply the ACL rules configured.
+
+::
+
+ Syntax/Example:
+
+ p vfw applyruleset
+
+
+add
+---
+This command is used to add teh ACL rules to vFW
+
+Adding ACL rules for IPv4:
+
+::
+
+ Syntax:
+
+ p vfw add <priority> <src_ip> <mask> <dst_ip> <mask> <src_port_start> <src_port_end> <dst_port_start> <dst_port_end> <protocol_mask> <action_id>
+ ;Log info: Prio = 1 (SA = 202.0.0.0/8, DA = 192.0.0.0/8, SP = 0-65535, DP = 0-65535, Proto = 0 / 0x0) => Action ID = 1
+
+ Example:
+
+ p vfw add 2 202.16.100.20 8 172.16.40.20 8 0 65535 0 65535 0 0 1
+ p vfw add 2 172.16.40.20 8 202.16.100.20 8 0 65535 0 65535 0 0 0
+
+
+Adding ACL rules for IPv6:
+
+::
+
+ Syntax:
+
+ p vfw add <priority> <src_ip> <mask> <dst_ip> <mask> <src_port_start> <src_port_end> <dst_port_start> <dst_port_end> <protocol_mask> <action_id>
+
+ Example:
+
+ p vfw add 2 fec0::6a05:caff:fe30:21b0 64 2012::6a05:caff:fe30:2081 64 0 65535 0 65535 0 0 1
+ p vfw add 2 2012::6a05:caff:fe30:2081 64 fec0::6a05:caff:fe30:21b0 64 0 65535 0 65535 0 0 0
+
+
+stats
+-----
+Display vFW stats.
+
+::
+
+ Syntax/Example:
+
+ p vfw stats
+
+clearstats
+-----------
+Clear vFW stats
+
+::
+
+ Syntax/Example:
+
+ p vfw clearstats
+
+counterdump
+-----------
+Enable or disable the counterdump using the following commands
+
+::
+
+ Syntax/Example:
+
+ p vfw counterdump start
+ p vfw counterdump stop
+
+debug
+-----
+Enable or Disable the dynamic debug logs
+
+::
+
+ Syntax/Example:
+
+ Disable dbg logs
+ p vfw dbg 0
+
+ Enable dbg logs
+ p vfw dbg 1
+
+firewall
+--------
+Enable or disable the firewall basic filtering using following commands.
+
+::
+
+ Syntax/Example:
+
+ To disable
+ p <pipe_id> vfw firewall 0
+
+ To enable
+ p <pipe_id> vfw firewall 1
+
+synproxy
+--------
+Enable or disable the synproxy using following commands.
+
+::
+
+ Syntax/Example:
+
+ To disable
+ p <pipe_id> vfw synproxy 0
+
+ To enable
+ p <pipe_id> vfw synproxy 1
+
+conntrack
+---------
+Enable or disable the connection tracking per VFW pipeline
+
+::
+
+ Syntax/Example:
+
+ To enable connection tracking
+ p action add <pipe_id> conntrack
+
+ To disable connection tracking
+ p action del <pipe_id> conntrack
+
+
+loadrules
+---------
+
+A new file containing ACL rules and actions. The existing ACL rules and actions are
+cleared.
+
+::
+
+ Syntax:
+ p vfw loadrules <rule file>
+
+ Example:
+ p vfw loadrules ./config/acl_script_rules.tc
+
+list
+----
+List the ACL rules in vFW
+
+::
+
+ Syntax/Example:
+
+ List Active ACL rules
+ p vfw ls 0
+
+ List Standby ACL rules
+ p vfw ls 1
+
+
+vACL Specific commands
+======================
+Following are the typical commands used in vACL. Refer to CLI command line
+prompt for more details.
+
+
+action add
+----------
+Using pipeline CLI, an action can be added using the following command:
+
+::
+
+ Syntax:
+ p action add <action-id> <action> <optional option>
+
+ Example:
+
+ Accept:
+ p action add 1 accept
+
+ Drop:
+ p action add 2 drop
+
+ Count:
+ p action add 1 count
+
+ fwd:
+ p action add 1 fwd 1
+ Where a port # must be specified
+
+ NAT:
+ p action add 3 nat 2
+ Where a port # must be specified
+
+ List Action:
+ p action ls <pipleine-id>
+ e.g. p action ls 2
+
+add rules
+---------
+Using pipeline CLI, an ACL rule can be added using the following command:
+
+::
+
+ Syntax:
+ p acl add <priority> <src-ip> <mask> <dst-ip> <mask> <src-port-from> <src-port-to> <dst-port-from> <dst-port-to> <protocol> <protocol-mask> <action-id>
+
+ Example:
+ p acl add 1 0.0.0.0 0 0.0.0.0 0 0 65535 0 65535 0 0 1
+
+ UDP only with source and destination IP addresses:
+ p acl add 1 172.16.100.00 24 172.16.40.00 24 0 65535 0 65535 17 255 1
+ p acl add 1 172.16.40.00 24 172.16.100.00 24 0 65535 0 65535 17 255 1
+
+ UDP Only:
+ p acl add 1 0.0.0.0 0 0.0.0.0 0 0 65535 0 65535 17 255 1
+
+ Allow all packets:
+ -----------------
+ p acl add 1 0.0.0.0 0 0.0.0.0 0 0 65535 0 65535 0 0 1
+
+
+list ACL rules
+--------------
+Using pipeline CLI, the list of current ACL rules can be viewed using:
+
+::
+
+ Syntax:
+ p acl ls <pipe_id>
+
+ Example:
+ p acl ls 2
+
+
+del an ACL rule
+---------------
+Using pipeline CLI, an ACL rule can be deleted using the following command:
+
+::
+
+ Syntax:
+ p acl del <src-ip> <mask> <dst-ip> <mask> <src-port-from> <src-port-to> <dst-port-from> <dst-port-to> <protocol> <protocol-mask>
+
+ Example:
+ p acl del 0.0.0.0 0 0.0.0.0 0 0 65535 0 65535 0 0
+
+
+stats
+-----
+Display ACL stats.
+
+::
+
+ Syntax/Example:
+
+ p acl stats
+
+clearstats
+-----------
+Clear ACL stats
+
+::
+
+ Syntax/Example:
+
+ p acl clearstats
+
+
+loadrules
+---------
+
+A new file containing ACL rules and actions. The existing ACL rules and actions are
+cleared.
+
+::
+
+ Syntax:
+ p acl loadrules <rule file>
+
+ Example:
+ p acl loadrules ./config/acl_script_rules.tc
+
+
+debug
+-----
+Debug logs can be turn on or turn off using the following commands
+
+::
+
+ Syntax/Example:
+
+ Turn on Debug:
+ p 2 acl dbg 1
+
+ Turn off Debug:
+ p 2 acl dbg 0
+
+
+vCGNAT Specific commands
+========================
+
+The following are the details of the CLI commands supported by vCGNAT.
+Refer to vCGNAPT application CLI command prompt help more details.
+
+::
+
+ To add bulk vCGNAPT entries
+ p <pipe_id> entry addm <prv_ip/prv_ipv6> <prv_port> <pub_ip> <pub_port> <phy_port> <ttl> <no_of_entries> <end_prv_port> <end_pub_port>
+
+ To add single vCGNAPT entry
+ p <pipe_id> entry add <prv_ip/prv_ipv6> <prv_port> <pub_ip> <pub_port> <phy_port> <ttl>
+
+ To delete single vCGNAPT entry
+ p <pipe_id> entry del <prv_ip/prv_ipv6> <prv_port> <phy_port>
+
+ Displays all vCGNAPT static entries
+ p <pipe_id> entry ls
+
+ To display debug level , bulk entries added count
+ p <pipe_id> entry dbg 3 0 0
+
+ To show counters info
+ p <pipe_id> entry dbg 3 3 0
+
+ To show physical port statistics
+ p <pipe_id> entry dbg 6 0 0
+
+ To show SWQ number stats
+ p <pipe_id> entry dbg 6 1 <SWQ number>
+
+ For code instrumentation
+ p <pipe_id> entry dbg 7 0 0
+
+ Displays CGNAPT version
+ p <pipe_id> entry ver 1 0
+
+ To enable ipv6 traffic.
+ p <pipe_id> entry dbg 11 1 0
+
+ To disable ipv6 traffic.
+ p <pipe_id> entry dbg 11 0 0
+
+ To add Network Specific Preifx and depth in prefix table
+ p <pipe_id> nsp add <nsp_prefix/depth>
+
+ To delete Network Specific Preifx and depth in prefix table
+ p <pipe_id> nsp del <nsp_prefix/depth>
+
+ To show nsp prefix/depth configured/added in prefix table.
+ p <pipe_id> entry dbg 13 0 0
+
+ To show number of clients per public IP address
+ p <pipe_id> entry dbg 14 0 0
+
+ To show list of public IP addresses
+ p <pipe_id> entry dbg 15 0 0
+
+ To show number of clients per public IP address
+ p <pipe_id> numipcli
+
+ Enable dual stack.
+ p <pipe_id> entry dbg 11 1 0
+
diff --git a/docs/testing/user/userguide/index.rst b/docs/testing/user/userguide/index.rst
index 71f3a0e7..8d797627 100644
--- a/docs/testing/user/userguide/index.rst
+++ b/docs/testing/user/userguide/index.rst
@@ -19,5 +19,6 @@ SampleVNF User Guide
05-How_to_run_SampleVNFs
06-How_to_use_REST_api
07-Config_files
+ 08-CLI_Commands_Reference
glossary
references