Difference between revisions of "CSIT/FuncTestPlan"

From fd.io
Jump to: navigation, search
 
(88 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
'''WORK IN PROGRESS'''
 +
 
__TOC__
 
__TOC__
==CSIT Jenkins Jobs for Functional Tests==
 
  
Three Jenkins jobs involving CSIT functional test cases:
+
=CSIT development plan - background=
 +
 
 +
CSIT test development priorities are aligned with VPP releases timeline, with relative dev work prioritization for each VPP release driven by perceived importance of test verification for VPP functionality and performance. Specific CSIT dev work priorities are driven by rough consensus within the project and contributors and committers availability and willingness to do work.
 +
 
 +
Following priority tagging scheme is used in this CSIT wiki and FD.io jira for CSIT:
 +
 
 +
* [$VppRlsNo-$RelPrio]
 +
** VppRlsNo - aligned VPP release number - 16.09, 16.12, 17.03.
 +
** RelPrio - CSIT release priority - P0 for Must Have, P1 for Should Have, P2 for Could Have
 +
* CSIT dev work tagging examples:
 +
** [1609-P0] - CSIT Must Have for vpp-v1609
 +
** [1609-P1] - CSIT Should Have for vpp-v1609
 +
** [1609-P2] - CSIT Could Have for vpp-v1609
 +
 
 +
CSIT dev work plan execution tracked on [https://jira.fd.io/secure/RapidBoard.jspa?rapidView=1&projectKey=CSIT CSIT jira], with priority tags encoded as Jira labels for easy of tracking and reporting.
 +
 
 +
=CSIT functional tests - dev plan=
 +
 
 +
For the purpose of tracking CSIT dev work, CSIT functional test cases are grouped into the following VPP functional areas:
 +
 
 +
# IPv4 data plane
 +
# IPv4 control plane
 +
# IPv4 encapsulations
 +
# IPv4 telemetry
 +
# IPv6 data plane
 +
# IPv6 control plane
 +
# IPv6 encapsulations
 +
# IPv6 telemetry
 +
# Ethernet L2 data plane
 +
# Ethernet L2 control plane
 +
# Ethernet L2 encapsulations
 +
# Ethernet L2 management plane
 +
# Ethernet L2 telemetry
 +
# MPLS data plane
 +
# NSH data plane
 +
# OPNFV-FDS integration
 +
 
 +
Following sections provide a top-level breakdown of CSIT dev work items covering functional test cases per area, and their proposed priorities. Items completed to date are prefixed with [DONE]; remaining items are prefixed with their respective priority per target release as described earlier. Indicative VPP functionality coverage is listed at the beginning of each section.
 +
 
 +
Identified VPP working code availability dependencies are marked by VPP Jira ticket [TODO VPP-xxx].
 +
 
 +
==IPv4 data plane - ip4dp==
 +
 
 +
JIRA status for '''ip4dp''' tasks:
 +
 
 +
* '''1609-p0'''
 +
** <jira jql='project = CSIT AND labels = ip4dp AND labels = func AND labels = 1609-p0 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p1'''
 +
** <jira jql='project = CSIT AND labels = ip4dp AND labels = func AND labels = 1609-p1 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p2'''
 +
** <jira jql='project = CSIT AND labels = ip4dp AND labels = func AND labels = 1609-p2 ORDER BY status DESC, priority DESC'></jira>
 +
* '''JIRA views''': [https://jira.fd.io/secure/RapidBoard.jspa?rapidView=8&quickFilter=39&quickFilter=37&quickFilter=64 board], [https://jira.fd.io/issues/?filter=10631 list]
 +
 
 +
Original CSIT plan:
 +
 
 +
# [1609-P1] qos - ingress policing - 1r2c-(cb,ca), 2r3c-(cb,ca) policers, RFC2475, RFC2697, RFC2698. [https://jira.fd.io/browse/CSIT-21 CSIT-21]
 +
# [1609-P1] routing multipath (ECMP, UECMP) - baseline. [https://jira.fd.io/browse/CSIT-227 CSIT-227]
 +
# [1609-P1] [TODO VPP-xxx] carrier grade nat 44, CGN44, RFC6598, RFC6888. [https://jira.fd.io/browse/CSIT-22 CSIT-22] - The feature is blocked at the moment (for more info please see Jira ticket).
 +
# [1609-P2] extranet VPN routed forwarding (VRF) - baseline. [https://jira.fd.io/browse/CSIT-214 CSIT-214]
 +
# [1609-P2] [TODO VPP-xxx] security - stateful firewall. [https://jira.fd.io/browse/CSIT-228 CSIT-228]
 +
# [1606-DONE] IPv4 routing RFC791 - baseline.
 +
# [1606-DONE] security - iacl with n-tuple classification, ip4, ip6, mac.
 +
# [1606-DONE] security - cop white-/black-list ip4 src addr filtering.
 +
# [1609-DONE] VPN routed forwarding (VRF) - baseline. [https://jira.fd.io/browse/CSIT-183 CSIT-183]
 +
# [1609-DONE] security - source IPv4 Reverse Path Forwarding (RPF). [https://jira.fd.io/browse/CSIT-188 CSIT-188]
 +
 
 +
==IPv4 control plane - ip4cp==
 +
 
 +
JIRA status for '''ip4cp''' tasks:
 +
 
 +
* '''1609-p0'''
 +
** <jira jql='project = CSIT AND labels = ip4cp AND labels = func AND labels = 1609-p0 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p1'''
 +
** <jira jql='project = CSIT AND labels = ip4cp AND labels = func AND labels = 1609-p1 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p2'''
 +
** <jira jql='project = CSIT AND labels = ip4cp AND labels = func AND labels = 1609-p2 ORDER BY status DESC, priority DESC'></jira>
 +
* '''JIRA views''': [https://jira.fd.io/secure/RapidBoard.jspa?rapidView=8&quickFilter=39&quickFilter=64&quickFilter=35 board], [https://jira.fd.io/issues/?filter=10632 list]
 +
 
 +
Original CSIT plan:
 +
 
 +
# [1609-P0] IKEv2. [https://jira.fd.io/browse/CSIT-27 CSIT-27]
 +
# [1606-DONE] ARP.
 +
# [1606-DONE] ICMPv4.
 +
# [1606-DONE] DHCPv4 client.
 +
# [1609-DONE] Proxy ARP. [https://jira.fd.io/browse/CSIT-24 CSIT-24]
 +
# [1609-DONE] DHCPv4 proxy. [https://jira.fd.io/browse/CSIT-25 CSIT-25]
 +
 
 +
==IPv4 encapsulations - ip4enc==
 +
 
 +
JIRA status for '''ip4enc''' tasks:
 +
 
 +
* '''1609-p0'''
 +
** <jira jql='project = CSIT AND labels = ip4enc AND labels = func AND labels = 1609-p0 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p1'''
 +
** <jira jql='project = CSIT AND labels = ip4enc AND labels = func AND labels = 1609-p1 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p2'''
 +
** <jira jql='project = CSIT AND labels = ip4enc AND labels = func AND labels = 1609-p2 ORDER BY status DESC, priority DESC'></jira>
 +
* '''JIRA views''': [https://jira.fd.io/secure/RapidBoard.jspa?rapidView=8&quickFilter=39&quickFilter=64&quickFilter=38 board], [https://jira.fd.io/issues/?filter=10633 list]
 +
 
 +
Original CSIT plan:
 +
 
 +
# [1609-P0] ip4-ipsec-lispgpe-ip4 - main fib, vrf (gpe_vni-to-vrf), phy2lisp, virt2lisp. [https://jira.fd.io/browse/CSIT-231 CSIT-231]
 +
# [1609-P1] ip4-lispgpe-ip4 - main fib, vrf (gpe_vni-to-vrf), lisp2lisp. [https://jira.fd.io/browse/CSIT-230 CSIT-230]
 +
# [1609-P1] ip4-ipsec-lispgpe-ip4 - main fib, vrf (gpe_vni-to-vrf), lisp2lisp. [https://jira.fd.io/browse/CSIT-232 CSIT-232]
 +
# [1606-DONE] ip4-gre-ip4 - baseline main fib.
 +
# [1609-DONE] ip4-ipsec-ip4 - baseline main fib. [https://jira.fd.io/browse/CSIT-28 CSIT-28]
 +
# [1609-DONE] ip4-lispgpe-ip4 - main fib, vrf (gpe_vni-to-vrf), phy2lisp, virt2lisp. [https://jira.fd.io/browse/CSIT-229 CSIT-229]
 +
 
 +
==IPv4 telemetry - ip4tel==
 +
 
 +
JIRA status for '''ip4tel''' tasks:
 +
 
 +
* '''1609-p0'''
 +
** <jira jql='project = CSIT AND labels = ip4tel AND labels = func AND labels = 1609-p0 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p1'''
 +
** <jira jql='project = CSIT AND labels = ip4tel AND labels = func AND labels = 1609-p1 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p2'''
 +
** <jira jql='project = CSIT AND labels = ip4tel AND labels = func AND labels = 1609-p2 ORDER BY status DESC, priority DESC'></jira>
 +
* '''JIRA views''': [https://jira.fd.io/secure/RapidBoard.jspa?rapidView=8&quickFilter=39&quickFilter=64&quickFilter=42 board], [https://jira.fd.io/issues/?filter=10634 list]
 +
 
 +
Original CSIT plan:
 +
 
 +
# [1609-P1] [Blocked-by VPP-185] Switched port analyzer mirroring SPAN - (flow,port) mirroring to local port - baseline. [https://jira.fd.io/browse/CSIT-235 CSIT-235]
 +
# [1609-P1] [Blocked-by VPP-186] Lawful intercept  - (flow,port) mirroring to remote locatio via LI UDP tunnel - baseline. [https://jira.fd.io/browse/CSIT-236 CSIT-236]
 +
# [1609-DONE] IPv4 IPFIX - stats collection and export - baseline. [https://jira.fd.io/browse/CSIT-233 CSIT-233]
 +
# [1609-DONE] IPv4 IPFIX - stats collection and export - functional scale. [https://jira.fd.io/browse/CSIT-234 CSIT-234]
 +
 
 +
==IPv6 data plane - ip6dp==
 +
 
 +
JIRA status for '''ip6dp''' tasks:
 +
 
 +
* '''1609-p0'''
 +
** <jira jql='project = CSIT AND labels = ip6dp AND labels = func AND labels = 1609-p0 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p1'''
 +
** <jira jql='project = CSIT AND labels = ip6dp AND labels = func AND labels = 1609-p1 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p2'''
 +
** <jira jql='project = CSIT AND labels = ip6dp AND labels = func AND labels = 1609-p2 ORDER BY status DESC, priority DESC'></jira>
 +
* '''JIRA views''': [https://jira.fd.io/secure/RapidBoard.jspa?rapidView=8&quickFilter=64&quickFilter=40&quickFilter=37 board], [https://jira.fd.io/issues/?filter=10635 list]
 +
 
 +
Original CSIT plan:
 +
 
 +
# [1609-P1] routing multipath (ECMP, UECMP) - baseline. [https://jira.fd.io/browse/CSIT-240 CSIT-240]
 +
# [1609-P2] [TODO VPP-194] security - source IPv6 Reverse Path Forwarding (RPF). [https://jira.fd.io/browse/CSIT-208 CSIT-208]
 +
# [1609-P2] [Blocked-by VPP-224] extranet VPN routed forwarding (VRF) - baseline. [https://jira.fd.io/browse/CSIT-238 CSIT-238]
 +
# [1609-P2] [TODO VPP-xxx] security - stateful firewall.
 +
# [1609-P2] qos - ingress policing - 1r2c-(cb,ca), 2r3c-(cb,ca) policers, RFC2475, RFC2697, RFC2698. [https://jira.fd.io/browse/CSIT-239 CSIT-239]
 +
# [1606-DONE] routing [rfc2460] - baseline.
 +
# [1606-DONE] security - iacl with n-tuple classification.
 +
# [1606-DONE] security - cop white-/black-list ip4 src addr filtering.
 +
# [1609-DONE] VPN routed forwarding (VRF) - baseline. [https://jira.fd.io/browse/CSIT-237 CSIT-237]
 +
 
 +
==IPv6 control plane - ip6cp==
 +
 
 +
JIRA status for '''ip6cp''' tasks:
 +
 
 +
* '''1609-p0'''
 +
** <jira jql='project = CSIT AND labels = ip6cp AND labels = func AND labels = 1609-p0 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p1'''
 +
** <jira jql='project = CSIT AND labels = ip6cp AND labels = func AND labels = 1609-p1 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p2'''
 +
** <jira jql='project = CSIT AND labels = ip6cp AND labels = func AND labels = 1609-p2 ORDER BY status DESC, priority DESC'></jira>
 +
* '''JIRA views''': [https://jira.fd.io/secure/RapidBoard.jspa?rapidView=8&quickFilter=64&quickFilter=40&quickFilter=35 board], [https://jira.fd.io/issues/?filter=10636 list]
 +
 
 +
Original CSIT plan:
 +
 
 +
# [1609-P1] DHCPv6 proxy. [https://jira.fd.io/browse/CSIT-31 CSIT-31]
 +
# [1609-P2] [TODO VPP-xxx] ip6-ioam, in-band OAM.
 +
# [1609-P2] DHCPv6 client. [https://jira.fd.io/browse/CSIT-242 CSIT-242]
 +
# [1606-DONE] neighbor discovery, RFC4861.
 +
# [1606-DONE] ICMPv6.
 +
# [1609-DONE] router advertisement - baseline tests. [https://jira.fd.io/browse/CSIT-241 CSIT-241]
 +
 
 +
==IPv6 encapsulations - ip6enc==
 +
 
 +
JIRA status for '''ip6enc''' tasks:
 +
 
 +
* '''1609-p0'''
 +
** <jira jql='project = CSIT AND labels = ip6enc AND labels = func AND labels = 1609-p0 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p1'''
 +
** <jira jql='project = CSIT AND labels = ip6enc AND labels = func AND labels = 1609-p1 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p2'''
 +
** <jira jql='project = CSIT AND labels = ip6enc AND labels = func AND labels = 1609-p2 ORDER BY status DESC, priority DESC'></jira>
 +
* '''JIRA views''': [https://jira.fd.io/secure/RapidBoard.jspa?rapidView=8&quickFilter=64&quickFilter=40&quickFilter=38 board], [https://jira.fd.io/issues/?filter=10637 list]
 +
 
 +
Original CSIT plan:
 +
 
 +
# [1609-P1] ip6-lispgpe-ip6 - main fib, vrf (gpe_vni-to-vrf), phy2lisp, virt2lisp. [https://jira.fd.io/browse/CSIT-243 CSIT-243]
 +
# [1609-P1] ip6-lispgpe-ip6 - main fib, vrf (gpe_vni-to-vrf), lisp2lisp. [https://jira.fd.io/browse/CSIT-244 CSIT-244]
 +
# [1609-P1] ip4-lispgpe-ip6 - main fib, vrf (gpe_vni-to-vrf), phy2lisp, virt2lisp. [https://jira.fd.io/browse/CSIT-245 CSIT-245]
 +
# [1609-P1] ip4-lispgpe-ip6 - main fib, vrf (gpe_vni-to-vrf), lisp2lisp. [https://jira.fd.io/browse/CSIT-246 CSIT-246]
 +
# [1609-P1] ip6-ipsec-lispgpe-ip6 - main fib, vrf (gpe_vni-to-vrf), phy2lisp, virt2lisp. [https://jira.fd.io/browse/CSIT-247 CSIT-247]
 +
# [1609-P1] ip6-ipsec-lispgpe-ip6 - main fib, vrf (gpe_vni-to-vrf), lisp2lisp. [https://jira.fd.io/browse/CSIT-248 CSIT-248]
 +
# [1609-P1] ip4-ipsec-lispgpe-ip6 - main fib, vrf (gpe_vni-to-vrf), phy2lisp, virt2lisp. [https://jira.fd.io/browse/CSIT-249 CSIT-249]
 +
# [1609-P1] ip4-ipsec-lispgpe-ip6 - main fib, vrf (gpe_vni-to-vrf), lisp2lisp. [https://jira.fd.io/browse/CSIT-250 CSIT-250]
 +
# [1609-P1] [TODO VPP-xxx] ip6-segment-routing.
 +
# [1609-DONE] ip4-o-ip6 softwire - lightweight46. [https://jira.fd.io/browse/CSIT-32 CSIT-32]
 +
# [1609-DONE] ip4-o-ip6 softwire - map-e. [https://jira.fd.io/browse/CSIT-197 CSIT-197]
 +
# [1609-DONE] ip4-o-ip6 softwire - map-t. [https://jira.fd.io/browse/CSIT-353 CSIT-353]
 +
# [1609-DONE] ip6-ipsec-ip6. [https://jira.fd.io/browse/CSIT-33 CSIT-33]
 +
 
 +
==IPv6 telemetry - ip6tel==
 +
 
 +
JIRA status for '''ip6tel''' tasks:
 +
 
 +
* '''1609-p0'''
 +
** <jira jql='project = CSIT AND labels = ip6tel AND labels = func AND labels = 1609-p0 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p1'''
 +
** <jira jql='project = CSIT AND labels = ip6tel AND labels = func AND labels = 1609-p1 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p2'''
 +
** <jira jql='project = CSIT AND labels = ip6tel AND labels = func AND labels = 1609-p2 ORDER BY status DESC, priority DESC'></jira>
 +
* '''JIRA views''': [https://jira.fd.io/secure/RapidBoard.jspa?rapidView=8&quickFilter=64&quickFilter=40&quickFilter=42 board view], [https://jira.fd.io/issues/?filter=10638 list view].
 +
 
 +
Original CSIT plan:
 +
 
 +
# [1609-P1] [Blocked-by VPP-185] Switched port analyzer mirroring SPAN - (flow,port) mirroring to local port - baseline. [https://jira.fd.io/browse/CSIT-253 CSIT-253]
 +
# [1609-P1] [Blocked-by VPP-186] Lawful intercept  - (flow,port) mirroring to remote locatio via LI UDP tunnel - baseline. [https://jira.fd.io/browse/CSIT-254 CSIT-254]
 +
# [1609-DONE] [Blocked-by VPP-204] IPv6 IPFIX - stats collection and export - baseline. [https://jira.fd.io/browse/CSIT-251 CSIT-251]
 +
# [1609-DONE] [Blocked-by VPP-204] IPv6 IPFIX - stats collection and export - functional scale. [https://jira.fd.io/browse/CSIT-252 CSIT-252]
 +
 
 +
==Ethernet L2 data plane - l2dp==
 +
 
 +
JIRA status for '''l2dp''' tasks:
 +
 
 +
* '''1609-p0'''
 +
** <jira jql='project = CSIT AND labels = l2dp AND labels = func AND labels = 1609-p0 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p1'''
 +
** <jira jql='project = CSIT AND labels = l2dp AND labels = func AND labels = 1609-p1 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p2'''
 +
** <jira jql='project = CSIT AND labels = l2dp AND labels = func AND labels = 1609-p2 ORDER BY status DESC, priority DESC'></jira>
 +
* '''JIRA views''': [https://jira.fd.io/secure/RapidBoard.jspa?rapidView=8&quickFilter=64&quickFilter=41&quickFilter=37 board], [https://jira.fd.io/issues/?filter=10639 list].
 +
 
 +
Original CSIT plan:
 +
 
 +
# [1609-P1] Integrated Routing-Bridging (IRB) - baseline. [https://jira.fd.io/browse/CSIT-255 CSIT-255]
 +
# [1606-DONE] L2 Cross-connec - baseline.
 +
# [1606-DONE] L2 Cross-connect - with VLAN tag acrobatics 1-to-1, 1-to-2, 2-to-1, 2-to-2.
 +
# [1606-DONE] Bridge domain - baseline.
 +
# [1609-DONE] Bridge domain - with VLAN tag acrobatics 1-to-1, 1-to-2, 2-to-1, 2-to-2. [https://jira.fd.io/browse/CSIT-35 CSIT-35]
 +
 
 +
==Ethernet L2 control plane - l2cp==
 +
 
 +
JIRA status for '''l2cp''' tasks:
  
# task: verify vpp code changes as they come - functional tests
+
* '''1609-p0'''
#* job: [https://jenkins.fd.io/view/vpp/job/vpp-csit-verify-virl/ vpp-csit-verify-virl]
+
** <jira jql='project = CSIT AND labels = l2cp AND labels = func AND labels = 1609-p0 ORDER BY status DESC, priority DESC'></jira>
#* triggers: gerrit change commit, "recheck" patch comment
+
* '''1609-p1'''
#* vpp code: vpp master branch PLUS gerrit change under test
+
** <jira jql='project = CSIT AND labels = l2cp AND labels = func AND labels = 1609-p1 ORDER BY status DESC, priority DESC'></jira>
#* csit code: csit-verified-tag
+
* '''1609-p2'''
#* testbed: LF VIRL compute nodes
+
** <jira jql='project = CSIT AND labels = l2cp AND labels = func AND labels = 1609-p2 ORDER BY status DESC, priority DESC'></jira>
#* status: WORKING
+
* '''JIRA views''': [https://jira.fd.io/secure/RapidBoard.jspa?rapidView=8&quickFilter=64&quickFilter=41&quickFilter=35 board], [https://jira.fd.io/issues/?filter=10640 list].
# task: identify vpp-master-verified vpp build for csit-* jobs and provide trending reports – semiweekly
+
#* job: csit-vpp-master-verify-semiweekly
+
#* triggers: periodic semiweekly
+
#* vpp code: latest build from nexus repository (deposited by vpp-merge-master job)
+
#** https://nexus.fd.io/content/repositories/fd.io.dev/io/fd/vpp/vpp/*
+
#** on success: update vpp-master-verified vpp build reference in csit bootstrap scripts
+
#* csit code: csit-verified-tag
+
#* testbed: LF VIRL for functional and HW compute nodes for performance
+
#* status: OPEN / PARTIAL
+
#** [https://jenkins.fd.io/view/csit/job/csit-vpp-master-verify-weekly/ csit-vpp-master-verify-weekly]
+
# task: verify csit code changes as they come - functional tests
+
#* job: [https://jenkins.fd.io/view/csit/job/csit-vpp-functional-virl/ csit-vpp-functional-virl]
+
#* triggers: gerrit change commit, "recheck" patch comment
+
#* vpp code: vpp-master-verified vpp build
+
#* csit code: csit master branch PLUS gerrit change
+
#* testbed: LF VIRL compute nodes
+
#* status: WORKING
+
# task: verify csit code against vpp-master-verified vpp build – weekly
+
#* job: csit-vpp-verify-weekly
+
#* triggers: periodic weekly
+
#* vpp code: vpp-master-verified vpp build
+
#* csit code: csit master branch
+
#** on success: update csit-verified-tag
+
#* testbed: LF HW compute nodes
+
#* status: OPEN
+
  
==Functional Test Cases - Working==
+
Original CSIT plan:
  
# Working functional test cases - 28 working in FD.io today.
+
# [1609-P2] [TODO VPP-xxx] CDP/LLDP.
# List of working functional test cases:
+
# [1606-DONE] MAC learning.
## ~/csit$ grep "^| [a-zA-Z]" -nr tests | grep -v Documentation | grep -vi " | "  | grep -v performance
+
# [1606-DONE] MAC split-horizon.
## tests/suites/bridge_domain/bridge_domain_untagged.robot:38:| VPP reports interfaces
+
## tests/suites/bridge_domain/bridge_domain_untagged.robot:43:| Vpp forwards packets via L2 bridge domain 2 ports
+
## tests/suites/bridge_domain/bridge_domain_untagged.robot:58:| Vpp forwards packets via L2 bridge domain in circular topology
+
## tests/suites/bridge_domain/bridge_domain_untagged.robot:80:| Vpp forwards packets via L2 bridge domain in circular topology with static L2FIB entries
+
## tests/suites/bridge_domain/bridge_domain_untagged.robot:125:| VPP forwards packets through VM via two L2 bridge domains
+
## tests/suites/bridge_domain/bridge_domain_untagged.robot:152:| VPP forwards packets through VM via two L2 bridge domains with static L2FIB entries
+
## tests/suites/honeycomb/interface_management.robot:30:| Honeycomb modifies interface state
+
## tests/suites/ipv4/ipv4_untagged.robot:30:| VPP replies to ICMPv4 echo request
+
## tests/suites/ipv4/ipv4_untagged.robot:39:| TG can route to DUT egress interface
+
## tests/suites/ipv4/ipv4_untagged.robot:48:| TG can route to DUT2 through DUT1
+
## tests/suites/ipv4/ipv4_untagged.robot:57:| TG can route to DUT2 egress interface through DUT1
+
## tests/suites/ipv4/ipv4_untagged.robot:66:| TG can route to TG through DUT1 and DUT2
+
## tests/suites/ipv4/ipv4_untagged.robot:87:| VPP can process ICMP echo request from min to 1500B packet size with 1B increment
+
## tests/suites/ipv4/ipv4_untagged.robot:91:| VPP can process ICMP echo request from 1500B to max packet size with 10B increment
+
## tests/suites/ipv4/ipv4_untagged.robot:109:| VPP responds to ARP request
+
## tests/suites/ipv6/ipv6_untagged.robot:33:| VPP replies to ICMPv6 echo request
+
## tests/suites/ipv6/ipv6_untagged.robot:37:| VPP can process ICMPv6 echo request from min to 1500B packet size with 1B increment
+
## tests/suites/ipv6/ipv6_untagged.robot:41:| VPP can process ICMPv6 echo request from 1500B to max packet size with 10B increment
+
## tests/suites/ipv6/ipv6_untagged.robot:59:| TG can route to first DUT egress interface
+
## tests/suites/ipv6/ipv6_untagged.robot:64:| TG can route to second DUT through first DUT
+
## tests/suites/ipv6/ipv6_untagged.robot:69:| TG can route to second DUT egress interface through first DUT
+
## tests/suites/ipv6/ipv6_untagged.robot:74:| TG can route to TG through first and second DUT
+
## tests/suites/ipv6/ipv6_untagged.robot:79:| VPP replies to IPv6 Neighbor Solicitation
+
## tests/suites/l2_xconnect/l2_xconnect_untagged.robot:26:| Vpp forwards packets via L2 xconnect in circular topology
+
## tests/suites/tagging/qinq_l2_xconnect.robot:32:| VPP can push and pop two VLAN tags to traffic transfering through xconnect
+
## tests/suites/vxlan/vxlan_bd_dot1q.robot:31:| VPP can encapsulate L2 in VXLAN over IPv4 over Dot1Q
+
## tests/suites/vxlan/vxlan_bd_untagged.robot:30:| VPP can pass IPv4 bidirectionally through VXLAN
+
## tests/suites/vxlan/vxlan_xconnect_untagged.robot:29:| VPP can pass IPv4 bidirectionally through VXLAN
+
  
==Functional Test Cases - Plan and ?Status==
+
==Ethernet L2 encapsulations - l2enc==
  
Below laundry list of functions that could/should be tested - need to prioritize based on FD.io community needs and feedback, and scheduled for CSIT development. To work and be useful, CSIT development should be done in coordination with VPP Release Candidate content and release schedule.
+
JIRA status for '''l2enc''' tasks:
  
Each test case and CSIT development work items prefixed with status and/or proposed priority relative to FD.io VPP release:
+
* '''1609-p0'''
* [Pn-Rm] – Proposed coverage of VPP functionality by FD.io CSIT functional and performance test cases.
+
** <jira jql='project = CSIT AND labels = l2enc AND labels = func AND labels = 1609-p0 ORDER BY status DESC, priority DESC'></jira>
** '''P'''n – CSIT development and integration '''priority'''; n=0,1,2, 0-for-MUST, 1-for-SHOULD, 2-for-COULD.
+
* '''1609-p1'''
** '''R'''m – VPP major '''release''', R1 stands for the first FD.io VPP release, R2 for the 2nd FD.io VPP release.
+
** <jira jql='project = CSIT AND labels = l2enc AND labels = func AND labels = 1609-p1 ORDER BY status DESC, priority DESC'></jira>
 +
* '''1609-p2'''
 +
** <jira jql='project = CSIT AND labels = l2enc AND labels = func AND labels = 1609-p2 ORDER BY status DESC, priority DESC'></jira>
 +
* '''JIRA views''': [https://jira.fd.io/secure/RapidBoard.jspa?rapidView=8&quickFilter=64&quickFilter=41&quickFilter=38 board], [https://jira.fd.io/issues/?filter=10641 list].
  
Plan execution tracked on [https://jira.fd.io/secure/RapidBoard.jspa?rapidView=1&projectKey=CSIT CSIT jira]
+
Original CSIT plan:
  
'''VPP network functions:'''
+
# [1609-P1] l2-eth-lispgpe-ip6 - L2BD. [https://jira.fd.io/browse/CSIT-256 CSIT-256]
 +
# [1609-P1] l2-eth-lispgpe-ip4 - L2BD. [https://jira.fd.io/browse/CSIT-257 CSIT-257]
 +
# [1609-P1] l2eth-gre-ip4-ipsec-ip4-eth - L2BD. [https://jira.fd.io/browse/CSIT-258 CSIT-258]
 +
# [1609-P2] l2-eth-l2tpv3-ip4 - L2BD, L2XC. [https://jira.fd.io/browse/CSIT-259 CSIT-259]
 +
# [1609-P2] l2-eth-l2tpv3-ip6 - L2BD, L2XC. [https://jira.fd.io/browse/CSIT-260 CSIT-260]
 +
# [1609-P2] l2-eth-gre-ip4 - L2BD. [https://jira.fd.io/browse/CSIT-261 CSIT-261]
 +
# [1609-P2] l2-eth-gre-ip6 - L2BD. [https://jira.fd.io/browse/CSIT-262 CSIT-262]
 +
# [1606-DONE] l2-vxlan-ipv4 - with bridge-domain.
 +
# [1606-DONE] l2-vxlan-ipv4 - with L2 cross-connect.
  
# IP4 data plane
+
==Ethernet L2 telemetry - l2tel==
## [DONE-R1] baseline routing [rfc791]
+
##* [DONE-R1] TG packets routed to DUT ingress interface
+
##* [DONE-R1] TG packets routed to DUT egress interface
+
##* [DONE-R1] TG packets routed to DUT2 through DUT1
+
##* [DONE-R1] TG packets routed to DUT2 egress interface through DUT1
+
##* [DONE-R1] TG packets routed to TG through DUT1 and DUT2
+
## [P2-R1] vpn baseline routed forwarding (VRF)
+
##* [P2-R1] TG packets routed to DUT ingress interface, VPP configured with two VRFs
+
##* [P2-R1] TG packets routed to DUT egress interface, VPP configured with two VRFs
+
##* [P2-R1] TG packets routed to DUT2 through DUT1, VPP configured with two VRFs
+
##* [P2-R1] TG packets routed to DUT2 egress interface through DUT1, VPP configured with two VRFs
+
##* [P2-R1] TG packets routed to TG through DUT1 and DUT2, VPP configured with two VRFs
+
## [P1-R2] vpn extranet baseline routed forwarding (VRF)
+
##* [P1-R2] TG packets routed to DUT ingress interface, VPP configured with two extranet VRFs
+
##* [P1-R2] TG packets routed to DUT egress interface, VPP configured with two extranet  VRFs
+
##* [P1-R2] TG packets routed to DUT2 through DUT1, VPP configured with two extranet VRFs
+
##* [P1-R2] TG packets routed to DUT2 egress interface through DUT1, VPP configured with two extranet VRFs
+
##* [P1-R2] TG packets routed to TG through DUT1 and DUT2, VPP configured with two extranet VRFs
+
## [TBD] routing multipath
+
##* [TBD] equal cost multi-path (ECMP)
+
##* [TBD] unequal cost multi-path (UECMP)
+
## [P0-R1] security - iacl with n-tuple classification
+
##* [P0-R1] VPP drops packets based on IPv4 source addresses (src-addr)
+
##* [P0-R1] VPP drops packets based on IPv4 destination addresses (dst-addr)
+
##* [P0-R1] VPP drops packets based on IPv4 src-addr and dst-addr
+
##* [P2-R1] VPP drops packets based on IPv4 protocol (TCP/UDP)
+
##* [P2-R1] VPP drops packets based on IPv4 TCP src ports
+
##* [P2-R1] VPP drops packets based on IPv4 TCP dst ports
+
##* [P2-R1] VPP drops packets based on IPv4 TCP src+dst ports
+
##* [P2-R1] VPP drops packets based on IPv4 UDP src ports
+
##* [P2-R1] VPP drops packets based on IPv4 UDP dst ports
+
##* [P2-R1] VPP drops packets based on IPv4 UDP src+dst ports
+
##* [P2-R1] VPP drops packets based on MAC src addr
+
## [P0-R1] security - cop white-/black-lists
+
##* [P0-R1] VPP permits packets based on IPv4 src addr
+
##* [P0-R1] VPP drops packets based on IPv4 src addr
+
## [P2-R1] security - source IPv4 Reverse Path Forwarding (RPF)
+
##* [P2-R1] VPP source RPF check on IPv4 src-addr
+
## [P1-R1] qos - ingress policing - 1r2c-(cb,ca), 2r3c-(cb,ca) policers (cb=color-blind, ca=color-aware)
+
##* [P1-R1] VPP 1r2c-cb policing packets based on DiffServ marking - [TBD-VPP] depends on VPP code ready
+
##* [P2-R1] VPP 1r2c-ca policing packets based on DiffServ marking - [TBD-VPP] depends on VPP code ready
+
##* [P1-R1] VPP 2r3c-cb policing packets based on DiffServ marking - [TBD-VPP] depends on VPP code ready
+
##* [P2-R1] VPP 2r3c-ca policing packets based on DiffServ marking - [TBD-VPP] depends on VPP code ready
+
##* [P2-R1] VPP 1r2c-cb policing packets based on packet classify - [TBD-VPP] depends on VPP code ready
+
##* [P2-R1] VPP 1r2c-ca policing packets based on packet classify - [TBD-VPP] depends on VPP code ready
+
##* [P2-R1] VPP 2r3c-cb policing packets based on packet classify - [TBD-VPP] depends on VPP code ready
+
##* [P2-R1] VPP 2r3c-ca policing packets based on packet classify - [TBD-VPP] depends on VPP code ready
+
## [TBD] qos - egress policing - 1r2c-(cb,ca), 2r3c-(cb,ca) policers
+
## [P1-R1] carrier grade nat 44, CGN44 [rfc6598], [rfc6888]
+
##* [P1-R1] CGN address-only
+
##* [P1-R1] CGN address-and-port
+
##* [TBD] CGN address-only and application layer gateway (ALG)
+
##* [TBD] CGN address-and-port and ALG
+
# IP4 control plane
+
## [P1-R1] ARP
+
##* [DONE-R1] VPP responds to ARP request [rfc826]
+
##* [P1-R1] VPP sends ARP requests for unknown destinations
+
## [P1-R1] Proxy ARP
+
##* [P1-R1] VPP responds to ARP requests on behalf of host present on another VPP interface.
+
## [DONE-R1] ICMPv4
+
##* [DONE-R1] VPP can process ICMP echo request from min to 1500B packet size with 1B increment
+
##* [DONE-R1] VPP can process ICMP echo request from 1500B to max packet size with 10B increment
+
##* [DONE-R1] VPP replies to ICMPv4 echo request [rfc792]
+
## [P2-R1] DHCPv4 proxy
+
##* [P2-R1] VPP proxies valid DHCPv4 request to DHCPv4 server
+
##* [P2-R1] VPP proxy ignores invalid DHCPv4 request
+
## [P2-R1] DHCPv4 client
+
##* [P2-R1] VPP sends DHCPv4 Discover
+
##* [P2-R1] VPP sends DHCPv4 Request after Offer
+
##* [P2-R1] VPP honors DHCPv4 lease time
+
##* [P2-R1] VPP releases allocated address
+
##* [P2-R1] VPP retries DHCPv4 Discover ???times until ???total second timeout
+
##* [P2-R1] VPP retries DHCPv4 Request ???times until ???total second timeout
+
## [P1-R2] IKEv2
+
##* [P1-R2] psk auth
+
##* [P1-R2] rsa key auth
+
##* [P1-R2] ID type IPv4 address
+
##* [P1-R2] ID type (email) [rfc822]
+
##* [P1-R2] ID type key-id
+
##* [P1-R2] test various supported encryption/prf/integrity algs, DH groups, extended sequence number
+
# IP4 encapsulations
+
## [P1-R1] ip4-gre-ip4
+
##* [P1-R1] VPP can encapsulate IPv4 traffic in GRE
+
##* [P1-R1] VPP can route IPv4 traffic from GRE tunnel
+
## [P1-R2] ip4-ipsec-ip4
+
##* [P1-R2] basic connectivity test - create ipsec SA and policy on VPP, test different encryption and integrity algorithms
+
##* [P1-R2] add/del SA and policy tests
+
##* [P1-R2] encryprion/integrity key update test
+
##* [P1-R2] some negative tests (each side has different enryption/integrity alg)
+
# ip6 data plane
+
## [DONE-R1] baseline routing [rfc2460]
+
##* [DONE-R1] TG can route to first DUT egress interface
+
##* [DONE-R1] TG can route to second DUT through first DUT
+
##* [DONE-R1] TG can route to second DUT egress interface through first DUT
+
##* [DONE-R1] TG can route to TG through first and second DUT
+
## [P2-R1] vpn baseline routed forwarding (VRF)
+
##* [P2-R1] TG can ping to DUT ingress interface, VPP configured with two VRFs
+
##* [P2-R1] TG can ping to DUT egress interface, VPP configured with two VRFs
+
##* [P2-R1] TG can ping to DUT2 through DUT1, VPP configured with two VRFs
+
##* [P2-R1] TG can ping to DUT2 egress interface through DUT1, VPP configured with two VRFs
+
##* [P2-R1] TG can ping to TG through DUT1 and DUT2, VPP configured with two VRFs
+
## [P0-R1] security - iacl with n-tuple classification
+
##* [P0-R1] VPP can drop packets based on IPv6 src-addr
+
##* [P0-R1] VPP can drop packets based on IPv6 dst-addr
+
##* [P0-R1] VPP can drop packets based on IPv6 src-addr and dst-addr
+
##* [P2-R1] VPP can drop packets based on IPv6 protocol (TCP/UDP)
+
##* [P2-R1] VPP can drop packets based on IPv6 TCP src port
+
##* [P2-R1] VPP can drop packets based on IPv6 TCP dst port
+
##* [P2-R1] VPP can drop packets based on IPv6 TCP src+dst port
+
##* [P2-R1] VPP can drop packets based on IPv6 UDP src port
+
##* [P2-R1] VPP can drop packets based on IPv6 UDP dst port
+
##* [P2-R1] VPP can drop packets based on IPv6 UDP src+dst port
+
##* [P2-R1] VPP can drop packets based on src MAC + IPv6 UDP src+dst port
+
## [P0-R1] security - cop white-/black-lists
+
##* [P0-R1] VPP permits packets based on IPv6 src-addr
+
##* [P0-R1] VPP drops packets based on IPv6 src-addr
+
## [P2-R1] security - source IPv6 Reverse Path Forwarding (RPF)
+
##* [P2-R1] - source RPF check on IPv6 src-addr
+
## [P1-R1] qos traffic conditioning - ingress rate metering, marking and rate-limiting - 1r2c-(cb,ca), 2r3c-(cb,ca) policers (cb=color-blind, ca=color-aware) [rfc2475], [rfc2697], [rfc2698]
+
##* [P1-R1] VPP 1r2c-cb policing packets based on DiffServ marking - [TBD-VPP] depends on VPP code ready
+
##* [P2-R1] VPP 1r2c-ca policing packets based on DiffServ marking - [TBD-VPP] depends on VPP code ready
+
##* [P1-R1] VPP 2r3c-cb policing packets based on DiffServ marking - [TBD-VPP] depends on VPP code ready
+
##* [P2-R1] VPP 2r3c-ca policing packets based on DiffServ marking - [TBD-VPP] depends on VPP code ready
+
##* [P2-R1] VPP 1r2c-cb policing packets based on packet classify - [TBD-VPP] depends on VPP code ready
+
##* [P2-R1] VPP 1r2c-ca policing packets based on packet classify - [TBD-VPP] depends on VPP code ready
+
##* [P2-R1] VPP 2r3c-cb policing packets based on packet classify - [TBD-VPP] depends on VPP code ready
+
##* [P2-R1] VPP 2r3c-ca policing packets based on packet classify - [TBD-VPP] depends on VPP code ready
+
# ip6 control plane
+
## [P0-R1] router advertisement
+
##* [P0-R1] VPP transmits RA from IPv6 enabled interface
+
##* [P0-R1] ??? ^ retransmits ???
+
##* [P0-R1] VPP ??? handles RA ???
+
## [P0-R1] neighbor discovery [rfc4861]
+
##* [P0-R1] VPP validates and replies to IPv6 NS/NA messages
+
## [DONE-R1] ICMPv6
+
##* [DONE-R1] VPP replies to ICMPv6 echo request
+
##* [DONE-R1] VPP can process ICMPv6 echo request from min to 1500B packet size with 1B increment
+
##* [DONE-R1] VPP can process ICMPv6 echo request from 1500B to max packet size with 10B increment
+
## [TBD] ip6-ioam (in-band OAM)
+
## [P1-R2] DHCPv6 proxy
+
##* [P1-R2] VPP proxies valid DHCPv6 request to DHCPv6 server
+
##* [P1-R2] VPP proxy ignores invalid DHCPv6 request
+
# ip6 encapsulations
+
## [P1-R1] ip4-o-ip6 softwire
+
##* [P1-R1] lightweight46 [rfc7596]
+
##* [P2-R1] map-e [rfc7597]
+
##* [P2-R1] map-t [rfc7599]
+
## [TBD] ip6-segment-routing
+
## [P1-R2] ip6-ipsec-ip6
+
##* [P1-R2] basic connectivity test - create ipsec SA and policy on VPP, test different encryption and integrity algorithms
+
##* [P1-R2] add/del SA and policy tests
+
##* [P1-R2] encryprion/integrity key update test
+
##* [P1-R2] some negative tests (each side has different enryption/integrity alg)
+
# l2 data plane
+
## [DONE-R1] L2 xconnect
+
##* [DONE-R1] VPP forwards packets via L2 xconnect in 3-node topology
+
##* [P2-R1] VPP forwards packets via L2 xconnect with VLAN tag acrobatics a'la MEF EVC - 1-to-1, dot1q-to-dot1q
+
##* [P2-R1] VPP forwards packets via L2 xconnect with VLAN tag acrobatics a'la MEF EVC - 1-to-2, dot1q-to-dot1ad
+
##* [P2-R1] VPP forwards packets via L2 xconnect with VLAN tag acrobatics a'la MEF EVC - 2-to-1, dot1ad-to-dot1q
+
##* [P2-R1] VPP forwards packets via L2 xconnect with VLAN tag acrobatics a'la MEF EVC - 2-to-2, dot1ad-to-dot1ad7
+
## [DONE-R1] Bridge domain
+
##* [DONE-R1] VPP forwards packets via L2 bridge domain 2 ports
+
##* [DONE-R1] VPP forwards packets via L2 bridge domain in 3-node topology
+
##* [DONE-R1] VPP forwards packets via L2 bridge domain in 3-node topology with static L2FIB entries
+
##* [P2-R1] VPP forwards packets via L2 bridge domain with VLAN tag acrobatics a'la MEF EVC - 1-to-1, dot1q-to-dot1q
+
##* [P2-R1] VPP forwards packets via L2 bridge domain with VLAN tag acrobatics a'la MEF EVC - 1-to-2, dot1q-to-dot1ad
+
##* [P2-R1] VPP forwards packets via L2 bridge domain with VLAN tag acrobatics a'la MEF EVC - 2-to-1, dot1ad-to-dot1q
+
##* [P2-R1] VPP forwards packets via L2 bridge domain with VLAN tag acrobatics a'la MEF EVC - 2-to-2, dot1ad-to-dot1ad
+
## [TBD] irb
+
##* [TBD] TG can route to DUT ingress irb interface
+
##* [TBD] TG can route to DUT egress irb interface
+
##* [TBD] TG can route to DUT2 through DUT1, both DUTs using irb interfaces
+
##* [TBD] TG can route to DUT2 egress irb interface through DUT1
+
##* [TBD] TG can route to TG through DUT1 and DUT2, both DUTs using irb interfaces
+
# l2 control plane
+
## [DONE-R1] MAC learning
+
## [P0-R1] MAC split-horizon
+
## [TBD] cdp/lldp
+
# l2 encapsulations
+
## [DONE-R1] l2-vxlan-ipv4
+
##* [DONE-R1] VPP can encapsulate L2 in VXLAN over V4 using bridge-domain
+
##* [DONE-R1] VPP can pass IPv4 bidirectionally through VXLAN tunnel using l2-xconnect
+
## [TBD] l2-eth-l2tpv3-ip4
+
## [TBD] l2-eth-l2tpv3-ip6
+
## [TBD] l2-eth-gre-ip4
+
## [TBD] l2-eth-gre-ip6
+
# l2 management plane
+
## [DONE-R1] VPP reports interfaces
+
# mpls
+
## [TBD] vpnv4-mpls-gre-ip4
+
## [TBD] mpls-o-eth
+
# nsh
+
## [TBD] ip4-nsh-gre-ip4
+
## [TBD] ip4-nsh-vxlan-gpe-ip4
+
  
'''VPP deployment topologies:'''
+
JIRA status for '''l2tel''' tasks:
  
# [DONE-R1] Phy1-VPP-Phy2, VPP in host user-mode
+
* '''1609-p0'''
# [P0-R1] Phy1-VPP-VM-VPP-Phy2, VPP in host user-mode
+
** <jira jql='project = CSIT AND labels = l2tel AND labels = func AND labels = 1609-p0 ORDER BY status DESC, priority DESC'></jira>
# [TBD] Phy1-pcipt-VPPVM-pcipt-Phy2, VPP in guest user-mode
+
* '''1609-p1'''
# [TBD] VPP in container
+
** <jira jql='project = CSIT AND labels = l2tel AND labels = func AND labels = 1609-p1 ORDER BY status DESC, priority DESC'></jira>
# [TBD] VPP as vSwitch for containers
+
* '''1609-p2'''
 +
** <jira jql='project = CSIT AND labels = l2tel AND labels = func AND labels = 1609-p2 ORDER BY status DESC, priority DESC'></jira>
 +
* '''JIRA views''': [https://jira.fd.io/secure/RapidBoard.jspa?rapidView=8&quickFilter=64&quickFilter=41&quickFilter=42 board], [https://jira.fd.io/issues/?filter=10642 list].
  
'''VPP negative testing:'''
+
Original CSIT plan:
  
# [TBD] physical interfaces down/up
+
# [1609-P1] L2 FIB - stats collection and export - baseline. [https://jira.fd.io/browse/CSIT-263 CSIT-263]
# [TBD] virtual interfaces down/up
+
# [1609-P2] L2 FIB - stats collection and export - functional scale. [https://jira.fd.io/browse/CSIT-264 CSIT-264]
# [TBD] VPP crash recovery
+
# [1609-P1] [Blocked-by VPP-185] Switched port analyzer mirroring SPAN - (flow,port) mirroring to local port - baseline. [https://jira.fd.io/browse/CSIT-265 CSIT-265]
 +
# [1609-P1] [Blocked-by VPP-186] Lawful intercept  - (flow,port) mirroring to remote locatio via LI UDP tunnel - baseline. [https://jira.fd.io/browse/CSIT-266 CSIT-266]
  
'''Other tests:'''
+
==MPLS data plane - mplsdp==
  
# [TBD] Memory utilization tests
+
* '''JIRA views''': [board], [list].
# [TBD] Memory leak tests
+
# [TBD] Consistency of memory footprint for selected configs
+
  
'''Honeycomb'''
+
Original CSIT plan:
# Interfaces - Basic interface management
+
#* [TBD] Honeycomb (modifies) CONFIGURES and READS interface state
+
#* [TBD] Honeycomb modifies interface configuration - IPv4
+
#* [TBD] Honeycomb modifies interface configuration - IPv6
+
#* [TBD] Honeycomb modifies interface configuration - ethernet, routing
+
# Bridge domain
+
#* [TBD] Honeycomb creates l2 bridge domain
+
#* [TBD] Honeycomb manages multiple bridge domains on node
+
#* [TBD] Honeycomb removes bridge domain
+
# VXLAN
+
#* [TBD] Honeycomb configures VXLAN
+
# Honeycomb items for GBP
+
#* [TBD] Honeycomb provides vhostuser support
+
#* [TBD] Honeycomb checks VXLAN Tunneling
+
#* [TBD] Provider networks (VLAN)
+
#* [TBD] Policy - security groups
+
#* [TBD] Policy - security group rules
+
  
'''Non-coding work items'''
+
# [1609-P2] vpnv4-mpls-gre-ip4. [https://jira.fd.io/browse/CSIT-267 CSIT-267]
# design docs
+
# [1609-P2] mpls-o-eth. [https://jira.fd.io/browse/CSIT-268 CSIT-268]
# usability docs
+
  
==Functional tests infra work areas==
+
==NSH data plane - nshdp==
  
CSIT Golden Branch
+
* '''JIRA views''': [board], [list].
* Name of the CSIT branch is "csit-verified".
+
* It is created by CSIT team in CSIT gerrit project.
+
* It represents the version of CSIT code that is tested and verified to work perfectly.
+
* At the moment, csit-verified is a git branch, stored in gerrit.fd.io, that points to concrete version of master branch of CSIT project.
+
* Link to branch: https://gerrit.fd.io/r/gitweb?p=csit.git;a=shortlog;h=refs%2Fheads%2Fcsit-verified
+
* In future, we plan to switch from using branch to tag, because is suites gerrit better than branching (since we use the branch only to point to a version in master).
+
  
Run testcases based on vpp code change (no clear ideas yet)
+
Original CSIT plan:
* for now execute all baseline tests - l2, ip4, ip6
+
* future per code change functional and vpp node graph dependencies
+
  
Gathering of stats/logs/core dumps from DUTs/TGs after test execution:
+
# [1609-P1] ip4-nsh-gre-ip4. [https://jira.fd.io/browse/CSIT-269 CSIT-269]
* naming schemes, storage, packaging
+
# [1609-P1] ip4-nsh-vxlan-gpe-ip4. [https://jira.fd.io/browse/CSIT-270 CSIT-270]
* collection of TELEMETRY
+
* plain text - structured
+
** one-time snapshot of the system
+
** for human driven hand-crafted debugging
+
** for human driven part-automated debugging
+
** for machine driven fully-automated analysis
+
* use Network Data Analytics engine in the future
+
  
Honeycomb tests framework
+
==OPNFV-FDS integration==
* NETCONF FrameWork
+
** library that understands netconf and ssh
+
* Existing CSIT RF (Robot-Framework) and Python libraries / tools extension to use HC/VAT/CLI "driver" to execute things
+
** the same logical code - execute across different driver APIs
+
*** HC, VAT, CLI
+
  
VPP project
+
Original CSIT plan:
* plannig and coordinating with code development
+
* specifying and identifying dependencies to/from
+
** deployment use cases
+
** CSIT
+
  
Honeycomb project
+
# [1606-DONE] FDS VM scenario with two L2 bridge domains – ICMPv4.
* plannig and coordinating with code development
+
# [1606-DONE] FDS VM scenario with two L2 bridge domains with static L2FIB entries – ICMPv4.
* specifying and identifying dependencies to/from
+
# [1606-DONE] FDS VM scenario with two L2 bridge domains – ICMPv6.
** deployment use cases
+
# [1606-DONE] FDS VM scenario with two L2 bridge domains with static L2FIB entries – ICMPv6.
** CSIT
+
# [1606-DONE] FDS VM scenario with L2 cross-connect – ICMPv4.
 +
# [1606-DONE] FDS VM scenario with L2 cross-connect – ICMPv6.
 +
# [1606-DONE] FDS L2 test cases with tenant networks (VXLAN).
 +
# [1606-DONE] FDS L2 test cases with provider physical networks (VLAN).

Latest revision as of 21:20, 12 September 2016

WORK IN PROGRESS

CSIT development plan - background

CSIT test development priorities are aligned with VPP releases timeline, with relative dev work prioritization for each VPP release driven by perceived importance of test verification for VPP functionality and performance. Specific CSIT dev work priorities are driven by rough consensus within the project and contributors and committers availability and willingness to do work.

Following priority tagging scheme is used in this CSIT wiki and FD.io jira for CSIT:

  • [$VppRlsNo-$RelPrio]
    • VppRlsNo - aligned VPP release number - 16.09, 16.12, 17.03.
    • RelPrio - CSIT release priority - P0 for Must Have, P1 for Should Have, P2 for Could Have
  • CSIT dev work tagging examples:
    • [1609-P0] - CSIT Must Have for vpp-v1609
    • [1609-P1] - CSIT Should Have for vpp-v1609
    • [1609-P2] - CSIT Could Have for vpp-v1609

CSIT dev work plan execution tracked on CSIT jira, with priority tags encoded as Jira labels for easy of tracking and reporting.

CSIT functional tests - dev plan

For the purpose of tracking CSIT dev work, CSIT functional test cases are grouped into the following VPP functional areas:

  1. IPv4 data plane
  2. IPv4 control plane
  3. IPv4 encapsulations
  4. IPv4 telemetry
  5. IPv6 data plane
  6. IPv6 control plane
  7. IPv6 encapsulations
  8. IPv6 telemetry
  9. Ethernet L2 data plane
  10. Ethernet L2 control plane
  11. Ethernet L2 encapsulations
  12. Ethernet L2 management plane
  13. Ethernet L2 telemetry
  14. MPLS data plane
  15. NSH data plane
  16. OPNFV-FDS integration

Following sections provide a top-level breakdown of CSIT dev work items covering functional test cases per area, and their proposed priorities. Items completed to date are prefixed with [DONE]; remaining items are prefixed with their respective priority per target release as described earlier. Indicative VPP functionality coverage is listed at the beginning of each section.

Identified VPP working code availability dependencies are marked by VPP Jira ticket [TODO VPP-xxx].

IPv4 data plane - ip4dp

JIRA status for ip4dp tasks:

Original CSIT plan:

  1. [1609-P1] qos - ingress policing - 1r2c-(cb,ca), 2r3c-(cb,ca) policers, RFC2475, RFC2697, RFC2698. CSIT-21
  2. [1609-P1] routing multipath (ECMP, UECMP) - baseline. CSIT-227
  3. [1609-P1] [TODO VPP-xxx] carrier grade nat 44, CGN44, RFC6598, RFC6888. CSIT-22 - The feature is blocked at the moment (for more info please see Jira ticket).
  4. [1609-P2] extranet VPN routed forwarding (VRF) - baseline. CSIT-214
  5. [1609-P2] [TODO VPP-xxx] security - stateful firewall. CSIT-228
  6. [1606-DONE] IPv4 routing RFC791 - baseline.
  7. [1606-DONE] security - iacl with n-tuple classification, ip4, ip6, mac.
  8. [1606-DONE] security - cop white-/black-list ip4 src addr filtering.
  9. [1609-DONE] VPN routed forwarding (VRF) - baseline. CSIT-183
  10. [1609-DONE] security - source IPv4 Reverse Path Forwarding (RPF). CSIT-188

IPv4 control plane - ip4cp

JIRA status for ip4cp tasks:

Original CSIT plan:

  1. [1609-P0] IKEv2. CSIT-27
  2. [1606-DONE] ARP.
  3. [1606-DONE] ICMPv4.
  4. [1606-DONE] DHCPv4 client.
  5. [1609-DONE] Proxy ARP. CSIT-24
  6. [1609-DONE] DHCPv4 proxy. CSIT-25

IPv4 encapsulations - ip4enc

JIRA status for ip4enc tasks:

Original CSIT plan:

  1. [1609-P0] ip4-ipsec-lispgpe-ip4 - main fib, vrf (gpe_vni-to-vrf), phy2lisp, virt2lisp. CSIT-231
  2. [1609-P1] ip4-lispgpe-ip4 - main fib, vrf (gpe_vni-to-vrf), lisp2lisp. CSIT-230
  3. [1609-P1] ip4-ipsec-lispgpe-ip4 - main fib, vrf (gpe_vni-to-vrf), lisp2lisp. CSIT-232
  4. [1606-DONE] ip4-gre-ip4 - baseline main fib.
  5. [1609-DONE] ip4-ipsec-ip4 - baseline main fib. CSIT-28
  6. [1609-DONE] ip4-lispgpe-ip4 - main fib, vrf (gpe_vni-to-vrf), phy2lisp, virt2lisp. CSIT-229

IPv4 telemetry - ip4tel

JIRA status for ip4tel tasks:

Original CSIT plan:

  1. [1609-P1] [Blocked-by VPP-185] Switched port analyzer mirroring SPAN - (flow,port) mirroring to local port - baseline. CSIT-235
  2. [1609-P1] [Blocked-by VPP-186] Lawful intercept - (flow,port) mirroring to remote locatio via LI UDP tunnel - baseline. CSIT-236
  3. [1609-DONE] IPv4 IPFIX - stats collection and export - baseline. CSIT-233
  4. [1609-DONE] IPv4 IPFIX - stats collection and export - functional scale. CSIT-234

IPv6 data plane - ip6dp

JIRA status for ip6dp tasks:

Original CSIT plan:

  1. [1609-P1] routing multipath (ECMP, UECMP) - baseline. CSIT-240
  2. [1609-P2] [TODO VPP-194] security - source IPv6 Reverse Path Forwarding (RPF). CSIT-208
  3. [1609-P2] [Blocked-by VPP-224] extranet VPN routed forwarding (VRF) - baseline. CSIT-238
  4. [1609-P2] [TODO VPP-xxx] security - stateful firewall.
  5. [1609-P2] qos - ingress policing - 1r2c-(cb,ca), 2r3c-(cb,ca) policers, RFC2475, RFC2697, RFC2698. CSIT-239
  6. [1606-DONE] routing [rfc2460] - baseline.
  7. [1606-DONE] security - iacl with n-tuple classification.
  8. [1606-DONE] security - cop white-/black-list ip4 src addr filtering.
  9. [1609-DONE] VPN routed forwarding (VRF) - baseline. CSIT-237

IPv6 control plane - ip6cp

JIRA status for ip6cp tasks:

Original CSIT plan:

  1. [1609-P1] DHCPv6 proxy. CSIT-31
  2. [1609-P2] [TODO VPP-xxx] ip6-ioam, in-band OAM.
  3. [1609-P2] DHCPv6 client. CSIT-242
  4. [1606-DONE] neighbor discovery, RFC4861.
  5. [1606-DONE] ICMPv6.
  6. [1609-DONE] router advertisement - baseline tests. CSIT-241

IPv6 encapsulations - ip6enc

JIRA status for ip6enc tasks:

Original CSIT plan:

  1. [1609-P1] ip6-lispgpe-ip6 - main fib, vrf (gpe_vni-to-vrf), phy2lisp, virt2lisp. CSIT-243
  2. [1609-P1] ip6-lispgpe-ip6 - main fib, vrf (gpe_vni-to-vrf), lisp2lisp. CSIT-244
  3. [1609-P1] ip4-lispgpe-ip6 - main fib, vrf (gpe_vni-to-vrf), phy2lisp, virt2lisp. CSIT-245
  4. [1609-P1] ip4-lispgpe-ip6 - main fib, vrf (gpe_vni-to-vrf), lisp2lisp. CSIT-246
  5. [1609-P1] ip6-ipsec-lispgpe-ip6 - main fib, vrf (gpe_vni-to-vrf), phy2lisp, virt2lisp. CSIT-247
  6. [1609-P1] ip6-ipsec-lispgpe-ip6 - main fib, vrf (gpe_vni-to-vrf), lisp2lisp. CSIT-248
  7. [1609-P1] ip4-ipsec-lispgpe-ip6 - main fib, vrf (gpe_vni-to-vrf), phy2lisp, virt2lisp. CSIT-249
  8. [1609-P1] ip4-ipsec-lispgpe-ip6 - main fib, vrf (gpe_vni-to-vrf), lisp2lisp. CSIT-250
  9. [1609-P1] [TODO VPP-xxx] ip6-segment-routing.
  10. [1609-DONE] ip4-o-ip6 softwire - lightweight46. CSIT-32
  11. [1609-DONE] ip4-o-ip6 softwire - map-e. CSIT-197
  12. [1609-DONE] ip4-o-ip6 softwire - map-t. CSIT-353
  13. [1609-DONE] ip6-ipsec-ip6. CSIT-33

IPv6 telemetry - ip6tel

JIRA status for ip6tel tasks:

Original CSIT plan:

  1. [1609-P1] [Blocked-by VPP-185] Switched port analyzer mirroring SPAN - (flow,port) mirroring to local port - baseline. CSIT-253
  2. [1609-P1] [Blocked-by VPP-186] Lawful intercept - (flow,port) mirroring to remote locatio via LI UDP tunnel - baseline. CSIT-254
  3. [1609-DONE] [Blocked-by VPP-204] IPv6 IPFIX - stats collection and export - baseline. CSIT-251
  4. [1609-DONE] [Blocked-by VPP-204] IPv6 IPFIX - stats collection and export - functional scale. CSIT-252

Ethernet L2 data plane - l2dp

JIRA status for l2dp tasks:

Original CSIT plan:

  1. [1609-P1] Integrated Routing-Bridging (IRB) - baseline. CSIT-255
  2. [1606-DONE] L2 Cross-connec - baseline.
  3. [1606-DONE] L2 Cross-connect - with VLAN tag acrobatics 1-to-1, 1-to-2, 2-to-1, 2-to-2.
  4. [1606-DONE] Bridge domain - baseline.
  5. [1609-DONE] Bridge domain - with VLAN tag acrobatics 1-to-1, 1-to-2, 2-to-1, 2-to-2. CSIT-35

Ethernet L2 control plane - l2cp

JIRA status for l2cp tasks:

Original CSIT plan:

  1. [1609-P2] [TODO VPP-xxx] CDP/LLDP.
  2. [1606-DONE] MAC learning.
  3. [1606-DONE] MAC split-horizon.

Ethernet L2 encapsulations - l2enc

JIRA status for l2enc tasks:

Original CSIT plan:

  1. [1609-P1] l2-eth-lispgpe-ip6 - L2BD. CSIT-256
  2. [1609-P1] l2-eth-lispgpe-ip4 - L2BD. CSIT-257
  3. [1609-P1] l2eth-gre-ip4-ipsec-ip4-eth - L2BD. CSIT-258
  4. [1609-P2] l2-eth-l2tpv3-ip4 - L2BD, L2XC. CSIT-259
  5. [1609-P2] l2-eth-l2tpv3-ip6 - L2BD, L2XC. CSIT-260
  6. [1609-P2] l2-eth-gre-ip4 - L2BD. CSIT-261
  7. [1609-P2] l2-eth-gre-ip6 - L2BD. CSIT-262
  8. [1606-DONE] l2-vxlan-ipv4 - with bridge-domain.
  9. [1606-DONE] l2-vxlan-ipv4 - with L2 cross-connect.

Ethernet L2 telemetry - l2tel

JIRA status for l2tel tasks:

Original CSIT plan:

  1. [1609-P1] L2 FIB - stats collection and export - baseline. CSIT-263
  2. [1609-P2] L2 FIB - stats collection and export - functional scale. CSIT-264
  3. [1609-P1] [Blocked-by VPP-185] Switched port analyzer mirroring SPAN - (flow,port) mirroring to local port - baseline. CSIT-265
  4. [1609-P1] [Blocked-by VPP-186] Lawful intercept - (flow,port) mirroring to remote locatio via LI UDP tunnel - baseline. CSIT-266

MPLS data plane - mplsdp

  • JIRA views: [board], [list].

Original CSIT plan:

  1. [1609-P2] vpnv4-mpls-gre-ip4. CSIT-267
  2. [1609-P2] mpls-o-eth. CSIT-268

NSH data plane - nshdp

  • JIRA views: [board], [list].

Original CSIT plan:

  1. [1609-P1] ip4-nsh-gre-ip4. CSIT-269
  2. [1609-P1] ip4-nsh-vxlan-gpe-ip4. CSIT-270

OPNFV-FDS integration

Original CSIT plan:

  1. [1606-DONE] FDS VM scenario with two L2 bridge domains – ICMPv4.
  2. [1606-DONE] FDS VM scenario with two L2 bridge domains with static L2FIB entries – ICMPv4.
  3. [1606-DONE] FDS VM scenario with two L2 bridge domains – ICMPv6.
  4. [1606-DONE] FDS VM scenario with two L2 bridge domains with static L2FIB entries – ICMPv6.
  5. [1606-DONE] FDS VM scenario with L2 cross-connect – ICMPv4.
  6. [1606-DONE] FDS VM scenario with L2 cross-connect – ICMPv6.
  7. [1606-DONE] FDS L2 test cases with tenant networks (VXLAN).
  8. [1606-DONE] FDS L2 test cases with provider physical networks (VLAN).