Remove THIS tag and use unix endlines 91/13391/2
authorVratko Polak <vrpolak@cisco.com>
Mon, 9 Jul 2018 13:14:36 +0000 (15:14 +0200)
committerPeter Mikus <pmikus@cisco.com>
Tue, 10 Jul 2018 11:23:31 +0000 (11:23 +0000)
The THIS tag has sneaked in 10Ge2P1X520-Eth-L2Xcbase-Eth-1Memif-1Dcr-Mrr
but usually it is only to be used in draft testing.

Not sure about the way non-unix endlines crept in.
Is not git supposed to perform endline conversions on text files?
Or are .robot, .rst, .yaml and .vat not recognized as text?

Change-Id: Ia78cf942c05c3029c340a8639782786f37e57469
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
45 files changed:
docs/report/detailed_test_results/vpp_unittest_results/index.rst
docs/report/detailed_test_results/vpp_unittest_results/vpp_unittest_results.rst
docs/report/dpdk_performance_tests/documentation.rst
docs/report/dpdk_performance_tests/test_environment.rst
docs/report/honeycomb_functional_tests/csit_release_notes.rst
docs/report/honeycomb_functional_tests/documentation.rst
docs/report/honeycomb_functional_tests/test_environment.rst
docs/report/nsh_sfc_functional_tests/documentation.rst
docs/report/nsh_sfc_functional_tests/overview.rst
docs/report/nsh_sfc_functional_tests/test_environment.rst
docs/report/test_operational_data/index.rst
docs/report/vpp_functional_tests/documentation.rst
docs/report/vpp_functional_tests/overview.rst
docs/report/vpp_functional_tests/test_environment.rst
docs/report/vpp_performance_tests/csit_release_notes.rst
docs/report/vpp_performance_tests/test_environment.rst
docs/report/vpp_unit_tests/documentation.rst
docs/report/vpp_unit_tests/overview.rst
resources/templates/vat/memif_create.vat
resources/templates/vat/nat/nat44_deterministic_forward.vat
resources/templates/vat/nat/nat44_deterministic_reverse.vat
resources/templates/vat/nat/nat44_set_deterministic.vat
resources/templates/vat/nat/nat44_set_interfaces.vat
resources/templates/vat/nat/nat_set_workers.vat
resources/templates/vat/nat/nat_show_nat.vat
resources/templates/vat/nat/snat_interface_dump.vat
resources/templates/vat/show_memif.vat
resources/tools/testbed-setup/ansible/production
resources/tools/testbed-setup/ansible/roles/common/tasks/main.yaml
resources/tools/testbed-setup/ansible/roles/common/tasks/ubuntu_x86_64.yaml
resources/tools/testbed-setup/ansible/roles/sut/tasks/main.yaml
resources/tools/testbed-setup/ansible/roles/sut/tasks/ubuntu_x86_64.yaml
resources/tools/testbed-setup/ansible/roles/tg/tasks/main.yaml
resources/tools/testbed-setup/ansible/roles/tg/tasks/ubuntu_x86_64.yaml
resources/tools/testbed-setup/ansible/roles/tg_sut/tasks/main.yaml
resources/tools/testbed-setup/ansible/roles/tg_sut/tasks/ubuntu_x86_64.yaml
resources/tools/testbed-setup/ansible/site.yaml
resources/tools/testbed-setup/ansible/sut.yaml
resources/tools/testbed-setup/ansible/tg.yaml
resources/tools/testbed-setup/ansible/virl.yaml
resources/tools/testbed-setup/ansible/vppdevice.yaml
tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-1memif-1dcr-mrr.robot
tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-1memif-1dcr-ndrpdrdisc.robot
tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-1memif-1dcr-mrr.robot
tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-1memif-1dcr-ndrpdrdisc.robot

index f77153d..5659d5e 100644 (file)
@@ -1,7 +1,7 @@
-VPP Unit Test Results\r
-=====================\r
-\r
-.. toctree::\r
-\r
-    vpp_unittest_results\r
-\r
+VPP Unit Test Results
+=====================
+
+.. toctree::
+
+    vpp_unittest_results
+
index 3e1fd5a..ba35f2b 100644 (file)
-ACL Security Groups\r
-```````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    ACL plugin Test Case\r
-    ==============================================================================\r
-    ACL plugin version check; learn MACs                                     OK\r
-    ACL create/delete test                                                   OK\r
-    permit ACL apply test                                                    OK\r
-    deny ACL apply test                                                      OK\r
-    VPP_624 permit ICMPv4                                                    OK\r
-    VPP_624 permit ICMPv6                                                    OK\r
-    VPP_624 deny ICMPv4                                                      OK\r
-    VPP_624 deny ICMPv6                                                      OK\r
-    permit TCPv4                                                             OK\r
-    permit TCPv6                                                             OK\r
-    permit UDPv4                                                             OK\r
-    permit UDPv6                                                             OK\r
-    deny TCPv4/v6                                                            OK\r
-    deny UDPv4/v6                                                            OK\r
-    verify add/dump acls                                                     OK\r
-    permit single TCPv4                                                      OK\r
-    permit single UDPv4                                                      OK\r
-    permit single TCPv6                                                      OK\r
-    permit single UPPv6                                                      OK\r
-    deny single TCPv4/v6                                                     OK\r
-    deny single UDPv4/v6                                                     OK\r
-    deny single UDPv4/v6, permit ip any, verify non-initial fragment blocked OK\r
-    VPP-687 zero length udp ipv4 packet                                      OK\r
-    VPP-687 zero length udp ipv6 packet                                      OK\r
-    permit TCPv4 + non-match range                                           OK\r
-    permit TCPv6 + non-match range                                           OK\r
-    permit UDPv4 + non-match range                                           OK\r
-    permit UDPv6 + non-match range                                           OK\r
-    deny TCPv4/v6 + non-match range                                          OK\r
-    deny UDPv4/v6 + non-match range                                          OK\r
-\r
-    ==============================================================================\r
-    IRB Test Case\r
-    ==============================================================================\r
-    ACL plugin prepare                                                       OK\r
-    ACL IPv6 routed -> bridged, L2 ACL deny                                  OK\r
-    ACL IPv6 routed -> bridged, L3 ACL deny                                  OK\r
-    ACL IPv4 routed -> bridged, L2 ACL deny                                  OK\r
-    ACL IPv4 routed -> bridged, L3 ACL deny                                  OK\r
-    ACL IPv6 bridged -> routed, L2 ACL deny                                  OK\r
-    ACL IPv6 bridged -> routed, L3 ACL deny                                  OK\r
-    ACL IPv4 bridged -> routed, L2 ACL deny                                  OK\r
-    ACL IPv4 bridged -> routed, L3 ACL deny                                  OK\r
-    ACL IPv6 routed -> bridged, L2 ACL permit+reflect                        OK\r
-    ACL IPv6 bridged -> routed, L2 ACL permit+reflect                        OK\r
-    ACL IPv4 routed -> bridged, L2 ACL permit+reflect                        OK\r
-    ACL IPv4 bridged -> routed, L2 ACL permit+reflect                        OK\r
-    ACL IPv6 routed -> bridged, L3 ACL permit+reflect                        OK\r
-    ACL IPv6 bridged -> routed, L3 ACL permit+reflect                        OK\r
-    ACL IPv4 routed -> bridged, L3 ACL permit+reflect                        OK\r
-    ACL IPv4 bridged -> routed, L3 ACL permit+reflect                        OK\r
-    ACL IPv6+EH routed -> bridged, L2 ACL deny                               OK\r
-    ACL IPv6+EH routed -> bridged, L3 ACL deny                               OK\r
-    ACL IPv6+EH bridged -> routed, L2 ACL deny                               OK\r
-    ACL IPv6+EH bridged -> routed, L3 ACL deny                               OK\r
-    ACL IPv6+EH routed -> bridged, L2 ACL permit+reflect                     OK\r
-    ACL IPv6+EH bridged -> routed, L2 ACL permit+reflect                     OK\r
-    ACL IPv6+EH routed -> bridged, L3 ACL permit+reflect                     OK\r
-    ACL IPv6+EH bridged -> routed, L3 ACL permit+reflect                     OK\r
-    ACL IPv4+MF routed -> bridged, L2 ACL deny                               OK\r
-    ACL IPv4+MF routed -> bridged, L3 ACL deny                               OK\r
-    ACL IPv4+MF bridged -> routed, L2 ACL deny                               OK\r
-    ACL IPv4+MF bridged -> routed, L3 ACL deny                               OK\r
-    ACL IPv4+MF routed -> bridged, L2 ACL permit+reflect                     OK\r
-    ACL IPv4+MF bridged -> routed, L2 ACL permit+reflect                     OK\r
-    ACL IPv4+MF routed -> bridged, L3 ACL permit+reflect                     OK\r
-    ACL IPv4+MF bridged -> routed, L3 ACL permit+reflect                     OK\r
-\r
-    ==============================================================================\r
-    ACL plugin connection-oriented extended testcases\r
-    ==============================================================================\r
-    Prepare the settings                                                     SKIP\r
-    IPv4: Basic conn timeout test reflect on ingress                         SKIP\r
-    IPv4: Basic conn timeout test reflect on egress                          SKIP\r
-    IPv4: reflect egress, clear conn                                         SKIP\r
-    IPv4: reflect ingress, clear conn                                        SKIP\r
-    IPv4: Idle conn behind active conn, reflect on ingress                   SKIP\r
-    IPv4: Idle conn behind active conn, reflect on egress                    SKIP\r
-    IPv6: Basic conn timeout test reflect on ingress                         SKIP\r
-    IPv6: Basic conn timeout test reflect on egress                          SKIP\r
-    IPv6: reflect egress, clear conn                                         SKIP\r
-    IPv6: reflect ingress, clear conn                                        SKIP\r
-    IPv6: Idle conn behind active conn, reflect on ingress                   SKIP\r
-    IPv6: Idle conn behind active conn, reflect on egress                    SKIP\r
-    Prepare for TCP session tests                                            SKIP\r
-    IPv4: transient TCP session (incomplete 3WHS), ref. on ingress           SKIP\r
-    IPv4: transient TCP session (incomplete 3WHS), ref. on egress            SKIP\r
-    IPv4: established TCP session (complete 3WHS), ref. on ingress           SKIP\r
-    IPv4: established TCP session (complete 3WHS), ref. on egress            SKIP\r
-    IPv4: transient TCP session (3WHS,ACK,FINACK), ref. on ingress           SKIP\r
-    IPv4: transient TCP session (3WHS,ACK,FINACK), ref. on egress            SKIP\r
-    IPv6: transient TCP session (incomplete 3WHS), ref. on ingress           SKIP\r
-    IPv6: transient TCP session (incomplete 3WHS), ref. on egress            SKIP\r
-    IPv6: established TCP session (complete 3WHS), ref. on ingress           SKIP\r
-    IPv6: established TCP session (complete 3WHS), ref. on egress            SKIP\r
-    IPv6: transient TCP session (3WHS,ACK,FINACK), ref. on ingress           SKIP\r
-    IPv6: transient TCP session (3WHS,ACK,FINACK), ref. on egress            SKIP\r
-\r
-    ==============================================================================\r
-    ACL on dot1q bridged subinterfaces Tests\r
-    ==============================================================================\r
-    IP4 ACL SubIf Dot1Q bridged traffic                                      OK\r
-    IP6 ACL SubIf Dot1Q bridged traffic                                      OK\r
-\r
-    ==============================================================================\r
-    ACL on dot1ad bridged subinterfaces Tests\r
-    ==============================================================================\r
-    IP4 ACL SubIf Dot1AD bridged traffic                                     OK\r
-    IP6 ACL SubIf Dot1AD bridged traffic                                     OK\r
-\r
-    ==============================================================================\r
-    ACL on dot1ad routed subinterfaces Tests\r
-    ==============================================================================\r
-    IP4 ACL SubIf Dot1AD routed traffic                                      OK\r
-    IP4 ACL SubIf wrong tags Dot1AD routed traffic                           OK\r
-    IP6 ACL SubIf Dot1AD routed traffic                                      OK\r
-    IP6 ACL SubIf wrong tags Dot1AD routed traffic                           OK\r
-\r
-    ==============================================================================\r
-    ACL on dot1q routed subinterfaces Tests\r
-    ==============================================================================\r
-    IP4 ACL SubIf Dot1Q routed traffic                                       OK\r
-    IP4 ACL SubIf wrong tags Dot1Q routed traffic                            OK\r
-    IP6 ACL SubIf Dot1Q routed traffic                                       OK\r
-    IP6 ACL SubIf wrong tags Dot1Q routed traffic                            OK\r
-\r
-APIs\r
-````\r
-::\r
-\r
-    ==============================================================================\r
-    VAPI test\r
-    ==============================================================================\r
-    run C VAPI tests                                                         SKIP\r
-    run C++ VAPI tests                                                       SKIP\r
-\r
-    ==============================================================================\r
-    VPP Object Model Test\r
-    ==============================================================================\r
-    run C++ VOM tests                                                        SKIP\r
-\r
-    ==============================================================================\r
-    PAPI Test Case\r
-    ==============================================================================\r
-    show version                                                             OK\r
-    show version - invalid parameters                                        OK\r
-    u8 array                                                                 OK\r
-\r
-    ==============================================================================\r
-    PAPI Message parsing Test Case\r
-    ==============================================================================\r
-    New compound type with array                                             OK\r
-    Add new types                                                            OK\r
-    Add new types 2                                                          OK\r
-    Add new message object                                                   OK\r
-    New message with array                                                   OK\r
-    Argument name                                                            OK\r
-    VLA with aribtrary length field placement                                OK\r
-    Message to byte encoding                                                 OK\r
-    Nested array type                                                        OK\r
-    Old style VLA array                                                      OK\r
-    Old VLA compound type                                                    OK\r
-    Old VLA array arbitrary placement                                        OK\r
-    Old VLA u32                                                              OK\r
-    Simple array                                                             OK\r
-\r
-    ==============================================================================\r
-    JVPP Core Test Case\r
-    ==============================================================================\r
-    JVPP Acl Callback Api Test Case                                          OK\r
-    JVPP Acl Future Api Test Case                                            OK\r
-    JVPP Core Callback Api Test Case                                         OK\r
-    JVPP Core Future Api Test Case                                           OK\r
-    JVPP Ioamexport Callback Api Test Case                                   OK\r
-    JVPP Ioamexport Future Api Test Case                                     OK\r
-    JVPP Ioampot Callback Api Test Case                                      OK\r
-    JVPP Ioampot Future Api Test Case                                        OK\r
-    JVPP Ioamtrace Callback Api Test Case                                    OK\r
-    JVPP Ioamtrace Future Api Test Case                                      OK\r
-    JVPP Snat Callback Api Test Case                                         OK\r
-    JVPP Snat Future Api Test Case                                           OK\r
-\r
-ARP\r
-```\r
-::\r
-\r
-    ==============================================================================\r
-    ARP Test Case\r
-    ==============================================================================\r
-    ARP                                                                      OK\r
-    ARP Duplicates                                                           OK\r
-    ARP Static                                                               OK\r
-    ARP reply with VRRP virtual src hw addr                                  OK\r
-    MPLS                                                                     OK\r
-    Proxy ARP                                                                OK\r
-    Interface Mirror Proxy ARP                                               OK\r
-\r
-    ==============================================================================\r
-    L2BD arp termination Test Case\r
-    ==============================================================================\r
-    L2BD arp term - add 5 hosts, verify arp responses                        OK\r
-    L2BD arp term - delete 3 hosts, verify arp responses                     OK\r
-    L2BD arp term - recreate BD1, readd 3 hosts, verify arp responses        OK\r
-    L2BD arp term - 2 IP4 addrs per host                                     OK\r
-    L2BD arp term - create and update 10 IP4-mac pairs                       OK\r
-    L2BD arp/ND term - hosts with both ip4/ip6                               OK\r
-    L2BD ND term - Add and Del hosts, verify ND replies                      OK\r
-    L2BD ND term - Add and update IP+mac, verify ND replies                  OK\r
-    L2BD arp term - send garps, verify arp event reports                     OK\r
-    L2BD arp term - send duplicate garps, verify suppression                 OK\r
-    L2BD arp term - disable ip4 arp events,send garps, verify no events      OK\r
-    L2BD ND term - send NS packets verify reports                            OK\r
-    L2BD ND term - send duplicate ns, verify suppression                     OK\r
-    L2BD ND term - disable ip4 arp events,send ns, verify no events          OK\r
-\r
-BFD API\r
-````````\r
-::\r
-\r
-    ==============================================================================\r
-    Bidirectional Forwarding Detection (BFD) - API\r
-    ==============================================================================\r
-    activate SHA1 authentication                                             SKIP\r
-    create BFD session using non-existent SHA1 (negative case)               SKIP\r
-    create a BFD session                                                     SKIP\r
-    create IPv6 BFD session                                                  SKIP\r
-    create a BFD session (SHA1)                                              SKIP\r
-    add SHA1 keys                                                            SKIP\r
-    change SHA1 key                                                          SKIP\r
-    deactivate SHA1 authentication                                           SKIP\r
-    create the same BFD session twice (negative case)                        SKIP\r
-    create the same BFD session twice (negative case) (SHA1)                 SKIP\r
-    modify BFD session parameters                                            SKIP\r
-    share single SHA1 key between multiple BFD sessions                      SKIP\r
-\r
-BFD Authentication\r
-``````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    Bidirectional Forwarding Detection (BFD) (SHA1 auth)\r
-    ==============================================================================\r
-    hold BFD session up                                                      SKIP\r
-    hold BFD session up - meticulous auth                                    SKIP\r
-    session is not brought down by unauthenticated msg                       SKIP\r
-    session is not brought down by msg with non-existent key-id              SKIP\r
-    session is not brought down by msg with wrong auth type                  SKIP\r
-    simulate remote peer restart and resynchronization                       SKIP\r
-    session is not kept alive by msgs with bad sequence numbers              SKIP\r
-    bring BFD session up                                                     SKIP\r
-\r
-BFD Authentication Change\r
-`````````````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    Bidirectional Forwarding Detection (BFD) (changing auth)\r
-    ==============================================================================\r
-    change auth key without disturbing session state (delayed)               SKIP\r
-    change auth key without disturbing session state (immediate)             SKIP\r
-    turn auth off without disturbing session state (delayed)                 SKIP\r
-    turn auth off without disturbing session state (immediate)               SKIP\r
-    turn auth on without disturbing session state (delayed)                  SKIP\r
-    turn auth on without disturbing session state (immediate)                SKIP\r
-\r
-BFD CLI\r
-````````\r
-::\r
-\r
-    ==============================================================================\r
-    Bidirectional Forwarding Detection (BFD) (CLI)\r
-    ==============================================================================\r
-    create/modify/delete IPv4 BFD UDP session                                SKIP\r
-    create/modify/delete IPv6 BFD UDP session                                SKIP\r
-    create/modify/delete IPv6 BFD UDP session (authenticated)                SKIP\r
-    create/modify/delete IPv4 BFD UDP session (authenticated)                SKIP\r
-    put session admin-up and admin-down                                      SKIP\r
-    turn authentication on and off                                           SKIP\r
-    turn authentication on and off (delayed)                                 SKIP\r
-    set/delete meticulous SHA1 auth key                                      SKIP\r
-    set/delete SHA1 auth key                                                 SKIP\r
-    set/del udp echo source                                                  SKIP\r
-    show commands                                                            SKIP\r
-\r
-BFD IPv4\r
-````````\r
-::\r
-\r
-    ==============================================================================\r
-    Bidirectional Forwarding Detection (BFD)\r
-    ==============================================================================\r
-    put session admin-up and admin-down                                      SKIP\r
-    configuration change while peer in demand mode                           SKIP\r
-    verify session goes down after inactivity                                SKIP\r
-    echo function                                                            SKIP\r
-    session goes down if echo function fails                                 SKIP\r
-    echo packets looped back                                                 SKIP\r
-    echo function stops if echo source is removed                            SKIP\r
-    echo function stops if peer sets required min echo rx zero               SKIP\r
-    hold BFD session up                                                      SKIP\r
-    immediately honor remote required min rx reduction                       SKIP\r
-    interface with bfd session deleted                                       SKIP\r
-    echo packets with invalid checksum don't keep a session up               SKIP\r
-    large remote required min rx interval                                    SKIP\r
-    modify detect multiplier                                                 SKIP\r
-    modify session - double required min rx                                  SKIP\r
-    modify session - halve required min rx                                   SKIP\r
-    no periodic frames outside poll sequence if remote demand set            SKIP\r
-    test correct response to control frame with poll bit set                 SKIP\r
-    test poll sequence queueing                                              SKIP\r
-    bring BFD session down                                                   SKIP\r
-    bring BFD session up                                                     SKIP\r
-    bring BFD session up - first frame looked up by address pair             SKIP\r
-    verify slow periodic control frames while session down                   SKIP\r
-    stale echo packets don't keep a session up                               SKIP\r
-    no packets when zero remote required min rx interval                     SKIP\r
-\r
-BFD IPv6\r
-````````\r
-::\r
-\r
-    ==============================================================================\r
-    Bidirectional Forwarding Detection (BFD) (IPv6)\r
-    ==============================================================================\r
-    echo function used                                                       SKIP\r
-    echo packets looped back                                                 SKIP\r
-    hold BFD session up                                                      SKIP\r
-    interface with bfd session deleted                                       SKIP\r
-    bring BFD session up                                                     SKIP\r
-    bring BFD session up - first frame looked up by address pair             SKIP\r
-\r
-    ==============================================================================\r
-    BFD-FIB interactions (IPv6)\r
-    ==============================================================================\r
-    BFD-FIB interactions                                                     SKIP\r
-\r
-BIER - Bit Indexed Explicit Replication\r
-```````````````````````````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    BIER Test Case\r
-    ==============================================================================\r
-    BIER end-to-end                                                          OK\r
-    BIER head                                                                OK\r
-    BIER head over UDP                                                       OK\r
-    BIER midpoint                                                            OK\r
-    BIER Tail                                                                OK\r
-    BIER Tail over UDP                                                       OK\r
-\r
-    ==============================================================================\r
-    BIER FIB Test Case\r
-    ==============================================================================\r
-    BFIB Unit Tests                                                          OK\r
-\r
-Classifier\r
-``````````\r
-::\r
-\r
-    ==============================================================================\r
-    Classifier Test Case\r
-    ==============================================================================\r
-    IP ACL test                                                              OK\r
-    MAC ACL test                                                             OK\r
-    IP PBR test                                                              OK\r
-\r
-Container Integration\r
-`````````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    Container integration extended testcases\r
-    ==============================================================================\r
-    IPv4 basic connectivity test                                             SKIP\r
-    IPv6 basic connectivity test                                             SKIP\r
-    Create loopbacks overlapping with remote addresses                       SKIP\r
-    IPv4 local-spoof connectivity test                                       SKIP\r
-    IPv6 local-spoof connectivity test                                       SKIP\r
-    Configure container commands                                             SKIP\r
-    IPv4 test after configuring container                                    SKIP\r
-    IPv6 test after configuring container                                    SKIP\r
-    Unconfigure container commands                                           SKIP\r
-    IPv4 local-spoof after unconfig test                                     SKIP\r
-    IPv6 local-spoof after unconfig test                                     SKIP\r
-\r
-CRUD Loopback\r
-`````````````\r
-::\r
-\r
-    ==============================================================================\r
-    CRUD Loopback\r
-    ==============================================================================\r
-    test_crud (test_interface_crud.TestLoopbackInterfaceCRUD)                OK\r
-    test_down (test_interface_crud.TestLoopbackInterfaceCRUD)                OK\r
-\r
-DHCP\r
-````\r
-::\r
-\r
-    ==============================================================================\r
-    DHCP Test Case\r
-    ==============================================================================\r
-    DHCPv6 Proxy                                                             OK\r
-    DHCP Client                                                              OK\r
-    DHCPv4 Proxy                                                             OK\r
-\r
-Distributed Virtual Router\r
-``````````````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    Distributed Virtual Router\r
-    ==============================================================================\r
-    Distributed Virtual Router                                               OK\r
-    L2 Emulation                                                             OK\r
-\r
-DS-Lite Softwire\r
-````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    DS-Lite Test Cases\r
-    ==============================================================================\r
-    Test DS-Lite                                                             OK\r
-\r
-FIB\r
-```\r
-::\r
-\r
-    ==============================================================================\r
-    FIB Test Case\r
-    ==============================================================================\r
-    FIB Unit Tests                                                           OK\r
-\r
-Flowprobe\r
-`````````\r
-::\r
-\r
-    ==============================================================================\r
-    Re-enable Flowprobe feature\r
-    ==============================================================================\r
-    disable flowprobe feature after first packets and re-enable              SKIP\r
-\r
-    ==============================================================================\r
-    collect information on Ethernet, IP4 and IP6 datapath (no timers)\r
-    ==============================================================================\r
-    no timers, one CFLOW packet, 9 Flows inside                              OK\r
-    no timers, two CFLOW packets (mtu=256), 3 Flows in each                  OK\r
-    L2 data on IP4 datapath                                                  OK\r
-    L2 data on IP6 datapath                                                  OK\r
-    L2 data on L2 datapath                                                   OK\r
-    L3 data on IP4 datapath                                                  OK\r
-    L3 data on IP6 datapath                                                  OK\r
-    L3 data on L2 datapath                                                   OK\r
-    L4 data on IP4 datapath                                                  OK\r
-    L4 data on IP6 datapath                                                  OK\r
-    L4 data on L2 datapath                                                   OK\r
-    verify templates on IP6 datapath                                         OK\r
-    verify templates on IP4 datapath                                         OK\r
-    verify template on L2 datapath                                           OK\r
-\r
-    ==============================================================================\r
-    Disable Flowprobe feature\r
-    ==============================================================================\r
-    disable flowprobe feature after first packets                            SKIP\r
-\r
-    ==============================================================================\r
-    Re-enable IPFIX\r
-    ==============================================================================\r
-    disable IPFIX after first packets and re-enable after few packets        SKIP\r
-\r
-    ==============================================================================\r
-    Disable IPFIX\r
-    ==============================================================================\r
-    disable IPFIX after first packets                                        SKIP\r
-\r
-Geneve Tunnels\r
-``````````````\r
-::\r
-\r
-    ==============================================================================\r
-    GENEVE Test Case\r
-    ==============================================================================\r
-    Decapsulation test                                                       OK\r
-    Encapsulation test                                                       OK\r
-    Multicast flood test                                                     OK\r
-    Multicast receive test                                                   OK\r
-    Unicast flood test                                                       OK\r
-\r
-GRE Tunnels\r
-```````````\r
-::\r
-\r
-    ==============================================================================\r
-    GRE Test Case\r
-    ==============================================================================\r
-    GRE IPv4 tunnel Tests                                                    OK\r
-    GRE IPv6 tunnel Tests                                                    OK\r
-    GRE tunnel L2 Tests                                                      OK\r
-    GRE tunnel VRF Tests                                                     OK\r
-\r
-GTPU Tunnels\r
-````````````\r
-::\r
-\r
-    ==============================================================================\r
-    GTPU Test Case\r
-    ==============================================================================\r
-    Decapsulation test                                                       OK\r
-    Encapsulation test                                                       OK\r
-    Multicast flood test                                                     OK\r
-    Multicast receive test                                                   OK\r
-    Unicast flood test                                                       OK\r
-\r
-IP Multicast Routing\r
-````````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    IP Multicast Test Case\r
-    ==============================================================================\r
-    IP Multicast Bi-directional                                              OK\r
-    IPv6 Multicast Replication                                               OK\r
-    IPv6 Multicast Replication in non-default table                          OK\r
-    IP Multicast Replication                                                 OK\r
-    IP Multicast Connected Source check                                      OK\r
-    IP Multicast Signal                                                      OK\r
-    IP Multicast Replication in non-default table                            OK\r
-\r
-IPSec\r
-`````\r
-::\r
-\r
-    ==============================================================================\r
-    Basic test for IPSEC using AH transport and Tunnel mode\r
-    ==============================================================================\r
-    ipsec ah v4 transport basic test                                         OK\r
-    ipsec ah v4 transport burst test                                         OK\r
-    ipsec ah 4o4 tunnel basic test                                           OK\r
-    ipsec ah 4o4 tunnel burst test                                           OK\r
-\r
-    ==============================================================================\r
-    Basic test for ipsec esp sanity - tunnel and transport modes.\r
-    ==============================================================================\r
-    ipsec esp v4 transport basic test                                        OK\r
-    ipsec esp v4 transport burst test                                        OK\r
-    ipsec esp 4o4 tunnel basic test                                          OK\r
-    ipsec esp 4o4 tunnel burst test                                          OK\r
-\r
-IPv4 FIB CRUD\r
-`````````````\r
-::\r
-\r
-    ==============================================================================\r
-    FIB - add/update/delete - ip4 routes\r
-    ==============================================================================\r
-    Add 1k routes                                                            OK\r
-    Delete 100 routes                                                        OK\r
-    Add 1k routes                                                            OK\r
-    Delete 1.5k routes                                                       OK\r
-\r
-IPv4 Routing\r
-````````````\r
-::\r
-\r
-    ==============================================================================\r
-    IPv4 Test Case\r
-    ==============================================================================\r
-    IPv4 FIB test                                                            OK\r
-\r
-    ==============================================================================\r
-    IPv4 routes via NULL\r
-    ==============================================================================\r
-    IP NULL route                                                            OK\r
-\r
-    ==============================================================================\r
-    IPv4 disabled\r
-    ==============================================================================\r
-    IP Disabled                                                              OK\r
-\r
-    ==============================================================================\r
-    IPv4 Subnets\r
-    ==============================================================================\r
-    IP Sub Nets                                                              OK\r
-\r
-    ==============================================================================\r
-    IPv4 VLAN-0\r
-    ==============================================================================\r
-    IP VLAN-0                                                                OK\r
-\r
-    ==============================================================================\r
-    IPv4 Load-Balancing\r
-    ==============================================================================\r
-    IP Load-Balancing                                                        OK\r
-\r
-    ==============================================================================\r
-    IPv4 Deaggregate Routes\r
-    ==============================================================================\r
-    IP Deag Routes                                                           OK\r
-\r
-    ==============================================================================\r
-    IPv4 Input Exceptions\r
-    ==============================================================================\r
-    IP Input Exceptions                                                      OK\r
-\r
-    ==============================================================================\r
-    IPv4 Punt Police/Redirect\r
-    ==============================================================================\r
-    IP punt police and redirect                                              OK\r
-\r
-IPv4 VRF Multi-instance\r
-```````````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    IP4 VRF  Multi-instance Test Case\r
-    ==============================================================================\r
-    IP4 VRF  Multi-instance test 1 - create 5 BDs                            OK\r
-    IP4 VRF  Multi-instance test 2 - delete 2 VRFs                           OK\r
-    IP4 VRF  Multi-instance 3 - add 2 VRFs                                   OK\r
-    IP4 VRF  Multi-instance test 4 - delete 4 VRFs                           OK\r
-\r
-IPv6 Routing\r
-````````````\r
-::\r
-\r
-    ==============================================================================\r
-    IPv6 Test Case\r
-    ==============================================================================\r
-    IPv6 FIB test                                                            OK\r
-    IPv6 Neighbour Solicitation Exceptions                                   OK\r
-    ND Duplicates                                                            OK\r
-    IPv6 Router Solicitation Exceptions                                      OK\r
-\r
-    ==============================================================================\r
-    IPv6 Punt Police/Redirect\r
-    ==============================================================================\r
-    IP6 punt police and redirect                                             OK\r
-\r
-    ==============================================================================\r
-    IPv6 disabled\r
-    ==============================================================================\r
-    IP Disabled                                                              OK\r
-\r
-    ==============================================================================\r
-    IPv6 ND ProxyTest Case\r
-    ==============================================================================\r
-    IPv6 Proxy ND                                                            OK\r
-\r
-    ==============================================================================\r
-    IPv6 Load-Balancing\r
-    ==============================================================================\r
-    IPv6 Load-Balancing                                                      OK\r
-\r
-    ==============================================================================\r
-    IPv6 routes via NULL\r
-    ==============================================================================\r
-    IP NULL route                                                            OK\r
-\r
-    ==============================================================================\r
-    IPv6 Input Exceptions\r
-    ==============================================================================\r
-    IP6 Input Exceptions                                                     OK\r
-\r
-IPv6 VRF Multi-instance\r
-```````````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    IP6 VRF  Multi-instance Test Case\r
-    ==============================================================================\r
-    IP6 VRF  Multi-instance test 1 - create 4 VRFs                           OK\r
-    IP6 VRF  Multi-instance test 2 - reset 2 VRFs                            OK\r
-    IP6 VRF  Multi-instance 3 - add 2 VRFs                                   OK\r
-    IP6 VRF  Multi-instance test 4 - reset 4 VRFs                            OK\r
-\r
-IRB Integrated Routing-Bridging\r
-```````````````````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    IRB Test Case\r
-    ==============================================================================\r
-    IPv4 IRB test 1                                                          OK\r
-    IPv4 IRB test 2                                                          OK\r
-\r
-Kube-proxy\r
-``````````\r
-::\r
-\r
-    ==============================================================================\r
-    Kube-proxy Test Case\r
-    ==============================================================================\r
-    Kube-proxy NAT44                                                         OK\r
-    Kube-proxy NAT46                                                         SKIP\r
-    Kube-proxy NAT64                                                         SKIP\r
-    Kube-proxy NAT66                                                         SKIP\r
-\r
-L2 FIB CRUD\r
-```````````\r
-::\r
-\r
-    ==============================================================================\r
-    L2 FIB Test Case\r
-    ==============================================================================\r
-    L2 FIB - program 100 + 100 MACs                                          OK\r
-    L2 FIB - program 100 + delete 12 MACs                                    OK\r
-    L2 FIB - flush all                                                       OK\r
-    L2 FIB - flush BD                                                        OK\r
-    L2 FIB - flush interface                                                 OK\r
-    L2 FIB - mac learning events                                             OK\r
-    L2 FIB - mac learning max macs in event                                  OK\r
-    L2 FIB - program 100 MACs                                                OK\r
-    L2 FIB - Program 10 MACs, learn 10                                       OK\r
-\r
-L2BD Multi-instance\r
-```````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    L2BD Multi-instance Test Case\r
-    ==============================================================================\r
-    L2BD Multi-instance test 1 - create 5 BDs                                OK\r
-    L2BD Multi-instance test 2 - update data of 5 BDs                        OK\r
-    L2BD Multi-instance test 3 - delete 2 BDs                                OK\r
-    L2BD Multi-instance test 4 - add 2 BDs                                   OK\r
-    L2BD Multi-instance test 5 - delete 5 BDs                                SKIP\r
-\r
-L2BD Switching\r
-``````````````\r
-::\r
-\r
-    ==============================================================================\r
-    L2BD Test Case\r
-    ==============================================================================\r
-    L2BD MAC learning dual-loop test                                         OK\r
-    L2BD MAC learning single-loop test                                       OK\r
-\r
-L2XC Multi-instance\r
-```````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    L2XC Multi-instance Test Case\r
-    ==============================================================================\r
-    L2XC Multi-instance test 1 - create 10 cross-connects                    OK\r
-    L2XC Multi-instance test 2 - delete 4 cross-connects                     OK\r
-    L2BD Multi-instance 3 - add new 4 cross-connects                         OK\r
-    L2XC Multi-instance test 4 - delete 10 cross-connects                    OK\r
-\r
-L2XC Switching\r
-``````````````\r
-::\r
-\r
-    ==============================================================================\r
-    L2XC Test Case\r
-    ==============================================================================\r
-    L2XC dual-loop test                                                      OK\r
-    L2XC single-loop test                                                    OK\r
-\r
-LISP Tunnels\r
-````````````\r
-::\r
-\r
-    ==============================================================================\r
-    Basic LISP test\r
-    ==============================================================================\r
-    Test case for basic encapsulation                                        OK\r
-\r
-Load Balancer\r
-`````````````\r
-::\r
-\r
-    ==============================================================================\r
-    Load Balancer Test Case\r
-    ==============================================================================\r
-    Load Balancer IP4 GRE4                                                   OK\r
-    Load Balancer IP4 GRE6                                                   OK\r
-    Load Balancer IP6 GRE4                                                   OK\r
-    Load Balancer IP6 GRE6                                                   OK\r
-\r
-MACIP Access Control\r
-````````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    MACIP Tests\r
-    ==============================================================================\r
-    MACIP 10 ACLs each with 100+ entries                                     OK\r
-    MACIP 10 ACLs each with 100+ entries with IP4 traffic                    OK\r
-    MACIP 10 ACLs each with 100+ entries with IP6 traffic                    OK\r
-    MACIP ACL with 10 entries                                                OK\r
-    MACIP ACL with 100 entries                                               OK\r
-    MACIP ACL with 2 entries                                                 OK\r
-    MACIP ACL with 20 entries                                                OK\r
-    MACIP ACL with 5 entries                                                 OK\r
-    MACIP ACL with 50 entries                                                OK\r
-    MACIP 2 ACLs each with 100+ entries                                      OK\r
-    MACIP replace ACL                                                        OK\r
-    MACIP ACL delete intf with acl                                           OK\r
-\r
-    ==============================================================================\r
-    MACIP with IP6 traffic\r
-    ==============================================================================\r
-    IP6 MACIP exactMAC|exactIP ACL bridged traffic                           OK\r
-    IP6 MACIP exactMAC|subnetIP ACL bridged traffic                          OK\r
-    IP6 MACIP exactMAC|wildIP ACL bridged traffic                            OK\r
-    IP6 MACIP oui_MAC|exactIP ACL bridged traffic                            OK\r
-    IP6 MACIP ouiMAC|subnetIP ACL bridged traffic                            OK\r
-    IP6 MACIP ouiMAC|wildIP ACL bridged traffic                              OK\r
-    IP6 MACIP wildcardMAC|exactIP ACL bridged traffic                        OK\r
-    IP6 MACIP wildcardMAC|subnetIP ACL bridged traffic                       OK\r
-    IP6 MACIP wildcardMAC|wildIP ACL bridged traffic                         OK\r
-    MACIP replace ACL with IP6 traffic                                       OK\r
-    IP6 MACIP exactMAC|exactIP ACL routed traffic                            OK\r
-    IP6 MACIP exactMAC|subnetIP ACL routed traffic                           OK\r
-    IP6 MACIP exactMAC|wildIP ACL routed traffic                             OK\r
-    IP6 MACIP ouiMAC|exactIP ACL routed traffic                              OK\r
-    IP6 MACIP ouiMAC|subnetIP ACL routed traffic                             OK\r
-    IP6 MACIP ouiMAC|wildIP ACL routed traffic                               OK\r
-    IP6 MACIP wildcardMAC|exactIP ACL routed traffic                         OK\r
-    IP6 MACIP wildcardMAC|subnetIP ACL routed traffic                        OK\r
-    IP6 MACIP wildcardMAC|wildIP ACL                                         OK\r
-\r
-    ==============================================================================\r
-    MACIP with IP4 traffic\r
-    ==============================================================================\r
-    IP4 MACIP wildcardMAC|exactIP ACL bridged traffic                        OK\r
-    IP4 MACIP exactMAC|exactIP ACL bridged traffic                           OK\r
-    IP4 MACIP exactMAC|subnetIP ACL bridged traffic                          OK\r
-    IP4 MACIP exactMAC|wildIP ACL bridged traffic                            OK\r
-    IP4 MACIP ouiMAC|exactIP ACL bridged traffic                             OK\r
-    IP4 MACIP ouiMAC|subnetIP ACL bridged traffic                            OK\r
-    IP4 MACIP ouiMAC|wildIP ACL bridged traffic                              OK\r
-    IP4 MACIP wildcardMAC|subnetIP ACL bridged traffic                       OK\r
-    IP4 MACIP wildcardMAC|wildIP ACL bridged traffic                         OK\r
-    MACIP replace ACL with IP4 traffic                                       OK\r
-    IP4 MACIP exactMAC|exactIP ACL routed traffic                            OK\r
-    IP4 MACIP exactMAC|subnetIP ACL routed traffic                           OK\r
-    IP4 MACIP exactMAC|wildIP ACL routed traffic                             OK\r
-    IP4 MACIP ouiMAC|exactIP ACL routed traffic                              OK\r
-    IP4 MACIP ouiMAC|subnetIP ACL routed traffic                             OK\r
-    IP4 MACIP ouiMAC|wildIP ACL routed traffic                               OK\r
-    IP4 MACIP wildcardMAC|exactIP ACL routed traffic                         OK\r
-    IP4 MACIP wildcardMAC|subnetIP ACL routed traffic                        OK\r
-    IP4 MACIP wildcardMAC|wildIP ACL                                         OK\r
-\r
-MAP Softwires\r
-`````````````\r
-::\r
-\r
-    ==============================================================================\r
-    MAP Test Case\r
-    ==============================================================================\r
-    MAP-E                                                                    OK\r
-\r
-MFIB Multicast FIB\r
-``````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    MFIB Test Case\r
-    ==============================================================================\r
-    MFIB Unit Tests                                                          OK\r
-\r
-MPLS Switching\r
-``````````````\r
-::\r
-\r
-    ==============================================================================\r
-    MPLS-L2\r
-    ==============================================================================\r
-    Virtual Private LAN Service                                              OK\r
-    Virtual Private Wire Service                                             OK\r
-\r
-    ==============================================================================\r
-    MPLS Test Case\r
-    ==============================================================================\r
-    MPLS Local Label Binding test                                            OK\r
-    MPLS Deagg                                                               OK\r
-    MPLS label imposition test                                               OK\r
-    MPLS Interface Receive                                                   OK\r
-    MPLS Multicast Head-end                                                  OK\r
-    MPLS IPv4 Multicast Tail                                                 OK\r
-    MPLS IPv6 Multicast Tail                                                 OK\r
-    MPLS Multicast Mid Point                                                 OK\r
-    MPLS label swap tests                                                    OK\r
-    MPLS Tunnel Tests                                                        OK\r
-    MPLS V4 Explicit NULL test                                               OK\r
-    MPLS V6 Explicit NULL test                                               OK\r
-\r
-    ==============================================================================\r
-    MPLS PIC edge convergence\r
-    ==============================================================================\r
-    MPLS eBGP PIC edge convergence                                           OK\r
-    MPLS iBGP PIC edge convergence                                           OK\r
-    MPLSv6 eBGP PIC edge convergence                                         OK\r
-\r
-    ==============================================================================\r
-    MPLS disabled\r
-    ==============================================================================\r
-    MPLS Disabled                                                            OK\r
-\r
-NAT44\r
-`````\r
-::\r
-\r
-    ==============================================================================\r
-    NAT44 Test Cases\r
-    ==============================================================================\r
-    Delete NAT44 session                                                     OK\r
-    NAT44 dynamic translation test                                           OK\r
-    NAT44 handling of client packets with TTL=1                              OK\r
-    NAT44 handling of error responses to client packets with TTL=2           OK\r
-    NAT44 handling of server packets with TTL=1                              OK\r
-    NAT44 handling of error responses to server packets with TTL=2           OK\r
-    NAT44 interfaces without configured IP address                           OK\r
-    NAT44 forwarding test                                                    OK\r
-    NAT44 translate fragments arriving in order                              OK\r
-    NAT44 translate fragments arriving out of order                          OK\r
-    NAT44 hairpinning - 1:1 NAPT                                             OK\r
-    NAT44 hairpinning - 1:1 NAT                                              OK\r
-    1:1 NAT translate packet with unknown protocol - hairpinning             OK\r
-    NAT44 translate packet with unknown protocol - hairpinning               OK\r
-    Identity NAT                                                             OK\r
-    NAT44 multiple inside interfaces with overlapping address space          OK\r
-    Acquire NAT44 addresses from interface                                   OK\r
-    Identity NAT with addresses from interface                               OK\r
-    Static mapping with addresses from interface                             OK\r
-    IPFIX logging NAT addresses exhausted                                    OK\r
-    IPFIX logging NAT44 session created/delted                               OK\r
-    MAX translations per user - recycle the least recently used              OK\r
-    NAT44 multiple non-overlapping address space inside interfaces           OK\r
-    One armed NAT44                                                          OK\r
-    NAT44 interface output feature (in2out postrouting)                      OK\r
-    NAT44 interface output feature hairpinning (in2out postrouting)          OK\r
-    NAT44 interface output feature VRF aware (in2out postrouting)            OK\r
-    Ping internal host from outside network                                  OK\r
-    Ping NAT44 out interface from outside network                            OK\r
-    NAT44 add pool addresses to FIB                                          OK\r
-    Port restricted NAT44 (MAP-E CE)                                         OK\r
-    NAT44 fragments hairpinning                                              OK\r
-    NAT44 set/get virtual fragmentation reassembly                           OK\r
-    1:1 NAT initialized from inside network                                  OK\r
-    NAT44 interfaces without configured IP address - 1:1 NAT                 OK\r
-    NAT44 local service load balancing                                       OK\r
-    1:1 NAT initialized from outside network                                 OK\r
-    1:1 NAT translate packet with unknown protocol                           OK\r
-    1:1 NAT VRF awareness                                                    OK\r
-    1:1 NAPT initialized from inside network                                 OK\r
-    NAT44 interfaces without configured IP address - 1:1 NAPT                OK\r
-    1:1 NAPT initialized from outside network                                OK\r
-    Twice NAT44                                                              OK\r
-    Acquire twice NAT44 addresses from interface                             OK\r
-    Twice NAT44 local service load balancing                                 OK\r
-    NAT44 translate packet with unknown protocol                             OK\r
-    NAT44 tenant VRF independent address pool mode                           OK\r
-    NAT44 tenant VRF aware address pool mode                                 OK\r
-\r
-    ==============================================================================\r
-    Deterministic NAT Test Cases\r
-    ==============================================================================\r
-    Deterministic NAT translation test (TCP, UDP, ICMP)                      OK\r
-    NAT plugin run deterministic mode                                        OK\r
-    Deterministic NAT multiple users                                         OK\r
-    Deterministic NAT maximum sessions per user limit                        SKIP\r
-    Deterministic NAT session timeouts                                       SKIP\r
-    Set deterministic NAT timeouts                                           OK\r
-    Deterministic NAT TCP session close from inside network                  OK\r
-    Deterministic NAT TCP session close from outside network                 OK\r
-\r
-NAT64\r
-`````\r
-::\r
-\r
-    ==============================================================================\r
-    NAT64 Test Cases\r
-    ==============================================================================\r
-    NAT64 dynamic translation test                                           OK\r
-    NAT64 translate fragments arriving in order                              OK\r
-    NAT64 translate fragments arriving out of order                          OK\r
-    NAT64 hairpinning                                                        OK\r
-    NAT64 translate packet with unknown protocol - hairpinning               OK\r
-    NAT64 ICMP Error message translation                                     OK\r
-    Enable/disable NAT64 feature on the interface                            OK\r
-    Acquire NAT64 pool addresses from interface                              OK\r
-    One armed NAT64                                                          OK\r
-    Add/delete address to NAT64 pool                                         OK\r
-    NAT64 Network-Specific Prefix                                            OK\r
-    NAT64 fragments hairpinning                                              OK\r
-    NAT64 session timeout                                                    SKIP\r
-    Set NAT64 timeouts                                                       OK\r
-    NAT64 static translation test                                            OK\r
-    Add/delete static BIB entry                                              OK\r
-    NAT64 translate packet with unknown protocol                             OK\r
-\r
-P2P Ethernet Subinterface\r
-`````````````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    P2P Ethernet tests\r
-    ==============================================================================\r
-    delete/create p2p subif                                                  OK\r
-    create 1k of p2p subifs                                                  OK\r
-\r
-    ==============================================================================\r
-    P2P Ethernet IPv4 tests\r
-    ==============================================================================\r
-    receive ipv4 packet via p2p subinterface                                 OK\r
-    route rx packet not matching p2p subinterface                            OK\r
-    send ip4 packet via p2p subinterface                                     OK\r
-    drop tx ip4 packet not matching p2p subinterface                         OK\r
-\r
-    ==============================================================================\r
-    P2P Ethernet IPv6 tests\r
-    ==============================================================================\r
-    receive ipv6 packet via p2p subinterface                                 OK\r
-    drop rx packet not matching p2p subinterface                             OK\r
-    route rx ip6 packet not matching p2p subinterface                        OK\r
-    send packet via p2p subinterface                                         OK\r
-    drop tx ip6 packet not matching p2p subinterface                         OK\r
-    standard routing without p2p subinterfaces                               OK\r
-\r
-PPPoE Encapsulation\r
-```````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    PPPoE Test Case\r
-    ==============================================================================\r
-    PPPoE Add Same Session Twice Test                                        OK\r
-    PPPoE Decap Test                                                         OK\r
-    PPPoE Decap Multiple Sessions Test                                       OK\r
-    PPPoE Delete Same Session Twice Test                                     OK\r
-    PPPoE Encap Test                                                         OK\r
-    PPPoE Encap Multiple Sessions Test                                       OK\r
-\r
-SPAN Switch Port Analyzer\r
-`````````````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    SPAN Test Case\r
-    ==============================================================================\r
-    SPAN device rx mirror                                                    OK\r
-    SPAN l2 broadcast mirror                                                 OK\r
-    SPAN l2 rx tx mirror                                                     OK\r
-    SPAN l2 tx mirror                                                        OK\r
-    SPAN l2 rx mirror                                                        OK\r
-    SPAN l2 rx mirror into 1ad subif+vtr                                     OK\r
-    SPAN l2 rx mirror into 1q subif+vtr                                      OK\r
-    SPAN l2 rx mirror into gre-subif+vtr                                     OK\r
-    SPAN l2 rx mirror into vxlan                                             OK\r
-\r
-SRv6 Routing\r
-````````````\r
-::\r
-\r
-    ==============================================================================\r
-    SRv6 Test Case\r
-    ==============================================================================\r
-    Test SRv6 End (without PSP) behavior.                                    OK\r
-    Test SRv6 End.DT4 behavior.                                              OK\r
-    Test SRv6 End.DT6 behavior.                                              OK\r
-    Test SRv6 End.DX2 behavior.                                              OK\r
-    Test SRv6 End.DX4 behavior.                                              OK\r
-    Test SRv6 End.DX6 behavior.                                              OK\r
-    Test SRv6 End.X (without PSP) behavior.                                  OK\r
-    Test SRv6 End.X with PSP behavior.                                       OK\r
-    Test SRv6 End with PSP behavior.                                         OK\r
-    Test SRv6 Transit.Encaps behavior for IPv6.                              OK\r
-    Test SRv6 Transit.Encaps behavior for IPv4.                              OK\r
-    Test SRv6 Transit.Encaps behavior for L2.                                SKIP\r
-    Test SRv6 Transit.Insert behavior (IPv6 only).                           OK\r
-    Test SRv6 Transit.Insert behavior (IPv6 only).                           OK\r
-\r
-TCP/IP Stack\r
-````````````\r
-::\r
-\r
-    ==============================================================================\r
-    TCP Test Case\r
-    ==============================================================================\r
-    TCP builtin client/server transfer                                       OK\r
-    TCP Unit Tests                                                           OK\r
-\r
-UDP Stack\r
-`````````\r
-::\r
-\r
-    ==============================================================================\r
-    UDP Encap Test Case\r
-    ==============================================================================\r
-    UDP Encap test                                                           OK\r
-\r
-VTR VLAN Tag Rewrites\r
-`````````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    VTR Test Case\r
-    ==============================================================================\r
-    1AD VTR pop 1 test                                                       OK\r
-    1AD VTR pop 2 test                                                       OK\r
-    1AD VTR push 1 1AD test                                                  OK\r
-    1AD VTR push 1 1Q test                                                   OK\r
-    1AD VTR push 2 1AD test                                                  OK\r
-    1AD VTR push 2 1Q test                                                   OK\r
-    1AD VTR translate 1 -> 1 1AD test                                        OK\r
-    1AD VTR translate 1 -> 1 1Q test                                         OK\r
-    1AD VTR translate 1 -> 2 1AD test                                        OK\r
-    1AD VTR translate 1 -> 2 1Q test                                         OK\r
-    1AD VTR translate 2 -> 1 1AD test                                        OK\r
-    1AD VTR translate 2 -> 1 1Q test                                         OK\r
-    1AD VTR translate 2 -> 2 1AD test                                        OK\r
-    1AD VTR translate 2 -> 2 1Q test                                         OK\r
-    1Q VTR pop 1 test                                                        OK\r
-    1Q VTR push 1 test                                                       OK\r
-    1Q VTR push 2 test                                                       OK\r
-    1Q VTR translate 1 -> 1 test                                             OK\r
-    1Q VTR translate 1 -> 2 test                                             OK\r
-\r
-VXLAN Tunnels\r
-`````````````\r
-::\r
-\r
-    ==============================================================================\r
-    VXLAN Test Case\r
-    ==============================================================================\r
-    Decapsulation test                                                       OK\r
-    Encapsulation test                                                       OK\r
-    Multicast flood test                                                     OK\r
-    Multicast receive test                                                   OK\r
-    Unicast flood test                                                       OK\r
-\r
-VXLAN-GPE Tunnels\r
-`````````````````\r
-::\r
-\r
-    ==============================================================================\r
-    VXLAN-GPE Test Case\r
-    ==============================================================================\r
-    Decapsulation test                                                       SKIP\r
-    Encapsulation test                                                       SKIP\r
-    Multicast flood test                                                     SKIP\r
-    Multicast receive test                                                   SKIP\r
-    Unicast flood test                                                       SKIP\r
-\r
-Other Tests\r
-```````````\r
-::\r
-\r
-    ==============================================================================\r
-    Ping Test Case\r
-    ==============================================================================\r
-    basic ping test                                                          OK\r
-    burst ping test                                                          OK\r
-\r
-    ==============================================================================\r
-    Session Test Case\r
-    ==============================================================================\r
-    Session Unit Tests                                                       OK\r
-\r
-    ==============================================================================\r
-    Template verification, timer tests\r
-    ==============================================================================\r
-    timer less than template timeout                                         OK\r
-    timer greater than template timeout                                      OK\r
-    verify cflow packet fields                                               OK\r
-\r
+ACL Security Groups
+```````````````````
+::
+
+    ==============================================================================
+    ACL plugin Test Case
+    ==============================================================================
+    ACL plugin version check; learn MACs                                     OK
+    ACL create/delete test                                                   OK
+    permit ACL apply test                                                    OK
+    deny ACL apply test                                                      OK
+    VPP_624 permit ICMPv4                                                    OK
+    VPP_624 permit ICMPv6                                                    OK
+    VPP_624 deny ICMPv4                                                      OK
+    VPP_624 deny ICMPv6                                                      OK
+    permit TCPv4                                                             OK
+    permit TCPv6                                                             OK
+    permit UDPv4                                                             OK
+    permit UDPv6                                                             OK
+    deny TCPv4/v6                                                            OK
+    deny UDPv4/v6                                                            OK
+    verify add/dump acls                                                     OK
+    permit single TCPv4                                                      OK
+    permit single UDPv4                                                      OK
+    permit single TCPv6                                                      OK
+    permit single UPPv6                                                      OK
+    deny single TCPv4/v6                                                     OK
+    deny single UDPv4/v6                                                     OK
+    deny single UDPv4/v6, permit ip any, verify non-initial fragment blocked OK
+    VPP-687 zero length udp ipv4 packet                                      OK
+    VPP-687 zero length udp ipv6 packet                                      OK
+    permit TCPv4 + non-match range                                           OK
+    permit TCPv6 + non-match range                                           OK
+    permit UDPv4 + non-match range                                           OK
+    permit UDPv6 + non-match range                                           OK
+    deny TCPv4/v6 + non-match range                                          OK
+    deny UDPv4/v6 + non-match range                                          OK
+
+    ==============================================================================
+    IRB Test Case
+    ==============================================================================
+    ACL plugin prepare                                                       OK
+    ACL IPv6 routed -> bridged, L2 ACL deny                                  OK
+    ACL IPv6 routed -> bridged, L3 ACL deny                                  OK
+    ACL IPv4 routed -> bridged, L2 ACL deny                                  OK
+    ACL IPv4 routed -> bridged, L3 ACL deny                                  OK
+    ACL IPv6 bridged -> routed, L2 ACL deny                                  OK
+    ACL IPv6 bridged -> routed, L3 ACL deny                                  OK
+    ACL IPv4 bridged -> routed, L2 ACL deny                                  OK
+    ACL IPv4 bridged -> routed, L3 ACL deny                                  OK
+    ACL IPv6 routed -> bridged, L2 ACL permit+reflect                        OK
+    ACL IPv6 bridged -> routed, L2 ACL permit+reflect                        OK
+    ACL IPv4 routed -> bridged, L2 ACL permit+reflect                        OK
+    ACL IPv4 bridged -> routed, L2 ACL permit+reflect                        OK
+    ACL IPv6 routed -> bridged, L3 ACL permit+reflect                        OK
+    ACL IPv6 bridged -> routed, L3 ACL permit+reflect                        OK
+    ACL IPv4 routed -> bridged, L3 ACL permit+reflect                        OK
+    ACL IPv4 bridged -> routed, L3 ACL permit+reflect                        OK
+    ACL IPv6+EH routed -> bridged, L2 ACL deny                               OK
+    ACL IPv6+EH routed -> bridged, L3 ACL deny                               OK
+    ACL IPv6+EH bridged -> routed, L2 ACL deny                               OK
+    ACL IPv6+EH bridged -> routed, L3 ACL deny                               OK
+    ACL IPv6+EH routed -> bridged, L2 ACL permit+reflect                     OK
+    ACL IPv6+EH bridged -> routed, L2 ACL permit+reflect                     OK
+    ACL IPv6+EH routed -> bridged, L3 ACL permit+reflect                     OK
+    ACL IPv6+EH bridged -> routed, L3 ACL permit+reflect                     OK
+    ACL IPv4+MF routed -> bridged, L2 ACL deny                               OK
+    ACL IPv4+MF routed -> bridged, L3 ACL deny                               OK
+    ACL IPv4+MF bridged -> routed, L2 ACL deny                               OK
+    ACL IPv4+MF bridged -> routed, L3 ACL deny                               OK
+    ACL IPv4+MF routed -> bridged, L2 ACL permit+reflect                     OK
+    ACL IPv4+MF bridged -> routed, L2 ACL permit+reflect                     OK
+    ACL IPv4+MF routed -> bridged, L3 ACL permit+reflect                     OK
+    ACL IPv4+MF bridged -> routed, L3 ACL permit+reflect                     OK
+
+    ==============================================================================
+    ACL plugin connection-oriented extended testcases
+    ==============================================================================
+    Prepare the settings                                                     SKIP
+    IPv4: Basic conn timeout test reflect on ingress                         SKIP
+    IPv4: Basic conn timeout test reflect on egress                          SKIP
+    IPv4: reflect egress, clear conn                                         SKIP
+    IPv4: reflect ingress, clear conn                                        SKIP
+    IPv4: Idle conn behind active conn, reflect on ingress                   SKIP
+    IPv4: Idle conn behind active conn, reflect on egress                    SKIP
+    IPv6: Basic conn timeout test reflect on ingress                         SKIP
+    IPv6: Basic conn timeout test reflect on egress                          SKIP
+    IPv6: reflect egress, clear conn                                         SKIP
+    IPv6: reflect ingress, clear conn                                        SKIP
+    IPv6: Idle conn behind active conn, reflect on ingress                   SKIP
+    IPv6: Idle conn behind active conn, reflect on egress                    SKIP
+    Prepare for TCP session tests                                            SKIP
+    IPv4: transient TCP session (incomplete 3WHS), ref. on ingress           SKIP
+    IPv4: transient TCP session (incomplete 3WHS), ref. on egress            SKIP
+    IPv4: established TCP session (complete 3WHS), ref. on ingress           SKIP
+    IPv4: established TCP session (complete 3WHS), ref. on egress            SKIP
+    IPv4: transient TCP session (3WHS,ACK,FINACK), ref. on ingress           SKIP
+    IPv4: transient TCP session (3WHS,ACK,FINACK), ref. on egress            SKIP
+    IPv6: transient TCP session (incomplete 3WHS), ref. on ingress           SKIP
+    IPv6: transient TCP session (incomplete 3WHS), ref. on egress            SKIP
+    IPv6: established TCP session (complete 3WHS), ref. on ingress           SKIP
+    IPv6: established TCP session (complete 3WHS), ref. on egress            SKIP
+    IPv6: transient TCP session (3WHS,ACK,FINACK), ref. on ingress           SKIP
+    IPv6: transient TCP session (3WHS,ACK,FINACK), ref. on egress            SKIP
+
+    ==============================================================================
+    ACL on dot1q bridged subinterfaces Tests
+    ==============================================================================
+    IP4 ACL SubIf Dot1Q bridged traffic                                      OK
+    IP6 ACL SubIf Dot1Q bridged traffic                                      OK
+
+    ==============================================================================
+    ACL on dot1ad bridged subinterfaces Tests
+    ==============================================================================
+    IP4 ACL SubIf Dot1AD bridged traffic                                     OK
+    IP6 ACL SubIf Dot1AD bridged traffic                                     OK
+
+    ==============================================================================
+    ACL on dot1ad routed subinterfaces Tests
+    ==============================================================================
+    IP4 ACL SubIf Dot1AD routed traffic                                      OK
+    IP4 ACL SubIf wrong tags Dot1AD routed traffic                           OK
+    IP6 ACL SubIf Dot1AD routed traffic                                      OK
+    IP6 ACL SubIf wrong tags Dot1AD routed traffic                           OK
+
+    ==============================================================================
+    ACL on dot1q routed subinterfaces Tests
+    ==============================================================================
+    IP4 ACL SubIf Dot1Q routed traffic                                       OK
+    IP4 ACL SubIf wrong tags Dot1Q routed traffic                            OK
+    IP6 ACL SubIf Dot1Q routed traffic                                       OK
+    IP6 ACL SubIf wrong tags Dot1Q routed traffic                            OK
+
+APIs
+````
+::
+
+    ==============================================================================
+    VAPI test
+    ==============================================================================
+    run C VAPI tests                                                         SKIP
+    run C++ VAPI tests                                                       SKIP
+
+    ==============================================================================
+    VPP Object Model Test
+    ==============================================================================
+    run C++ VOM tests                                                        SKIP
+
+    ==============================================================================
+    PAPI Test Case
+    ==============================================================================
+    show version                                                             OK
+    show version - invalid parameters                                        OK
+    u8 array                                                                 OK
+
+    ==============================================================================
+    PAPI Message parsing Test Case
+    ==============================================================================
+    New compound type with array                                             OK
+    Add new types                                                            OK
+    Add new types 2                                                          OK
+    Add new message object                                                   OK
+    New message with array                                                   OK
+    Argument name                                                            OK
+    VLA with aribtrary length field placement                                OK
+    Message to byte encoding                                                 OK
+    Nested array type                                                        OK
+    Old style VLA array                                                      OK
+    Old VLA compound type                                                    OK
+    Old VLA array arbitrary placement                                        OK
+    Old VLA u32                                                              OK
+    Simple array                                                             OK
+
+    ==============================================================================
+    JVPP Core Test Case
+    ==============================================================================
+    JVPP Acl Callback Api Test Case                                          OK
+    JVPP Acl Future Api Test Case                                            OK
+    JVPP Core Callback Api Test Case                                         OK
+    JVPP Core Future Api Test Case                                           OK
+    JVPP Ioamexport Callback Api Test Case                                   OK
+    JVPP Ioamexport Future Api Test Case                                     OK
+    JVPP Ioampot Callback Api Test Case                                      OK
+    JVPP Ioampot Future Api Test Case                                        OK
+    JVPP Ioamtrace Callback Api Test Case                                    OK
+    JVPP Ioamtrace Future Api Test Case                                      OK
+    JVPP Snat Callback Api Test Case                                         OK
+    JVPP Snat Future Api Test Case                                           OK
+
+ARP
+```
+::
+
+    ==============================================================================
+    ARP Test Case
+    ==============================================================================
+    ARP                                                                      OK
+    ARP Duplicates                                                           OK
+    ARP Static                                                               OK
+    ARP reply with VRRP virtual src hw addr                                  OK
+    MPLS                                                                     OK
+    Proxy ARP                                                                OK
+    Interface Mirror Proxy ARP                                               OK
+
+    ==============================================================================
+    L2BD arp termination Test Case
+    ==============================================================================
+    L2BD arp term - add 5 hosts, verify arp responses                        OK
+    L2BD arp term - delete 3 hosts, verify arp responses                     OK
+    L2BD arp term - recreate BD1, readd 3 hosts, verify arp responses        OK
+    L2BD arp term - 2 IP4 addrs per host                                     OK
+    L2BD arp term - create and update 10 IP4-mac pairs                       OK
+    L2BD arp/ND term - hosts with both ip4/ip6                               OK
+    L2BD ND term - Add and Del hosts, verify ND replies                      OK
+    L2BD ND term - Add and update IP+mac, verify ND replies                  OK
+    L2BD arp term - send garps, verify arp event reports                     OK
+    L2BD arp term - send duplicate garps, verify suppression                 OK
+    L2BD arp term - disable ip4 arp events,send garps, verify no events      OK
+    L2BD ND term - send NS packets verify reports                            OK
+    L2BD ND term - send duplicate ns, verify suppression                     OK
+    L2BD ND term - disable ip4 arp events,send ns, verify no events          OK
+
+BFD API
+````````
+::
+
+    ==============================================================================
+    Bidirectional Forwarding Detection (BFD) - API
+    ==============================================================================
+    activate SHA1 authentication                                             SKIP
+    create BFD session using non-existent SHA1 (negative case)               SKIP
+    create a BFD session                                                     SKIP
+    create IPv6 BFD session                                                  SKIP
+    create a BFD session (SHA1)                                              SKIP
+    add SHA1 keys                                                            SKIP
+    change SHA1 key                                                          SKIP
+    deactivate SHA1 authentication                                           SKIP
+    create the same BFD session twice (negative case)                        SKIP
+    create the same BFD session twice (negative case) (SHA1)                 SKIP
+    modify BFD session parameters                                            SKIP
+    share single SHA1 key between multiple BFD sessions                      SKIP
+
+BFD Authentication
+``````````````````
+::
+
+    ==============================================================================
+    Bidirectional Forwarding Detection (BFD) (SHA1 auth)
+    ==============================================================================
+    hold BFD session up                                                      SKIP
+    hold BFD session up - meticulous auth                                    SKIP
+    session is not brought down by unauthenticated msg                       SKIP
+    session is not brought down by msg with non-existent key-id              SKIP
+    session is not brought down by msg with wrong auth type                  SKIP
+    simulate remote peer restart and resynchronization                       SKIP
+    session is not kept alive by msgs with bad sequence numbers              SKIP
+    bring BFD session up                                                     SKIP
+
+BFD Authentication Change
+`````````````````````````
+::
+
+    ==============================================================================
+    Bidirectional Forwarding Detection (BFD) (changing auth)
+    ==============================================================================
+    change auth key without disturbing session state (delayed)               SKIP
+    change auth key without disturbing session state (immediate)             SKIP
+    turn auth off without disturbing session state (delayed)                 SKIP
+    turn auth off without disturbing session state (immediate)               SKIP
+    turn auth on without disturbing session state (delayed)                  SKIP
+    turn auth on without disturbing session state (immediate)                SKIP
+
+BFD CLI
+````````
+::
+
+    ==============================================================================
+    Bidirectional Forwarding Detection (BFD) (CLI)
+    ==============================================================================
+    create/modify/delete IPv4 BFD UDP session                                SKIP
+    create/modify/delete IPv6 BFD UDP session                                SKIP
+    create/modify/delete IPv6 BFD UDP session (authenticated)                SKIP
+    create/modify/delete IPv4 BFD UDP session (authenticated)                SKIP
+    put session admin-up and admin-down                                      SKIP
+    turn authentication on and off                                           SKIP
+    turn authentication on and off (delayed)                                 SKIP
+    set/delete meticulous SHA1 auth key                                      SKIP
+    set/delete SHA1 auth key                                                 SKIP
+    set/del udp echo source                                                  SKIP
+    show commands                                                            SKIP
+
+BFD IPv4
+````````
+::
+
+    ==============================================================================
+    Bidirectional Forwarding Detection (BFD)
+    ==============================================================================
+    put session admin-up and admin-down                                      SKIP
+    configuration change while peer in demand mode                           SKIP
+    verify session goes down after inactivity                                SKIP
+    echo function                                                            SKIP
+    session goes down if echo function fails                                 SKIP
+    echo packets looped back                                                 SKIP
+    echo function stops if echo source is removed                            SKIP
+    echo function stops if peer sets required min echo rx zero               SKIP
+    hold BFD session up                                                      SKIP
+    immediately honor remote required min rx reduction                       SKIP
+    interface with bfd session deleted                                       SKIP
+    echo packets with invalid checksum don't keep a session up               SKIP
+    large remote required min rx interval                                    SKIP
+    modify detect multiplier                                                 SKIP
+    modify session - double required min rx                                  SKIP
+    modify session - halve required min rx                                   SKIP
+    no periodic frames outside poll sequence if remote demand set            SKIP
+    test correct response to control frame with poll bit set                 SKIP
+    test poll sequence queueing                                              SKIP
+    bring BFD session down                                                   SKIP
+    bring BFD session up                                                     SKIP
+    bring BFD session up - first frame looked up by address pair             SKIP
+    verify slow periodic control frames while session down                   SKIP
+    stale echo packets don't keep a session up                               SKIP
+    no packets when zero remote required min rx interval                     SKIP
+
+BFD IPv6
+````````
+::
+
+    ==============================================================================
+    Bidirectional Forwarding Detection (BFD) (IPv6)
+    ==============================================================================
+    echo function used                                                       SKIP
+    echo packets looped back                                                 SKIP
+    hold BFD session up                                                      SKIP
+    interface with bfd session deleted                                       SKIP
+    bring BFD session up                                                     SKIP
+    bring BFD session up - first frame looked up by address pair             SKIP
+
+    ==============================================================================
+    BFD-FIB interactions (IPv6)
+    ==============================================================================
+    BFD-FIB interactions                                                     SKIP
+
+BIER - Bit Indexed Explicit Replication
+```````````````````````````````````````
+::
+
+    ==============================================================================
+    BIER Test Case
+    ==============================================================================
+    BIER end-to-end                                                          OK
+    BIER head                                                                OK
+    BIER head over UDP                                                       OK
+    BIER midpoint                                                            OK
+    BIER Tail                                                                OK
+    BIER Tail over UDP                                                       OK
+
+    ==============================================================================
+    BIER FIB Test Case
+    ==============================================================================
+    BFIB Unit Tests                                                          OK
+
+Classifier
+``````````
+::
+
+    ==============================================================================
+    Classifier Test Case
+    ==============================================================================
+    IP ACL test                                                              OK
+    MAC ACL test                                                             OK
+    IP PBR test                                                              OK
+
+Container Integration
+`````````````````````
+::
+
+    ==============================================================================
+    Container integration extended testcases
+    ==============================================================================
+    IPv4 basic connectivity test                                             SKIP
+    IPv6 basic connectivity test                                             SKIP
+    Create loopbacks overlapping with remote addresses                       SKIP
+    IPv4 local-spoof connectivity test                                       SKIP
+    IPv6 local-spoof connectivity test                                       SKIP
+    Configure container commands                                             SKIP
+    IPv4 test after configuring container                                    SKIP
+    IPv6 test after configuring container                                    SKIP
+    Unconfigure container commands                                           SKIP
+    IPv4 local-spoof after unconfig test                                     SKIP
+    IPv6 local-spoof after unconfig test                                     SKIP
+
+CRUD Loopback
+`````````````
+::
+
+    ==============================================================================
+    CRUD Loopback
+    ==============================================================================
+    test_crud (test_interface_crud.TestLoopbackInterfaceCRUD)                OK
+    test_down (test_interface_crud.TestLoopbackInterfaceCRUD)                OK
+
+DHCP
+````
+::
+
+    ==============================================================================
+    DHCP Test Case
+    ==============================================================================
+    DHCPv6 Proxy                                                             OK
+    DHCP Client                                                              OK
+    DHCPv4 Proxy                                                             OK
+
+Distributed Virtual Router
+``````````````````````````
+::
+
+    ==============================================================================
+    Distributed Virtual Router
+    ==============================================================================
+    Distributed Virtual Router                                               OK
+    L2 Emulation                                                             OK
+
+DS-Lite Softwire
+````````````````
+::
+
+    ==============================================================================
+    DS-Lite Test Cases
+    ==============================================================================
+    Test DS-Lite                                                             OK
+
+FIB
+```
+::
+
+    ==============================================================================
+    FIB Test Case
+    ==============================================================================
+    FIB Unit Tests                                                           OK
+
+Flowprobe
+`````````
+::
+
+    ==============================================================================
+    Re-enable Flowprobe feature
+    ==============================================================================
+    disable flowprobe feature after first packets and re-enable              SKIP
+
+    ==============================================================================
+    collect information on Ethernet, IP4 and IP6 datapath (no timers)
+    ==============================================================================
+    no timers, one CFLOW packet, 9 Flows inside                              OK
+    no timers, two CFLOW packets (mtu=256), 3 Flows in each                  OK
+    L2 data on IP4 datapath                                                  OK
+    L2 data on IP6 datapath                                                  OK
+    L2 data on L2 datapath                                                   OK
+    L3 data on IP4 datapath                                                  OK
+    L3 data on IP6 datapath                                                  OK
+    L3 data on L2 datapath                                                   OK
+    L4 data on IP4 datapath                                                  OK
+    L4 data on IP6 datapath                                                  OK
+    L4 data on L2 datapath                                                   OK
+    verify templates on IP6 datapath                                         OK
+    verify templates on IP4 datapath                                         OK
+    verify template on L2 datapath                                           OK
+
+    ==============================================================================
+    Disable Flowprobe feature
+    ==============================================================================
+    disable flowprobe feature after first packets                            SKIP
+
+    ==============================================================================
+    Re-enable IPFIX
+    ==============================================================================
+    disable IPFIX after first packets and re-enable after few packets        SKIP
+
+    ==============================================================================
+    Disable IPFIX
+    ==============================================================================
+    disable IPFIX after first packets                                        SKIP
+
+Geneve Tunnels
+``````````````
+::
+
+    ==============================================================================
+    GENEVE Test Case
+    ==============================================================================
+    Decapsulation test                                                       OK
+    Encapsulation test                                                       OK
+    Multicast flood test                                                     OK
+    Multicast receive test                                                   OK
+    Unicast flood test                                                       OK
+
+GRE Tunnels
+```````````
+::
+
+    ==============================================================================
+    GRE Test Case
+    ==============================================================================
+    GRE IPv4 tunnel Tests                                                    OK
+    GRE IPv6 tunnel Tests                                                    OK
+    GRE tunnel L2 Tests                                                      OK
+    GRE tunnel VRF Tests                                                     OK
+
+GTPU Tunnels
+````````````
+::
+
+    ==============================================================================
+    GTPU Test Case
+    ==============================================================================
+    Decapsulation test                                                       OK
+    Encapsulation test                                                       OK
+    Multicast flood test                                                     OK
+    Multicast receive test                                                   OK
+    Unicast flood test                                                       OK
+
+IP Multicast Routing
+````````````````````
+::
+
+    ==============================================================================
+    IP Multicast Test Case
+    ==============================================================================
+    IP Multicast Bi-directional                                              OK
+    IPv6 Multicast Replication                                               OK
+    IPv6 Multicast Replication in non-default table                          OK
+    IP Multicast Replication                                                 OK
+    IP Multicast Connected Source check                                      OK
+    IP Multicast Signal                                                      OK
+    IP Multicast Replication in non-default table                            OK
+
+IPSec
+`````
+::
+
+    ==============================================================================
+    Basic test for IPSEC using AH transport and Tunnel mode
+    ==============================================================================
+    ipsec ah v4 transport basic test                                         OK
+    ipsec ah v4 transport burst test                                         OK
+    ipsec ah 4o4 tunnel basic test                                           OK
+    ipsec ah 4o4 tunnel burst test                                           OK
+
+    ==============================================================================
+    Basic test for ipsec esp sanity - tunnel and transport modes.
+    ==============================================================================
+    ipsec esp v4 transport basic test                                        OK
+    ipsec esp v4 transport burst test                                        OK
+    ipsec esp 4o4 tunnel basic test                                          OK
+    ipsec esp 4o4 tunnel burst test                                          OK
+
+IPv4 FIB CRUD
+`````````````
+::
+
+    ==============================================================================
+    FIB - add/update/delete - ip4 routes
+    ==============================================================================
+    Add 1k routes                                                            OK
+    Delete 100 routes                                                        OK
+    Add 1k routes                                                            OK
+    Delete 1.5k routes                                                       OK
+
+IPv4 Routing
+````````````
+::
+
+    ==============================================================================
+    IPv4 Test Case
+    ==============================================================================
+    IPv4 FIB test                                                            OK
+
+    ==============================================================================
+    IPv4 routes via NULL
+    ==============================================================================
+    IP NULL route                                                            OK
+
+    ==============================================================================
+    IPv4 disabled
+    ==============================================================================
+    IP Disabled                                                              OK
+
+    ==============================================================================
+    IPv4 Subnets
+    ==============================================================================
+    IP Sub Nets                                                              OK
+
+    ==============================================================================
+    IPv4 VLAN-0
+    ==============================================================================
+    IP VLAN-0                                                                OK
+
+    ==============================================================================
+    IPv4 Load-Balancing
+    ==============================================================================
+    IP Load-Balancing                                                        OK
+
+    ==============================================================================
+    IPv4 Deaggregate Routes
+    ==============================================================================
+    IP Deag Routes                                                           OK
+
+    ==============================================================================
+    IPv4 Input Exceptions
+    ==============================================================================
+    IP Input Exceptions                                                      OK
+
+    ==============================================================================
+    IPv4 Punt Police/Redirect
+    ==============================================================================
+    IP punt police and redirect                                              OK
+
+IPv4 VRF Multi-instance
+```````````````````````
+::
+
+    ==============================================================================
+    IP4 VRF  Multi-instance Test Case
+    ==============================================================================
+    IP4 VRF  Multi-instance test 1 - create 5 BDs                            OK
+    IP4 VRF  Multi-instance test 2 - delete 2 VRFs                           OK
+    IP4 VRF  Multi-instance 3 - add 2 VRFs                                   OK
+    IP4 VRF  Multi-instance test 4 - delete 4 VRFs                           OK
+
+IPv6 Routing
+````````````
+::
+
+    ==============================================================================
+    IPv6 Test Case
+    ==============================================================================
+    IPv6 FIB test                                                            OK
+    IPv6 Neighbour Solicitation Exceptions                                   OK
+    ND Duplicates                                                            OK
+    IPv6 Router Solicitation Exceptions                                      OK
+
+    ==============================================================================
+    IPv6 Punt Police/Redirect
+    ==============================================================================
+    IP6 punt police and redirect                                             OK
+
+    ==============================================================================
+    IPv6 disabled
+    ==============================================================================
+    IP Disabled                                                              OK
+
+    ==============================================================================
+    IPv6 ND ProxyTest Case
+    ==============================================================================
+    IPv6 Proxy ND                                                            OK
+
+    ==============================================================================
+    IPv6 Load-Balancing
+    ==============================================================================
+    IPv6 Load-Balancing                                                      OK
+
+    ==============================================================================
+    IPv6 routes via NULL
+    ==============================================================================
+    IP NULL route                                                            OK
+
+    ==============================================================================
+    IPv6 Input Exceptions
+    ==============================================================================
+    IP6 Input Exceptions                                                     OK
+
+IPv6 VRF Multi-instance
+```````````````````````
+::
+
+    ==============================================================================
+    IP6 VRF  Multi-instance Test Case
+    ==============================================================================
+    IP6 VRF  Multi-instance test 1 - create 4 VRFs                           OK
+    IP6 VRF  Multi-instance test 2 - reset 2 VRFs                            OK
+    IP6 VRF  Multi-instance 3 - add 2 VRFs                                   OK
+    IP6 VRF  Multi-instance test 4 - reset 4 VRFs                            OK
+
+IRB Integrated Routing-Bridging
+```````````````````````````````
+::
+
+    ==============================================================================
+    IRB Test Case
+    ==============================================================================
+    IPv4 IRB test 1                                                          OK
+    IPv4 IRB test 2                                                          OK
+
+Kube-proxy
+``````````
+::
+
+    ==============================================================================
+    Kube-proxy Test Case
+    ==============================================================================
+    Kube-proxy NAT44                                                         OK
+    Kube-proxy NAT46                                                         SKIP
+    Kube-proxy NAT64                                                         SKIP
+    Kube-proxy NAT66                                                         SKIP
+
+L2 FIB CRUD
+```````````
+::
+
+    ==============================================================================
+    L2 FIB Test Case
+    ==============================================================================
+    L2 FIB - program 100 + 100 MACs                                          OK
+    L2 FIB - program 100 + delete 12 MACs                                    OK
+    L2 FIB - flush all                                                       OK
+    L2 FIB - flush BD                                                        OK
+    L2 FIB - flush interface                                                 OK
+    L2 FIB - mac learning events                                             OK
+    L2 FIB - mac learning max macs in event                                  OK
+    L2 FIB - program 100 MACs                                                OK
+    L2 FIB - Program 10 MACs, learn 10                                       OK
+
+L2BD Multi-instance
+```````````````````
+::
+
+    ==============================================================================
+    L2BD Multi-instance Test Case
+    ==============================================================================
+    L2BD Multi-instance test 1 - create 5 BDs                                OK
+    L2BD Multi-instance test 2 - update data of 5 BDs                        OK
+    L2BD Multi-instance test 3 - delete 2 BDs                                OK
+    L2BD Multi-instance test 4 - add 2 BDs                                   OK
+    L2BD Multi-instance test 5 - delete 5 BDs                                SKIP
+
+L2BD Switching
+``````````````
+::
+
+    ==============================================================================
+    L2BD Test Case
+    ==============================================================================
+    L2BD MAC learning dual-loop test                                         OK
+    L2BD MAC learning single-loop test                                       OK
+
+L2XC Multi-instance
+```````````````````
+::
+
+    ==============================================================================
+    L2XC Multi-instance Test Case
+    ==============================================================================
+    L2XC Multi-instance test 1 - create 10 cross-connects                    OK
+    L2XC Multi-instance test 2 - delete 4 cross-connects                     OK
+    L2BD Multi-instance 3 - add new 4 cross-connects                         OK
+    L2XC Multi-instance test 4 - delete 10 cross-connects                    OK
+
+L2XC Switching
+``````````````
+::
+
+    ==============================================================================
+    L2XC Test Case
+    ==============================================================================
+    L2XC dual-loop test                                                      OK
+    L2XC single-loop test                                                    OK
+
+LISP Tunnels
+````````````
+::
+
+    ==============================================================================
+    Basic LISP test
+    ==============================================================================
+    Test case for basic encapsulation                                        OK
+
+Load Balancer
+`````````````
+::
+
+    ==============================================================================
+    Load Balancer Test Case
+    ==============================================================================
+    Load Balancer IP4 GRE4                                                   OK
+    Load Balancer IP4 GRE6                                                   OK
+    Load Balancer IP6 GRE4                                                   OK
+    Load Balancer IP6 GRE6                                                   OK
+
+MACIP Access Control
+````````````````````
+::
+
+    ==============================================================================
+    MACIP Tests
+    ==============================================================================
+    MACIP 10 ACLs each with 100+ entries                                     OK
+    MACIP 10 ACLs each with 100+ entries with IP4 traffic                    OK
+    MACIP 10 ACLs each with 100+ entries with IP6 traffic                    OK
+    MACIP ACL with 10 entries                                                OK
+    MACIP ACL with 100 entries                                               OK
+    MACIP ACL with 2 entries                                                 OK
+    MACIP ACL with 20 entries                                                OK
+    MACIP ACL with 5 entries                                                 OK
+    MACIP ACL with 50 entries                                                OK
+    MACIP 2 ACLs each with 100+ entries                                      OK
+    MACIP replace ACL                                                        OK
+    MACIP ACL delete intf with acl                                           OK
+
+    ==============================================================================
+    MACIP with IP6 traffic
+    ==============================================================================
+    IP6 MACIP exactMAC|exactIP ACL bridged traffic                           OK
+    IP6 MACIP exactMAC|subnetIP ACL bridged traffic                          OK
+    IP6 MACIP exactMAC|wildIP ACL bridged traffic                            OK
+    IP6 MACIP oui_MAC|exactIP ACL bridged traffic                            OK
+    IP6 MACIP ouiMAC|subnetIP ACL bridged traffic                            OK
+    IP6 MACIP ouiMAC|wildIP ACL bridged traffic                              OK
+    IP6 MACIP wildcardMAC|exactIP ACL bridged traffic                        OK
+    IP6 MACIP wildcardMAC|subnetIP ACL bridged traffic                       OK
+    IP6 MACIP wildcardMAC|wildIP ACL bridged traffic                         OK
+    MACIP replace ACL with IP6 traffic                                       OK
+    IP6 MACIP exactMAC|exactIP ACL routed traffic                            OK
+    IP6 MACIP exactMAC|subnetIP ACL routed traffic                           OK
+    IP6 MACIP exactMAC|wildIP ACL routed traffic                             OK
+    IP6 MACIP ouiMAC|exactIP ACL routed traffic                              OK
+    IP6 MACIP ouiMAC|subnetIP ACL routed traffic                             OK
+    IP6 MACIP ouiMAC|wildIP ACL routed traffic                               OK
+    IP6 MACIP wildcardMAC|exactIP ACL routed traffic                         OK
+    IP6 MACIP wildcardMAC|subnetIP ACL routed traffic                        OK
+    IP6 MACIP wildcardMAC|wildIP ACL                                         OK
+
+    ==============================================================================
+    MACIP with IP4 traffic
+    ==============================================================================
+    IP4 MACIP wildcardMAC|exactIP ACL bridged traffic                        OK
+    IP4 MACIP exactMAC|exactIP ACL bridged traffic                           OK
+    IP4 MACIP exactMAC|subnetIP ACL bridged traffic                          OK
+    IP4 MACIP exactMAC|wildIP ACL bridged traffic                            OK
+    IP4 MACIP ouiMAC|exactIP ACL bridged traffic                             OK
+    IP4 MACIP ouiMAC|subnetIP ACL bridged traffic                            OK
+    IP4 MACIP ouiMAC|wildIP ACL bridged traffic                              OK
+    IP4 MACIP wildcardMAC|subnetIP ACL bridged traffic                       OK
+    IP4 MACIP wildcardMAC|wildIP ACL bridged traffic                         OK
+    MACIP replace ACL with IP4 traffic                                       OK
+    IP4 MACIP exactMAC|exactIP ACL routed traffic                            OK
+    IP4 MACIP exactMAC|subnetIP ACL routed traffic                           OK
+    IP4 MACIP exactMAC|wildIP ACL routed traffic                             OK
+    IP4 MACIP ouiMAC|exactIP ACL routed traffic                              OK
+    IP4 MACIP ouiMAC|subnetIP ACL routed traffic                             OK
+    IP4 MACIP ouiMAC|wildIP ACL routed traffic                               OK
+    IP4 MACIP wildcardMAC|exactIP ACL routed traffic                         OK
+    IP4 MACIP wildcardMAC|subnetIP ACL routed traffic                        OK
+    IP4 MACIP wildcardMAC|wildIP ACL                                         OK
+
+MAP Softwires
+`````````````
+::
+
+    ==============================================================================
+    MAP Test Case
+    ==============================================================================
+    MAP-E                                                                    OK
+
+MFIB Multicast FIB
+``````````````````
+::
+
+    ==============================================================================
+    MFIB Test Case
+    ==============================================================================
+    MFIB Unit Tests                                                          OK
+
+MPLS Switching
+``````````````
+::
+
+    ==============================================================================
+    MPLS-L2
+    ==============================================================================
+    Virtual Private LAN Service                                              OK
+    Virtual Private Wire Service                                             OK
+
+    ==============================================================================
+    MPLS Test Case
+    ==============================================================================
+    MPLS Local Label Binding test                                            OK
+    MPLS Deagg                                                               OK
+    MPLS label imposition test                                               OK
+    MPLS Interface Receive                                                   OK
+    MPLS Multicast Head-end                                                  OK
+    MPLS IPv4 Multicast Tail                                                 OK
+    MPLS IPv6 Multicast Tail                                                 OK
+    MPLS Multicast Mid Point                                                 OK
+    MPLS label swap tests                                                    OK
+    MPLS Tunnel Tests                                                        OK
+    MPLS V4 Explicit NULL test                                               OK
+    MPLS V6 Explicit NULL test                                               OK
+
+    ==============================================================================
+    MPLS PIC edge convergence
+    ==============================================================================
+    MPLS eBGP PIC edge convergence                                           OK
+    MPLS iBGP PIC edge convergence                                           OK
+    MPLSv6 eBGP PIC edge convergence                                         OK
+
+    ==============================================================================
+    MPLS disabled
+    ==============================================================================
+    MPLS Disabled                                                            OK
+
+NAT44
+`````
+::
+
+    ==============================================================================
+    NAT44 Test Cases
+    ==============================================================================
+    Delete NAT44 session                                                     OK
+    NAT44 dynamic translation test                                           OK
+    NAT44 handling of client packets with TTL=1                              OK
+    NAT44 handling of error responses to client packets with TTL=2           OK
+    NAT44 handling of server packets with TTL=1                              OK
+    NAT44 handling of error responses to server packets with TTL=2           OK
+    NAT44 interfaces without configured IP address                           OK
+    NAT44 forwarding test                                                    OK
+    NAT44 translate fragments arriving in order                              OK
+    NAT44 translate fragments arriving out of order                          OK
+    NAT44 hairpinning - 1:1 NAPT                                             OK
+    NAT44 hairpinning - 1:1 NAT                                              OK
+    1:1 NAT translate packet with unknown protocol - hairpinning             OK
+    NAT44 translate packet with unknown protocol - hairpinning               OK
+    Identity NAT                                                             OK
+    NAT44 multiple inside interfaces with overlapping address space          OK
+    Acquire NAT44 addresses from interface                                   OK
+    Identity NAT with addresses from interface                               OK
+    Static mapping with addresses from interface                             OK
+    IPFIX logging NAT addresses exhausted                                    OK
+    IPFIX logging NAT44 session created/delted                               OK
+    MAX translations per user - recycle the least recently used              OK
+    NAT44 multiple non-overlapping address space inside interfaces           OK
+    One armed NAT44                                                          OK
+    NAT44 interface output feature (in2out postrouting)                      OK
+    NAT44 interface output feature hairpinning (in2out postrouting)          OK
+    NAT44 interface output feature VRF aware (in2out postrouting)            OK
+    Ping internal host from outside network                                  OK
+    Ping NAT44 out interface from outside network                            OK
+    NAT44 add pool addresses to FIB                                          OK
+    Port restricted NAT44 (MAP-E CE)                                         OK
+    NAT44 fragments hairpinning                                              OK
+    NAT44 set/get virtual fragmentation reassembly                           OK
+    1:1 NAT initialized from inside network                                  OK
+    NAT44 interfaces without configured IP address - 1:1 NAT                 OK
+    NAT44 local service load balancing                                       OK
+    1:1 NAT initialized from outside network                                 OK
+    1:1 NAT translate packet with unknown protocol                           OK
+    1:1 NAT VRF awareness                                                    OK
+    1:1 NAPT initialized from inside network                                 OK
+    NAT44 interfaces without configured IP address - 1:1 NAPT                OK
+    1:1 NAPT initialized from outside network                                OK
+    Twice NAT44                                                              OK
+    Acquire twice NAT44 addresses from interface                             OK
+    Twice NAT44 local service load balancing                                 OK
+    NAT44 translate packet with unknown protocol                             OK
+    NAT44 tenant VRF independent address pool mode                           OK
+    NAT44 tenant VRF aware address pool mode                                 OK
+
+    ==============================================================================
+    Deterministic NAT Test Cases
+    ==============================================================================
+    Deterministic NAT translation test (TCP, UDP, ICMP)                      OK
+    NAT plugin run deterministic mode                                        OK
+    Deterministic NAT multiple users                                         OK
+    Deterministic NAT maximum sessions per user limit                        SKIP
+    Deterministic NAT session timeouts                                       SKIP
+    Set deterministic NAT timeouts                                           OK
+    Deterministic NAT TCP session close from inside network                  OK
+    Deterministic NAT TCP session close from outside network                 OK
+
+NAT64
+`````
+::
+
+    ==============================================================================
+    NAT64 Test Cases
+    ==============================================================================
+    NAT64 dynamic translation test                                           OK
+    NAT64 translate fragments arriving in order                              OK
+    NAT64 translate fragments arriving out of order                          OK
+    NAT64 hairpinning                                                        OK
+    NAT64 translate packet with unknown protocol - hairpinning               OK
+    NAT64 ICMP Error message translation                                     OK
+    Enable/disable NAT64 feature on the interface                            OK
+    Acquire NAT64 pool addresses from interface                              OK
+    One armed NAT64                                                          OK
+    Add/delete address to NAT64 pool                                         OK
+    NAT64 Network-Specific Prefix                                            OK
+    NAT64 fragments hairpinning                                              OK
+    NAT64 session timeout                                                    SKIP
+    Set NAT64 timeouts                                                       OK
+    NAT64 static translation test                                            OK
+    Add/delete static BIB entry                                              OK
+    NAT64 translate packet with unknown protocol                             OK
+
+P2P Ethernet Subinterface
+`````````````````````````
+::
+
+    ==============================================================================
+    P2P Ethernet tests
+    ==============================================================================
+    delete/create p2p subif                                                  OK
+    create 1k of p2p subifs                                                  OK
+
+    ==============================================================================
+    P2P Ethernet IPv4 tests
+    ==============================================================================
+    receive ipv4 packet via p2p subinterface                                 OK
+    route rx packet not matching p2p subinterface                            OK
+    send ip4 packet via p2p subinterface                                     OK
+    drop tx ip4 packet not matching p2p subinterface                         OK
+
+    ==============================================================================
+    P2P Ethernet IPv6 tests
+    ==============================================================================
+    receive ipv6 packet via p2p subinterface                                 OK
+    drop rx packet not matching p2p subinterface                             OK
+    route rx ip6 packet not matching p2p subinterface                        OK
+    send packet via p2p subinterface                                         OK
+    drop tx ip6 packet not matching p2p subinterface                         OK
+    standard routing without p2p subinterfaces                               OK
+
+PPPoE Encapsulation
+```````````````````
+::
+
+    ==============================================================================
+    PPPoE Test Case
+    ==============================================================================
+    PPPoE Add Same Session Twice Test                                        OK
+    PPPoE Decap Test                                                         OK
+    PPPoE Decap Multiple Sessions Test                                       OK
+    PPPoE Delete Same Session Twice Test                                     OK
+    PPPoE Encap Test                                                         OK
+    PPPoE Encap Multiple Sessions Test                                       OK
+
+SPAN Switch Port Analyzer
+`````````````````````````
+::
+
+    ==============================================================================
+    SPAN Test Case
+    ==============================================================================
+    SPAN device rx mirror                                                    OK
+    SPAN l2 broadcast mirror                                                 OK
+    SPAN l2 rx tx mirror                                                     OK
+    SPAN l2 tx mirror                                                        OK
+    SPAN l2 rx mirror                                                        OK
+    SPAN l2 rx mirror into 1ad subif+vtr                                     OK
+    SPAN l2 rx mirror into 1q subif+vtr                                      OK
+    SPAN l2 rx mirror into gre-subif+vtr                                     OK
+    SPAN l2 rx mirror into vxlan                                             OK
+
+SRv6 Routing
+````````````
+::
+
+    ==============================================================================
+    SRv6 Test Case
+    ==============================================================================
+    Test SRv6 End (without PSP) behavior.                                    OK
+    Test SRv6 End.DT4 behavior.                                              OK
+    Test SRv6 End.DT6 behavior.                                              OK
+    Test SRv6 End.DX2 behavior.                                              OK
+    Test SRv6 End.DX4 behavior.                                              OK
+    Test SRv6 End.DX6 behavior.                                              OK
+    Test SRv6 End.X (without PSP) behavior.                                  OK
+    Test SRv6 End.X with PSP behavior.                                       OK
+    Test SRv6 End with PSP behavior.                                         OK
+    Test SRv6 Transit.Encaps behavior for IPv6.                              OK
+    Test SRv6 Transit.Encaps behavior for IPv4.                              OK
+    Test SRv6 Transit.Encaps behavior for L2.                                SKIP
+    Test SRv6 Transit.Insert behavior (IPv6 only).                           OK
+    Test SRv6 Transit.Insert behavior (IPv6 only).                           OK
+
+TCP/IP Stack
+````````````
+::
+
+    ==============================================================================
+    TCP Test Case
+    ==============================================================================
+    TCP builtin client/server transfer                                       OK
+    TCP Unit Tests                                                           OK
+
+UDP Stack
+`````````
+::
+
+    ==============================================================================
+    UDP Encap Test Case
+    ==============================================================================
+    UDP Encap test                                                           OK
+
+VTR VLAN Tag Rewrites
+`````````````````````
+::
+
+    ==============================================================================
+    VTR Test Case
+    ==============================================================================
+    1AD VTR pop 1 test                                                       OK
+    1AD VTR pop 2 test                                                       OK
+    1AD VTR push 1 1AD test                                                  OK
+    1AD VTR push 1 1Q test                                                   OK
+    1AD VTR push 2 1AD test                                                  OK
+    1AD VTR push 2 1Q test                                                   OK
+    1AD VTR translate 1 -> 1 1AD test                                        OK
+    1AD VTR translate 1 -> 1 1Q test                                         OK
+    1AD VTR translate 1 -> 2 1AD test                                        OK
+    1AD VTR translate 1 -> 2 1Q test                                         OK
+    1AD VTR translate 2 -> 1 1AD test                                        OK
+    1AD VTR translate 2 -> 1 1Q test                                         OK
+    1AD VTR translate 2 -> 2 1AD test                                        OK
+    1AD VTR translate 2 -> 2 1Q test                                         OK
+    1Q VTR pop 1 test                                                        OK
+    1Q VTR push 1 test                                                       OK
+    1Q VTR push 2 test                                                       OK
+    1Q VTR translate 1 -> 1 test                                             OK
+    1Q VTR translate 1 -> 2 test                                             OK
+
+VXLAN Tunnels
+`````````````
+::
+
+    ==============================================================================
+    VXLAN Test Case
+    ==============================================================================
+    Decapsulation test                                                       OK
+    Encapsulation test                                                       OK
+    Multicast flood test                                                     OK
+    Multicast receive test                                                   OK
+    Unicast flood test                                                       OK
+
+VXLAN-GPE Tunnels
+`````````````````
+::
+
+    ==============================================================================
+    VXLAN-GPE Test Case
+    ==============================================================================
+    Decapsulation test                                                       SKIP
+    Encapsulation test                                                       SKIP
+    Multicast flood test                                                     SKIP
+    Multicast receive test                                                   SKIP
+    Unicast flood test                                                       SKIP
+
+Other Tests
+```````````
+::
+
+    ==============================================================================
+    Ping Test Case
+    ==============================================================================
+    basic ping test                                                          OK
+    burst ping test                                                          OK
+
+    ==============================================================================
+    Session Test Case
+    ==============================================================================
+    Session Unit Tests                                                       OK
+
+    ==============================================================================
+    Template verification, timer tests
+    ==============================================================================
+    timer less than template timeout                                         OK
+    timer greater than template timeout                                      OK
+    verify cflow packet fields                                               OK
+
index 47ec7cb..254569d 100644 (file)
@@ -1,5 +1,5 @@
-Documentation\r
-=============\r
-\r
-`CSIT DPDK Performance Tests Documentation`_ contains  detailed\r
-functional description and input parameters for each test case.\r
+Documentation
+=============
+
+`CSIT DPDK Performance Tests Documentation`_ contains  detailed
+functional description and input parameters for each test case.
index eb6617b..2047920 100644 (file)
@@ -1,68 +1,68 @@
-.. include:: ../vpp_performance_tests/test_environment_intro.rst\r
-\r
-.. include:: ../vpp_performance_tests/test_environment_sut_conf_1.rst\r
-\r
-.. include:: ../vpp_performance_tests/test_environment_sut_conf_3.rst\r
-\r
-\r
-DUT Configuration - DPDK\r
-------------------------\r
-\r
-**DPDK Version**\r
-\r
-|dpdk-release|\r
-\r
-**DPDK Compile Parameters**\r
-\r
-.. code-block:: bash\r
-\r
-    make install T=x86_64-native-linuxapp-gcc -j\r
-\r
-**Testpmd Startup Configuration**\r
-\r
-Testpmd startup configuration changes per test case with different settings for CPU\r
-cores, rx-queues. Startup config is aligned with applied test case tag:\r
-\r
-Tagged by **1T1C**\r
-\r
-.. code-block:: bash\r
-\r
-    testpmd -c 0x3 -n 4 -- --numa --nb-ports=2 --portmask=0x3 --nb-cores=1 --max-pkt-len=9000 --txqflags=0 --forward-mode=io --rxq=1 --txq=1 --burst=64 --rxd=1024 --txd=1024 --disable-link-check --auto-start\r
-\r
-Tagged by **2T2C**\r
-\r
-.. code-block:: bash\r
-\r
-    testpmd -c 0x403 -n 4 -- --numa --nb-ports=2 --portmask=0x3 --nb-cores=2 --max-pkt-len=9000 --txqflags=0 --forward-mode=io --rxq=1 --txq=1 --burst=64 --rxd=1024 --txd=1024 --disable-link-check --auto-start\r
-\r
-Tagged by **4T4C**\r
-\r
-.. code-block:: bash\r
-\r
-    testpmd -c 0xc07 -n 4 -- --numa --nb-ports=2 --portmask=0x3 --nb-cores=4 --max-pkt-len=9000 --txqflags=0 --forward-mode=io --rxq=2 --txq=2 --burst=64 --rxd=1024 --txd=1024 --disable-link-check --auto-start\r
-\r
-**L3FWD Startup Configuration**\r
-\r
-L3FWD startup configuration changes per test case with different settings for CPU\r
-cores, rx-queues. Startup config is aligned with applied test case tag:\r
-\r
-Tagged by **1T1C**\r
-\r
-.. code-block:: bash\r
-\r
-    l3fwd -l 1 -n 4 -- -P -L -p 0x3 --config='${port_config}' --enable-jumbo --max-pkt-len=9000 --eth-dest=0,${adj_mac0} --eth-dest=1,${adj_mac1} --parse-ptype\r
-\r
-Tagged by **2T2C**\r
-\r
-.. code-block:: bash\r
-\r
-    l3fwd -l 1,2 -n 4 -- -P -L -p 0x3 --config='${port_config}' --enable-jumbo --max-pkt-len=9000 --eth-dest=0,${adj_mac0} --eth-dest=1,${adj_mac1} --parse-ptype\r
-\r
-Tagged by **4T4C**\r
-\r
-.. code-block:: bash\r
-\r
-    l3fwd -l 1,2,3,4 -n 4 -- -P -L -p 0x3 --config='${port_config}' --enable-jumbo --max-pkt-len=9000 --eth-dest=0,${adj_mac0} --eth-dest=1,${adj_mac1} --parse-ptype\r
-\r
-\r
-.. include:: ../vpp_performance_tests/test_environment_tg.rst\r
+.. include:: ../vpp_performance_tests/test_environment_intro.rst
+
+.. include:: ../vpp_performance_tests/test_environment_sut_conf_1.rst
+
+.. include:: ../vpp_performance_tests/test_environment_sut_conf_3.rst
+
+
+DUT Configuration - DPDK
+------------------------
+
+**DPDK Version**
+
+|dpdk-release|
+
+**DPDK Compile Parameters**
+
+.. code-block:: bash
+
+    make install T=x86_64-native-linuxapp-gcc -j
+
+**Testpmd Startup Configuration**
+
+Testpmd startup configuration changes per test case with different settings for CPU
+cores, rx-queues. Startup config is aligned with applied test case tag:
+
+Tagged by **1T1C**
+
+.. code-block:: bash
+
+    testpmd -c 0x3 -n 4 -- --numa --nb-ports=2 --portmask=0x3 --nb-cores=1 --max-pkt-len=9000 --txqflags=0 --forward-mode=io --rxq=1 --txq=1 --burst=64 --rxd=1024 --txd=1024 --disable-link-check --auto-start
+
+Tagged by **2T2C**
+
+.. code-block:: bash
+
+    testpmd -c 0x403 -n 4 -- --numa --nb-ports=2 --portmask=0x3 --nb-cores=2 --max-pkt-len=9000 --txqflags=0 --forward-mode=io --rxq=1 --txq=1 --burst=64 --rxd=1024 --txd=1024 --disable-link-check --auto-start
+
+Tagged by **4T4C**
+
+.. code-block:: bash
+
+    testpmd -c 0xc07 -n 4 -- --numa --nb-ports=2 --portmask=0x3 --nb-cores=4 --max-pkt-len=9000 --txqflags=0 --forward-mode=io --rxq=2 --txq=2 --burst=64 --rxd=1024 --txd=1024 --disable-link-check --auto-start
+
+**L3FWD Startup Configuration**
+
+L3FWD startup configuration changes per test case with different settings for CPU
+cores, rx-queues. Startup config is aligned with applied test case tag:
+
+Tagged by **1T1C**
+
+.. code-block:: bash
+
+    l3fwd -l 1 -n 4 -- -P -L -p 0x3 --config='${port_config}' --enable-jumbo --max-pkt-len=9000 --eth-dest=0,${adj_mac0} --eth-dest=1,${adj_mac1} --parse-ptype
+
+Tagged by **2T2C**
+
+.. code-block:: bash
+
+    l3fwd -l 1,2 -n 4 -- -P -L -p 0x3 --config='${port_config}' --enable-jumbo --max-pkt-len=9000 --eth-dest=0,${adj_mac0} --eth-dest=1,${adj_mac1} --parse-ptype
+
+Tagged by **4T4C**
+
+.. code-block:: bash
+
+    l3fwd -l 1,2,3,4 -n 4 -- -P -L -p 0x3 --config='${port_config}' --enable-jumbo --max-pkt-len=9000 --eth-dest=0,${adj_mac0} --eth-dest=1,${adj_mac1} --parse-ptype
+
+
+.. include:: ../vpp_performance_tests/test_environment_tg.rst
index f47a15a..c1c46ff 100644 (file)
@@ -1,31 +1,31 @@
-CSIT Release Notes\r
-==================\r
-\r
-Changes in CSIT |release|\r
--------------------------\r
-\r
-No changes.\r
-\r
-Known Issues\r
-------------\r
-\r
-Here is the list of known issues in CSIT |release| for Honeycomb functional\r
-tests in VIRL:\r
-\r
-+---+--------------------------------------------+---------------+-------------------------------------------------------------------------+\r
-| # | Issue                                      | Jira ID       | Description                                                             |\r
-+---+--------------------------------------------+---------------+-------------------------------------------------------------------------+\r
-| 1 | IPv6 BGP route configuration               | HONEYCOMB-403 | Configuring Ipv6 route results in missing writer                        |\r
-|   |                                            |               | for IPv6Route and IPv6NextHop exception.                                |\r
-+---+--------------------------------------------+---------------+-------------------------------------------------------------------------+\r
-| 2 | IP address subnet validation               | VPP-649       | When configuring two IP addresses from the same subnet on an interface, |\r
-|   |                                            |               | VPP refuses the configuration but returns code 200:OK. This can cause   |\r
-|   |                                            |               | desync between Honeycomb's config and operational data.                 |\r
-+---+--------------------------------------------+---------------+-------------------------------------------------------------------------+\r
-| 3 | VxLAN GPE configuration crashes VPP        | VPP-875       | Specific VxLAN GPE configurations cause VPP to crash and restart.       |\r
-+---+--------------------------------------------+---------------+-------------------------------------------------------------------------+\r
-| 4 | Operational data for IPv6 special routes   | HC2VPP-254    | Special hop routes are misidentified as regular routes                  |\r
-|   |                                            |               | in operational data.                                                    |\r
-+---+--------------------------------------------+---------------+-------------------------------------------------------------------------+\r
-| 5 | LISP PITR feature configuration            | HC2VPP-263    | Locator set reference in operational data is incorrect.                 |\r
-+---+--------------------------------------------+---------------+-------------------------------------------------------------------------+\r
+CSIT Release Notes
+==================
+
+Changes in CSIT |release|
+-------------------------
+
+No changes.
+
+Known Issues
+------------
+
+Here is the list of known issues in CSIT |release| for Honeycomb functional
+tests in VIRL:
+
++---+--------------------------------------------+---------------+-------------------------------------------------------------------------+
+| # | Issue                                      | Jira ID       | Description                                                             |
++---+--------------------------------------------+---------------+-------------------------------------------------------------------------+
+| 1 | IPv6 BGP route configuration               | HONEYCOMB-403 | Configuring Ipv6 route results in missing writer                        |
+|   |                                            |               | for IPv6Route and IPv6NextHop exception.                                |
++---+--------------------------------------------+---------------+-------------------------------------------------------------------------+
+| 2 | IP address subnet validation               | VPP-649       | When configuring two IP addresses from the same subnet on an interface, |
+|   |                                            |               | VPP refuses the configuration but returns code 200:OK. This can cause   |
+|   |                                            |               | desync between Honeycomb's config and operational data.                 |
++---+--------------------------------------------+---------------+-------------------------------------------------------------------------+
+| 3 | VxLAN GPE configuration crashes VPP        | VPP-875       | Specific VxLAN GPE configurations cause VPP to crash and restart.       |
++---+--------------------------------------------+---------------+-------------------------------------------------------------------------+
+| 4 | Operational data for IPv6 special routes   | HC2VPP-254    | Special hop routes are misidentified as regular routes                  |
+|   |                                            |               | in operational data.                                                    |
++---+--------------------------------------------+---------------+-------------------------------------------------------------------------+
+| 5 | LISP PITR feature configuration            | HC2VPP-263    | Locator set reference in operational data is incorrect.                 |
++---+--------------------------------------------+---------------+-------------------------------------------------------------------------+
index 7ded3d4..354c406 100644 (file)
@@ -1,5 +1,5 @@
-Documentation\r
-=============\r
-\r
-`CSIT Honeycomb Functional Tests Documentation`_ contains detailed\r
-functional description and input parameters for each test case.\r
+Documentation
+=============
+
+`CSIT Honeycomb Functional Tests Documentation`_ contains detailed
+functional description and input parameters for each test case.
index 8f7e7ef..8d8d832 100644 (file)
@@ -1,5 +1,5 @@
-Test Environment\r
-================\r
-\r
-CSIT functional tests are currently executed in FD.IO VIRL testbed.\r
-See `VPP Functional Tests Environment <../vpp_functional_tests/test_environment.html>`_ for more details.\r
+Test Environment
+================
+
+CSIT functional tests are currently executed in FD.IO VIRL testbed.
+See `VPP Functional Tests Environment <../vpp_functional_tests/test_environment.html>`_ for more details.
index 709f2a8..9e3298a 100644 (file)
@@ -1,6 +1,6 @@
-Documentation\r
-=============\r
-\r
-`CSIT NSH_SFC Functional Tests Documentation`_ contains detailed\r
-functional description and input parameters for each test case.\r
-\r
+Documentation
+=============
+
+`CSIT NSH_SFC Functional Tests Documentation`_ contains detailed
+functional description and input parameters for each test case.
+
index 6420d6a..754fd92 100644 (file)
-Overview\r
-========\r
-\r
-Tested Virtual Topologies\r
--------------------------\r
-\r
-CSIT NSH_SFC functional tests are executed on virtualized topologies created using\r
-:abbr:`VIRL (Virtual Internet Routing Lab)` simulation platform contributed by\r
-Cisco. VIRL runs on physical baremetal servers hosted by LF FD.io project.\r
-Majority of the tests are executed in the three node logical test topology -\r
-Traffic Generator (TG) node and two Systems Under Test (SUT) nodes connected in\r
-a loop. Some tests use two node logical test topology - TG node and SUT1 node.\r
-Both logical test topologies are shown in the figures below.::\r
-\r
-    +------------------------+           +------------------------+\r
-    |                        |           |                        |\r
-    |  +------------------+  |           |  +------------------+  |\r
-    |  |                  <----------------->                  |  |\r
-    |  |                  |  |           |  |                  |  |\r
-    |  |       DUT1       <----------------->       DUT2       |  |\r
-    |  +--^--^------------+  |           |  +------------^--^--+  |\r
-    |     |  |               |           |               |  |     |\r
-    |     |  |         SUT1  |           |  SUT2         |  |     |\r
-    +------------------------+           +------------------------+\r
-          |  |                                           |  |\r
-          |  |                                           |  |\r
-          |  |               +-----------+               |  |\r
-          |  +--------------->           <---------------+  |\r
-          |                  |    TG     |                  |\r
-          +------------------>           <------------------+\r
-                             +-----------+\r
-\r
-                       +------------------------+\r
-                       |                        |\r
-                       |  +------------------+  |\r
-          +--------------->                  <--------------+\r
-          |            |  |                  |  |           |\r
-          |  |------------>       DUT1       <-----------+  |\r
-          |  |         |  +------------------+  |        |  |\r
-          |  |         |                        |        |  |\r
-          |  |         |                  SUT1  |        |  |\r
-          |  |         +------------------------+        |  |\r
-          |  |                                           |  |\r
-          |  |                                           |  |\r
-          |  |               +-----------+               |  |\r
-          |  +--------------->           <---------------+  |\r
-          |                  |    TG     |                  |\r
-          +------------------>           <------------------+\r
-                             +-----------+\r
-\r
-SUT1 and SUT2 are two VMs (Ubuntu or Centos, depending on the test suite), TG\r
-is a Traffic Generator (TG, another Ubuntu VM). SUTs run VPP SW application in\r
-Linux user-mode as a Device Under Test (DUT) within the VM. TG runs Scapy SW\r
-application as a packet Traffic Generator. Logical connectivity between SUTs\r
-and to TG is provided using virtual NICs using VMs' virtio driver.\r
-\r
-Virtual testbeds are created on-demand whenever a verification job is started\r
-(e.g. triggered by the gerrit patch submission) and destroyed upon completion\r
-of all functional tests. Each node is a Virtual Machine and each connection\r
-that is drawn on the diagram is available for use in any test case. During the\r
-test execution, all nodes are reachable thru the Management network connected\r
-to every node via dedicated virtual NICs and virtual links (not shown above\r
-for clarity).\r
-\r
-For the test cases that require DUT (VPP) to communicate with VM over the\r
-vhost-user interfaces, a nested VM is created on SUT1 and/or SUT2 for the\r
-duration of these particular test cases only. DUT (VPP) test topology with VM\r
-is shown in the figure below including the applicable packet flow thru the VM\r
-(marked in the figure with ``***``).::\r
-\r
-    +------------------------+           +------------------------+\r
-    |      +----------+      |           |      +----------+      |\r
-    |      |    VM    |      |           |      |    VM    |      |\r
-    |      |  ******  |      |           |      |  ******  |      |\r
-    |      +--^----^--+      |           |      +--^----^--+      |\r
-    |        *|    |*        |           |        *|    |*        |\r
-    |  +------v----v------+  |           |  +------v----v------+  |\r
-    |  |      *    *      |**|***********|**|      *    *      |  |\r
-    |  |  *****    *******<----------------->*******    *****  |  |\r
-    |  |  *    DUT1       |  |           |  |       DUT2    *  |  |\r
-    |  +--^---------------+  |           |  +---------------^--+  |\r
-    |    *|                  |           |                  |*    |\r
-    |    *|            SUT1  |           |  SUT2            |*    |\r
-    +------------------------+           +------------------^-----+\r
-         *|                                                 |*\r
-         *|                                                 |*\r
-         *|                  +-----------+                  |*\r
-         *|                  |           |                  |*\r
-         *+------------------>    TG     <------------------+*\r
-         ******************* |           |********************\r
-                             +-----------+\r
-\r
-NSH_SFC Functional Tests Coverage\r
----------------------------------\r
-\r
-Following NSH_SFC functional test areas are covered in the CSIT |release| with\r
-results listed in this report:\r
-\r
-- **NSH SFC Classifier** - TG sends some TCP packets to test NSH SFC\r
-  Classifier functional. DUT1 will receive these packets from one NIC and loopback\r
-  the VXLAN-GPE-NSH encapsulated packets to the TG from other NIC.\r
-  - Test case count: 7\r
-- **NSH SFC Proxy Inbound** - TG sends some VXLAN-GPE-NSH encapsulated packets\r
-  to test NSH SFC Proxy Inbound functional. DUT1 will receive these packets from one\r
-  NIC and loopback the VXLAN encapsulated packets to the TG from other NIC.\r
-  - Test case count: 6\r
-- **NSH SFC Proxy Outbound** - TG sends some VXLAN encapsulated packets to test\r
-  NSH SFC Proxy Outbound functional. DUT1 will receive these packets from one NIC\r
-  and loopback the VXLAN-GPE-NSH encapsulated packets to the TG from other NIC.\r
-  - Test case count: 6\r
-- **NSH SFC Service Function Forward** - TG sends some VXLAN-GPE-NSH encapsulated\r
-  packets to test NSH SFC Service Function Forward functional. DUT1 will receive these\r
-  packets from one NIC and swap the VXLAN-GPE-NSH header, after that DUT1 loopback the\r
-  VXLAN-GPE-NSH encapsulated packtes to the TG from other NIC.\r
-  - Test case count: 6\r
-\r
-Total 25 NSH SFC functional tests in the CSIT |release|.\r
-\r
+Overview
+========
+
+Tested Virtual Topologies
+-------------------------
+
+CSIT NSH_SFC functional tests are executed on virtualized topologies created using
+:abbr:`VIRL (Virtual Internet Routing Lab)` simulation platform contributed by
+Cisco. VIRL runs on physical baremetal servers hosted by LF FD.io project.
+Majority of the tests are executed in the three node logical test topology -
+Traffic Generator (TG) node and two Systems Under Test (SUT) nodes connected in
+a loop. Some tests use two node logical test topology - TG node and SUT1 node.
+Both logical test topologies are shown in the figures below.::
+
+    +------------------------+           +------------------------+
+    |                        |           |                        |
+    |  +------------------+  |           |  +------------------+  |
+    |  |                  <----------------->                  |  |
+    |  |                  |  |           |  |                  |  |
+    |  |       DUT1       <----------------->       DUT2       |  |
+    |  +--^--^------------+  |           |  +------------^--^--+  |
+    |     |  |               |           |               |  |     |
+    |     |  |         SUT1  |           |  SUT2         |  |     |
+    +------------------------+           +------------------------+
+          |  |                                           |  |
+          |  |                                           |  |
+          |  |               +-----------+               |  |
+          |  +--------------->           <---------------+  |
+          |                  |    TG     |                  |
+          +------------------>           <------------------+
+                             +-----------+
+
+                       +------------------------+
+                       |                        |
+                       |  +------------------+  |
+          +--------------->                  <--------------+
+          |            |  |                  |  |           |
+          |  |------------>       DUT1       <-----------+  |
+          |  |         |  +------------------+  |        |  |
+          |  |         |                        |        |  |
+          |  |         |                  SUT1  |        |  |
+          |  |         +------------------------+        |  |
+          |  |                                           |  |
+          |  |                                           |  |
+          |  |               +-----------+               |  |
+          |  +--------------->           <---------------+  |
+          |                  |    TG     |                  |
+          +------------------>           <------------------+
+                             +-----------+
+
+SUT1 and SUT2 are two VMs (Ubuntu or Centos, depending on the test suite), TG
+is a Traffic Generator (TG, another Ubuntu VM). SUTs run VPP SW application in
+Linux user-mode as a Device Under Test (DUT) within the VM. TG runs Scapy SW
+application as a packet Traffic Generator. Logical connectivity between SUTs
+and to TG is provided using virtual NICs using VMs' virtio driver.
+
+Virtual testbeds are created on-demand whenever a verification job is started
+(e.g. triggered by the gerrit patch submission) and destroyed upon completion
+of all functional tests. Each node is a Virtual Machine and each connection
+that is drawn on the diagram is available for use in any test case. During the
+test execution, all nodes are reachable thru the Management network connected
+to every node via dedicated virtual NICs and virtual links (not shown above
+for clarity).
+
+For the test cases that require DUT (VPP) to communicate with VM over the
+vhost-user interfaces, a nested VM is created on SUT1 and/or SUT2 for the
+duration of these particular test cases only. DUT (VPP) test topology with VM
+is shown in the figure below including the applicable packet flow thru the VM
+(marked in the figure with ``***``).::
+
+    +------------------------+           +------------------------+
+    |      +----------+      |           |      +----------+      |
+    |      |    VM    |      |           |      |    VM    |      |
+    |      |  ******  |      |           |      |  ******  |      |
+    |      +--^----^--+      |           |      +--^----^--+      |
+    |        *|    |*        |           |        *|    |*        |
+    |  +------v----v------+  |           |  +------v----v------+  |
+    |  |      *    *      |**|***********|**|      *    *      |  |
+    |  |  *****    *******<----------------->*******    *****  |  |
+    |  |  *    DUT1       |  |           |  |       DUT2    *  |  |
+    |  +--^---------------+  |           |  +---------------^--+  |
+    |    *|                  |           |                  |*    |
+    |    *|            SUT1  |           |  SUT2            |*    |
+    +------------------------+           +------------------^-----+
+         *|                                                 |*
+         *|                                                 |*
+         *|                  +-----------+                  |*
+         *|                  |           |                  |*
+         *+------------------>    TG     <------------------+*
+         ******************* |           |********************
+                             +-----------+
+
+NSH_SFC Functional Tests Coverage
+---------------------------------
+
+Following NSH_SFC functional test areas are covered in the CSIT |release| with
+results listed in this report:
+
+- **NSH SFC Classifier** - TG sends some TCP packets to test NSH SFC
+  Classifier functional. DUT1 will receive these packets from one NIC and loopback
+  the VXLAN-GPE-NSH encapsulated packets to the TG from other NIC.
+  - Test case count: 7
+- **NSH SFC Proxy Inbound** - TG sends some VXLAN-GPE-NSH encapsulated packets
+  to test NSH SFC Proxy Inbound functional. DUT1 will receive these packets from one
+  NIC and loopback the VXLAN encapsulated packets to the TG from other NIC.
+  - Test case count: 6
+- **NSH SFC Proxy Outbound** - TG sends some VXLAN encapsulated packets to test
+  NSH SFC Proxy Outbound functional. DUT1 will receive these packets from one NIC
+  and loopback the VXLAN-GPE-NSH encapsulated packets to the TG from other NIC.
+  - Test case count: 6
+- **NSH SFC Service Function Forward** - TG sends some VXLAN-GPE-NSH encapsulated
+  packets to test NSH SFC Service Function Forward functional. DUT1 will receive these
+  packets from one NIC and swap the VXLAN-GPE-NSH header, after that DUT1 loopback the
+  VXLAN-GPE-NSH encapsulated packtes to the TG from other NIC.
+  - Test case count: 6
+
+Total 25 NSH SFC functional tests in the CSIT |release|.
+
index ca7285d..3b35fd4 100644 (file)
@@ -1 +1 @@
-.. include:: ../vpp_functional_tests/test_environment.rst\r
+.. include:: ../vpp_functional_tests/test_environment.rst
index d5eca48..a85e8ea 100644 (file)
@@ -1,8 +1,8 @@
-.. only::  html\r
-\r
-    Test Operational Data\r
-    =====================\r
-\r
-    .. toctree::\r
-\r
-        vpp_performance_operational_data/index\r
+.. only::  html
+
+    Test Operational Data
+    =====================
+
+    .. toctree::
+
+        vpp_performance_operational_data/index
index e0f180c..6d99185 100644 (file)
@@ -1,6 +1,6 @@
-Documentation\r
-=============\r
-\r
-`CSIT VPP Functional Tests Documentation`_ contains detailed\r
-functional description and input parameters for each test case.\r
-\r
+Documentation
+=============
+
+`CSIT VPP Functional Tests Documentation`_ contains detailed
+functional description and input parameters for each test case.
+
index 1cd5def..32d70f1 100644 (file)
-Overview\r
-========\r
-\r
-Tested Virtual Topologies\r
--------------------------\r
-\r
-CSIT VPP functional tests are executed on virtualized topologies created using\r
-:abbr:`VIRL (Virtual Internet Routing Lab)` simulation platform contributed by\r
-Cisco. VIRL runs on physical baremetal servers hosted by LF FD.io project.\r
-Majority of the tests are executed in the three node logical test topology -\r
-Traffic Generator (TG) node and two Systems Under Test (SUT) nodes connected in\r
-a loop. Some tests use two node logical test topology - TG node and SUT1 node.\r
-Both logical test topologies are shown in the figures below.::\r
-\r
-    +------------------------+           +------------------------+\r
-    |                        |           |                        |\r
-    |  +------------------+  |           |  +------------------+  |\r
-    |  |                  <----------------->                  |  |\r
-    |  |                  |  |           |  |                  |  |\r
-    |  |       DUT1       <----------------->       DUT2       |  |\r
-    |  +--^--^------------+  |           |  +------------^--^--+  |\r
-    |     |  |               |           |               |  |     |\r
-    |     |  |         SUT1  |           |  SUT2         |  |     |\r
-    +------------------------+           +------------------------+\r
-          |  |                                           |  |\r
-          |  |                                           |  |\r
-          |  |               +-----------+               |  |\r
-          |  +--------------->           <---------------+  |\r
-          |                  |    TG     |                  |\r
-          +------------------>           <------------------+\r
-                             +-----------+\r
-\r
-                       +------------------------+\r
-                       |                        |\r
-                       |  +------------------+  |\r
-          +--------------->                  <--------------+\r
-          |            |  |                  |  |           |\r
-          |  |------------>       DUT1       <-----------+  |\r
-          |  |         |  +------------------+  |        |  |\r
-          |  |         |                        |        |  |\r
-          |  |         |                  SUT1  |        |  |\r
-          |  |         +------------------------+        |  |\r
-          |  |                                           |  |\r
-          |  |                                           |  |\r
-          |  |               +-----------+               |  |\r
-          |  +--------------->           <---------------+  |\r
-          |                  |    TG     |                  |\r
-          +------------------>           <------------------+\r
-                             +-----------+\r
-\r
-SUT1 and SUT2 are two VMs (Ubuntu or Centos, depending on the test suite), TG\r
-is a Traffic Generator (TG, another Ubuntu VM). SUTs run VPP SW application in\r
-Linux user-mode as a Device Under Test (DUT) within the VM. TG runs Scapy SW\r
-application as a packet Traffic Generator. Logical connectivity between SUTs\r
-and to TG is provided using virtual NICs using VMs' virtio driver.\r
-\r
-Virtual testbeds are created on-demand whenever a verification job is started\r
-(e.g. triggered by the gerrit patch submission) and destroyed upon completion\r
-of all functional tests. Each node is a Virtual Machine and each connection\r
-that is drawn on the diagram is available for use in any test case. During the\r
-test execution, all nodes are reachable thru the Management network connected\r
-to every node via dedicated virtual NICs and virtual links (not shown above\r
-for clarity).\r
-\r
-For the test cases that require DUT (VPP) to communicate with VM over the\r
-vhost-user interfaces, a nested VM is created on SUT1 and/or SUT2 for the\r
-duration of these particular test cases only. DUT (VPP) test topology with VM\r
-is shown in the figure below including the applicable packet flow thru the VM\r
-(marked in the figure with ``***``).::\r
-\r
-    +------------------------+           +------------------------+\r
-    |      +----------+      |           |      +----------+      |\r
-    |      |    VM    |      |           |      |    VM    |      |\r
-    |      |  ******  |      |           |      |  ******  |      |\r
-    |      +--^----^--+      |           |      +--^----^--+      |\r
-    |        *|    |*        |           |        *|    |*        |\r
-    |  +------v----v------+  |           |  +------v----v------+  |\r
-    |  |      *    *      |**|***********|**|      *    *      |  |\r
-    |  |  *****    *******<----------------->*******    *****  |  |\r
-    |  |  *    DUT1       |  |           |  |       DUT2    *  |  |\r
-    |  +--^---------------+  |           |  +---------------^--+  |\r
-    |    *|                  |           |                  |*    |\r
-    |    *|            SUT1  |           |  SUT2            |*    |\r
-    +------------------------+           +------------------^-----+\r
-         *|                                                 |*\r
-         *|                                                 |*\r
-         *|                  +-----------+                  |*\r
-         *|                  |           |                  |*\r
-         *+------------------>    TG     <------------------+*\r
-         ******************* |           |********************\r
-                             +-----------+\r
-\r
-Functional Tests Coverage\r
--------------------------\r
-\r
-Following VPP functional test areas are covered in the CSIT |release| with\r
-results listed in this report:\r
-\r
-- **DHCP - Client and Proxy** - Dynamic Host Control Protocol Client and Proxy\r
-  for IPv4, IPv6.\r
-- **GRE Overlay Tunnels** - Generic Routing Encapsulation for IPv4.\r
-- **L2BD Ethernet Switching** - L2 Bridge-Domain switched-forwarding for\r
-  untagged Ethernet, dot1q and dot1ad tagged.\r
-- **L2XC Ethernet Switching** - L2 Cross-Connect switched-forwarding for\r
-  untagged Ethernet, dot1q and dot1ad tagged.\r
-- **LISP Overlay Tunnels** - Locator/ID Separation Protocol overlay tunnels and\r
-  locator/id mapping control.\r
-- **Softwire Tunnels** - IPv4-in-IPv6 softwire tunnels.\r
-- **Cop Address Security** - address white-list and black-list filtering for\r
-  IPv4, IPv6.\r
-- **IPSec - Tunnels and Transport** - IPSec tunnel and transport modes.\r
-- **IPv6 Routed-Forwarding** - IPv6 routed-forwarding, NS/ND, RA, ICMPv6.\r
-- **uRPF Source Security** - unicast Reverse Path Forwarding security.\r
-- **Tap Interface** - baseline Linux tap interface tests.\r
-- **Telemetry - IPFIX and SPAN** - IPFIX netflow statistics and SPAN port\r
-  mirroring.\r
-- **VRF Routed-Forwarding** - multi-context IPVPN routed-forwarding for IPv4,\r
-  IPv6.\r
-- **iACL Security** - ingress Access Control List security for IPv4, IPv6, MAC.\r
-- **IPv4 Routed-Forwarding** - IPv4 routed-forwarding, RPF, ARP, Proxy ARP,\r
-  ICMPv4.\r
-- **QoS Policer Metering** - ingress packet rate measuring and marking for IPv4,\r
-  IPv6.\r
-- **VLAN Tag Translation** - L2 VLAN tag translation 2to2, 2to1, 1to2, 1to1.\r
-- **VXLAN Overlay Tunnels** - VXLAN tunneling for L2-over-IP, for IPv4, IPv6.\r
-\r
-Functional Tests Naming\r
------------------------\r
-\r
-CSIT |release| follows a common structured naming convention for all performance\r
-and system functional tests, introduced in CSIT rls1701.\r
-\r
-The naming should be intuitive for majority of the tests. Complete description\r
-of CSIT test naming convention is provided on :ref:`csit_test_naming`..\r
-\r
-Here few illustrative examples of the new naming usage for functional test\r
-suites:\r
-\r
-#. **Physical port to physical port - a.k.a. NIC-to-NIC, Phy-to-Phy, P2P**\r
-\r
-   - *eth2p-ethip4-ip4base-func.robot* => 2 ports of Ethernet, IPv4 baseline\r
-     routed forwarding, functional tests.\r
-\r
-#. **Physical port to VM (or VM chain) to physical port - a.k.a. NIC2VM2NIC,\r
-   P2V2P, NIC2VMchain2NIC, P2V2V2P**\r
-\r
-   - *eth2p-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-func.robot* => 2 ports of\r
-     Ethernet, IPv4 VXLAN Ethernet, L2 bridge-domain switching to/from two vhost\r
-     interfaces and one VM, functional tests.\r
+Overview
+========
+
+Tested Virtual Topologies
+-------------------------
+
+CSIT VPP functional tests are executed on virtualized topologies created using
+:abbr:`VIRL (Virtual Internet Routing Lab)` simulation platform contributed by
+Cisco. VIRL runs on physical baremetal servers hosted by LF FD.io project.
+Majority of the tests are executed in the three node logical test topology -
+Traffic Generator (TG) node and two Systems Under Test (SUT) nodes connected in
+a loop. Some tests use two node logical test topology - TG node and SUT1 node.
+Both logical test topologies are shown in the figures below.::
+
+    +------------------------+           +------------------------+
+    |                        |           |                        |
+    |  +------------------+  |           |  +------------------+  |
+    |  |                  <----------------->                  |  |
+    |  |                  |  |           |  |                  |  |
+    |  |       DUT1       <----------------->       DUT2       |  |
+    |  +--^--^------------+  |           |  +------------^--^--+  |
+    |     |  |               |           |               |  |     |
+    |     |  |         SUT1  |           |  SUT2         |  |     |
+    +------------------------+           +------------------------+
+          |  |                                           |  |
+          |  |                                           |  |
+          |  |               +-----------+               |  |
+          |  +--------------->           <---------------+  |
+          |                  |    TG     |                  |
+          +------------------>           <------------------+
+                             +-----------+
+
+                       +------------------------+
+                       |                        |
+                       |  +------------------+  |
+          +--------------->                  <--------------+
+          |            |  |                  |  |           |
+          |  |------------>       DUT1       <-----------+  |
+          |  |         |  +------------------+  |        |  |
+          |  |         |                        |        |  |
+          |  |         |                  SUT1  |        |  |
+          |  |         +------------------------+        |  |
+          |  |                                           |  |
+          |  |                                           |  |
+          |  |               +-----------+               |  |
+          |  +--------------->           <---------------+  |
+          |                  |    TG     |                  |
+          +------------------>           <------------------+
+                             +-----------+
+
+SUT1 and SUT2 are two VMs (Ubuntu or Centos, depending on the test suite), TG
+is a Traffic Generator (TG, another Ubuntu VM). SUTs run VPP SW application in
+Linux user-mode as a Device Under Test (DUT) within the VM. TG runs Scapy SW
+application as a packet Traffic Generator. Logical connectivity between SUTs
+and to TG is provided using virtual NICs using VMs' virtio driver.
+
+Virtual testbeds are created on-demand whenever a verification job is started
+(e.g. triggered by the gerrit patch submission) and destroyed upon completion
+of all functional tests. Each node is a Virtual Machine and each connection
+that is drawn on the diagram is available for use in any test case. During the
+test execution, all nodes are reachable thru the Management network connected
+to every node via dedicated virtual NICs and virtual links (not shown above
+for clarity).
+
+For the test cases that require DUT (VPP) to communicate with VM over the
+vhost-user interfaces, a nested VM is created on SUT1 and/or SUT2 for the
+duration of these particular test cases only. DUT (VPP) test topology with VM
+is shown in the figure below including the applicable packet flow thru the VM
+(marked in the figure with ``***``).::
+
+    +------------------------+           +------------------------+
+    |      +----------+      |           |      +----------+      |
+    |      |    VM    |      |           |      |    VM    |      |
+    |      |  ******  |      |           |      |  ******  |      |
+    |      +--^----^--+      |           |      +--^----^--+      |
+    |        *|    |*        |           |        *|    |*        |
+    |  +------v----v------+  |           |  +------v----v------+  |
+    |  |      *    *      |**|***********|**|      *    *      |  |
+    |  |  *****    *******<----------------->*******    *****  |  |
+    |  |  *    DUT1       |  |           |  |       DUT2    *  |  |
+    |  +--^---------------+  |           |  +---------------^--+  |
+    |    *|                  |           |                  |*    |
+    |    *|            SUT1  |           |  SUT2            |*    |
+    +------------------------+           +------------------^-----+
+         *|                                                 |*
+         *|                                                 |*
+         *|                  +-----------+                  |*
+         *|                  |           |                  |*
+         *+------------------>    TG     <------------------+*
+         ******************* |           |********************
+                             +-----------+
+
+Functional Tests Coverage
+-------------------------
+
+Following VPP functional test areas are covered in the CSIT |release| with
+results listed in this report:
+
+- **DHCP - Client and Proxy** - Dynamic Host Control Protocol Client and Proxy
+  for IPv4, IPv6.
+- **GRE Overlay Tunnels** - Generic Routing Encapsulation for IPv4.
+- **L2BD Ethernet Switching** - L2 Bridge-Domain switched-forwarding for
+  untagged Ethernet, dot1q and dot1ad tagged.
+- **L2XC Ethernet Switching** - L2 Cross-Connect switched-forwarding for
+  untagged Ethernet, dot1q and dot1ad tagged.
+- **LISP Overlay Tunnels** - Locator/ID Separation Protocol overlay tunnels and
+  locator/id mapping control.
+- **Softwire Tunnels** - IPv4-in-IPv6 softwire tunnels.
+- **Cop Address Security** - address white-list and black-list filtering for
+  IPv4, IPv6.
+- **IPSec - Tunnels and Transport** - IPSec tunnel and transport modes.
+- **IPv6 Routed-Forwarding** - IPv6 routed-forwarding, NS/ND, RA, ICMPv6.
+- **uRPF Source Security** - unicast Reverse Path Forwarding security.
+- **Tap Interface** - baseline Linux tap interface tests.
+- **Telemetry - IPFIX and SPAN** - IPFIX netflow statistics and SPAN port
+  mirroring.
+- **VRF Routed-Forwarding** - multi-context IPVPN routed-forwarding for IPv4,
+  IPv6.
+- **iACL Security** - ingress Access Control List security for IPv4, IPv6, MAC.
+- **IPv4 Routed-Forwarding** - IPv4 routed-forwarding, RPF, ARP, Proxy ARP,
+  ICMPv4.
+- **QoS Policer Metering** - ingress packet rate measuring and marking for IPv4,
+  IPv6.
+- **VLAN Tag Translation** - L2 VLAN tag translation 2to2, 2to1, 1to2, 1to1.
+- **VXLAN Overlay Tunnels** - VXLAN tunneling for L2-over-IP, for IPv4, IPv6.
+
+Functional Tests Naming
+-----------------------
+
+CSIT |release| follows a common structured naming convention for all performance
+and system functional tests, introduced in CSIT rls1701.
+
+The naming should be intuitive for majority of the tests. Complete description
+of CSIT test naming convention is provided on :ref:`csit_test_naming`..
+
+Here few illustrative examples of the new naming usage for functional test
+suites:
+
+#. **Physical port to physical port - a.k.a. NIC-to-NIC, Phy-to-Phy, P2P**
+
+   - *eth2p-ethip4-ip4base-func.robot* => 2 ports of Ethernet, IPv4 baseline
+     routed forwarding, functional tests.
+
+#. **Physical port to VM (or VM chain) to physical port - a.k.a. NIC2VM2NIC,
+   P2V2P, NIC2VMchain2NIC, P2V2V2P**
+
+   - *eth2p-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-func.robot* => 2 ports of
+     Ethernet, IPv4 VXLAN Ethernet, L2 bridge-domain switching to/from two vhost
+     interfaces and one VM, functional tests.
index 175e518..dfc40b0 100644 (file)
-Test Environment\r
-================\r
-\r
-CSIT functional tests are currently executed in FD.IO VIRL testbed. The physical\r
-VIRL testbed infrastructure consists of three VIRL hosts:\r
-\r
-- All hosts are Cisco UCS C240-M4 (2x Intel(R) Xeon(R) CPU E5-2699 v3 @2.30GHz,\r
-  18c, 512GB RAM)\r
-\r
-- tb4-virl1:\r
-\r
-  - Status: Production\r
-  - OS: Ubuntu 16.04.2\r
-  - STD server version 0.10.32.16\r
-  - UWM server version 0.10.32.16\r
-\r
-- tb4-virl2:\r
-\r
-  - Status: Production\r
-  - OS: Ubuntu 16.04.2\r
-  - STD server version 0.10.32.16\r
-  - UWM server version 0.10.32.16\r
-\r
-- tb4-virl3:\r
-\r
-  - Status: Testing\r
-  - OS: Ubuntu 16.04.2\r
-  - STD server version 0.10.32.19\r
-  - UWM server version 0.10.32.19\r
-\r
-Whenever a patch is submitted to gerrit for review, parallel VIRL simulations\r
-are started to reduce the time of execution of all functional tests. The number\r
-of parallel VIRL simulations is equal to number of test groups defined by\r
-TEST_GROUPS variable in :file:`csit/bootstrap.sh` file. The VIRL host to run\r
-VIRL simulation is selected based on least load algorithm per VIRL simulation.\r
-\r
-Every VIRL simulation uses the same three-node - Traffic Generator (TG node) and\r
-two Systems Under Test (SUT1 and SUT2) - "double-ring" topology. The appropriate\r
-pre-built VPP packages built by Jenkins for the patch under review are then\r
-installed on the two SUTs, along with their :file:`/etc/vpp/startup.conf` file,\r
-in all VIRL simulations.\r
-\r
-SUT Configuration - VIRL Guest VM\r
----------------------------------\r
-\r
-Configurations of the SUT VMs is defined in `VIRL topologies directory`_\r
-\r
-- List of SUT VM interfaces:::\r
-\r
-    <interface id="0" name="GigabitEthernet0/4/0"/>\r
-    <interface id="1" name="GigabitEthernet0/5/0"/>\r
-    <interface id="2" name="GigabitEthernet0/6/0"/>\r
-    <interface id="3" name="GigabitEthernet0/7/0"/>\r
-\r
-- Number of 2MB hugepages: 1024\r
-\r
-- Maximum number of memory map areas: 20000\r
-\r
-- Kernel Shared Memory Max: 2147483648 (vm.nr_hugepages * 2 * 1024 * 1024)\r
-\r
-SUT Configuration - VIRL Guest OS Linux\r
----------------------------------------\r
-\r
-In CSIT terminology, the VM operating system for both SUTs that |vpp-release| has\r
-been tested with, is the following:\r
-\r
-#. **Ubuntu VIRL image**\r
-\r
-   This image implies Ubuntu 16.04.1 LTS, current as of yyyy-mm-dd (that is,\r
-   package versions are those that would have been installed by a\r
-   :command:`apt-get update`, :command:`apt-get upgrade` on that day), produced\r
-   by CSIT disk image build scripts.\r
-\r
-   The exact list of installed packages and their versions (including the Linux\r
-   kernel package version) are included in `VIRL ubuntu images lists`_.\r
-\r
-   A replica of this VM image can be built by running the :command:`build.sh`\r
-   script in CSIT repository.\r
-\r
-#. **CentOS VIRL image**\r
-\r
-   This image implies Centos 7.4-1711, current as of yyyy-mm-dd (that is,\r
-   package versions are those that would have been installed by a\r
-   :command:`yum update`, :command:`yum upgrade` on that day), produced\r
-   by CSIT disk image build scripts.\r
-\r
-   The exact list of installed packages and their versions (including the Linux\r
-   kernel package version) are included in `VIRL centos images lists`_.\r
-\r
-   A replica of this VM image can be built by running the :command:`build.sh`\r
-   script in CSIT repository.\r
-\r
-#. **Nested VM image**\r
-\r
-   In addition to the "main" VM image, tests which require VPP to communicate to\r
-   a VM over a vhost-user interface, utilize a "nested" VM image.\r
-\r
-   This "nested" VM is dynamically created and destroyed as part of a test case,\r
-   and therefore the "nested" VM image is optimized to be small, lightweight and\r
-   have a short boot time. The "nested" VM image is not built around any\r
-   established Linux distribution, but is based on `BuildRoot\r
-   <https://buildroot.org/>`_, a tool for building embedded Linux systems. Just\r
-   as for the "main" image, scripts to produce an identical replica of the\r
-   "nested" image are included in CSIT GIT repository, and the image can be\r
-   rebuilt using the "build.sh" script at `VIRL nested`_.\r
-\r
-DUT Configuration - VPP\r
------------------------\r
-\r
-Every System Under Test runs VPP SW application in Linux user-mode as a Device\r
-Under Test (DUT) node.\r
-\r
-**DUT port configuration**\r
-\r
-Port configuration of DUTs is defined in topology file that is generated per\r
-VIRL simulation based on the definition stored in `VIRL topologies directory`_.\r
-\r
-Example of DUT nodes configuration:::\r
-\r
-    DUT1:\r
-        type: DUT\r
-        host: "10.30.51.157"\r
-        port: 22\r
-        username: cisco\r
-        honeycomb:\r
-          user: admin\r
-          passwd: admin\r
-          port: 8183\r
-          netconf_port: 2831\r
-        priv_key: |\r
-          -----BEGIN RSA PRIVATE KEY-----\r
-          MIIEpgIBAAKCAQEAwUDlTpzSHpwLQotZOFS4AgcPNEWCnP1AB2hWFmvI+8Kah/gb\r
-          v8ruZU9RqhPs56tyKzxbhvNkY4VbH5F1GilHZu3mLqzM4KfghMmaeMEjO1T7BYYd\r
-          vuBfTvIluljfQ2vAlnYrDwn+ClxJk81m0pDgvrLEX4qVVh2sGh7UEkYy5r82DNa2\r
-          4VjzPB1J/c8a9zP8FoZUhYIzF4FLvRMjUADpbMXgJMsGpaZLmz95ap0Eot7vb1Cc\r
-          1LvF97iyBCrtIOSKRKA50ZhLGjMKmOwnYU+cP5718tbproDVi6VJOo7zeuXyetMs\r
-          8YBl9kWblWG9BqP9jctFvsmi5G7hXgq1Y8u+DwIDAQABAoIBAQC/W4E0DHjLMny7\r
-          0bvw2YKzD0Zw3fttdB94tkm4PdZv5MybooPnsAvLaXVV0hEdfVi5kzSWNl/LY/tN\r
-          EP1BgGphc2QgB59/PPxGwFIjDCvUzlsZpynBHe+B/qh5ExNQcVvsIOqWI7DXlXaN\r
-          0i/khOzmJ6HncRRah1spKimYRsaUUDskyg7q3QqMWVaqBbbMvLs/w7ZWd/zoDqCU\r
-          MY/pCI6hkB3QbRo0OdiZLohphBl2ShABTwjvVyyKL5UA4jAEneJrhH5gWVLXnfgD\r
-          p62W5CollKEYblC8mUkPxpP7Qo277zw3xaq+oktIZhc5SUEUd7nJZtNqVAHqkItW\r
-          79VmpKyxAoGBAPfU+kqNPaTSvp+x1n5sn2SgipzDtgi9QqNmC4cjtrQQaaqI57SG\r
-          OHw1jX8i7L2G1WvVtkHg060nlEVo5n65ffFOqeVBezLVJ7ghWI8U+oBiJJyQ4boD\r
-          GJVNsoOSUQ0rtuGd9eVwfDk3ol9aCN0KK53oPfIYli29pyu4l095kg11AoGBAMef\r
-          bPEMBI/2XmCPshLSwhGFl+dW8d+Klluj3CUQ/0vUlvma3dfBOYNsIwAgTP0iIUTg\r
-          8DYE6KBCdPtxAUEI0YAEAKB9ry1tKR2NQEIPfslYytKErtwjAiqSi0heM6+zwEzu\r
-          f54Z4oBhsMSL0jXoOMnu+NZzEc6EUdQeY4O+jhjzAoGBAIogC3dtjMPGKTP7+93u\r
-          UE/XIioI8fWg9fj3sMka4IMu+pVvRCRbAjRH7JrFLkjbUyuMqs3Arnk9K+gbdQt/\r
-          +m95Njtt6WoFXuPCwgbM3GidSmZwYT4454SfDzVBYScEDCNm1FuR+8ov9bFLDtGT\r
-          D4gsngnGJj1MDFXTxZEn4nzZAoGBAKCg4WmpUPaCuXibyB+rZavxwsTNSn2lJ83/\r
-          sYJGBhf/raiV/FLDUcM1vYg5dZnu37RsB/5/vqxOLZGyYd7x+Jo5HkQGPnKgNwhn\r
-          g8BkdZIRF8uEJqxOo0ycdOU7n/2O93swIpKWo5LIiRPuqqzj+uZKnAL7vuVdxfaY\r
-          qVz2daMPAoGBALgaaKa3voU/HO1PYLWIhFrBThyJ+BQSQ8OqrEzC8AnegWFxRAM8\r
-          EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD\r
-          BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN\r
-          -----END RSA PRIVATE KEY-----\r
-\r
-        interfaces:\r
-          port1:\r
-            mac_address: "fa:16:3e:9b:89:52"\r
-            pci_address: "0000:00:04.0"\r
-            link: link1\r
-          port2:\r
-            mac_address: "fa:16:3e:7a:33:60"\r
-            pci_address: "0000:00:05.0"\r
-            link: link4\r
-          port3:\r
-            mac_address: "fa:16:3e:29:b7:ae"\r
-            pci_address: "0000:00:06.0"\r
-            link: link3\r
-          port4:\r
-            mac_address: "fa:16:3e:76:8d:ff"\r
-            pci_address: "0000:00:07.0"\r
-            link: link6\r
-      DUT2:\r
-        type: DUT\r
-        host: "10.30.51.156"\r
-        port: 22\r
-        username: cisco\r
-        honeycomb:\r
-          user: admin\r
-          passwd: admin\r
-          port: 8183\r
-          netconf_port: 2831\r
-        priv_key: |\r
-          -----BEGIN RSA PRIVATE KEY-----\r
-          MIIEpgIBAAKCAQEAwUDlTpzSHpwLQotZOFS4AgcPNEWCnP1AB2hWFmvI+8Kah/gb\r
-          v8ruZU9RqhPs56tyKzxbhvNkY4VbH5F1GilHZu3mLqzM4KfghMmaeMEjO1T7BYYd\r
-          vuBfTvIluljfQ2vAlnYrDwn+ClxJk81m0pDgvrLEX4qVVh2sGh7UEkYy5r82DNa2\r
-          4VjzPB1J/c8a9zP8FoZUhYIzF4FLvRMjUADpbMXgJMsGpaZLmz95ap0Eot7vb1Cc\r
-          1LvF97iyBCrtIOSKRKA50ZhLGjMKmOwnYU+cP5718tbproDVi6VJOo7zeuXyetMs\r
-          8YBl9kWblWG9BqP9jctFvsmi5G7hXgq1Y8u+DwIDAQABAoIBAQC/W4E0DHjLMny7\r
-          0bvw2YKzD0Zw3fttdB94tkm4PdZv5MybooPnsAvLaXVV0hEdfVi5kzSWNl/LY/tN\r
-          EP1BgGphc2QgB59/PPxGwFIjDCvUzlsZpynBHe+B/qh5ExNQcVvsIOqWI7DXlXaN\r
-          0i/khOzmJ6HncRRah1spKimYRsaUUDskyg7q3QqMWVaqBbbMvLs/w7ZWd/zoDqCU\r
-          MY/pCI6hkB3QbRo0OdiZLohphBl2ShABTwjvVyyKL5UA4jAEneJrhH5gWVLXnfgD\r
-          p62W5CollKEYblC8mUkPxpP7Qo277zw3xaq+oktIZhc5SUEUd7nJZtNqVAHqkItW\r
-          79VmpKyxAoGBAPfU+kqNPaTSvp+x1n5sn2SgipzDtgi9QqNmC4cjtrQQaaqI57SG\r
-          OHw1jX8i7L2G1WvVtkHg060nlEVo5n65ffFOqeVBezLVJ7ghWI8U+oBiJJyQ4boD\r
-          GJVNsoOSUQ0rtuGd9eVwfDk3ol9aCN0KK53oPfIYli29pyu4l095kg11AoGBAMef\r
-          bPEMBI/2XmCPshLSwhGFl+dW8d+Klluj3CUQ/0vUlvma3dfBOYNsIwAgTP0iIUTg\r
-          8DYE6KBCdPtxAUEI0YAEAKB9ry1tKR2NQEIPfslYytKErtwjAiqSi0heM6+zwEzu\r
-          f54Z4oBhsMSL0jXoOMnu+NZzEc6EUdQeY4O+jhjzAoGBAIogC3dtjMPGKTP7+93u\r
-          UE/XIioI8fWg9fj3sMka4IMu+pVvRCRbAjRH7JrFLkjbUyuMqs3Arnk9K+gbdQt/\r
-          +m95Njtt6WoFXuPCwgbM3GidSmZwYT4454SfDzVBYScEDCNm1FuR+8ov9bFLDtGT\r
-          D4gsngnGJj1MDFXTxZEn4nzZAoGBAKCg4WmpUPaCuXibyB+rZavxwsTNSn2lJ83/\r
-          sYJGBhf/raiV/FLDUcM1vYg5dZnu37RsB/5/vqxOLZGyYd7x+Jo5HkQGPnKgNwhn\r
-          g8BkdZIRF8uEJqxOo0ycdOU7n/2O93swIpKWo5LIiRPuqqzj+uZKnAL7vuVdxfaY\r
-          qVz2daMPAoGBALgaaKa3voU/HO1PYLWIhFrBThyJ+BQSQ8OqrEzC8AnegWFxRAM8\r
-          EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD\r
-          BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN\r
-          -----END RSA PRIVATE KEY-----\r
-\r
-        interfaces:\r
-          port1:\r
-            mac_address: "fa:16:3e:ad:6c:7d"\r
-            pci_address: "0000:00:04.0"\r
-            link: link2\r
-          port2:\r
-            mac_address: "fa:16:3e:94:a4:99"\r
-            pci_address: "0000:00:05.0"\r
-            link: link5\r
-          port3:\r
-            mac_address: "fa:16:3e:75:92:da"\r
-            pci_address: "0000:00:06.0"\r
-            link: link3\r
-          port4:\r
-            mac_address: "fa:16:3e:2c:b1:2a"\r
-            pci_address: "0000:00:07.0"\r
-            link: link6\r
-\r
-**VPP Version**\r
-\r
-|vpp-release|\r
-\r
-**VPP Installed Packages - Ubuntu**\r
-::\r
-\r
-    $ dpkg -l vpp\*\r
-    Desired=Unknown/Install/Remove/Purge/Hold\r
-    | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend\r
-    |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)\r
-    ||/ Name           Version       Architecture Description\r
-    +++-==============-=============-============-=================================================\r
-    ii  vpp            18.04-release amd64        Vector Packet Processing--executables\r
-    ii  vpp-dbg        18.04-release amd64        Vector Packet Processing--debug symbols\r
-    ii  vpp-dev        18.04-release amd64        Vector Packet Processing--development support\r
-    ii  vpp-dpdk-dkms  18.02-vpp1    amd64        DPDK Development Package for VPP - Kernel Modules\r
-    ii  vpp-lib        18.04-release amd64        Vector Packet Processing--runtime libraries\r
-    ii  vpp-plugins    18.04-release amd64        Vector Packet Processing--runtime plugins\r
-\r
-**VPP Installed Packages - Centos**\r
-::\r
-\r
-    $ rpm -qai vpp*\r
-    Name        : vpp\r
-    Version     : 18.04\r
-    Release     : release\r
-    Architecture: x86_64\r
-    Install Date: Fri 04 May 2018 02:47:36 AM EDT\r
-    Group       : Unspecified\r
-    Size        : 2311324\r
-    License     : ASL 2.0\r
-    Signature   : (none)\r
-    Source RPM  : vpp-18.04-release.src.rpm\r
-    Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT\r
-    Build Host  : c29a51c12e88\r
-    Relocations : (not relocatable)\r
-    Summary     : Vector Packet Processing\r
-    Description :\r
-    This package provides VPP executables: vpp, vpp_api_test, vpp_json_test\r
-    vpp - the vector packet engine\r
-    vpp_api_test - vector packet engine API test tool\r
-    vpp_json_test - vector packet engine JSON test tool\r
-    Name        : vpp-lib\r
-    Version     : 18.04\r
-    Release     : release\r
-    Architecture: x86_64\r
-    Install Date: Fri 04 May 2018 02:47:36 AM EDT\r
-    Group       : System Environment/Libraries\r
-    Size        : 24949034\r
-    License     : ASL 2.0\r
-    Signature   : (none)\r
-    Source RPM  : vpp-18.04-release.src.rpm\r
-    Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT\r
-    Build Host  : c29a51c12e88\r
-    Relocations : (not relocatable)\r
-    Summary     : VPP libraries\r
-    Description :\r
-    This package contains the VPP shared libraries, including:\r
-    vppinfra - foundation library supporting vectors, hashes, bitmaps, pools, and string formatting.\r
-    svm - vm library\r
-    vlib - vector processing library\r
-    vlib-api - binary API library\r
-    vnet -  network stack library\r
-    Name        : vpp-selinux-policy\r
-    Version     : 18.04\r
-    Release     : release\r
-    Architecture: x86_64\r
-    Install Date: Fri 04 May 2018 02:47:35 AM EDT\r
-    Group       : System Environment/Base\r
-    Size        : 86170\r
-    License     : ASL 2.0\r
-    Signature   : (none)\r
-    Source RPM  : vpp-18.04-release.src.rpm\r
-    Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT\r
-    Build Host  : c29a51c12e88\r
-    Relocations : (not relocatable)\r
-    Summary     : VPP Security-Enhanced Linux (SELinux) policy\r
-    Description :\r
-    This package contains a tailored VPP SELinux policy\r
-    Name        : vpp-devel\r
-    Version     : 18.04\r
-    Release     : release\r
-    Architecture: x86_64\r
-    Install Date: Fri 04 May 2018 02:47:38 AM EDT\r
-    Group       : Development/Libraries\r
-    Size        : 10632218\r
-    License     : ASL 2.0\r
-    Signature   : (none)\r
-    Source RPM  : vpp-18.04-release.src.rpm\r
-    Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT\r
-    Build Host  : c29a51c12e88\r
-    Relocations : (not relocatable)\r
-    Summary     : VPP header files, static libraries\r
-    Description :\r
-    This package contains the header files for VPP.\r
-    Install this package if you want to write a\r
-    program for compilation and linking with vpp lib.\r
-    vlib\r
-    vlibmemory\r
-    vnet - devices, classify, dhcp, ethernet flow, gre, ip, etc.\r
-    vpp-api\r
-    vppinfra\r
-    Name        : vpp-plugins\r
-    Version     : 18.04\r
-    Release     : release\r
-    Architecture: x86_64\r
-    Install Date: Fri 04 May 2018 02:47:37 AM EDT\r
-    Group       : System Environment/Libraries\r
-    Size        : 44145968\r
-    License     : ASL 2.0\r
-    Signature   : (none)\r
-    Source RPM  : vpp-18.04-release.src.rpm\r
-    Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT\r
-    Build Host  : c29a51c12e88\r
-    Relocations : (not relocatable)\r
-    Summary     : Vector Packet Processing--runtime plugins\r
-    Description :\r
-    This package contains VPP plugins\r
-\r
-**VPP Startup Configuration**\r
-\r
-VPP startup configuration is common for all test cases except test cases related\r
-to SW Crypto device.\r
-\r
-**Default**\r
-\r
-::\r
-\r
-    $ cat /etc/vpp/startup.conf\r
-    unix {\r
-      nodaemon\r
-      log /var/log/vpp/vpp.log\r
-      full-coredump\r
-      cli-listen /run/vpp/cli.sock\r
-      gid vpp\r
-    }\r
-\r
-    api-trace {\r
-    ## This stanza controls binary API tracing. Unless there is a very strong reason,\r
-    ## please leave this feature enabled.\r
-      on\r
-    ## Additional parameters:\r
-    ##\r
-    ## To set the number of binary API trace records in the circular buffer, configure nitems\r
-    ##\r
-    ## nitems <nnn>\r
-    ##\r
-    ## To save the api message table decode tables, configure a filename. Results in /tmp/<filename>\r
-    ## Very handy for understanding api message changes between versions, identifying missing\r
-    ## plugins, and so forth.\r
-    ##\r
-    ## save-api-table <filename>\r
-    }\r
-\r
-    api-segment {\r
-      gid vpp\r
-    }\r
-\r
-    cpu {\r
-        ## In the VPP there is one main thread and optionally the user can create worker(s)\r
-        ## The main thread and worker thread(s) can be pinned to CPU core(s) manually or automatically\r
-\r
-        ## Manual pinning of thread(s) to CPU core(s)\r
-\r
-        ## Set logical CPU core where main thread runs\r
-        # main-core 1\r
-\r
-        ## Set logical CPU core(s) where worker threads are running\r
-        # corelist-workers 2-3,18-19\r
-\r
-        ## Automatic pinning of thread(s) to CPU core(s)\r
-\r
-        ## Sets number of CPU core(s) to be skipped (1 ... N-1)\r
-        ## Skipped CPU core(s) are not used for pinning main thread and working thread(s).\r
-        ## The main thread is automatically pinned to the first available CPU core and worker(s)\r
-        ## are pinned to next free CPU core(s) after core assigned to main thread\r
-        # skip-cores 4\r
-\r
-        ## Specify a number of workers to be created\r
-        ## Workers are pinned to N consecutive CPU cores while skipping "skip-cores" CPU core(s)\r
-        ## and main thread's CPU core\r
-        # workers 2\r
-\r
-        ## Set scheduling policy and priority of main and worker threads\r
-\r
-        ## Scheduling policy options are: other (SCHED_OTHER), batch (SCHED_BATCH)\r
-        ## idle (SCHED_IDLE), fifo (SCHED_FIFO), rr (SCHED_RR)\r
-        # scheduler-policy fifo\r
-\r
-        ## Scheduling priority is used only for "real-time policies (fifo and rr),\r
-        ## and has to be in the range of priorities supported for a particular policy\r
-        # scheduler-priority 50\r
-    }\r
-\r
-    # dpdk {\r
-        ## Change default settings for all intefaces\r
-        # dev default {\r
-            ## Number of receive queues, enables RSS\r
-            ## Default is 1\r
-            # num-rx-queues 3\r
-\r
-            ## Number of transmit queues, Default is equal\r
-            ## to number of worker threads or 1 if no workers treads\r
-            # num-tx-queues 3\r
-\r
-            ## Number of descriptors in transmit and receive rings\r
-            ## increasing or reducing number can impact performance\r
-            ## Default is 1024 for both rx and tx\r
-            # num-rx-desc 512\r
-            # num-tx-desc 512\r
-\r
-            ## VLAN strip offload mode for interface\r
-            ## Default is off\r
-            # vlan-strip-offload on\r
-        # }\r
-\r
-        ## Whitelist specific interface by specifying PCI address\r
-        # dev 0000:02:00.0\r
-\r
-        ## Whitelist specific interface by specifying PCI address and in\r
-        ## addition specify custom parameters for this interface\r
-        # dev 0000:02:00.1 {\r
-        #      num-rx-queues 2\r
-        # }\r
-\r
-        ## Specify bonded interface and its slaves via PCI addresses\r
-        ##\r
-        ## Bonded interface in XOR load balance mode (mode 2) with L3 and L4 headers\r
-        # vdev eth_bond0,mode=2,slave=0000:02:00.0,slave=0000:03:00.0,xmit_policy=l34\r
-        # vdev eth_bond1,mode=2,slave=0000:02:00.1,slave=0000:03:00.1,xmit_policy=l34\r
-        ##\r
-        ## Bonded interface in Active-Back up mode (mode 1)\r
-        # vdev eth_bond0,mode=1,slave=0000:02:00.0,slave=0000:03:00.0\r
-        # vdev eth_bond1,mode=1,slave=0000:02:00.1,slave=0000:03:00.1\r
-\r
-        ## Change UIO driver used by VPP, Options are: igb_uio, vfio-pci,\r
-        ## uio_pci_generic or auto (default)\r
-        # uio-driver vfio-pci\r
-\r
-        ## Disable mutli-segment buffers, improves performance but\r
-        ## disables Jumbo MTU support\r
-        # no-multi-seg\r
-\r
-        ## Increase number of buffers allocated, needed only in scenarios with\r
-        ## large number of interfaces and worker threads. Value is per CPU socket.\r
-        ## Default is 16384\r
-        # num-mbufs 128000\r
-\r
-        ## Change hugepages allocation per-socket, needed only if there is need for\r
-        ## larger number of mbufs. Default is 256M on each detected CPU socket\r
-        # socket-mem 2048,2048\r
-\r
-        ## Disables UDP / TCP TX checksum offload. Typically needed for use\r
-        ## faster vector PMDs (together with no-multi-seg)\r
-        # no-tx-checksum-offload\r
-    # }\r
-\r
-\r
-    # plugins {\r
-        ## Adjusting the plugin path depending on where the VPP plugins are\r
-        #      path /home/bms/vpp/build-root/install-vpp-native/vpp/lib64/vpp_plugins\r
-\r
-        ## Disable all plugins by default and then selectively enable specific plugins\r
-        # plugin default { disable }\r
-        # plugin dpdk_plugin.so { enable }\r
-        # plugin acl_plugin.so { enable }\r
-\r
-        ## Enable all plugins by default and then selectively disable specific plugins\r
-        # plugin dpdk_plugin.so { disable }\r
-        # plugin acl_plugin.so { disable }\r
-    # }\r
-\r
-        ## Alternate syntax to choose plugin path\r
-        # plugin_path /home/bms/vpp/build-root/install-vpp-native/vpp/lib64/vpp_plugins\r
-\r
-**SW Crypto Device**\r
-\r
-::\r
-\r
-    $ cat /etc/vpp/startup.conf\r
-    unix\r
-    {\r
-      cli-listen /run/vpp/cli.sock\r
-      gid vpp\r
-      nodaemon\r
-      full-coredump\r
-      log /tmp/vpp.log\r
-    }\r
-    api-segment\r
-    {\r
-      gid vpp\r
-    }\r
-    dpdk\r
-    {\r
-      vdev cryptodev_aesni_gcm_pmd,socket_id=0\r
-      vdev cryptodev_aesni_mb_pmd,socket_id=0\r
-    }\r
-\r
-TG Configuration\r
-----------------\r
-\r
-Traffic Generator node is VM running the same OS Linux as SUTs. Ports of this\r
-VM are used as source (Tx) and destination (Rx) ports for the traffic.\r
-\r
-Traffic scripts of test cases are executed on this VM.\r
-\r
-**TG VM configuration**\r
-\r
-Configuration of the TG VMs is defined in `VIRL topologies directory`_.\r
-\r
-   /csit/resources/tools/virl/topologies/double-ring-nested.xenial.virl\r
-\r
-- List of TG VM interfaces:::\r
-\r
-    <interface id="0" name="eth1"/>\r
-    <interface id="1" name="eth2"/>\r
-    <interface id="2" name="eth3"/>\r
-    <interface id="3" name="eth4"/>\r
-    <interface id="4" name="eth5"/>\r
-    <interface id="5" name="eth6"/>\r
-\r
-**TG node port configuration**\r
-\r
-Port configuration of TG is defined in topology file that is generated per VIRL\r
-simulation based on the definition stored in `VIRL topologies directory`_.\r
-\r
-Example of TG node configuration:::\r
-\r
-    TG:\r
-        type: TG\r
-        host: "10.30.51.155"\r
-        port: 22\r
-        username: cisco\r
-        priv_key: |\r
-          -----BEGIN RSA PRIVATE KEY-----\r
-          MIIEpgIBAAKCAQEAwUDlTpzSHpwLQotZOFS4AgcPNEWCnP1AB2hWFmvI+8Kah/gb\r
-          v8ruZU9RqhPs56tyKzxbhvNkY4VbH5F1GilHZu3mLqzM4KfghMmaeMEjO1T7BYYd\r
-          vuBfTvIluljfQ2vAlnYrDwn+ClxJk81m0pDgvrLEX4qVVh2sGh7UEkYy5r82DNa2\r
-          4VjzPB1J/c8a9zP8FoZUhYIzF4FLvRMjUADpbMXgJMsGpaZLmz95ap0Eot7vb1Cc\r
-          1LvF97iyBCrtIOSKRKA50ZhLGjMKmOwnYU+cP5718tbproDVi6VJOo7zeuXyetMs\r
-          8YBl9kWblWG9BqP9jctFvsmi5G7hXgq1Y8u+DwIDAQABAoIBAQC/W4E0DHjLMny7\r
-          0bvw2YKzD0Zw3fttdB94tkm4PdZv5MybooPnsAvLaXVV0hEdfVi5kzSWNl/LY/tN\r
-          EP1BgGphc2QgB59/PPxGwFIjDCvUzlsZpynBHe+B/qh5ExNQcVvsIOqWI7DXlXaN\r
-          0i/khOzmJ6HncRRah1spKimYRsaUUDskyg7q3QqMWVaqBbbMvLs/w7ZWd/zoDqCU\r
-          MY/pCI6hkB3QbRo0OdiZLohphBl2ShABTwjvVyyKL5UA4jAEneJrhH5gWVLXnfgD\r
-          p62W5CollKEYblC8mUkPxpP7Qo277zw3xaq+oktIZhc5SUEUd7nJZtNqVAHqkItW\r
-          79VmpKyxAoGBAPfU+kqNPaTSvp+x1n5sn2SgipzDtgi9QqNmC4cjtrQQaaqI57SG\r
-          OHw1jX8i7L2G1WvVtkHg060nlEVo5n65ffFOqeVBezLVJ7ghWI8U+oBiJJyQ4boD\r
-          GJVNsoOSUQ0rtuGd9eVwfDk3ol9aCN0KK53oPfIYli29pyu4l095kg11AoGBAMef\r
-          bPEMBI/2XmCPshLSwhGFl+dW8d+Klluj3CUQ/0vUlvma3dfBOYNsIwAgTP0iIUTg\r
-          8DYE6KBCdPtxAUEI0YAEAKB9ry1tKR2NQEIPfslYytKErtwjAiqSi0heM6+zwEzu\r
-          f54Z4oBhsMSL0jXoOMnu+NZzEc6EUdQeY4O+jhjzAoGBAIogC3dtjMPGKTP7+93u\r
-          UE/XIioI8fWg9fj3sMka4IMu+pVvRCRbAjRH7JrFLkjbUyuMqs3Arnk9K+gbdQt/\r
-          +m95Njtt6WoFXuPCwgbM3GidSmZwYT4454SfDzVBYScEDCNm1FuR+8ov9bFLDtGT\r
-          D4gsngnGJj1MDFXTxZEn4nzZAoGBAKCg4WmpUPaCuXibyB+rZavxwsTNSn2lJ83/\r
-          sYJGBhf/raiV/FLDUcM1vYg5dZnu37RsB/5/vqxOLZGyYd7x+Jo5HkQGPnKgNwhn\r
-          g8BkdZIRF8uEJqxOo0ycdOU7n/2O93swIpKWo5LIiRPuqqzj+uZKnAL7vuVdxfaY\r
-          qVz2daMPAoGBALgaaKa3voU/HO1PYLWIhFrBThyJ+BQSQ8OqrEzC8AnegWFxRAM8\r
-          EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD\r
-          BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN\r
-          -----END RSA PRIVATE KEY-----\r
-\r
-        interfaces:\r
-          port3:\r
-            mac_address: "fa:16:3e:b9:e1:27"\r
-            pci_address: "0000:00:06.0"\r
-            link: link1\r
-            driver: virtio-pci\r
-          port4:\r
-            mac_address: "fa:16:3e:e9:c8:68"\r
-            pci_address: "0000:00:07.0"\r
-            link: link4\r
-            driver: virtio-pci\r
-          port5:\r
-            mac_address: "fa:16:3e:e8:d3:47"\r
-            pci_address: "0000:00:08.0"\r
-            link: link2\r
-            driver: virtio-pci\r
-          port6:\r
-            mac_address: "fa:16:3e:cf:ca:58"\r
-            pci_address: "0000:00:09.0"\r
-            link: link5\r
-            driver: virtio-pci\r
-\r
-**Traffic generator**\r
-\r
-Functional tests utilize Scapy as a traffic generator. There was used Scapy\r
-v2.3.1 for |vpp-release| tests.\r
-\r
+Test Environment
+================
+
+CSIT functional tests are currently executed in FD.IO VIRL testbed. The physical
+VIRL testbed infrastructure consists of three VIRL hosts:
+
+- All hosts are Cisco UCS C240-M4 (2x Intel(R) Xeon(R) CPU E5-2699 v3 @2.30GHz,
+  18c, 512GB RAM)
+
+- tb4-virl1:
+
+  - Status: Production
+  - OS: Ubuntu 16.04.2
+  - STD server version 0.10.32.16
+  - UWM server version 0.10.32.16
+
+- tb4-virl2:
+
+  - Status: Production
+  - OS: Ubuntu 16.04.2
+  - STD server version 0.10.32.16
+  - UWM server version 0.10.32.16
+
+- tb4-virl3:
+
+  - Status: Testing
+  - OS: Ubuntu 16.04.2
+  - STD server version 0.10.32.19
+  - UWM server version 0.10.32.19
+
+Whenever a patch is submitted to gerrit for review, parallel VIRL simulations
+are started to reduce the time of execution of all functional tests. The number
+of parallel VIRL simulations is equal to number of test groups defined by
+TEST_GROUPS variable in :file:`csit/bootstrap.sh` file. The VIRL host to run
+VIRL simulation is selected based on least load algorithm per VIRL simulation.
+
+Every VIRL simulation uses the same three-node - Traffic Generator (TG node) and
+two Systems Under Test (SUT1 and SUT2) - "double-ring" topology. The appropriate
+pre-built VPP packages built by Jenkins for the patch under review are then
+installed on the two SUTs, along with their :file:`/etc/vpp/startup.conf` file,
+in all VIRL simulations.
+
+SUT Configuration - VIRL Guest VM
+---------------------------------
+
+Configurations of the SUT VMs is defined in `VIRL topologies directory`_
+
+- List of SUT VM interfaces:::
+
+    <interface id="0" name="GigabitEthernet0/4/0"/>
+    <interface id="1" name="GigabitEthernet0/5/0"/>
+    <interface id="2" name="GigabitEthernet0/6/0"/>
+    <interface id="3" name="GigabitEthernet0/7/0"/>
+
+- Number of 2MB hugepages: 1024
+
+- Maximum number of memory map areas: 20000
+
+- Kernel Shared Memory Max: 2147483648 (vm.nr_hugepages * 2 * 1024 * 1024)
+
+SUT Configuration - VIRL Guest OS Linux
+---------------------------------------
+
+In CSIT terminology, the VM operating system for both SUTs that |vpp-release| has
+been tested with, is the following:
+
+#. **Ubuntu VIRL image**
+
+   This image implies Ubuntu 16.04.1 LTS, current as of yyyy-mm-dd (that is,
+   package versions are those that would have been installed by a
+   :command:`apt-get update`, :command:`apt-get upgrade` on that day), produced
+   by CSIT disk image build scripts.
+
+   The exact list of installed packages and their versions (including the Linux
+   kernel package version) are included in `VIRL ubuntu images lists`_.
+
+   A replica of this VM image can be built by running the :command:`build.sh`
+   script in CSIT repository.
+
+#. **CentOS VIRL image**
+
+   This image implies Centos 7.4-1711, current as of yyyy-mm-dd (that is,
+   package versions are those that would have been installed by a
+   :command:`yum update`, :command:`yum upgrade` on that day), produced
+   by CSIT disk image build scripts.
+
+   The exact list of installed packages and their versions (including the Linux
+   kernel package version) are included in `VIRL centos images lists`_.
+
+   A replica of this VM image can be built by running the :command:`build.sh`
+   script in CSIT repository.
+
+#. **Nested VM image**
+
+   In addition to the "main" VM image, tests which require VPP to communicate to
+   a VM over a vhost-user interface, utilize a "nested" VM image.
+
+   This "nested" VM is dynamically created and destroyed as part of a test case,
+   and therefore the "nested" VM image is optimized to be small, lightweight and
+   have a short boot time. The "nested" VM image is not built around any
+   established Linux distribution, but is based on `BuildRoot
+   <https://buildroot.org/>`_, a tool for building embedded Linux systems. Just
+   as for the "main" image, scripts to produce an identical replica of the
+   "nested" image are included in CSIT GIT repository, and the image can be
+   rebuilt using the "build.sh" script at `VIRL nested`_.
+
+DUT Configuration - VPP
+-----------------------
+
+Every System Under Test runs VPP SW application in Linux user-mode as a Device
+Under Test (DUT) node.
+
+**DUT port configuration**
+
+Port configuration of DUTs is defined in topology file that is generated per
+VIRL simulation based on the definition stored in `VIRL topologies directory`_.
+
+Example of DUT nodes configuration:::
+
+    DUT1:
+        type: DUT
+        host: "10.30.51.157"
+        port: 22
+        username: cisco
+        honeycomb:
+          user: admin
+          passwd: admin
+          port: 8183
+          netconf_port: 2831
+        priv_key: |
+          -----BEGIN RSA PRIVATE KEY-----
+          MIIEpgIBAAKCAQEAwUDlTpzSHpwLQotZOFS4AgcPNEWCnP1AB2hWFmvI+8Kah/gb
+          v8ruZU9RqhPs56tyKzxbhvNkY4VbH5F1GilHZu3mLqzM4KfghMmaeMEjO1T7BYYd
+          vuBfTvIluljfQ2vAlnYrDwn+ClxJk81m0pDgvrLEX4qVVh2sGh7UEkYy5r82DNa2
+          4VjzPB1J/c8a9zP8FoZUhYIzF4FLvRMjUADpbMXgJMsGpaZLmz95ap0Eot7vb1Cc
+          1LvF97iyBCrtIOSKRKA50ZhLGjMKmOwnYU+cP5718tbproDVi6VJOo7zeuXyetMs
+          8YBl9kWblWG9BqP9jctFvsmi5G7hXgq1Y8u+DwIDAQABAoIBAQC/W4E0DHjLMny7
+          0bvw2YKzD0Zw3fttdB94tkm4PdZv5MybooPnsAvLaXVV0hEdfVi5kzSWNl/LY/tN
+          EP1BgGphc2QgB59/PPxGwFIjDCvUzlsZpynBHe+B/qh5ExNQcVvsIOqWI7DXlXaN
+          0i/khOzmJ6HncRRah1spKimYRsaUUDskyg7q3QqMWVaqBbbMvLs/w7ZWd/zoDqCU
+          MY/pCI6hkB3QbRo0OdiZLohphBl2ShABTwjvVyyKL5UA4jAEneJrhH5gWVLXnfgD
+          p62W5CollKEYblC8mUkPxpP7Qo277zw3xaq+oktIZhc5SUEUd7nJZtNqVAHqkItW
+          79VmpKyxAoGBAPfU+kqNPaTSvp+x1n5sn2SgipzDtgi9QqNmC4cjtrQQaaqI57SG
+          OHw1jX8i7L2G1WvVtkHg060nlEVo5n65ffFOqeVBezLVJ7ghWI8U+oBiJJyQ4boD
+          GJVNsoOSUQ0rtuGd9eVwfDk3ol9aCN0KK53oPfIYli29pyu4l095kg11AoGBAMef
+          bPEMBI/2XmCPshLSwhGFl+dW8d+Klluj3CUQ/0vUlvma3dfBOYNsIwAgTP0iIUTg
+          8DYE6KBCdPtxAUEI0YAEAKB9ry1tKR2NQEIPfslYytKErtwjAiqSi0heM6+zwEzu
+          f54Z4oBhsMSL0jXoOMnu+NZzEc6EUdQeY4O+jhjzAoGBAIogC3dtjMPGKTP7+93u
+          UE/XIioI8fWg9fj3sMka4IMu+pVvRCRbAjRH7JrFLkjbUyuMqs3Arnk9K+gbdQt/
+          +m95Njtt6WoFXuPCwgbM3GidSmZwYT4454SfDzVBYScEDCNm1FuR+8ov9bFLDtGT
+          D4gsngnGJj1MDFXTxZEn4nzZAoGBAKCg4WmpUPaCuXibyB+rZavxwsTNSn2lJ83/
+          sYJGBhf/raiV/FLDUcM1vYg5dZnu37RsB/5/vqxOLZGyYd7x+Jo5HkQGPnKgNwhn
+          g8BkdZIRF8uEJqxOo0ycdOU7n/2O93swIpKWo5LIiRPuqqzj+uZKnAL7vuVdxfaY
+          qVz2daMPAoGBALgaaKa3voU/HO1PYLWIhFrBThyJ+BQSQ8OqrEzC8AnegWFxRAM8
+          EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD
+          BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN
+          -----END RSA PRIVATE KEY-----
+
+        interfaces:
+          port1:
+            mac_address: "fa:16:3e:9b:89:52"
+            pci_address: "0000:00:04.0"
+            link: link1
+          port2:
+            mac_address: "fa:16:3e:7a:33:60"
+            pci_address: "0000:00:05.0"
+            link: link4
+          port3:
+            mac_address: "fa:16:3e:29:b7:ae"
+            pci_address: "0000:00:06.0"
+            link: link3
+          port4:
+            mac_address: "fa:16:3e:76:8d:ff"
+            pci_address: "0000:00:07.0"
+            link: link6
+      DUT2:
+        type: DUT
+        host: "10.30.51.156"
+        port: 22
+        username: cisco
+        honeycomb:
+          user: admin
+          passwd: admin
+          port: 8183
+          netconf_port: 2831
+        priv_key: |
+          -----BEGIN RSA PRIVATE KEY-----
+          MIIEpgIBAAKCAQEAwUDlTpzSHpwLQotZOFS4AgcPNEWCnP1AB2hWFmvI+8Kah/gb
+          v8ruZU9RqhPs56tyKzxbhvNkY4VbH5F1GilHZu3mLqzM4KfghMmaeMEjO1T7BYYd
+          vuBfTvIluljfQ2vAlnYrDwn+ClxJk81m0pDgvrLEX4qVVh2sGh7UEkYy5r82DNa2
+          4VjzPB1J/c8a9zP8FoZUhYIzF4FLvRMjUADpbMXgJMsGpaZLmz95ap0Eot7vb1Cc
+          1LvF97iyBCrtIOSKRKA50ZhLGjMKmOwnYU+cP5718tbproDVi6VJOo7zeuXyetMs
+          8YBl9kWblWG9BqP9jctFvsmi5G7hXgq1Y8u+DwIDAQABAoIBAQC/W4E0DHjLMny7
+          0bvw2YKzD0Zw3fttdB94tkm4PdZv5MybooPnsAvLaXVV0hEdfVi5kzSWNl/LY/tN
+          EP1BgGphc2QgB59/PPxGwFIjDCvUzlsZpynBHe+B/qh5ExNQcVvsIOqWI7DXlXaN
+          0i/khOzmJ6HncRRah1spKimYRsaUUDskyg7q3QqMWVaqBbbMvLs/w7ZWd/zoDqCU
+          MY/pCI6hkB3QbRo0OdiZLohphBl2ShABTwjvVyyKL5UA4jAEneJrhH5gWVLXnfgD
+          p62W5CollKEYblC8mUkPxpP7Qo277zw3xaq+oktIZhc5SUEUd7nJZtNqVAHqkItW
+          79VmpKyxAoGBAPfU+kqNPaTSvp+x1n5sn2SgipzDtgi9QqNmC4cjtrQQaaqI57SG
+          OHw1jX8i7L2G1WvVtkHg060nlEVo5n65ffFOqeVBezLVJ7ghWI8U+oBiJJyQ4boD
+          GJVNsoOSUQ0rtuGd9eVwfDk3ol9aCN0KK53oPfIYli29pyu4l095kg11AoGBAMef
+          bPEMBI/2XmCPshLSwhGFl+dW8d+Klluj3CUQ/0vUlvma3dfBOYNsIwAgTP0iIUTg
+          8DYE6KBCdPtxAUEI0YAEAKB9ry1tKR2NQEIPfslYytKErtwjAiqSi0heM6+zwEzu
+          f54Z4oBhsMSL0jXoOMnu+NZzEc6EUdQeY4O+jhjzAoGBAIogC3dtjMPGKTP7+93u
+          UE/XIioI8fWg9fj3sMka4IMu+pVvRCRbAjRH7JrFLkjbUyuMqs3Arnk9K+gbdQt/
+          +m95Njtt6WoFXuPCwgbM3GidSmZwYT4454SfDzVBYScEDCNm1FuR+8ov9bFLDtGT
+          D4gsngnGJj1MDFXTxZEn4nzZAoGBAKCg4WmpUPaCuXibyB+rZavxwsTNSn2lJ83/
+          sYJGBhf/raiV/FLDUcM1vYg5dZnu37RsB/5/vqxOLZGyYd7x+Jo5HkQGPnKgNwhn
+          g8BkdZIRF8uEJqxOo0ycdOU7n/2O93swIpKWo5LIiRPuqqzj+uZKnAL7vuVdxfaY
+          qVz2daMPAoGBALgaaKa3voU/HO1PYLWIhFrBThyJ+BQSQ8OqrEzC8AnegWFxRAM8
+          EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD
+          BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN
+          -----END RSA PRIVATE KEY-----
+
+        interfaces:
+          port1:
+            mac_address: "fa:16:3e:ad:6c:7d"
+            pci_address: "0000:00:04.0"
+            link: link2
+          port2:
+            mac_address: "fa:16:3e:94:a4:99"
+            pci_address: "0000:00:05.0"
+            link: link5
+          port3:
+            mac_address: "fa:16:3e:75:92:da"
+            pci_address: "0000:00:06.0"
+            link: link3
+          port4:
+            mac_address: "fa:16:3e:2c:b1:2a"
+            pci_address: "0000:00:07.0"
+            link: link6
+
+**VPP Version**
+
+|vpp-release|
+
+**VPP Installed Packages - Ubuntu**
+::
+
+    $ dpkg -l vpp\*
+    Desired=Unknown/Install/Remove/Purge/Hold
+    | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
+    |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
+    ||/ Name           Version       Architecture Description
+    +++-==============-=============-============-=================================================
+    ii  vpp            18.04-release amd64        Vector Packet Processing--executables
+    ii  vpp-dbg        18.04-release amd64        Vector Packet Processing--debug symbols
+    ii  vpp-dev        18.04-release amd64        Vector Packet Processing--development support
+    ii  vpp-dpdk-dkms  18.02-vpp1    amd64        DPDK Development Package for VPP - Kernel Modules
+    ii  vpp-lib        18.04-release amd64        Vector Packet Processing--runtime libraries
+    ii  vpp-plugins    18.04-release amd64        Vector Packet Processing--runtime plugins
+
+**VPP Installed Packages - Centos**
+::
+
+    $ rpm -qai vpp*
+    Name        : vpp
+    Version     : 18.04
+    Release     : release
+    Architecture: x86_64
+    Install Date: Fri 04 May 2018 02:47:36 AM EDT
+    Group       : Unspecified
+    Size        : 2311324
+    License     : ASL 2.0
+    Signature   : (none)
+    Source RPM  : vpp-18.04-release.src.rpm
+    Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT
+    Build Host  : c29a51c12e88
+    Relocations : (not relocatable)
+    Summary     : Vector Packet Processing
+    Description :
+    This package provides VPP executables: vpp, vpp_api_test, vpp_json_test
+    vpp - the vector packet engine
+    vpp_api_test - vector packet engine API test tool
+    vpp_json_test - vector packet engine JSON test tool
+    Name        : vpp-lib
+    Version     : 18.04
+    Release     : release
+    Architecture: x86_64
+    Install Date: Fri 04 May 2018 02:47:36 AM EDT
+    Group       : System Environment/Libraries
+    Size        : 24949034
+    License     : ASL 2.0
+    Signature   : (none)
+    Source RPM  : vpp-18.04-release.src.rpm
+    Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT
+    Build Host  : c29a51c12e88
+    Relocations : (not relocatable)
+    Summary     : VPP libraries
+    Description :
+    This package contains the VPP shared libraries, including:
+    vppinfra - foundation library supporting vectors, hashes, bitmaps, pools, and string formatting.
+    svm - vm library
+    vlib - vector processing library
+    vlib-api - binary API library
+    vnet -  network stack library
+    Name        : vpp-selinux-policy
+    Version     : 18.04
+    Release     : release
+    Architecture: x86_64
+    Install Date: Fri 04 May 2018 02:47:35 AM EDT
+    Group       : System Environment/Base
+    Size        : 86170
+    License     : ASL 2.0
+    Signature   : (none)
+    Source RPM  : vpp-18.04-release.src.rpm
+    Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT
+    Build Host  : c29a51c12e88
+    Relocations : (not relocatable)
+    Summary     : VPP Security-Enhanced Linux (SELinux) policy
+    Description :
+    This package contains a tailored VPP SELinux policy
+    Name        : vpp-devel
+    Version     : 18.04
+    Release     : release
+    Architecture: x86_64
+    Install Date: Fri 04 May 2018 02:47:38 AM EDT
+    Group       : Development/Libraries
+    Size        : 10632218
+    License     : ASL 2.0
+    Signature   : (none)
+    Source RPM  : vpp-18.04-release.src.rpm
+    Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT
+    Build Host  : c29a51c12e88
+    Relocations : (not relocatable)
+    Summary     : VPP header files, static libraries
+    Description :
+    This package contains the header files for VPP.
+    Install this package if you want to write a
+    program for compilation and linking with vpp lib.
+    vlib
+    vlibmemory
+    vnet - devices, classify, dhcp, ethernet flow, gre, ip, etc.
+    vpp-api
+    vppinfra
+    Name        : vpp-plugins
+    Version     : 18.04
+    Release     : release
+    Architecture: x86_64
+    Install Date: Fri 04 May 2018 02:47:37 AM EDT
+    Group       : System Environment/Libraries
+    Size        : 44145968
+    License     : ASL 2.0
+    Signature   : (none)
+    Source RPM  : vpp-18.04-release.src.rpm
+    Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT
+    Build Host  : c29a51c12e88
+    Relocations : (not relocatable)
+    Summary     : Vector Packet Processing--runtime plugins
+    Description :
+    This package contains VPP plugins
+
+**VPP Startup Configuration**
+
+VPP startup configuration is common for all test cases except test cases related
+to SW Crypto device.
+
+**Default**
+
+::
+
+    $ cat /etc/vpp/startup.conf
+    unix {
+      nodaemon
+      log /var/log/vpp/vpp.log
+      full-coredump
+      cli-listen /run/vpp/cli.sock
+      gid vpp
+    }
+
+    api-trace {
+    ## This stanza controls binary API tracing. Unless there is a very strong reason,
+    ## please leave this feature enabled.
+      on
+    ## Additional parameters:
+    ##
+    ## To set the number of binary API trace records in the circular buffer, configure nitems
+    ##
+    ## nitems <nnn>
+    ##
+    ## To save the api message table decode tables, configure a filename. Results in /tmp/<filename>
+    ## Very handy for understanding api message changes between versions, identifying missing
+    ## plugins, and so forth.
+    ##
+    ## save-api-table <filename>
+    }
+
+    api-segment {
+      gid vpp
+    }
+
+    cpu {
+        ## In the VPP there is one main thread and optionally the user can create worker(s)
+        ## The main thread and worker thread(s) can be pinned to CPU core(s) manually or automatically
+
+        ## Manual pinning of thread(s) to CPU core(s)
+
+        ## Set logical CPU core where main thread runs
+        # main-core 1
+
+        ## Set logical CPU core(s) where worker threads are running
+        # corelist-workers 2-3,18-19
+
+        ## Automatic pinning of thread(s) to CPU core(s)
+
+        ## Sets number of CPU core(s) to be skipped (1 ... N-1)
+        ## Skipped CPU core(s) are not used for pinning main thread and working thread(s).
+        ## The main thread is automatically pinned to the first available CPU core and worker(s)
+        ## are pinned to next free CPU core(s) after core assigned to main thread
+        # skip-cores 4
+
+        ## Specify a number of workers to be created
+        ## Workers are pinned to N consecutive CPU cores while skipping "skip-cores" CPU core(s)
+        ## and main thread's CPU core
+        # workers 2
+
+        ## Set scheduling policy and priority of main and worker threads
+
+        ## Scheduling policy options are: other (SCHED_OTHER), batch (SCHED_BATCH)
+        ## idle (SCHED_IDLE), fifo (SCHED_FIFO), rr (SCHED_RR)
+        # scheduler-policy fifo
+
+        ## Scheduling priority is used only for "real-time policies (fifo and rr),
+        ## and has to be in the range of priorities supported for a particular policy
+        # scheduler-priority 50
+    }
+
+    # dpdk {
+        ## Change default settings for all intefaces
+        # dev default {
+            ## Number of receive queues, enables RSS
+            ## Default is 1
+            # num-rx-queues 3
+
+            ## Number of transmit queues, Default is equal
+            ## to number of worker threads or 1 if no workers treads
+            # num-tx-queues 3
+
+            ## Number of descriptors in transmit and receive rings
+            ## increasing or reducing number can impact performance
+            ## Default is 1024 for both rx and tx
+            # num-rx-desc 512
+            # num-tx-desc 512
+
+            ## VLAN strip offload mode for interface
+            ## Default is off
+            # vlan-strip-offload on
+        # }
+
+        ## Whitelist specific interface by specifying PCI address
+        # dev 0000:02:00.0
+
+        ## Whitelist specific interface by specifying PCI address and in
+        ## addition specify custom parameters for this interface
+        # dev 0000:02:00.1 {
+        #      num-rx-queues 2
+        # }
+
+        ## Specify bonded interface and its slaves via PCI addresses
+        ##
+        ## Bonded interface in XOR load balance mode (mode 2) with L3 and L4 headers
+        # vdev eth_bond0,mode=2,slave=0000:02:00.0,slave=0000:03:00.0,xmit_policy=l34
+        # vdev eth_bond1,mode=2,slave=0000:02:00.1,slave=0000:03:00.1,xmit_policy=l34
+        ##
+        ## Bonded interface in Active-Back up mode (mode 1)
+        # vdev eth_bond0,mode=1,slave=0000:02:00.0,slave=0000:03:00.0
+        # vdev eth_bond1,mode=1,slave=0000:02:00.1,slave=0000:03:00.1
+
+        ## Change UIO driver used by VPP, Options are: igb_uio, vfio-pci,
+        ## uio_pci_generic or auto (default)
+        # uio-driver vfio-pci
+
+        ## Disable mutli-segment buffers, improves performance but
+        ## disables Jumbo MTU support
+        # no-multi-seg
+
+        ## Increase number of buffers allocated, needed only in scenarios with
+        ## large number of interfaces and worker threads. Value is per CPU socket.
+        ## Default is 16384
+        # num-mbufs 128000
+
+        ## Change hugepages allocation per-socket, needed only if there is need for
+        ## larger number of mbufs. Default is 256M on each detected CPU socket
+        # socket-mem 2048,2048
+
+        ## Disables UDP / TCP TX checksum offload. Typically needed for use
+        ## faster vector PMDs (together with no-multi-seg)
+        # no-tx-checksum-offload
+    # }
+
+
+    # plugins {
+        ## Adjusting the plugin path depending on where the VPP plugins are
+        #      path /home/bms/vpp/build-root/install-vpp-native/vpp/lib64/vpp_plugins
+
+        ## Disable all plugins by default and then selectively enable specific plugins
+        # plugin default { disable }
+        # plugin dpdk_plugin.so { enable }
+        # plugin acl_plugin.so { enable }
+
+        ## Enable all plugins by default and then selectively disable specific plugins
+        # plugin dpdk_plugin.so { disable }
+        # plugin acl_plugin.so { disable }
+    # }
+
+        ## Alternate syntax to choose plugin path
+        # plugin_path /home/bms/vpp/build-root/install-vpp-native/vpp/lib64/vpp_plugins
+
+**SW Crypto Device**
+
+::
+
+    $ cat /etc/vpp/startup.conf
+    unix
+    {
+      cli-listen /run/vpp/cli.sock
+      gid vpp
+      nodaemon
+      full-coredump
+      log /tmp/vpp.log
+    }
+    api-segment
+    {
+      gid vpp
+    }
+    dpdk
+    {
+      vdev cryptodev_aesni_gcm_pmd,socket_id=0
+      vdev cryptodev_aesni_mb_pmd,socket_id=0
+    }
+
+TG Configuration
+----------------
+
+Traffic Generator node is VM running the same OS Linux as SUTs. Ports of this
+VM are used as source (Tx) and destination (Rx) ports for the traffic.
+
+Traffic scripts of test cases are executed on this VM.
+
+**TG VM configuration**
+
+Configuration of the TG VMs is defined in `VIRL topologies directory`_.
+
+   /csit/resources/tools/virl/topologies/double-ring-nested.xenial.virl
+
+- List of TG VM interfaces:::
+
+    <interface id="0" name="eth1"/>
+    <interface id="1" name="eth2"/>
+    <interface id="2" name="eth3"/>
+    <interface id="3" name="eth4"/>
+    <interface id="4" name="eth5"/>
+    <interface id="5" name="eth6"/>
+
+**TG node port configuration**
+
+Port configuration of TG is defined in topology file that is generated per VIRL
+simulation based on the definition stored in `VIRL topologies directory`_.
+
+Example of TG node configuration:::
+
+    TG:
+        type: TG
+        host: "10.30.51.155"
+        port: 22
+        username: cisco
+        priv_key: |
+          -----BEGIN RSA PRIVATE KEY-----
+          MIIEpgIBAAKCAQEAwUDlTpzSHpwLQotZOFS4AgcPNEWCnP1AB2hWFmvI+8Kah/gb
+          v8ruZU9RqhPs56tyKzxbhvNkY4VbH5F1GilHZu3mLqzM4KfghMmaeMEjO1T7BYYd
+          vuBfTvIluljfQ2vAlnYrDwn+ClxJk81m0pDgvrLEX4qVVh2sGh7UEkYy5r82DNa2
+          4VjzPB1J/c8a9zP8FoZUhYIzF4FLvRMjUADpbMXgJMsGpaZLmz95ap0Eot7vb1Cc
+          1LvF97iyBCrtIOSKRKA50ZhLGjMKmOwnYU+cP5718tbproDVi6VJOo7zeuXyetMs
+          8YBl9kWblWG9BqP9jctFvsmi5G7hXgq1Y8u+DwIDAQABAoIBAQC/W4E0DHjLMny7
+          0bvw2YKzD0Zw3fttdB94tkm4PdZv5MybooPnsAvLaXVV0hEdfVi5kzSWNl/LY/tN
+          EP1BgGphc2QgB59/PPxGwFIjDCvUzlsZpynBHe+B/qh5ExNQcVvsIOqWI7DXlXaN
+          0i/khOzmJ6HncRRah1spKimYRsaUUDskyg7q3QqMWVaqBbbMvLs/w7ZWd/zoDqCU
+          MY/pCI6hkB3QbRo0OdiZLohphBl2ShABTwjvVyyKL5UA4jAEneJrhH5gWVLXnfgD
+          p62W5CollKEYblC8mUkPxpP7Qo277zw3xaq+oktIZhc5SUEUd7nJZtNqVAHqkItW
+          79VmpKyxAoGBAPfU+kqNPaTSvp+x1n5sn2SgipzDtgi9QqNmC4cjtrQQaaqI57SG
+          OHw1jX8i7L2G1WvVtkHg060nlEVo5n65ffFOqeVBezLVJ7ghWI8U+oBiJJyQ4boD
+          GJVNsoOSUQ0rtuGd9eVwfDk3ol9aCN0KK53oPfIYli29pyu4l095kg11AoGBAMef
+          bPEMBI/2XmCPshLSwhGFl+dW8d+Klluj3CUQ/0vUlvma3dfBOYNsIwAgTP0iIUTg
+          8DYE6KBCdPtxAUEI0YAEAKB9ry1tKR2NQEIPfslYytKErtwjAiqSi0heM6+zwEzu
+          f54Z4oBhsMSL0jXoOMnu+NZzEc6EUdQeY4O+jhjzAoGBAIogC3dtjMPGKTP7+93u
+          UE/XIioI8fWg9fj3sMka4IMu+pVvRCRbAjRH7JrFLkjbUyuMqs3Arnk9K+gbdQt/
+          +m95Njtt6WoFXuPCwgbM3GidSmZwYT4454SfDzVBYScEDCNm1FuR+8ov9bFLDtGT
+          D4gsngnGJj1MDFXTxZEn4nzZAoGBAKCg4WmpUPaCuXibyB+rZavxwsTNSn2lJ83/
+          sYJGBhf/raiV/FLDUcM1vYg5dZnu37RsB/5/vqxOLZGyYd7x+Jo5HkQGPnKgNwhn
+          g8BkdZIRF8uEJqxOo0ycdOU7n/2O93swIpKWo5LIiRPuqqzj+uZKnAL7vuVdxfaY
+          qVz2daMPAoGBALgaaKa3voU/HO1PYLWIhFrBThyJ+BQSQ8OqrEzC8AnegWFxRAM8
+          EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD
+          BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN
+          -----END RSA PRIVATE KEY-----
+
+        interfaces:
+          port3:
+            mac_address: "fa:16:3e:b9:e1:27"
+            pci_address: "0000:00:06.0"
+            link: link1
+            driver: virtio-pci
+          port4:
+            mac_address: "fa:16:3e:e9:c8:68"
+            pci_address: "0000:00:07.0"
+            link: link4
+            driver: virtio-pci
+          port5:
+            mac_address: "fa:16:3e:e8:d3:47"
+            pci_address: "0000:00:08.0"
+            link: link2
+            driver: virtio-pci
+          port6:
+            mac_address: "fa:16:3e:cf:ca:58"
+            pci_address: "0000:00:09.0"
+            link: link5
+            driver: virtio-pci
+
+**Traffic generator**
+
+Functional tests utilize Scapy as a traffic generator. There was used Scapy
+v2.3.1 for |vpp-release| tests.
+
index 377bd30..0309885 100644 (file)
-CSIT Release Notes\r
-==================\r
-\r
-Changes in CSIT |release|\r
--------------------------\r
-\r
-#. **VPP performance tests**\r
-\r
-   - *MRR tests* - New Maximum Receive Rate tests measure the packet\r
-     forwarding rate under the maximum load offered by traffic\r
-     generator over a set trial duration, regardless of packet loss.\r
-     MRR tests are used for continuous performance trending and for\r
-     comparison between releases.\r
-\r
-   - *Service Chaining with SRv6* - New SRv6 (Segment Routing IPv6) proxy\r
-     tests measure performance of SRv6 Endpoint fronting SR-unaware\r
-     appliance via masquerading (End.AM), dynamic proxy (End.AD) or\r
-     static proxy (End.AS) SR functions.\r
-\r
-#. **Presentation and Analytics Layer**\r
-\r
-   - *Performance trending* - Added continuous performance trending and\r
-     analysis. New Performance Trending and Performance Analysis jobs\r
-     executed regular throughput tests, with results being subsequently\r
-     analysed and trend and anomalies summarized and presented in VPP\r
-     Performance Dashboard and trendline graphs.\r
-\r
-#. **Test Framework Optimizations**\r
-\r
-   - *Performance tests efficiency* - Qemu build/install optimizations,\r
-     warmup phase handling, vpp restart handling. Resulted in improved\r
-     stability and reduced total execution time by 30% for single pkt\r
-     size e.g. 64B/78B.\r
-\r
-   - *General code housekeeping* - ongoing RF keywords optimizations,\r
-     removal of redundant RF keywords.\r
-\r
-Performance Changes\r
--------------------\r
-\r
-Relative performance changes in measured packet throughput in CSIT\r
-|release| are calculated against the results from CSIT |release-1|\r
-report. Listed mean and standard deviation values are computed based on\r
-a series of the same tests executed against respective VPP releases to\r
-verify test results repeatibility, with percentage change calculated for\r
-mean values. Note that the standard deviation is quite high for a small\r
-number of packet throughput tests, what indicates poor test results\r
-repeatability and makes the relative change of mean throughput value not\r
-fully representative for these tests. The root causes behind poor\r
-results repeatibility vary between the test cases.\r
-\r
-NDR Changes\r
-~~~~~~~~~~~\r
-\r
-NDR small packet throughput changes between releases are available in a\r
-CSV and pretty ASCII formats:\r
-\r
-  - `csv format for 1t1c <../_static/vpp/performance-changes-ndr-1t1c-full.csv>`_,\r
-  - `csv format for 2t2c <../_static/vpp/performance-changes-ndr-2t2c-full.csv>`_,\r
-  - `pretty ASCII format for 1t1c <../_static/vpp/performance-changes-ndr-1t1c-full.txt>`_,\r
-  - `pretty ASCII format for 2t2c <../_static/vpp/performance-changes-ndr-2t2c-full.txt>`_.\r
-\r
-.. note::\r
-\r
-    Test results have been generated by\r
-    `FD.io test executor vpp performance jobs`_ with Robot Framework result\r
-    files csit-vpp-perf-|srelease|-\*.zip `archived here <../_static/archive/>`_.\r
-\r
-PDR Changes\r
-~~~~~~~~~~~\r
-\r
-NDR small packet throughput changes between releases are available in a\r
-CSV and pretty ASCII formats:\r
-\r
-  - `csv format for 1t1c <../_static/vpp/performance-changes-pdr-1t1c-full.csv>`_,\r
-  - `csv format for 2t2c <../_static/vpp/performance-changes-pdr-2t2c-full.csv>`_,\r
-  - `pretty ASCII format for 1t1c <../_static/vpp/performance-changes-pdr-1t1c-full.txt>`_,\r
-  - `pretty ASCII format for 2t2c <../_static/vpp/performance-changes-pdr-2t2c-full.txt>`_.\r
-\r
-.. note::\r
-\r
-    Test results have been generated by\r
-    `FD.io test executor vpp performance jobs`_ with Robot Framework result\r
-    files csit-vpp-perf-|srelease|-\*.zip `archived here <../_static/archive/>`_.\r
-\r
-MRR Changes\r
-~~~~~~~~~~~\r
-\r
-MRR small packet throughput changes between releases are available in a\r
-CSV and pretty ASCII formats:\r
-\r
-  - `csv format for 1t1c <../_static/vpp/performance-changes-mrr-1t1c-full.csv>`_,\r
-  - `csv format for 2t2c <../_static/vpp/performance-changes-mrr-2t2c-full.csv>`_,\r
-  - `csv format for 4t4c <../_static/vpp/performance-changes-mrr-4t4c-full.csv>`_,\r
-  - `pretty ASCII format for 1t1c <../_static/vpp/performance-changes-mrr-1t1c-full.txt>`_,\r
-  - `pretty ASCII format for 2t2c <../_static/vpp/performance-changes-mrr-2t2c-full.txt>`_,\r
-  - `pretty ASCII format for 4t4c <../_static/vpp/performance-changes-mrr-4t4c-full.txt>`_.\r
-\r
-.. note::\r
-\r
-    Test results have been generated by\r
-    `FD.io test executor vpp mrr jobs <https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master/>`_\r
-    with Robot Framework result files csit-vpp-perf-mrr-daily-master__*__output.xml.gz\r
-    `archived here <https://docs.fd.io/csit/master/trending/_static/archive/>`_.\r
-\r
-Throughput Trending\r
--------------------\r
-\r
-In addition to reporting throughput changes between VPP releases, CSIT\r
-provides continuous performance trending for VPP master branch:\r
-\r
-#. `VPP Performance Dashboard <https://docs.fd.io/csit/master/trending/introduction/index.html>`_\r
-   - per VPP test case throughput trend, trend compliance and summary of\r
-   detected anomalies.\r
-\r
-#. `Trending Methodology <https://docs.fd.io/csit/master/trending/methodology/index.html>`_\r
-   - throughput test metrics, trend calculations and anomaly\r
-   classification (progression, regression, outlier).\r
-\r
-#. `Trendline Graphs <https://docs.fd.io/csit/master/trending/trending/index.html>`_\r
-   - per VPP build MRR throughput measurements against the trendline\r
-   with anomaly highlights, with associated CSIT test jobs.\r
-\r
-Known Issues\r
-------------\r
-\r
-List of known issues in CSIT |release| for VPP performance tests:\r
-\r
-+---+-------------------------------------------------+------------+-----------------------------------------------------------------+\r
-| # | Issue                                           | Jira ID    | Description                                                     |\r
-+===+=================================================+============+=================================================================+\r
-| 1 | Sporadic (1 in 200) NDR discovery test failures | CSIT-570   | DPDK reporting rx-errors, indicating L1 issue. Suspected issue  |\r
-|   | on x520.                                        |            | with HW combination of X710-X520 in LF testbeds. Not observed   |\r
-|   |                                                 |            | outside of LF testbeds.                                         |\r
-+---+-------------------------------------------------+------------+-----------------------------------------------------------------+\r
-| 2 | Lower than expected NDR throughput of DPDK      | CSIT-571   | Suspected NIC firmware or DPDK driver issue affecting NDR and   |\r
-|   | testpmd and VPP L2 path NDR throughput with     |            | PDR throughput on XL710 and X710 NICs.                          |\r
-|   | xl710 and x710 NICs, compared to x520 NICs.     |            |                                                                 |\r
-+---+-------------------------------------------------+------------+-----------------------------------------------------------------+\r
-| 3 | Tagged Ethernet dot1q and dot1ad L2 path        | CSIT-1066  | Tagged Ethernet dot1q and dot1ad L2 path throughput regression: |\r
-|   | throughput regression.                          |            | NDR -2%..-5%, PDR -2%..-6%, MRR. Affects l2xc and l2bd          |\r
-|   |                                                 |            | performance tests.                                              |\r
-+---+-------------------------------------------------+------------+-----------------------------------------------------------------+\r
-| 4 | IPSec (software, no QAT HW) throughput          | CSIT-1064  | IPSec throughput regression: NDR -3%..-8%, PDR -2%..-8%, MRR    |\r
-|   | regression.                                     |            | -3%..-7%. Affects IPSec SW tests, QAT HW tests not affected.    |\r
-+---+-------------------------------------------------+------------+-----------------------------------------------------------------+\r
-| 5 | High failure rate of creating working container | CSIT-1065  | About 20% of orchestrated container topology tests failing data |\r
-|   | topologies with K8s/Ligato orchestration.       |            | plane verification indicating configuration issue. Suspected    |\r
-|   |                                                 |            | issue with Ligato vpp-agent.                                    |\r
-+---+-------------------------------------------------+------------+-----------------------------------------------------------------+\r
+CSIT Release Notes
+==================
+
+Changes in CSIT |release|
+-------------------------
+
+#. **VPP performance tests**
+
+   - *MRR tests* - New Maximum Receive Rate tests measure the packet
+     forwarding rate under the maximum load offered by traffic
+     generator over a set trial duration, regardless of packet loss.
+     MRR tests are used for continuous performance trending and for
+     comparison between releases.
+
+   - *Service Chaining with SRv6* - New SRv6 (Segment Routing IPv6) proxy
+     tests measure performance of SRv6 Endpoint fronting SR-unaware
+     appliance via masquerading (End.AM), dynamic proxy (End.AD) or
+     static proxy (End.AS) SR functions.
+
+#. **Presentation and Analytics Layer**
+
+   - *Performance trending* - Added continuous performance trending and
+     analysis. New Performance Trending and Performance Analysis jobs
+     executed regular throughput tests, with results being subsequently
+     analysed and trend and anomalies summarized and presented in VPP
+     Performance Dashboard and trendline graphs.
+
+#. **Test Framework Optimizations**
+
+   - *Performance tests efficiency* - Qemu build/install optimizations,
+     warmup phase handling, vpp restart handling. Resulted in improved
+     stability and reduced total execution time by 30% for single pkt
+     size e.g. 64B/78B.
+
+   - *General code housekeeping* - ongoing RF keywords optimizations,
+     removal of redundant RF keywords.
+
+Performance Changes
+-------------------
+
+Relative performance changes in measured packet throughput in CSIT
+|release| are calculated against the results from CSIT |release-1|
+report. Listed mean and standard deviation values are computed based on
+a series of the same tests executed against respective VPP releases to
+verify test results repeatibility, with percentage change calculated for
+mean values. Note that the standard deviation is quite high for a small
+number of packet throughput tests, what indicates poor test results
+repeatability and makes the relative change of mean throughput value not
+fully representative for these tests. The root causes behind poor
+results repeatibility vary between the test cases.
+
+NDR Changes
+~~~~~~~~~~~
+
+NDR small packet throughput changes between releases are available in a
+CSV and pretty ASCII formats:
+
+  - `csv format for 1t1c <../_static/vpp/performance-changes-ndr-1t1c-full.csv>`_,
+  - `csv format for 2t2c <../_static/vpp/performance-changes-ndr-2t2c-full.csv>`_,
+  - `pretty ASCII format for 1t1c <../_static/vpp/performance-changes-ndr-1t1c-full.txt>`_,
+  - `pretty ASCII format for 2t2c <../_static/vpp/performance-changes-ndr-2t2c-full.txt>`_.
+
+.. note::
+
+    Test results have been generated by
+    `FD.io test executor vpp performance jobs`_ with Robot Framework result
+    files csit-vpp-perf-|srelease|-\*.zip `archived here <../_static/archive/>`_.
+
+PDR Changes
+~~~~~~~~~~~
+
+NDR small packet throughput changes between releases are available in a
+CSV and pretty ASCII formats:
+
+  - `csv format for 1t1c <../_static/vpp/performance-changes-pdr-1t1c-full.csv>`_,
+  - `csv format for 2t2c <../_static/vpp/performance-changes-pdr-2t2c-full.csv>`_,
+  - `pretty ASCII format for 1t1c <../_static/vpp/performance-changes-pdr-1t1c-full.txt>`_,
+  - `pretty ASCII format for 2t2c <../_static/vpp/performance-changes-pdr-2t2c-full.txt>`_.
+
+.. note::
+
+    Test results have been generated by
+    `FD.io test executor vpp performance jobs`_ with Robot Framework result
+    files csit-vpp-perf-|srelease|-\*.zip `archived here <../_static/archive/>`_.
+
+MRR Changes
+~~~~~~~~~~~
+
+MRR small packet throughput changes between releases are available in a
+CSV and pretty ASCII formats:
+
+  - `csv format for 1t1c <../_static/vpp/performance-changes-mrr-1t1c-full.csv>`_,
+  - `csv format for 2t2c <../_static/vpp/performance-changes-mrr-2t2c-full.csv>`_,
+  - `csv format for 4t4c <../_static/vpp/performance-changes-mrr-4t4c-full.csv>`_,
+  - `pretty ASCII format for 1t1c <../_static/vpp/performance-changes-mrr-1t1c-full.txt>`_,
+  - `pretty ASCII format for 2t2c <../_static/vpp/performance-changes-mrr-2t2c-full.txt>`_,
+  - `pretty ASCII format for 4t4c <../_static/vpp/performance-changes-mrr-4t4c-full.txt>`_.
+
+.. note::
+
+    Test results have been generated by
+    `FD.io test executor vpp mrr jobs <https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master/>`_
+    with Robot Framework result files csit-vpp-perf-mrr-daily-master__*__output.xml.gz
+    `archived here <https://docs.fd.io/csit/master/trending/_static/archive/>`_.
+
+Throughput Trending
+-------------------
+
+In addition to reporting throughput changes between VPP releases, CSIT
+provides continuous performance trending for VPP master branch:
+
+#. `VPP Performance Dashboard <https://docs.fd.io/csit/master/trending/introduction/index.html>`_
+   - per VPP test case throughput trend, trend compliance and summary of
+   detected anomalies.
+
+#. `Trending Methodology <https://docs.fd.io/csit/master/trending/methodology/index.html>`_
+   - throughput test metrics, trend calculations and anomaly
+   classification (progression, regression, outlier).
+
+#. `Trendline Graphs <https://docs.fd.io/csit/master/trending/trending/index.html>`_
+   - per VPP build MRR throughput measurements against the trendline
+   with anomaly highlights, with associated CSIT test jobs.
+
+Known Issues
+------------
+
+List of known issues in CSIT |release| for VPP performance tests:
+
++---+-------------------------------------------------+------------+-----------------------------------------------------------------+
+| # | Issue                                           | Jira ID    | Description                                                     |
++===+=================================================+============+=================================================================+
+| 1 | Sporadic (1 in 200) NDR discovery test failures | CSIT-570   | DPDK reporting rx-errors, indicating L1 issue. Suspected issue  |
+|   | on x520.                                        |            | with HW combination of X710-X520 in LF testbeds. Not observed   |
+|   |                                                 |            | outside of LF testbeds.                                         |
++---+-------------------------------------------------+------------+-----------------------------------------------------------------+
+| 2 | Lower than expected NDR throughput of DPDK      | CSIT-571   | Suspected NIC firmware or DPDK driver issue affecting NDR and   |
+|   | testpmd and VPP L2 path NDR throughput with     |            | PDR throughput on XL710 and X710 NICs.                          |
+|   | xl710 and x710 NICs, compared to x520 NICs.     |            |                                                                 |
++---+-------------------------------------------------+------------+-----------------------------------------------------------------+
+| 3 | Tagged Ethernet dot1q and dot1ad L2 path        | CSIT-1066  | Tagged Ethernet dot1q and dot1ad L2 path throughput regression: |
+|   | throughput regression.                          |            | NDR -2%..-5%, PDR -2%..-6%, MRR. Affects l2xc and l2bd          |
+|   |                                                 |            | performance tests.                                              |
++---+-------------------------------------------------+------------+-----------------------------------------------------------------+
+| 4 | IPSec (software, no QAT HW) throughput          | CSIT-1064  | IPSec throughput regression: NDR -3%..-8%, PDR -2%..-8%, MRR    |
+|   | regression.                                     |            | -3%..-7%. Affects IPSec SW tests, QAT HW tests not affected.    |
++---+-------------------------------------------------+------------+-----------------------------------------------------------------+
+| 5 | High failure rate of creating working container | CSIT-1065  | About 20% of orchestrated container topology tests failing data |
+|   | topologies with K8s/Ligato orchestration.       |            | plane verification indicating configuration issue. Suspected    |
+|   |                                                 |            | issue with Ligato vpp-agent.                                    |
++---+-------------------------------------------------+------------+-----------------------------------------------------------------+
index 77fe321..91ca3bc 100644 (file)
-.. include:: test_environment_intro.rst\r
-\r
-.. include:: test_environment_sut_conf_1.rst\r
-\r
-.. include:: test_environment_sut_conf_2.rst\r
-\r
-.. include:: test_environment_sut_conf_3.rst\r
-\r
-\r
-DUT Configuration - VPP\r
------------------------\r
-\r
-**VPP Version**\r
-\r
-|vpp-release|\r
-\r
-**VPP Compile Parameters**\r
-\r
-`FD.io VPP compile job`_\r
-\r
-**VPP Install Parameters**\r
-\r
-::\r
-\r
-    $ dpkg -i --force-all vpp*\r
-\r
-**VPP Startup Configuration**\r
-\r
-VPP startup configuration changes per test case with different settings for CPU\r
-cores, rx-queues and no-multi-seg parameter. Startup config is aligned with\r
-applied test case tag:\r
-\r
-Tagged by **1T1C**\r
-\r
-::\r
-\r
-    ip\r
-    {\r
-      heap-size 4G\r
-    }\r
-    unix\r
-    {\r
-      cli-listen localhost:5002\r
-      log /tmp/vpe.log\r
-      nodaemon\r
-    }\r
-    ip6\r
-    {\r
-      heap-size 4G\r
-      hash-buckets 2000000\r
-    }\r
-    heapsize 4G\r
-    plugins\r
-    {\r
-      plugin default\r
-      {\r
-        disable\r
-      }\r
-      plugin dpdk_plugin.so\r
-      {\r
-        enable\r
-      }\r
-    }\r
-    cpu\r
-    {\r
-      corelist-workers 2\r
-      main-core 1\r
-    }\r
-    dpdk\r
-    {\r
-      dev 0000:0a:00.0\r
-      dev 0000:0a:00.1\r
-      no-multi-seg\r
-      uio-driver uio_pci_generic\r
-      log-level debug\r
-      dev default\r
-      {\r
-        num-rx-queues 1\r
-      }\r
-      socket-mem 1024,1024\r
-      no-tx-checksum-offload\r
-    }\r
-\r
-Tagged by **2T2C**\r
-\r
-::\r
-\r
-    ip\r
-    {\r
-      heap-size 4G\r
-    }\r
-    unix\r
-    {\r
-      cli-listen localhost:5002\r
-      log /tmp/vpe.log\r
-      nodaemon\r
-    }\r
-    ip6\r
-    {\r
-      heap-size 4G\r
-      hash-buckets 2000000\r
-    }\r
-    heapsize 4G\r
-    plugins\r
-    {\r
-      plugin default\r
-      {\r
-        disable\r
-      }\r
-      plugin dpdk_plugin.so\r
-      {\r
-        enable\r
-      }\r
-    }\r
-    cpu\r
-    {\r
-      corelist-workers 2,3\r
-      main-core 1\r
-    }\r
-    dpdk\r
-    {\r
-      dev 0000:0a:00.0\r
-      dev 0000:0a:00.1\r
-      no-multi-seg\r
-      uio-driver uio_pci_generic\r
-      log-level debug\r
-      dev default\r
-      {\r
-        num-rx-queues 1\r
-      }\r
-      socket-mem 1024,1024\r
-      no-tx-checksum-offload\r
-    }\r
-\r
-Tagged by **4T4C**\r
-\r
-::\r
-\r
-    ip\r
-    {\r
-      heap-size 4G\r
-    }\r
-    unix\r
-    {\r
-      cli-listen localhost:5002\r
-      log /tmp/vpe.log\r
-      nodaemon\r
-    }\r
-    ip6\r
-    {\r
-      heap-size 4G\r
-      hash-buckets 2000000\r
-    }\r
-    heapsize 4G\r
-    plugins\r
-    {\r
-      plugin default\r
-      {\r
-        disable\r
-      }\r
-      plugin dpdk_plugin.so\r
-      {\r
-        enable\r
-      }\r
-    }\r
-    cpu\r
-    {\r
-      corelist-workers 2,3,4,5\r
-      main-core 1\r
-    }\r
-    dpdk\r
-    {\r
-      dev 0000:0a:00.0\r
-      dev 0000:0a:00.1\r
-      no-multi-seg\r
-      uio-driver uio_pci_generic\r
-      log-level debug\r
-      dev default\r
-      {\r
-        num-rx-queues 1\r
-      }\r
-      socket-mem 1024,1024\r
-      no-tx-checksum-offload\r
-    }\r
-\r
-.. include:: test_environment_tg.rst\r
+.. include:: test_environment_intro.rst
+
+.. include:: test_environment_sut_conf_1.rst
+
+.. include:: test_environment_sut_conf_2.rst
+
+.. include:: test_environment_sut_conf_3.rst
+
+
+DUT Configuration - VPP
+-----------------------
+
+**VPP Version**
+
+|vpp-release|
+
+**VPP Compile Parameters**
+
+`FD.io VPP compile job`_
+
+**VPP Install Parameters**
+
+::
+
+    $ dpkg -i --force-all vpp*
+
+**VPP Startup Configuration**
+
+VPP startup configuration changes per test case with different settings for CPU
+cores, rx-queues and no-multi-seg parameter. Startup config is aligned with
+applied test case tag:
+
+Tagged by **1T1C**
+
+::
+
+    ip
+    {
+      heap-size 4G
+    }
+    unix
+    {
+      cli-listen localhost:5002
+      log /tmp/vpe.log
+      nodaemon
+    }
+    ip6
+    {
+      heap-size 4G
+      hash-buckets 2000000
+    }
+    heapsize 4G
+    plugins
+    {
+      plugin default
+      {
+        disable
+      }
+      plugin dpdk_plugin.so
+      {
+        enable
+      }
+    }
+    cpu
+    {
+      corelist-workers 2
+      main-core 1
+    }
+    dpdk
+    {
+      dev 0000:0a:00.0
+      dev 0000:0a:00.1
+      no-multi-seg
+      uio-driver uio_pci_generic
+      log-level debug
+      dev default
+      {
+        num-rx-queues 1
+      }
+      socket-mem 1024,1024
+      no-tx-checksum-offload
+    }
+
+Tagged by **2T2C**
+
+::
+
+    ip
+    {
+      heap-size 4G
+    }
+    unix
+    {
+      cli-listen localhost:5002
+      log /tmp/vpe.log
+      nodaemon
+    }
+    ip6
+    {
+      heap-size 4G
+      hash-buckets 2000000
+    }
+    heapsize 4G
+    plugins
+    {
+      plugin default
+      {
+        disable
+      }
+      plugin dpdk_plugin.so
+      {
+        enable
+      }
+    }
+    cpu
+    {
+      corelist-workers 2,3
+      main-core 1
+    }
+    dpdk
+    {
+      dev 0000:0a:00.0
+      dev 0000:0a:00.1
+      no-multi-seg
+      uio-driver uio_pci_generic
+      log-level debug
+      dev default
+      {
+        num-rx-queues 1
+      }
+      socket-mem 1024,1024
+      no-tx-checksum-offload
+    }
+
+Tagged by **4T4C**
+
+::
+
+    ip
+    {
+      heap-size 4G
+    }
+    unix
+    {
+      cli-listen localhost:5002
+      log /tmp/vpe.log
+      nodaemon
+    }
+    ip6
+    {
+      heap-size 4G
+      hash-buckets 2000000
+    }
+    heapsize 4G
+    plugins
+    {
+      plugin default
+      {
+        disable
+      }
+      plugin dpdk_plugin.so
+      {
+        enable
+      }
+    }
+    cpu
+    {
+      corelist-workers 2,3,4,5
+      main-core 1
+    }
+    dpdk
+    {
+      dev 0000:0a:00.0
+      dev 0000:0a:00.1
+      no-multi-seg
+      uio-driver uio_pci_generic
+      log-level debug
+      dev default
+      {
+        num-rx-queues 1
+      }
+      socket-mem 1024,1024
+      no-tx-checksum-offload
+    }
+
+.. include:: test_environment_tg.rst
index 304db11..b6bc027 100644 (file)
@@ -1,6 +1,6 @@
-Documentation\r
-=============\r
-\r
-For complete description of the VPP Test Framework including anatomy of a test\r
-case and detailed documentation of existing VPP unit test cases please refer\r
-to the `VPP test framework documentation`_.\r
+Documentation
+=============
+
+For complete description of the VPP Test Framework including anatomy of a test
+case and detailed documentation of existing VPP unit test cases please refer
+to the `VPP test framework documentation`_.
index 9472680..6165c71 100644 (file)
@@ -1,87 +1,87 @@
-Overview\r
-========\r
-\r
-.. note::\r
-\r
-    This section includes an abbreviated version of the VPP Test Framework\r
-    overview maintained within the VPP project. Complete overview can be found\r
-    in `VPP test framework documentation`_.\r
-\r
-VPP Unit Test Framework\r
------------------------\r
-\r
-VPP Test Framework is used to ease writing, running and debugging unit tests\r
-for the VPP. It is based on python as a high level language to  allow rapid\r
-test development. scapy\_ is used as a tool for creating and dissecting\r
-packets.\r
-\r
-VPP Test Framework does not send any packets to VPP directly. Traffic is\r
-instead injected using VPP packet-generator interfaces. Packets are written\r
-into a temporary .pcap file, which is then read by the VPP code with packets\r
-getting injected into the VPP processing nodes.\r
-\r
-Similarly, VPP does not send any packets to VPP Test Framework directly.\r
-Instead, VPP packet capture feature is used to capture and write packets to a\r
-temporary .pcap file, which is then read and analyzed by the VPP Test\r
-Framework.\r
-\r
-For complete description of the VPP Test Framework including anatomy of a test\r
-case and detailed documentation of existing VPP unit test cases please refer\r
-to the `VPP test framework documentation`_\r
-\r
-Unit Tests Coverage\r
--------------------\r
-\r
-Following VPP functional test areas are covered in VPP unit test code included\r
-in VPP rls1710 with results listed in this report:\r
-\r
-- ACL Security - stateful and stateless security-groups access-control-lists.\r
-- APIs - VAPI, VOM, PAPI, JVPP.\r
-- ARP - ARP, proxy ARP, static arp.\r
-- BFD - API, Authentication, Authentication Change, CLI.\r
-- BFD IPv4 - sessions operation.\r
-- BFD IPv6 - sessions operation.\r
-- BIER - Bit Indexed Explicit Replication.\r
-- Classifier - classification with IP ACL, MAC ACL, IP PBR.\r
-- Container Integration - IPv4, IPv6 local-spoof connectivity tests.\r
-- CRUD Loopback - create, read, update, delete Loopback interfaces.\r
-- DHCP - DHCPv4/v6 Client and Proxy.\r
-- Distributed Virtual Router.\r
-- DS-Lite Softwire - softwire termination.\r
-- FIB - baseline and scale tests.\r
-- Flowprobe.\r
-- Geneve Tunnels.\r
-- GRE Tunnels - GRE IPv4/IPv6 tunnel, L2, VRF tests.\r
-- GTPU Tunnels - baseline GTPU tests.\r
-- IP Multicast Routing - IPv4/IPv6 multicast replication, connected source check.\r
-- IPSec - baseline IPSec sanity tests.\r
-- IPv4 FIB CRUD - add/update/delete IPv4 routes.\r
-- IPv4 Routing.\r
-- IP4 VRF Multi-instance - create, read, update, delete and verify IPv4 VRFs.\r
-- IPv6 Routing - baseline FIB operations, NS/RS exception handling.\r
-- IP6 VRF Multi-instance - create, read, update, delete and verify IPv6 VRFs.\r
-- IRB Integrated Routing-Bridging.\r
-- Kube-proxy - data plane NAT tests.\r
-- L2 FIB CRUD - add/update/delete L2 MAC entries.\r
-- L2BD Multi-instance.\r
-- L2BD Switching - L2 Bridge-Domain baseline tests incl. single- and dual-loop.\r
-- L2XC Multi-instance - L2 cross-connect multi-instance tests.\r
-- L2XC Switching - L2 cross-connect baseline tests incl. single- and dual-loop.\r
-- LISP Tunnels - basic LISP tests.\r
-- Load Balancer - IP4 GRE4, IP4 GRE6, IP6 GRE4, IP6 GRE6.\r
-- MACIP Access Control - ingress access control for IPv4, IPv6 with L2BDP and IP routing.\r
-- MAP Softwires - softwire termination.\r
-- MFIB Multicast FIB.\r
-- MPLS Switching - MPLS baseline, prefix independent convergence for MPLS PE.\r
-- NAT44 - NAT44 tests, IPFIX logging, VRF awareness, deterministic CGNAT.\r
-- NAT64 - NAT64 static and dynamic translation tests.\r
-- P2P Ethernet Subinterface.\r
-- PPPoE Encapsulation.\r
-- SPAN Switch Port Analyzer - packet mirroring.\r
-- SRv6 Routing - Segment Routing IPv6 tests.\r
-- TCP/IP Stack - unit tests, builtin client/server transfers.\r
-- UDP Stack - unit tests.\r
-- VTR VLAN Tag Rewrites - VLAN tag rewrite tests.\r
-- VXLAN Tunnels - baseline VXLAN tests including multicast.\r
-- VXLAN-GPE Tunnels - baseline VXLAN-GPE tunneling including multicast.\r
-- Other Tests - ping, session, template verification, timer tests.\r
+Overview
+========
+
+.. note::
+
+    This section includes an abbreviated version of the VPP Test Framework
+    overview maintained within the VPP project. Complete overview can be found
+    in `VPP test framework documentation`_.
+
+VPP Unit Test Framework
+-----------------------
+
+VPP Test Framework is used to ease writing, running and debugging unit tests
+for the VPP. It is based on python as a high level language to  allow rapid
+test development. scapy\_ is used as a tool for creating and dissecting
+packets.
+
+VPP Test Framework does not send any packets to VPP directly. Traffic is
+instead injected using VPP packet-generator interfaces. Packets are written
+into a temporary .pcap file, which is then read by the VPP code with packets
+getting injected into the VPP processing nodes.
+
+Similarly, VPP does not send any packets to VPP Test Framework directly.
+Instead, VPP packet capture feature is used to capture and write packets to a
+temporary .pcap file, which is then read and analyzed by the VPP Test
+Framework.
+
+For complete description of the VPP Test Framework including anatomy of a test
+case and detailed documentation of existing VPP unit test cases please refer
+to the `VPP test framework documentation`_
+
+Unit Tests Coverage
+-------------------
+
+Following VPP functional test areas are covered in VPP unit test code included
+in VPP rls1710 with results listed in this report:
+
+- ACL Security - stateful and stateless security-groups access-control-lists.
+- APIs - VAPI, VOM, PAPI, JVPP.
+- ARP - ARP, proxy ARP, static arp.
+- BFD - API, Authentication, Authentication Change, CLI.
+- BFD IPv4 - sessions operation.
+- BFD IPv6 - sessions operation.
+- BIER - Bit Indexed Explicit Replication.
+- Classifier - classification with IP ACL, MAC ACL, IP PBR.
+- Container Integration - IPv4, IPv6 local-spoof connectivity tests.
+- CRUD Loopback - create, read, update, delete Loopback interfaces.
+- DHCP - DHCPv4/v6 Client and Proxy.
+- Distributed Virtual Router.
+- DS-Lite Softwire - softwire termination.
+- FIB - baseline and scale tests.
+- Flowprobe.
+- Geneve Tunnels.
+- GRE Tunnels - GRE IPv4/IPv6 tunnel, L2, VRF tests.
+- GTPU Tunnels - baseline GTPU tests.
+- IP Multicast Routing - IPv4/IPv6 multicast replication, connected source check.
+- IPSec - baseline IPSec sanity tests.
+- IPv4 FIB CRUD - add/update/delete IPv4 routes.
+- IPv4 Routing.
+- IP4 VRF Multi-instance - create, read, update, delete and verify IPv4 VRFs.
+- IPv6 Routing - baseline FIB operations, NS/RS exception handling.
+- IP6 VRF Multi-instance - create, read, update, delete and verify IPv6 VRFs.
+- IRB Integrated Routing-Bridging.
+- Kube-proxy - data plane NAT tests.
+- L2 FIB CRUD - add/update/delete L2 MAC entries.
+- L2BD Multi-instance.
+- L2BD Switching - L2 Bridge-Domain baseline tests incl. single- and dual-loop.
+- L2XC Multi-instance - L2 cross-connect multi-instance tests.
+- L2XC Switching - L2 cross-connect baseline tests incl. single- and dual-loop.
+- LISP Tunnels - basic LISP tests.
+- Load Balancer - IP4 GRE4, IP4 GRE6, IP6 GRE4, IP6 GRE6.
+- MACIP Access Control - ingress access control for IPv4, IPv6 with L2BDP and IP routing.
+- MAP Softwires - softwire termination.
+- MFIB Multicast FIB.
+- MPLS Switching - MPLS baseline, prefix independent convergence for MPLS PE.
+- NAT44 - NAT44 tests, IPFIX logging, VRF awareness, deterministic CGNAT.
+- NAT64 - NAT64 static and dynamic translation tests.
+- P2P Ethernet Subinterface.
+- PPPoE Encapsulation.
+- SPAN Switch Port Analyzer - packet mirroring.
+- SRv6 Routing - Segment Routing IPv6 tests.
+- TCP/IP Stack - unit tests, builtin client/server transfers.
+- UDP Stack - unit tests.
+- VTR VLAN Tag Rewrites - VLAN tag rewrite tests.
+- VXLAN Tunnels - baseline VXLAN tests including multicast.
+- VXLAN-GPE Tunnels - baseline VXLAN-GPE tunneling including multicast.
+- Other Tests - ping, session, template verification, timer tests.
index 1e9d0e8..b20b3d7 100644 (file)
@@ -1 +1 @@
-memif_create id {id} socket-id {socket} {role} rx-queues {rxq} tx-queues {txq}\r
+memif_create id {id} socket-id {socket} {role} rx-queues {rxq} tx-queues {txq}
index 39f3dee..6141cce 100644 (file)
@@ -1 +1 @@
-exec nat44 deterministic add in {ip_in}/{subnet_in} out {ip_out}/{subnet_out}\r
+exec nat44 deterministic add in {ip_in}/{subnet_in} out {ip_out}/{subnet_out}
index f25961d..3dab50b 100644 (file)
@@ -1 +1 @@
-exec set interface nat44 in {int_in} out {int_out}\r
+exec set interface nat44 in {int_in} out {int_out}
index e1703af..8e5ff62 100644 (file)
@@ -1,53 +1,53 @@
-all:\r
-  children:\r
-#    haswell:\r
-#      children:\r
-#        tg:\r
-#          hosts:\r
-#            10.30.51.16: null #t1-tg1\r
-#            10.30.51.20: null #t2-tg1\r
-#            10.30.51.24: null #t3-tg1\r
-#        sut:\r
-#          hosts:\r
-#            10.30.51.17: null #t1-sut1\r
-#            10.30.51.18: null #t1-sut2\r
-#            10.30.51.21: null #t2-sut1\r
-#            10.30.51.22: null #t2-sut2\r
-#            10.30.51.25: null #t3-sut1\r
-#            10.30.51.26: null #t3-sut2\r
-#        virl: # WARNING, DO NOT ENABLE VIRL UNLESS YOU KNOW WHAT YOU ARE DOING\r
-#          hosts:\r
-#            10.30.51.28: null #t4-virl1\r
-#            10.30.51.29: null #t4-virl2\r
-#            10.30.51.30: null #t4-virl3\r
-    skylake:\r
-      children:\r
-        tg:\r
-          hosts:\r
-            10.30.51.45: null #s4-t21-tg1\r
-            10.30.51.48: null #s13-t31-tg1\r
-            10.30.51.49: null #s17-t33-tg1\r
-            10.30.51.53: null #s6-t22-tg1\r
-            10.30.51.55: null #s8-t23-tg1\r
-            10.30.51.57: null #s10-t24-tg1\r
-            10.30.51.60: null #s16-t32-tg1\r
-        sut:\r
-          hosts:\r
-            10.30.51.44: null #s3-t21-sut1\r
-            10.30.51.46: null #s11-t31-sut1\r
-            10.30.51.47: null #s12-t31-sut2\r
-            10.30.51.52: null #s5-t22-sut1\r
-            10.30.51.54: null #s7-t23-sut1\r
-            10.30.51.56: null #s9-t24-sut1\r
-            10.30.51.58: null #s14-t32-sut1\r
-            10.30.51.59: null #s15-t32-sut2\r
-        vppdevice:\r
-          hosts:\r
-            10.30.51.50: null #s1-t11-sut1\r
-            10.30.51.51: null #s2-t12-sut1\r
-#    arm:\r
-#      children:\r
-#        tg:\r
-#          hosts:\r
-#        sut:\r
-#          hosts:\r
+all:
+  children:
+#    haswell:
+#      children:
+#        tg:
+#          hosts:
+#            10.30.51.16: null #t1-tg1
+#            10.30.51.20: null #t2-tg1
+#            10.30.51.24: null #t3-tg1
+#        sut:
+#          hosts:
+#            10.30.51.17: null #t1-sut1
+#            10.30.51.18: null #t1-sut2
+#            10.30.51.21: null #t2-sut1
+#            10.30.51.22: null #t2-sut2
+#            10.30.51.25: null #t3-sut1
+#            10.30.51.26: null #t3-sut2
+#        virl: # WARNING, DO NOT ENABLE VIRL UNLESS YOU KNOW WHAT YOU ARE DOING
+#          hosts:
+#            10.30.51.28: null #t4-virl1
+#            10.30.51.29: null #t4-virl2
+#            10.30.51.30: null #t4-virl3
+    skylake:
+      children:
+        tg:
+          hosts:
+            10.30.51.45: null #s4-t21-tg1
+            10.30.51.48: null #s13-t31-tg1
+            10.30.51.49: null #s17-t33-tg1
+            10.30.51.53: null #s6-t22-tg1
+            10.30.51.55: null #s8-t23-tg1
+            10.30.51.57: null #s10-t24-tg1
+            10.30.51.60: null #s16-t32-tg1
+        sut:
+          hosts:
+            10.30.51.44: null #s3-t21-sut1
+            10.30.51.46: null #s11-t31-sut1
+            10.30.51.47: null #s12-t31-sut2
+            10.30.51.52: null #s5-t22-sut1
+            10.30.51.54: null #s7-t23-sut1
+            10.30.51.56: null #s9-t24-sut1
+            10.30.51.58: null #s14-t32-sut1
+            10.30.51.59: null #s15-t32-sut2
+        vppdevice:
+          hosts:
+            10.30.51.50: null #s1-t11-sut1
+            10.30.51.51: null #s2-t12-sut1
+#    arm:
+#      children:
+#        tg:
+#          hosts:
+#        sut:
+#          hosts:
index e16a6a7..06058a4 100644 (file)
@@ -1,46 +1,46 @@
----\r
-# file: roles/common/tasks/main.yaml\r
-\r
-- name: Ubuntu specific\r
-  import_tasks: ubuntu_x86_64.yaml\r
-  when: ansible_distribution|lower == 'ubuntu' and ansible_machine == 'x86_64'\r
-\r
-- name: Set hostname\r
-  hostname:\r
-      name: '{{ hostname }}'\r
-  tags: set-hostname\r
-\r
-- name: Ensure hostname is in /etc/hosts\r
-  lineinfile:\r
-    path: '/etc/hosts'\r
-    regexp: '^{{ ansible_default_ipv4.address }}.+$'\r
-    line: '{{ ansible_default_ipv4.address }} {{ hostname }}.linuxfoundation.org'\r
-  tags: set-hostname\r
-\r
-- name: Set sudoers\r
-  lineinfile:\r
-    path: '/etc/sudoers'\r
-    state: 'present'\r
-    regexp: '^%admin ALL='\r
-    line: '%admin ALL=(ALL) ALL'\r
-    validate: '/usr/sbin/visudo -cf %s'\r
-  tags: set-sudoers\r
-\r
-- name: Set sudoers\r
-  lineinfile:\r
-    path: '/etc/sudoers'\r
-    state: 'present'\r
-    regexp: '^%sudo'\r
-    line: '%sudo ALL=(ALL:ALL) NOPASSWD: ALL'\r
-    validate: '/usr/sbin/visudo -cf %s'\r
-  tags: set-sudoers\r
-\r
-- name: Copy grub file\r
-  template:\r
-   src: 'files/grub'\r
-   dest: '/etc/default/grub'\r
-   owner: 'root'\r
-   group: 'root'\r
-   mode: '644'\r
-  notify: ['Update GRUB']\r
-  tags: copy-grub\r
+---
+# file: roles/common/tasks/main.yaml
+
+- name: Ubuntu specific
+  import_tasks: ubuntu_x86_64.yaml
+  when: ansible_distribution|lower == 'ubuntu' and ansible_machine == 'x86_64'
+
+- name: Set hostname
+  hostname:
+      name: '{{ hostname }}'
+  tags: set-hostname
+
+- name: Ensure hostname is in /etc/hosts
+  lineinfile:
+    path: '/etc/hosts'
+    regexp: '^{{ ansible_default_ipv4.address }}.+$'
+    line: '{{ ansible_default_ipv4.address }} {{ hostname }}.linuxfoundation.org'
+  tags: set-hostname
+
+- name: Set sudoers
+  lineinfile:
+    path: '/etc/sudoers'
+    state: 'present'
+    regexp: '^%admin ALL='
+    line: '%admin ALL=(ALL) ALL'
+    validate: '/usr/sbin/visudo -cf %s'
+  tags: set-sudoers
+
+- name: Set sudoers
+  lineinfile:
+    path: '/etc/sudoers'
+    state: 'present'
+    regexp: '^%sudo'
+    line: '%sudo ALL=(ALL:ALL) NOPASSWD: ALL'
+    validate: '/usr/sbin/visudo -cf %s'
+  tags: set-sudoers
+
+- name: Copy grub file
+  template:
+   src: 'files/grub'
+   dest: '/etc/default/grub'
+   owner: 'root'
+   group: 'root'
+   mode: '644'
+  notify: ['Update GRUB']
+  tags: copy-grub
index d0f32a3..b6116c3 100644 (file)
@@ -1,50 +1,50 @@
----\r
-# file: roles/common/tasks/ubuntu_x86_64.yaml\r
-\r
-- name: Copy apt sources file\r
-  template:\r
-    src: 'files/apt-sources.list'\r
-    dest: '/etc/apt/sources.list'\r
-  tags: copy-apt-sources\r
-\r
-- name: Install python-apt\r
-  apt:\r
-    name: 'python-apt'\r
-    state: 'present'\r
-    update_cache: True\r
-  tags: install-python-apt\r
-\r
-- name: Install git\r
-  apt:\r
-    name: 'git'\r
-    state: 'present'\r
-    update_cache: True\r
-  tags: install-git\r
-\r
-- name: Install crudini\r
-  apt:\r
-    name: 'crudini'\r
-    state: 'present'\r
-    update_cache: True\r
-  tags: install-crudini\r
-\r
-- name: Install expect\r
-  apt:\r
-    name: 'expect'\r
-    state: 'present'\r
-    update_cache: True\r
-  tags: install-expect\r
-\r
-- name: Install socat\r
-  apt:\r
-    name: 'socat'\r
-    state: 'present'\r
-    update_cache: True\r
-  tags: install-socat\r
-\r
-- name: Install qemu\r
-  apt:\r
-    name: 'qemu-system-x86'\r
-    state: 'present'\r
-    update_cache: True\r
-  tags: install-qemu\r
+---
+# file: roles/common/tasks/ubuntu_x86_64.yaml
+
+- name: Copy apt sources file
+  template:
+    src: 'files/apt-sources.list'
+    dest: '/etc/apt/sources.list'
+  tags: copy-apt-sources
+
+- name: Install python-apt
+  apt:
+    name: 'python-apt'
+    state: 'present'
+    update_cache: True
+  tags: install-python-apt
+
+- name: Install git
+  apt:
+    name: 'git'
+    state: 'present'
+    update_cache: True
+  tags: install-git
+
+- name: Install crudini
+  apt:
+    name: 'crudini'
+    state: 'present'
+    update_cache: True
+  tags: install-crudini
+
+- name: Install expect
+  apt:
+    name: 'expect'
+    state: 'present'
+    update_cache: True
+  tags: install-expect
+
+- name: Install socat
+  apt:
+    name: 'socat'
+    state: 'present'
+    update_cache: True
+  tags: install-socat
+
+- name: Install qemu
+  apt:
+    name: 'qemu-system-x86'
+    state: 'present'
+    update_cache: True
+  tags: install-qemu
index ffdbbcc..0ecdcdb 100644 (file)
@@ -1,14 +1,14 @@
----\r
-# file: roles/sut/tasks/main.yaml\r
-\r
-- name: Ubuntu specific\r
-  import_tasks: ubuntu_x86_64.yaml\r
-  when: ansible_distribution|lower == 'ubuntu' and ansible_machine == 'x86_64'\r
-\r
-- name: Copy 80-vpp.conf\r
-  file:\r
-    src: '/dev/null'\r
-    dest: '/etc/sysctl.d/80-vpp.conf'\r
-    state: 'link'\r
-  become: yes\r
-  tags: copy-80-vpp\r
+---
+# file: roles/sut/tasks/main.yaml
+
+- name: Ubuntu specific
+  import_tasks: ubuntu_x86_64.yaml
+  when: ansible_distribution|lower == 'ubuntu' and ansible_machine == 'x86_64'
+
+- name: Copy 80-vpp.conf
+  file:
+    src: '/dev/null'
+    dest: '/etc/sysctl.d/80-vpp.conf'
+    state: 'link'
+  become: yes
+  tags: copy-80-vpp
index f9ab901..6c9a839 100644 (file)
@@ -1,90 +1,90 @@
----\r
-# file: roles/sut/tasks/ubuntu_x86_64.yaml\r
-\r
-- name: Install DKMS\r
-  apt:\r
-    name: 'dkms'\r
-    state: 'present'\r
-    update_cache: True\r
-  become: yes\r
-  tags: install-dkms\r
-\r
-- name: Install pkg-config\r
-  apt:\r
-    name: 'pkg-config'\r
-    state: 'present'\r
-    update_cache: True\r
-  become: yes\r
-  tags: install-pkg-config\r
-\r
-- name: Install libglib2.0-dev\r
-  apt:\r
-    name: 'libglib2.0-dev'\r
-    state: 'present'\r
-    update_cache: True\r
-  become: yes\r
-  tags: install-libglib2.0-dev\r
-\r
-- name: Install autoconf\r
-  apt:\r
-    name: 'autoconf'\r
-    state: 'present'\r
-    update_cache: True\r
-  become: yes\r
-  tags: install-autoconf\r
-\r
-- name: Install libtool\r
-  apt:\r
-    name: 'libtool'\r
-    state: 'present'\r
-    update_cache: True\r
-  become: yes\r
-  tags: install-libtool\r
-\r
-- name: Install screen\r
-  apt:\r
-    name: 'screen'\r
-    state: 'present'\r
-    update_cache: True\r
-  become: yes\r
-  tags: install-screen\r
-\r
-- name: Install libmbedcrypto1\r
-  apt:\r
-    name: 'libmbedcrypto1'\r
-    state: 'present'\r
-    update_cache: True\r
-  become: yes\r
-  tags: install-libmbedcrypto1\r
-\r
-- name: Install libmbedtls10\r
-  apt:\r
-    name: 'libmbedtls10'\r
-    state: 'present'\r
-    update_cache: True\r
-  become: yes\r
-  tags: install-libmbedtls10\r
-\r
-- name: Install libmbedx509-0\r
-  apt:\r
-    name: 'libmbedx509-0'\r
-    state: 'present'\r
-    update_cache: True\r
-  become: yes\r
-  tags: install-libmbedx509-0\r
-\r
-- name: Install lxc\r
-  apt:\r
-    name: 'lxc'\r
-    state: 'present'\r
-    update_cache: True\r
-  become: yes\r
-  tags: install-lxc\r
-\r
-- name: Install java\r
-  apt:\r
-    name: 'openjdk-8-jdk'\r
-    state: 'present'\r
-    update_cache: True\r
-  become: yes\r
-  tags: install-java\r
+---
+# file: roles/sut/tasks/ubuntu_x86_64.yaml
+
+- name: Install DKMS
+  apt:
+    name: 'dkms'
+    state: 'present'
+    update_cache: True
+  become: yes
+  tags: install-dkms
+
+- name: Install pkg-config
+  apt:
+    name: 'pkg-config'
+    state: 'present'
+    update_cache: True
+  become: yes
+  tags: install-pkg-config
+
+- name: Install libglib2.0-dev
+  apt:
+    name: 'libglib2.0-dev'
+    state: 'present'
+    update_cache: True
+  become: yes
+  tags: install-libglib2.0-dev
+
+- name: Install autoconf
+  apt:
+    name: 'autoconf'
+    state: 'present'
+    update_cache: True
+  become: yes
+  tags: install-autoconf
+
+- name: Install libtool
+  apt:
+    name: 'libtool'
+    state: 'present'
+    update_cache: True
+  become: yes
+  tags: install-libtool
+
+- name: Install screen
+  apt:
+    name: 'screen'
+    state: 'present'
+    update_cache: True
+  become: yes
+  tags: install-screen
+
+- name: Install libmbedcrypto1
+  apt:
+    name: 'libmbedcrypto1'
+    state: 'present'
+    update_cache: True
+  become: yes
+  tags: install-libmbedcrypto1
+
+- name: Install libmbedtls10
+  apt:
+    name: 'libmbedtls10'
+    state: 'present'
+    update_cache: True
+  become: yes
+  tags: install-libmbedtls10
+
+- name: Install libmbedx509-0
+  apt:
+    name: 'libmbedx509-0'
+    state: 'present'
+    update_cache: True
+  become: yes
+  tags: install-libmbedx509-0
+
+- name: Install lxc
+  apt:
+    name: 'lxc'
+    state: 'present'
+    update_cache: True
+  become: yes
+  tags: install-lxc
+
+- name: Install java
+  apt:
+    name: 'openjdk-8-jdk'
+    state: 'present'
+    update_cache: True
+  become: yes
+  tags: install-java
index 8e71800..54001a7 100644 (file)
@@ -1,6 +1,6 @@
----\r
-# file: roles/tg/tasks/main.yaml\r
-\r
-- name: Ubuntu specific\r
-  import_tasks: ubuntu_x86_64.yaml\r
-  when: ansible_distribution|lower == 'ubuntu' and ansible_machine == 'x86_64'\r
+---
+# file: roles/tg/tasks/main.yaml
+
+- name: Ubuntu specific
+  import_tasks: ubuntu_x86_64.yaml
+  when: ansible_distribution|lower == 'ubuntu' and ansible_machine == 'x86_64'
index 9711b26..54a0468 100644 (file)
@@ -1,9 +1,9 @@
----\r
-# file: roles/tg/tasks/ubuntu_x86_64.yaml\r
-\r
-- name: Install Unzip\r
-  apt:\r
-    name: 'unzip'\r
-    state: 'present'\r
-    update_cache: True\r
-  tags: install-unzip\r
+---
+# file: roles/tg/tasks/ubuntu_x86_64.yaml
+
+- name: Install Unzip
+  apt:
+    name: 'unzip'
+    state: 'present'
+    update_cache: True
+  tags: install-unzip
index 1774134..ea779c0 100644 (file)
----\r
-# file: roles/tg_sut/tasks/main.yaml\r
-\r
-- name: Ubuntu specific\r
-  import_tasks: ubuntu_x86_64.yaml\r
-  when: ansible_distribution|lower == 'ubuntu' and ansible_machine == 'x86_64'\r
-\r
-- name: Copy interfaces file\r
-  template:\r
-    src: 'files/interfaces_physical'\r
-    dest: '/etc/network/interfaces'\r
-    owner: 'root'\r
-    group: 'root'\r
-    mode: '0644'\r
-  tags: copy-interface-file\r
-\r
-- name: Copy sysctl file\r
-  template:\r
-    src: 'files/90-csit'\r
-    dest: '/etc/sysctl.d/90-csit.conf'\r
-    owner: 'root'\r
-    group: 'root'\r
-    mode: '0644'\r
-  tags: copy-90-csit\r
-\r
-- name: Copy IRQ load balancing file\r
-  copy:\r
-    src: 'files/irqbalance'\r
-    dest: '/etc/default/irqbalance'\r
-    owner: 'root'\r
-    group: 'root'\r
-    mode: '0644'\r
-  tags: copy-irq\r
-\r
-- name: Copy cpufrequtils file\r
-  copy:\r
-    src: 'files/cpufrequtils'\r
-    dest: '/etc/default/cpufrequtils'\r
-    owner: 'root'\r
-    group: 'root'\r
-    mode: '0644'\r
-  tags: copy-cpufrequtils\r
-\r
-- name: Copy Python requirements file\r
-  copy:\r
-    src: 'files/requirements.txt'\r
-    dest: '/tmp/requirements.txt'\r
-  tags: copy-pip\r
-\r
-- name: Set isolcpus and pstate parameter\r
-  lineinfile:\r
-    path: '/etc/default/grub'\r
-    state: 'present'\r
-    regexp: '^GRUB_CMDLINE_LINUX='\r
-    line: 'GRUB_CMDLINE_LINUX="isolcpus={{ isolcpus }} nohz_full={{ isolcpus }} rcu_nocbs={{ isolcpus }} numa_balancing=disable intel_pstate=disable intel_iommu=on iommu=pt nmi_watchdog=0 audit=0 nosoftlockup processor.max_cstate=1 intel_idle.max_cstate=1 hpet=disable tsc=reliable mce=off"'\r
-  notify: ['Update GRUB']\r
-  tags: set-grub\r
-\r
-- name: Set ondemand service to disable\r
-  service:\r
-    name: 'ondemand'\r
-    enabled: 'no'\r
-  tags: set-ondemand\r
-\r
-- name: Install PIP requirements\r
-  pip:\r
-    requirements: '/tmp/requirements.txt'\r
-  tags: install-pip\r
-\r
-- name: Load vfio-pci by default\r
-  lineinfile:\r
-    path: '/etc/modules'\r
-    state: 'present'\r
-    line: 'vfio-pci'\r
-  tags: load-vfio-pci\r
-\r
-- name: Load msr by default\r
-  lineinfile:\r
-    path: '/etc/modules'\r
-    state: 'present'\r
-    line: 'msr'\r
-  tags: disable-turbo-boost\r
-\r
-- name: Disable Turbo-Boost by service\r
-  copy:\r
-    src: 'files/disable-turbo-boost.service'\r
-    dest: '/etc/systemd/system/disable-turbo-boost.service'\r
-    owner: 'root'\r
-    group: 'root'\r
-    mode: '0644'\r
-  when: >\r
-        inventory_hostname in groups['skylake']\r
-  tags: disable-turbo-boost\r
-\r
-- name: Disable Turbo-Boost by service on startup\r
-  service:\r
-    name: disable-turbo-boost\r
-    enabled: yes\r
-  when: >\r
-        inventory_hostname in groups['skylake']\r
-  tags: disable-turbo-boost\r
+---
+# file: roles/tg_sut/tasks/main.yaml
+
+- name: Ubuntu specific
+  import_tasks: ubuntu_x86_64.yaml
+  when: ansible_distribution|lower == 'ubuntu' and ansible_machine == 'x86_64'
+
+- name: Copy interfaces file
+  template:
+    src: 'files/interfaces_physical'
+    dest: '/etc/network/interfaces'
+    owner: 'root'
+    group: 'root'
+    mode: '0644'
+  tags: copy-interface-file
+
+- name: Copy sysctl file
+  template:
+    src: 'files/90-csit'
+    dest: '/etc/sysctl.d/90-csit.conf'
+    owner: 'root'
+    group: 'root'
+    mode: '0644'
+  tags: copy-90-csit
+
+- name: Copy IRQ load balancing file
+  copy:
+    src: 'files/irqbalance'
+    dest: '/etc/default/irqbalance'
+    owner: 'root'
+    group: 'root'
+    mode: '0644'
+  tags: copy-irq
+
+- name: Copy cpufrequtils file
+  copy:
+    src: 'files/cpufrequtils'
+    dest: '/etc/default/cpufrequtils'
+    owner: 'root'
+    group: 'root'
+    mode: '0644'
+  tags: copy-cpufrequtils
+
+- name: Copy Python requirements file
+  copy:
+    src: 'files/requirements.txt'
+    dest: '/tmp/requirements.txt'
+  tags: copy-pip
+
+- name: Set isolcpus and pstate parameter
+  lineinfile:
+    path: '/etc/default/grub'
+    state: 'present'
+    regexp: '^GRUB_CMDLINE_LINUX='
+    line: 'GRUB_CMDLINE_LINUX="isolcpus={{ isolcpus }} nohz_full={{ isolcpus }} rcu_nocbs={{ isolcpus }} numa_balancing=disable intel_pstate=disable intel_iommu=on iommu=pt nmi_watchdog=0 audit=0 nosoftlockup processor.max_cstate=1 intel_idle.max_cstate=1 hpet=disable tsc=reliable mce=off"'
+  notify: ['Update GRUB']
+  tags: set-grub
+
+- name: Set ondemand service to disable
+  service:
+    name: 'ondemand'
+    enabled: 'no'
+  tags: set-ondemand
+
+- name: Install PIP requirements
+  pip:
+    requirements: '/tmp/requirements.txt'
+  tags: install-pip
+
+- name: Load vfio-pci by default
+  lineinfile:
+    path: '/etc/modules'
+    state: 'present'
+    line: 'vfio-pci'
+  tags: load-vfio-pci
+
+- name: Load msr by default
+  lineinfile:
+    path: '/etc/modules'
+    state: 'present'
+    line: 'msr'
+  tags: disable-turbo-boost
+
+- name: Disable Turbo-Boost by service
+  copy:
+    src: 'files/disable-turbo-boost.service'
+    dest: '/etc/systemd/system/disable-turbo-boost.service'
+    owner: 'root'
+    group: 'root'
+    mode: '0644'
+  when: >
+        inventory_hostname in groups['skylake']
+  tags: disable-turbo-boost
+
+- name: Disable Turbo-Boost by service on startup
+  service:
+    name: disable-turbo-boost
+    enabled: yes
+  when: >
+        inventory_hostname in groups['skylake']
+  tags: disable-turbo-boost
index 3c6eb10..f43fad1 100644 (file)
----\r
-# file: roles/tg_sut/tasks/ubuntu_x86_64.yaml\r
-\r
-- name: Install python-dev\r
-  apt:\r
-    name: 'python-dev'\r
-    state: 'present'\r
-    update_cache: True\r
-  tags: install-python-dev\r
-\r
-- name: Install python-virtualenv\r
-  apt:\r
-    name: 'python-virtualenv'\r
-    state: 'present'\r
-    update_cache: True\r
-  tags: install-python-virtualenv\r
-\r
-- name: Install python pip\r
-  apt:\r
-    name: 'python-pip'\r
-    state: 'present'\r
-    update_cache: True\r
-  tags: install-python-pip\r
-\r
-- name: Install libpcap-dev\r
-  apt:\r
-    name: 'libpcap-dev'\r
-    state: 'present'\r
-    update_cache: True\r
-  tags: install-libpcap-dev\r
-\r
-- name: Install cpufrequtils\r
-  apt:\r
-    name: 'cpufrequtils'\r
-    state: 'present'\r
-    update_cache: True\r
-  tags: install-cpufrequtils\r
-\r
-- name: Install cgroup-support\r
-  apt:\r
-    name: 'cgroup-bin'\r
-    state: 'present'\r
-    update_cache: True\r
-  tags: install-cgroup-support\r
-\r
-- name: Install zlib1g-dev\r
-  apt:\r
-    name: 'zlib1g-dev'\r
-    state: 'present'\r
-    update_cache: True\r
-  tags: install-zlib1g-dev\r
-\r
-- name: Install libnuma-dev\r
-  apt:\r
-    name: 'libnuma-dev'\r
-    state: 'present'\r
-    update_cache: True\r
-  tags: install-libnuma-dev\r
-\r
-- name: Install Docker and role dependencies\r
-  apt:\r
-    name: "{{ item }}"\r
-    state: "present"\r
-    install_recommends: False\r
-  with_items:\r
-    - "apt-transport-https"\r
-    - "ca-certificates"\r
-    - "software-properties-common"\r
-    - "cron"\r
-  tags: install-docker\r
-\r
-- name: Install upstream APT GPG key\r
-  apt_key:\r
-    id: "{{ docker_apt_key }}"\r
-    keyserver: "{{ ansible_local.core.keyserver\r
-                   if (ansible_local|d() and ansible_local.core|d() and\r
-                       ansible_local.core.keyserver)\r
-                   else 'hkp://pool.sks-keyservers.net' }}"\r
-    state: "present"\r
-  tags: install-docker\r
-\r
-- name: Install upstream APT repository\r
-  apt_repository:\r
-    repo: "{{ docker_repository }}"\r
-    state: "present"\r
-    update_cache: True\r
-  tags: install-docker\r
-\r
-- name: Install Docker\r
-  apt:\r
-    name: "docker-{{ docker_edition }}={{ docker_apt_package_name }}"\r
-    state: "present"\r
-    update_cache: True\r
-    install_recommends: False\r
-    cache_valid_time: "{{ apt_cache_time }}"\r
-  tags: install-docker\r
-\r
-- name: Remove Upstart config file\r
-  file:\r
-    path: "/etc/default/docker"\r
-    state: "absent"\r
-  tags: docker\r
-\r
-- name: Ensure systemd directory exists\r
-  file:\r
-    path: "/etc/systemd/system"\r
-    state: "directory"\r
-    owner: "root"\r
-    group: "root"\r
-    mode: "0755"\r
-  tags: ensure-docker\r
-\r
-- name: Copy systemd unit file\r
-  template:\r
-    src: "templates/docker.service.j2"\r
-    dest: "/etc/systemd/system/docker.service"\r
-    owner: "root"\r
-    group: "root"\r
-    mode: "0644"\r
-  register: docker_register_systemd_service\r
-  tags: copy-docker\r
-\r
-- name: Reload systemd daemon\r
-  command: "systemctl daemon-reload"\r
-  notify: ["Restart Docker"]\r
-  when: (docker_register_systemd_service and\r
-         docker_register_systemd_service | changed)\r
-  tags: restart-docker\r
-\r
-- name: Set specific users to "docker" group\r
-  user:\r
-    name: "{{ item }}"\r
-    groups: "docker"\r
-    append: True\r
-  with_items: "{{ docker_users }}"\r
-  when: docker_users\r
-  tags: set-docker\r
-\r
-- name: Install upstream APT GPG key\r
-  apt_key:\r
-    id: "{{ kubernetes_apt_key }}"\r
-    keyserver: "{{ ansible_local.core.keyserver\r
-                   if (ansible_local|d() and ansible_local.core|d() and\r
-                       ansible_local.core.keyserver)\r
-                   else 'hkp://pool.sks-keyservers.net' }}"\r
-    state: "present"\r
-  tags: install-kubernetes\r
-\r
-- name: Install upstream APT repository\r
-  apt_repository:\r
-    repo: "{{ kubernetes_repository }}"\r
-    state: "present"\r
-    update_cache: True\r
-  tags: install-kubernetes\r
-\r
-- name: Install kubeadm\r
-  apt:\r
-    name: "kubeadm={{ kubernetes_apt_package_name }}"\r
-    state: "present"\r
-    update_cache: True\r
-    install_recommends: False\r
-    cache_valid_time: "{{ apt_cache_time }}"\r
-  tags: install-kubernetes\r
-\r
-- name: Install kubectl\r
-  apt:\r
-    name: "kubectl={{ kubernetes_apt_package_name }}"\r
-    state: "present"\r
-    update_cache: True\r
-    install_recommends: False\r
-    cache_valid_time: "{{ apt_cache_time }}"\r
-  tags: install-kubernetes\r
-\r
-- name: Install kubelet\r
-  apt:\r
-    name: "kubelet={{ kubernetes_apt_package_name }}"\r
-    state: "present"\r
-    update_cache: True\r
-    install_recommends: False\r
-    cache_valid_time: "{{ apt_cache_time }}"\r
-  tags: install-kubernetes\r
-\r
+---
+# file: roles/tg_sut/tasks/ubuntu_x86_64.yaml
+
+- name: Install python-dev
+  apt:
+    name: 'python-dev'
+    state: 'present'
+    update_cache: True
+  tags: install-python-dev
+
+- name: Install python-virtualenv
+  apt:
+    name: 'python-virtualenv'
+    state: 'present'
+    update_cache: True
+  tags: install-python-virtualenv
+
+- name: Install python pip
+  apt:
+    name: 'python-pip'
+    state: 'present'
+    update_cache: True
+  tags: install-python-pip
+
+- name: Install libpcap-dev
+  apt:
+    name: 'libpcap-dev'
+    state: 'present'
+    update_cache: True
+  tags: install-libpcap-dev
+
+- name: Install cpufrequtils
+  apt:
+    name: 'cpufrequtils'
+    state: 'present'
+    update_cache: True
+  tags: install-cpufrequtils
+
+- name: Install cgroup-support
+  apt:
+    name: 'cgroup-bin'
+    state: 'present'
+    update_cache: True
+  tags: install-cgroup-support
+
+- name: Install zlib1g-dev
+  apt:
+    name: 'zlib1g-dev'
+    state: 'present'
+    update_cache: True
+  tags: install-zlib1g-dev
+
+- name: Install libnuma-dev
+  apt:
+    name: 'libnuma-dev'
+    state: 'present'
+    update_cache: True
+  tags: install-libnuma-dev
+
+- name: Install Docker and role dependencies
+  apt:
+    name: "{{ item }}"
+    state: "present"
+    install_recommends: False
+  with_items:
+    - "apt-transport-https"
+    - "ca-certificates"
+    - "software-properties-common"
+    - "cron"
+  tags: install-docker
+
+- name: Install upstream APT GPG key
+  apt_key:
+    id: "{{ docker_apt_key }}"
+    keyserver: "{{ ansible_local.core.keyserver
+                   if (ansible_local|d() and ansible_local.core|d() and
+                       ansible_local.core.keyserver)
+                   else 'hkp://pool.sks-keyservers.net' }}"
+    state: "present"
+  tags: install-docker
+
+- name: Install upstream APT repository
+  apt_repository:
+    repo: "{{ docker_repository }}"
+    state: "present"
+    update_cache: True
+  tags: install-docker
+
+- name: Install Docker
+  apt:
+    name: "docker-{{ docker_edition }}={{ docker_apt_package_name }}"
+    state: "present"
+    update_cache: True
+    install_recommends: False
+    cache_valid_time: "{{ apt_cache_time }}"
+  tags: install-docker
+
+- name: Remove Upstart config file
+  file:
+    path: "/etc/default/docker"
+    state: "absent"
+  tags: docker
+
+- name: Ensure systemd directory exists
+  file:
+    path: "/etc/systemd/system"
+    state: "directory"
+    owner: "root"
+    group: "root"
+    mode: "0755"
+  tags: ensure-docker
+
+- name: Copy systemd unit file
+  template:
+    src: "templates/docker.service.j2"
+    dest: "/etc/systemd/system/docker.service"
+    owner: "root"
+    group: "root"
+    mode: "0644"
+  register: docker_register_systemd_service
+  tags: copy-docker
+
+- name: Reload systemd daemon
+  command: "systemctl daemon-reload"
+  notify: ["Restart Docker"]
+  when: (docker_register_systemd_service and
+         docker_register_systemd_service | changed)
+  tags: restart-docker
+
+- name: Set specific users to "docker" group
+  user:
+    name: "{{ item }}"
+    groups: "docker"
+    append: True
+  with_items: "{{ docker_users }}"
+  when: docker_users
+  tags: set-docker
+
+- name: Install upstream APT GPG key
+  apt_key:
+    id: "{{ kubernetes_apt_key }}"
+    keyserver: "{{ ansible_local.core.keyserver
+                   if (ansible_local|d() and ansible_local.core|d() and
+                       ansible_local.core.keyserver)
+                   else 'hkp://pool.sks-keyservers.net' }}"
+    state: "present"
+  tags: install-kubernetes
+
+- name: Install upstream APT repository
+  apt_repository:
+    repo: "{{ kubernetes_repository }}"
+    state: "present"
+    update_cache: True
+  tags: install-kubernetes
+
+- name: Install kubeadm
+  apt:
+    name: "kubeadm={{ kubernetes_apt_package_name }}"
+    state: "present"
+    update_cache: True
+    install_recommends: False
+    cache_valid_time: "{{ apt_cache_time }}"
+  tags: install-kubernetes
+
+- name: Install kubectl
+  apt:
+    name: "kubectl={{ kubernetes_apt_package_name }}"
+    state: "present"
+    update_cache: True
+    install_recommends: False
+    cache_valid_time: "{{ apt_cache_time }}"
+  tags: install-kubernetes
+
+- name: Install kubelet
+  apt:
+    name: "kubelet={{ kubernetes_apt_package_name }}"
+    state: "present"
+    update_cache: True
+    install_recommends: False
+    cache_valid_time: "{{ apt_cache_time }}"
+  tags: install-kubernetes
+
index 8eb0e01..834ad51 100644 (file)
@@ -1,14 +1,14 @@
----\r
-# file: site.yaml\r
-\r
-- import_playbook: tg.yaml\r
-  tags: tg\r
-\r
-- import_playbook: sut.yaml\r
-  tags: sut\r
-\r
-- import_playbook: vppdevice.yaml\r
-  tags: vppdevice\r
-\r
-#- import_playbook: virl.yaml\r
-#  tags: virl\r
+---
+# file: site.yaml
+
+- import_playbook: tg.yaml
+  tags: tg
+
+- import_playbook: sut.yaml
+  tags: sut
+
+- import_playbook: vppdevice.yaml
+  tags: vppdevice
+
+#- import_playbook: virl.yaml
+#  tags: virl
index d178a02..1f9a4cb 100644 (file)
@@ -1,11 +1,11 @@
----\r
-# file: sut.yaml\r
-\r
-- hosts: sut\r
-  remote_user: testuser\r
-  become: yes\r
-  become_user: root\r
-  roles:\r
-    - common\r
-    - sut\r
-    - tg_sut\r
+---
+# file: sut.yaml
+
+- hosts: sut
+  remote_user: testuser
+  become: yes
+  become_user: root
+  roles:
+    - common
+    - sut
+    - tg_sut
index a524fdd..a652dc5 100644 (file)
@@ -1,11 +1,11 @@
----\r
-# file: tg.yaml\r
-\r
-- hosts: tg\r
-  remote_user: testuser\r
-  become: yes\r
-  become_user: root\r
-  roles:\r
-    - common\r
-    - tg\r
-    - tg_sut\r
+---
+# file: tg.yaml
+
+- hosts: tg
+  remote_user: testuser
+  become: yes
+  become_user: root
+  roles:
+    - common
+    - tg
+    - tg_sut
index 61f4bce..5e57d58 100644 (file)
@@ -1,10 +1,10 @@
----\r
-# file: virl.yaml\r
-\r
-- hosts: virl\r
-  remote_user: testuser\r
-  become: yes\r
-  become_user: root\r
-  roles:\r
-    - common\r
-    - virl\r
+---
+# file: virl.yaml
+
+- hosts: virl
+  remote_user: testuser
+  become: yes
+  become_user: root
+  roles:
+    - common
+    - virl
index 03e61d3..31912d9 100644 (file)
@@ -1,10 +1,10 @@
----\r
-# file: vppdevice.yaml\r
-\r
-- hosts: vppdevice\r
-  remote_user: testuser\r
-  become: yes\r
-  become_user: root\r
-  roles:\r
-    - common\r
-    - vppdevice\r
+---
+# file: vppdevice.yaml
+
+- hosts: vppdevice
+  remote_user: testuser
+  become: yes
+  become_user: root
+  roles:
+    - common
+    - vppdevice
index d0c70f0..d9dcce5 100644 (file)
-# Copyright (c) 2018 Cisco and/or its affiliates.\r
-# Licensed under the Apache License, Version 2.0 (the "License");\r
-# you may not use this file except in compliance with the License.\r
-# You may obtain a copy of the License at:\r
-#\r
-#     http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-# See the License for the specific language governing permissions and\r
-# limitations under the License.\r
-\r
-*** Settings ***\r
-| Resource | resources/libraries/robot/performance/performance_setup.robot\r
-| ...\r
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR\r
-| ... | NIC_Intel-X520-DA2 | ETH | L2XCFWD | BASE | MEMIF | SINGLE_MEMIF\r
-| ... | DOCKER\r
-| ...\r
-| Suite Setup | Run Keywords\r
-| ... | Set up 3-node performance topology with DUT's NIC model | L2\r
-| ... | Intel-X520-DA2\r
-| ... | AND | Set up performance test suite with MEMIF\r
-| ... | AND | Set up performance topology with containers\r
-| ...\r
-| Suite Teardown | Tear down 3-node performance topology with container\r
-| ...\r
-| Test Setup | Run Keywords\r
-| ... | Set up performance test\r
-| ... | AND | Restart VPP in all 'VNF' containers\r
-| ...\r
-| Test Teardown | Tear down performance mrr test\r
-| ...\r
-| Test Template | Check RR for l2xcbase-eth-1memif-1dcr\r
-| ...\r
-| Documentation |  *Raw results L2XC test cases*\r
-| ...\r
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\r
-| ... | with single links between nodes.\r
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect.\r
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 configured with L2 cross-\r
-| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X520 Niantic by Intel.\r
-| ... | Container is connected to VPP via Memif interface running same VPP\r
-| ... | version as running on DUT. Resources are limited via cgroup to use 5\r
-| ... | cores allocated from pool of isolated CPUs. There are no memory\r
-| ... | contraints. Cross Horizontal topology with packets flowing via DUT (VPP)\r
-| ... | to Container, then via horizontal memif to the next Container, and so on\r
-| ... | until the last Container then to NIC (in last Container). Single\r
-| ... | Container is supported as of now.\r
-| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic\r
-| ... | at line rate and reports total received/sent packets over trial period.\r
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\r
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per\r
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\r
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\r
-| ... | addresses of the TG node interfaces.\r
-\r
-*** Variables ***\r
-# X520-DA2 bandwidth limit\r
-| ${s_limit} | ${10000000000}\r
-# Traffic profile\r
-| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254\r
-# Container settings\r
-| ${container_count}= | ${1}\r
-| ${container_engine}= | Docker\r
-| ${container_image}= | ubuntu:xenial-20180412\r
-| ${container_install_dkms}= | ${TRUE}\r
-| ${container_chain_topology}= | cross_horiz\r
-# CPU settings\r
-| ${system_cpus}= | ${1}\r
-| ${vpp_cpus}= | ${5}\r
-| ${container_cpus}= | ${5}\r
-\r
-*** Keywords ***\r
-| Check RR for l2xcbase-eth-1memif-1dcr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\\r
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\\r
-| | ... | trial throughput test.\r
-| | ...\r
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}\r
-| | ...\r
-| | Set Test Variable | ${framesize}\r
-| | ${get_framesize}= | Get Frame Size | ${framesize}\r
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}\r
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology\r
-| | And Add single PCI device to all DUTs\r
-| | And Run Keyword If | ${get_framesize} < ${1522}\r
-| | ... | Add no multi seg to all DUTs\r
-| | And Apply startup configuration on all VPP DUTs\r
-| | And Initialize L2 xconnect for single memif in 3-node circular topology\r
-| | ... | ${rxq}\r
-| | Then Traffic should pass with maximum rate | ${perf_trial_duration}\r
-| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}\r
-\r
-*** Test Cases ***\r
-| tc01-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 64B | 1C | THIS\r
-| | framesize=${64} | wt=1 | rxq=1\r
-\r
-| tc02-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 1518B | 1C\r
-| | framesize=${1518} | wt=1 | rxq=1\r
-\r
-| tc03-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 9000B | 1C\r
-| | framesize=${9000} | wt=1 | rxq=1\r
-\r
-| tc04-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\\r
-| | ... | throughput test.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 1C\r
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1\r
-\r
-| tc05-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 64B | 2C\r
-| | framesize=${64} | wt=2 | rxq=1\r
-\r
-| tc06-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy cores,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 1518B | 2C\r
-| | framesize=${1518} | wt=2 | rxq=1\r
-\r
-| tc07-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy cores,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 9000B | 2C\r
-| | framesize=${9000} | wt=2 | rxq=1\r
-\r
-| tc08-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\\r
-| | ... | throughput test.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 2C\r
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1\r
-\r
-| tc09-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\\r
-| | ... | 2 receive queues per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 64B | 4C\r
-| | framesize=${64} | wt=4 | rxq=2\r
-\r
-| tc10-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\\r
-| | ... | 2 receive queues per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 1518B | 4C\r
-| | framesize=${1518} | wt=4 | rxq=2\r
-\r
-| tc11-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\\r
-| | ... | 2 receive queues per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 9000B | 4C\r
-| | framesize=${9000} | wt=4 | rxq=2\r
-\r
-| tc12-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\\r
-| | ... | 2 receive queues per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\\r
-| | ... | throughput test.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 4C\r
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2\r
+# Copyright (c) 2018 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-X520-DA2 | ETH | L2XCFWD | BASE | MEMIF | SINGLE_MEMIF
+| ... | DOCKER
+| ...
+| Suite Setup | Run Keywords
+| ... | Set up 3-node performance topology with DUT's NIC model | L2
+| ... | Intel-X520-DA2
+| ... | AND | Set up performance test suite with MEMIF
+| ... | AND | Set up performance topology with containers
+| ...
+| Suite Teardown | Tear down 3-node performance topology with container
+| ...
+| Test Setup | Run Keywords
+| ... | Set up performance test
+| ... | AND | Restart VPP in all 'VNF' containers
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Check RR for l2xcbase-eth-1memif-1dcr
+| ...
+| Documentation |  *Raw results L2XC test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 configured with L2 cross-
+| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X520 Niantic by Intel.
+| ... | Container is connected to VPP via Memif interface running same VPP
+| ... | version as running on DUT. Resources are limited via cgroup to use 5
+| ... | cores allocated from pool of isolated CPUs. There are no memory
+| ... | contraints. Cross Horizontal topology with packets flowing via DUT (VPP)
+| ... | to Container, then via horizontal memif to the next Container, and so on
+| ... | until the last Container then to NIC (in last Container). Single
+| ... | Container is supported as of now.
+| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic
+| ... | at line rate and reports total received/sent packets over trial period.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... | addresses of the TG node interfaces.
+
+*** Variables ***
+# X520-DA2 bandwidth limit
+| ${s_limit} | ${10000000000}
+# Traffic profile
+| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254
+# Container settings
+| ${container_count}= | ${1}
+| ${container_engine}= | Docker
+| ${container_image}= | ubuntu:xenial-20180412
+| ${container_install_dkms}= | ${TRUE}
+| ${container_chain_topology}= | cross_horiz
+# CPU settings
+| ${system_cpus}= | ${1}
+| ${vpp_cpus}= | ${5}
+| ${container_cpus}= | ${5}
+
+*** Keywords ***
+| Check RR for l2xcbase-eth-1memif-1dcr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\
+| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | trial throughput test.
+| | ...
+| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ...
+| | Set Test Variable | ${framesize}
+| | ${get_framesize}= | Get Frame Size | ${framesize}
+| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
+| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | And Add single PCI device to all DUTs
+| | And Run Keyword If | ${get_framesize} < ${1522}
+| | ... | Add no multi seg to all DUTs
+| | And Apply startup configuration on all VPP DUTs
+| | And Initialize L2 xconnect for single memif in 3-node circular topology
+| | ... | ${rxq}
+| | Then Traffic should pass with maximum rate | ${perf_trial_duration}
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 64B | 1C
+| | framesize=${64} | wt=1 | rxq=1
+
+| tc02-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | wt=1 | rxq=1
+
+| tc03-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | wt=1 | rxq=1
+
+| tc04-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
+| | ... | throughput test.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+
+| tc05-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 64B | 2C
+| | framesize=${64} | wt=2 | rxq=1
+
+| tc06-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy cores,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | wt=2 | rxq=1
+
+| tc07-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy cores,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | wt=2 | rxq=1
+
+| tc08-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
+| | ... | throughput test.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+
+| tc09-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
+| | ... | 2 receive queues per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 64B | 4C
+| | framesize=${64} | wt=4 | rxq=2
+
+| tc10-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
+| | ... | 2 receive queues per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | wt=4 | rxq=2
+
+| tc11-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
+| | ... | 2 receive queues per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | wt=4 | rxq=2
+
+| tc12-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
+| | ... | 2 receive queues per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
+| | ... | throughput test.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | wt=4 | rxq=2
index 6fab3c9..91350e4 100644 (file)
-# Copyright (c) 2018 Cisco and/or its affiliates.\r
-# Licensed under the Apache License, Version 2.0 (the "License");\r
-# you may not use this file except in compliance with the License.\r
-# You may obtain a copy of the License at:\r
-#\r
-#     http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-# See the License for the specific language governing permissions and\r
-# limitations under the License.\r
-\r
-*** Settings ***\r
-| Resource | resources/libraries/robot/performance/performance_setup.robot\r
-| ...\r
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC\r
-| ... | NIC_Intel-X520-DA2 | ETH | L2XCFWD | BASE | MEMIF | SINGLE_MEMIF\r
-| ... | DOCKER\r
-| ...\r
-| Suite Setup | Run Keywords\r
-| ... | Set up 3-node performance topology with DUT's NIC model | L2\r
-| ... | Intel-X520-DA2\r
-| ... | AND | Set up performance test suite with MEMIF\r
-| ... | AND | Set up performance topology with containers\r
-| ...\r
-| Suite Teardown | Tear down 3-node performance topology with container\r
-| ...\r
-| Test Setup | Run Keywords\r
-| ... | Set up performance test\r
-| ... | AND | Restart VPP in all 'VNF' containers\r
-| ...\r
-| Test Teardown | Tear down performance discovery test | ${min_rate}pps\r
-| ... | ${framesize} | ${traffic_profile}\r
-| ...\r
-| Test Template | Find NDRPDR for l2xcbase-eth-1memif-1dcr\r
-| ...\r
-| Documentation | *RFC2544: Pkt throughput L2XC test cases*\r
-| ...\r
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\r
-| ... | with single links between nodes.\r
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect.\r
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 configured with L2 cross-\r
-| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X520 Niantic by Intel.\r
-| ... | Container is connected to VPP via Memif interface running same VPP\r
-| ... | version as running on DUT. Resources are limited via cgroup to use 5\r
-| ... | cores allocated from pool of isolated CPUs. There are no memory\r
-| ... | contraints. Cross Horizontal topology with packets flowing via DUT (VPP)\r
-| ... | to Container, then via horizontal memif to the next Container, and so on\r
-| ... | until the last Container then to NIC (in last Container). Single\r
-| ... | Container is supported as of now.\r
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\r
-| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\r
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\r
-| ... | of packets transmitted. NDR and PDR are discovered for different\r
-| ... | Ethernet L2 frame sizes using either binary search or linear search\r
-| ... | algorithms with configured starting rate and final step that determines\r
-| ... | throughput measurement resolution. Test packets are generated by TG on\r
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\r
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\r
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\r
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\r
-| ... | interfaces.\r
-| ... | *[Ref] Applicable standard specifications:* RFC2544.\r
-\r
-*** Variables ***\r
-# X520-DA2 bandwidth limit\r
-| ${s_limit} | ${10000000000}\r
-# Traffic profile\r
-| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254\r
-# Container settings\r
-| ${container_count}= | ${1}\r
-| ${container_engine}= | Docker\r
-| ${container_image}= | ubuntu:xenial-20180412\r
-| ${container_install_dkms}= | ${TRUE}\r
-| ${container_chain_topology}= | cross_horiz\r
-# CPU settings\r
-| ${system_cpus}= | ${1}\r
-| ${vpp_cpus}= | ${5}\r
-| ${container_cpus}= | ${5}\r
-\r
-*** Keywords ***\r
-| Find NDRPDR for l2xcbase-eth-1memif-1dcr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\\r
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.\r
-| | ... | [Ver] Find ${search_type} for ${framesize} frames using binary search\\r
-| | ... | start at 10GE linerate, step 50kpps.\r
-| | ...\r
-| | [Arguments] | ${framesize} | ${wt} | ${rxq} | ${search_type}\r
-| | ... | ${min_rate}=${50000}\r
-| | Set Test Variable | ${framesize}\r
-| | Set Test Variable | ${min_rate}\r
-| | ${get_framesize}= | Get Frame Size | ${framesize}\r
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}\r
-| | ${binary_min}= | Set Variable | ${min_rate}\r
-| | ${binary_max}= | Set Variable | ${max_rate}\r
-| | ${threshold}= | Set Variable | ${min_rate}\r
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology\r
-| | And Add single PCI device to all DUTs\r
-| | And Run Keyword If | ${get_framesize} < ${1522}\r
-| | ... | Add no multi seg to all DUTs\r
-| | And Apply startup configuration on all VPP DUTs\r
-| | And Initialize L2 xconnect for single memif in 3-node circular topology\r
-| | ... | ${rxq}\r
-| | Then Run Keyword If | '${search_type}' == 'NDR'\r
-| | ... | Find NDR using binary search and pps\r
-| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}\r
-| | ... | ${min_rate} | ${max_rate} | ${threshold}\r
-| | ... | ELSE IF | '${search_type}' == 'PDR'\r
-| | ... | Find PDR using binary search and pps\r
-| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}\r
-| | ... | ${min_rate} | ${max_rate} | ${threshold}\r
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}\r
-\r
-*** Test Cases ***\r
-| tc01-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 64B | 1C | NDRDISC\r
-| | framesize=${64} | wt=1 | rxq=1 | search_type=NDR\r
-\r
-| tc02-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 64B | 1C | PDRDISC\r
-| | framesize=${64} | wt=1 | rxq=1 | search_type=PDR\r
-\r
-| tc03-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 1518B | 1C | NDRDISC\r
-| | framesize=${1518} | wt=1 | rxq=1 | search_type=NDR\r
-\r
-| tc04-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 1518B | 1C | PDRDISC\r
-| | framesize=${1518} | wt=1 | rxq=1 | search_type=PDR\r
-\r
-| tc05-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 9000B | 1C | NDRDISC\r
-| | framesize=${9000} | wt=1 | rxq=1 | search_type=NDR\r
-\r
-| tc06-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 9000B | 1C | PDRDISC\r
-| | framesize=${9000} | wt=1 | rxq=1 | search_type=PDR\r
-\r
-| tc07-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 1C | NDRDISC\r
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1 | search_type=NDR\r
-\r
-| tc08-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 1C | PDRDISC\r
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1 | search_type=PDR\r
-\r
-| tc09-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 64B | 2C | NDRDISC\r
-| | framesize=${64} | wt=2 | rxq=1 | search_type=NDR\r
-\r
-| tc10-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 64B | 1C | PDRDISC\r
-| | framesize=${64} | wt=2 | rxq=1 | search_type=PDR\r
-\r
-| tc11-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 1518B | 2C | NDRDISC\r
-| | framesize=${1518} | wt=2 | rxq=1 | search_type=NDR\r
-\r
-| tc12-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 1518B | 2C | PDRDISC\r
-| | framesize=${1518} | wt=2 | rxq=1 | search_type=PDR\r
-\r
-| tc13-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 9000B | 2C | NDRDISC\r
-| | framesize=${9000} | wt=2 | rxq=1 | search_type=NDR\r
-\r
-| tc14-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 9000B | 2C | PDRDISC\r
-| | framesize=${9000} | wt=2 | rxq=1 | search_type=PDR\r
-\r
-| tc15-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 2C | NDRDISC\r
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1 | search_type=NDR\r
-\r
-| tc16-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 2C | PDRDISC\r
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1 | search_type=PDR\r
-\r
-| tc17-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\\r
-| | ... | 2 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 64B | 4C | NDRDISC\r
-| | framesize=${64} |  wt=4 | rxq=2 | search_type=NDR\r
-\r
-| tc18-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\\r
-| | ... | 2 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 64B | 4C | PDRDISC\r
-| | framesize=${64} |  wt=4 | rxq=2 | search_type=PDR\r
-\r
-| tc19-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\\r
-| | ... | 2 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 1518B | 4C | NDRDISC\r
-| | framesize=${1518} |  wt=4 | rxq=2| search_type=NDR\r
-\r
-| tc20-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\\r
-| | ... | 2 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 1518B | 4C | PDRDISC\r
-| | framesize=${1518} |  wt=4 | rxq=2 | search_type=PDR\r
-\r
-| tc21-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\\r
-| | ... | 2 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 9000B | 4C | NDRDISC\r
-| | framesize=${9000} |  wt=4 | rxq=2 | search_type=NDR\r
-\r
-| tc22-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\\r
-| | ... | 2 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 9000B | 4C | PDRDISC\r
-| | framesize=${9000} |  wt=4 | rxq=2 | search_type=PDR\r
-\r
-| tc23-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\\r
-| | ... | 2 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 4C | NDRDISC\r
-| | framesize=IMIX_v4_1 |  wt=4 | rxq=2 | search_type=NDR\r
-\r
-| tc24-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\\r
-| | ... | 2 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 4C | PDRDISC\r
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2 | search_type=PDR\r
+# Copyright (c) 2018 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
+| ... | NIC_Intel-X520-DA2 | ETH | L2XCFWD | BASE | MEMIF | SINGLE_MEMIF
+| ... | DOCKER
+| ...
+| Suite Setup | Run Keywords
+| ... | Set up 3-node performance topology with DUT's NIC model | L2
+| ... | Intel-X520-DA2
+| ... | AND | Set up performance test suite with MEMIF
+| ... | AND | Set up performance topology with containers
+| ...
+| Suite Teardown | Tear down 3-node performance topology with container
+| ...
+| Test Setup | Run Keywords
+| ... | Set up performance test
+| ... | AND | Restart VPP in all 'VNF' containers
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Find NDRPDR for l2xcbase-eth-1memif-1dcr
+| ...
+| Documentation | *RFC2544: Pkt throughput L2XC test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 configured with L2 cross-
+| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X520 Niantic by Intel.
+| ... | Container is connected to VPP via Memif interface running same VPP
+| ... | version as running on DUT. Resources are limited via cgroup to use 5
+| ... | cores allocated from pool of isolated CPUs. There are no memory
+| ... | contraints. Cross Horizontal topology with packets flowing via DUT (VPP)
+| ... | to Container, then via horizontal memif to the next Container, and so on
+| ... | until the last Container then to NIC (in last Container). Single
+| ... | Container is supported as of now.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage
+| ... | of packets transmitted. NDR and PDR are discovered for different
+| ... | Ethernet L2 frame sizes using either binary search or linear search
+| ... | algorithms with configured starting rate and final step that determines
+| ... | throughput measurement resolution. Test packets are generated by TG on
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static
+| ... | payload. MAC addresses are matching MAC addresses of the TG node
+| ... | interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# X520-DA2 bandwidth limit
+| ${s_limit} | ${10000000000}
+# Traffic profile
+| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254
+# Container settings
+| ${container_count}= | ${1}
+| ${container_engine}= | Docker
+| ${container_image}= | ubuntu:xenial-20180412
+| ${container_install_dkms}= | ${TRUE}
+| ${container_chain_topology}= | cross_horiz
+# CPU settings
+| ${system_cpus}= | ${1}
+| ${vpp_cpus}= | ${5}
+| ${container_cpus}= | ${5}
+
+*** Keywords ***
+| Find NDRPDR for l2xcbase-eth-1memif-1dcr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\
+| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
+| | ... | [Ver] Find ${search_type} for ${framesize} frames using binary search\
+| | ... | start at 10GE linerate, step 50kpps.
+| | ...
+| | [Arguments] | ${framesize} | ${wt} | ${rxq} | ${search_type}
+| | ... | ${min_rate}=${50000}
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate}
+| | ${get_framesize}= | Get Frame Size | ${framesize}
+| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
+| | ${binary_min}= | Set Variable | ${min_rate}
+| | ${binary_max}= | Set Variable | ${max_rate}
+| | ${threshold}= | Set Variable | ${min_rate}
+| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | And Add single PCI device to all DUTs
+| | And Run Keyword If | ${get_framesize} < ${1522}
+| | ... | Add no multi seg to all DUTs
+| | And Apply startup configuration on all VPP DUTs
+| | And Initialize L2 xconnect for single memif in 3-node circular topology
+| | ... | ${rxq}
+| | Then Run Keyword If | '${search_type}' == 'NDR'
+| | ... | Find NDR using binary search and pps
+| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
+| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ... | ELSE IF | '${search_type}' == 'PDR'
+| | ... | Find PDR using binary search and pps
+| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
+| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+
+*** Test Cases ***
+| tc01-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 64B | 1C | NDRDISC
+| | framesize=${64} | wt=1 | rxq=1 | search_type=NDR
+
+| tc02-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 64B | 1C | PDRDISC
+| | framesize=${64} | wt=1 | rxq=1 | search_type=PDR
+
+| tc03-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 1518B | 1C | NDRDISC
+| | framesize=${1518} | wt=1 | rxq=1 | search_type=NDR
+
+| tc04-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 1518B | 1C | PDRDISC
+| | framesize=${1518} | wt=1 | rxq=1 | search_type=PDR
+
+| tc05-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 9000B | 1C | NDRDISC
+| | framesize=${9000} | wt=1 | rxq=1 | search_type=NDR
+
+| tc06-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 9000B | 1C | PDRDISC
+| | framesize=${9000} | wt=1 | rxq=1 | search_type=PDR
+
+| tc07-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 1C | NDRDISC
+| | framesize=IMIX_v4_1 | wt=1 | rxq=1 | search_type=NDR
+
+| tc08-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 1C | PDRDISC
+| | framesize=IMIX_v4_1 | wt=1 | rxq=1 | search_type=PDR
+
+| tc09-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 64B | 2C | NDRDISC
+| | framesize=${64} | wt=2 | rxq=1 | search_type=NDR
+
+| tc10-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 64B | 1C | PDRDISC
+| | framesize=${64} | wt=2 | rxq=1 | search_type=PDR
+
+| tc11-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 1518B | 2C | NDRDISC
+| | framesize=${1518} | wt=2 | rxq=1 | search_type=NDR
+
+| tc12-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 1518B | 2C | PDRDISC
+| | framesize=${1518} | wt=2 | rxq=1 | search_type=PDR
+
+| tc13-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 9000B | 2C | NDRDISC
+| | framesize=${9000} | wt=2 | rxq=1 | search_type=NDR
+
+| tc14-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 9000B | 2C | PDRDISC
+| | framesize=${9000} | wt=2 | rxq=1 | search_type=PDR
+
+| tc15-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 2C | NDRDISC
+| | framesize=IMIX_v4_1 | wt=2 | rxq=1 | search_type=NDR
+
+| tc16-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 2C | PDRDISC
+| | framesize=IMIX_v4_1 | wt=2 | rxq=1 | search_type=PDR
+
+| tc17-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
+| | ... | 2 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 64B | 4C | NDRDISC
+| | framesize=${64} |  wt=4 | rxq=2 | search_type=NDR
+
+| tc18-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
+| | ... | 2 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 64B | 4C | PDRDISC
+| | framesize=${64} |  wt=4 | rxq=2 | search_type=PDR
+
+| tc19-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
+| | ... | 2 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 1518B | 4C | NDRDISC
+| | framesize=${1518} |  wt=4 | rxq=2| search_type=NDR
+
+| tc20-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
+| | ... | 2 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 1518B | 4C | PDRDISC
+| | framesize=${1518} |  wt=4 | rxq=2 | search_type=PDR
+
+| tc21-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
+| | ... | 2 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 9000B | 4C | NDRDISC
+| | framesize=${9000} |  wt=4 | rxq=2 | search_type=NDR
+
+| tc22-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
+| | ... | 2 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 9000B | 4C | PDRDISC
+| | framesize=${9000} |  wt=4 | rxq=2 | search_type=PDR
+
+| tc23-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
+| | ... | 2 receive queue per NIC port.
+| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 4C | NDRDISC
+| | framesize=IMIX_v4_1 |  wt=4 | rxq=2 | search_type=NDR
+
+| tc24-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
+| | ... | 2 receive queue per NIC port.
+| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 4C | PDRDISC
+| | framesize=IMIX_v4_1 | wt=4 | rxq=2 | search_type=PDR
index 044d05a..eee6a03 100644 (file)
-# Copyright (c) 2018 Cisco and/or its affiliates.\r
-# Licensed under the Apache License, Version 2.0 (the "License");\r
-# you may not use this file except in compliance with the License.\r
-# You may obtain a copy of the License at:\r
-#\r
-#     http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-# See the License for the specific language governing permissions and\r
-# limitations under the License.\r
-\r
-*** Settings ***\r
-| Resource | resources/libraries/robot/performance/performance_setup.robot\r
-| ...\r
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR\r
-| ... | NIC_Intel-X710 | ETH | L2XCFWD | BASE | MEMIF | SINGLE_MEMIF | DOCKER\r
-| ...\r
-| Suite Setup | Run Keywords\r
-| ... | Set up 3-node performance topology with DUT's NIC model | L2\r
-| ... | Intel-X710\r
-| ... | AND | Set up performance test suite with MEMIF\r
-| ... | AND | Set up performance topology with containers\r
-| ...\r
-| Suite Teardown | Tear down 3-node performance topology with container\r
-| ...\r
-| Test Setup | Run Keywords\r
-| ... | Set up performance test\r
-| ... | AND | Restart VPP in all 'VNF' containers\r
-| ...\r
-| Test Teardown | Tear down performance mrr test\r
-| ...\r
-| Test Template | Check RR for l2xcbase-eth-1memif-1dcr\r
-| ...\r
-| Documentation |  *Raw results L2XC test cases*\r
-| ...\r
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\r
-| ... | with single links between nodes.\r
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect.\r
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 configured with L2 cross-\r
-| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X710 by Intel.\r
-| ... | Container is connected to VPP via Memif interface running same VPP\r
-| ... | version as running on DUT. Resources are limited via cgroup to use 5\r
-| ... | cores allocated from pool of isolated CPUs. There are no memory\r
-| ... | contraints. Cross Horizontal topology with packets flowing via DUT (VPP)\r
-| ... | to Container, then via horizontal memif to the next Container, and so on\r
-| ... | until the last Container then to NIC (in last Container). Single\r
-| ... | Container is supported as of now.\r
-| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic\r
-| ... | at line rate and reports total received/sent packets over trial period.\r
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\r
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per\r
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\r
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\r
-| ... | addresses of the TG node interfaces.\r
-\r
-*** Variables ***\r
-# X710-DA2 bandwidth limit\r
-| ${s_limit} | ${10000000000}\r
-# Traffic profile\r
-| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254\r
-# Container settings\r
-| ${container_count}= | ${1}\r
-| ${container_engine}= | Docker\r
-| ${container_image}= | ubuntu:xenial-20180412\r
-| ${container_install_dkms}= | ${TRUE}\r
-| ${container_chain_topology}= | cross_horiz\r
-# CPU settings\r
-| ${system_cpus}= | ${1}\r
-| ${vpp_cpus}= | ${5}\r
-| ${container_cpus}= | ${5}\r
-\r
-*** Keywords ***\r
-| Check RR for l2xcbase-eth-1memif-1dcr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\\r
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\\r
-| | ... | trial throughput test.\r
-| | ...\r
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}\r
-| | ...\r
-| | Set Test Variable | ${framesize}\r
-| | ${get_framesize}= | Get Frame Size | ${framesize}\r
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}\r
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology\r
-| | And Add single PCI device to all DUTs\r
-| | And Run Keyword If | ${get_framesize} < ${1522}\r
-| | ... | Add no multi seg to all DUTs\r
-| | And Apply startup configuration on all VPP DUTs\r
-| | And Initialize L2 xconnect for single memif in 3-node circular topology\r
-| | ... | ${rxq}\r
-| | Then Traffic should pass with maximum rate | ${perf_trial_duration}\r
-| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}\r
-\r
-*** Test Cases ***\r
-| tc01-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 64B | 1C\r
-| | framesize=${64} | wt=1 | rxq=1\r
-\r
-| tc02-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 1518B | 1C\r
-| | framesize=${1518} | wt=1 | rxq=1\r
-\r
-| tc03-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 9000B | 1C\r
-| | framesize=${9000} | wt=1 | rxq=1\r
-\r
-| tc04-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\\r
-| | ... | throughput test.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 1C\r
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1\r
-\r
-| tc05-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 64B | 2C\r
-| | framesize=${64} | wt=2 | rxq=1\r
-\r
-| tc06-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy cores,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 1518B | 2C\r
-| | framesize=${1518} | wt=2 | rxq=1\r
-\r
-| tc07-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy cores,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 9000B | 2C\r
-| | framesize=${9000} | wt=2 | rxq=1\r
-\r
-| tc08-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\\r
-| | ... | throughput test.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 2C\r
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1\r
-\r
-| tc09-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\\r
-| | ... | 2 receive queues per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 64B | 4C\r
-| | framesize=${64} | wt=4 | rxq=2\r
-\r
-| tc10-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\\r
-| | ... | 2 receive queues per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 1518B | 4C\r
-| | framesize=${1518} | wt=4 | rxq=2\r
-\r
-| tc11-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\\r
-| | ... | 2 receive queues per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\\r
-| | ... | throughput test.\r
-| | ...\r
-| | [Tags] | 9000B | 4C\r
-| | framesize=${9000} | wt=4 | rxq=2\r
-\r
-| tc12-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\\r
-| | ... | 2 receive queues per NIC port.\r
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\\r
-| | ... | throughput test.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 4C\r
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2\r
+# Copyright (c) 2018 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-X710 | ETH | L2XCFWD | BASE | MEMIF | SINGLE_MEMIF | DOCKER
+| ...
+| Suite Setup | Run Keywords
+| ... | Set up 3-node performance topology with DUT's NIC model | L2
+| ... | Intel-X710
+| ... | AND | Set up performance test suite with MEMIF
+| ... | AND | Set up performance topology with containers
+| ...
+| Suite Teardown | Tear down 3-node performance topology with container
+| ...
+| Test Setup | Run Keywords
+| ... | Set up performance test
+| ... | AND | Restart VPP in all 'VNF' containers
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Check RR for l2xcbase-eth-1memif-1dcr
+| ...
+| Documentation |  *Raw results L2XC test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 configured with L2 cross-
+| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X710 by Intel.
+| ... | Container is connected to VPP via Memif interface running same VPP
+| ... | version as running on DUT. Resources are limited via cgroup to use 5
+| ... | cores allocated from pool of isolated CPUs. There are no memory
+| ... | contraints. Cross Horizontal topology with packets flowing via DUT (VPP)
+| ... | to Container, then via horizontal memif to the next Container, and so on
+| ... | until the last Container then to NIC (in last Container). Single
+| ... | Container is supported as of now.
+| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic
+| ... | at line rate and reports total received/sent packets over trial period.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... | addresses of the TG node interfaces.
+
+*** Variables ***
+# X710-DA2 bandwidth limit
+| ${s_limit} | ${10000000000}
+# Traffic profile
+| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254
+# Container settings
+| ${container_count}= | ${1}
+| ${container_engine}= | Docker
+| ${container_image}= | ubuntu:xenial-20180412
+| ${container_install_dkms}= | ${TRUE}
+| ${container_chain_topology}= | cross_horiz
+# CPU settings
+| ${system_cpus}= | ${1}
+| ${vpp_cpus}= | ${5}
+| ${container_cpus}= | ${5}
+
+*** Keywords ***
+| Check RR for l2xcbase-eth-1memif-1dcr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\
+| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | trial throughput test.
+| | ...
+| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ...
+| | Set Test Variable | ${framesize}
+| | ${get_framesize}= | Get Frame Size | ${framesize}
+| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
+| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | And Add single PCI device to all DUTs
+| | And Run Keyword If | ${get_framesize} < ${1522}
+| | ... | Add no multi seg to all DUTs
+| | And Apply startup configuration on all VPP DUTs
+| | And Initialize L2 xconnect for single memif in 3-node circular topology
+| | ... | ${rxq}
+| | Then Traffic should pass with maximum rate | ${perf_trial_duration}
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 64B | 1C
+| | framesize=${64} | wt=1 | rxq=1
+
+| tc02-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | wt=1 | rxq=1
+
+| tc03-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | wt=1 | rxq=1
+
+| tc04-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
+| | ... | throughput test.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+
+| tc05-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 64B | 2C
+| | framesize=${64} | wt=2 | rxq=1
+
+| tc06-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy cores,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | wt=2 | rxq=1
+
+| tc07-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy cores,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | wt=2 | rxq=1
+
+| tc08-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
+| | ... | throughput test.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+
+| tc09-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
+| | ... | 2 receive queues per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 64B | 4C
+| | framesize=${64} | wt=4 | rxq=2
+
+| tc10-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
+| | ... | 2 receive queues per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | wt=4 | rxq=2
+
+| tc11-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
+| | ... | 2 receive queues per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
+| | ... | throughput test.
+| | ...
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | wt=4 | rxq=2
+
+| tc12-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
+| | ... | 2 receive queues per NIC port.
+| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
+| | ... | throughput test.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | wt=4 | rxq=2
index 37c8fd8..386260c 100644 (file)
-# Copyright (c) 2018 Cisco and/or its affiliates.\r
-# Licensed under the Apache License, Version 2.0 (the "License");\r
-# you may not use this file except in compliance with the License.\r
-# You may obtain a copy of the License at:\r
-#\r
-#     http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-# See the License for the specific language governing permissions and\r
-# limitations under the License.\r
-\r
-*** Settings ***\r
-| Resource | resources/libraries/robot/performance/performance_setup.robot\r
-| ...\r
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC\r
-| ... | NIC_Intel-X710 | ETH | L2XCFWD | BASE | MEMIF | SINGLE_MEMIF | DOCKER\r
-| ...\r
-| Suite Setup | Run Keywords\r
-| ... | Set up 3-node performance topology with DUT's NIC model | L2\r
-| ... | Intel-X710\r
-| ... | AND | Set up performance test suite with MEMIF\r
-| ... | AND | Set up performance topology with containers\r
-| ...\r
-| Suite Teardown | Tear down 3-node performance topology with container\r
-| ...\r
-| Test Setup | Run Keywords\r
-| ... | Set up performance test\r
-| ... | AND | Restart VPP in all 'VNF' containers\r
-| ...\r
-| Test Teardown | Tear down performance discovery test | ${min_rate}pps\r
-| ... | ${framesize} | ${traffic_profile}\r
-| ...\r
-| Test Template | Find NDRPDR for l2xcbase-eth-1memif-1dcr\r
-| ...\r
-| Documentation |  *Raw results L2XC test cases*\r
-| ...\r
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\r
-| ... | with single links between nodes.\r
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect.\r
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 configured with L2 cross-\r
-| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X710 by Intel.\r
-| ... | Container is connected to VPP via Memif interface running same VPP\r
-| ... | version as running on DUT. Resources are limited via cgroup to use 5\r
-| ... | cores allocated from pool of isolated CPUs. There are no memory\r
-| ... | contraints. Cross Horizontal topology with packets flowing via DUT (VPP)\r
-| ... | to Container, then via horizontal memif to the next Container, and so on\r
-| ... | until the last Container then to NIC (in last Container). Single\r
-| ... | Container is supported as of now.\r
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\r
-| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\r
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\r
-| ... | of packets transmitted. NDR and PDR are discovered for different\r
-| ... | Ethernet L2 frame sizes using either binary search or linear search\r
-| ... | algorithms with configured starting rate and final step that determines\r
-| ... | throughput measurement resolution. Test packets are generated by TG on\r
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\r
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\r
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\r
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\r
-| ... | interfaces.\r
-| ... | *[Ref] Applicable standard specifications:* RFC2544.\r
-\r
-*** Variables ***\r
-# X710-DA2 bandwidth limit\r
-| ${s_limit} | ${10000000000}\r
-# Traffic profile\r
-| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254\r
-# Container settings\r
-| ${container_count}= | ${1}\r
-| ${container_engine}= | Docker\r
-| ${container_image}= | ubuntu:xenial-20180412\r
-| ${container_install_dkms}= | ${TRUE}\r
-| ${container_chain_topology}= | cross_horiz\r
-# CPU settings\r
-| ${system_cpus}= | ${1}\r
-| ${vpp_cpus}= | ${5}\r
-| ${container_cpus}= | ${5}\r
-\r
-*** Keywords ***\r
-| Find NDRPDR for l2xcbase-eth-1memif-1dcr\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\\r
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.\r
-| | ... | [Ver] Find ${search_type} for ${framesize} frames using binary search\\r
-| | ... | start at 10GE linerate, step 50kpps.\r
-| | ...\r
-| | [Arguments] | ${framesize} | ${wt} | ${rxq} | ${search_type}\r
-| | ... | ${min_rate}=${50000}\r
-| | Set Test Variable | ${framesize}\r
-| | Set Test Variable | ${min_rate}\r
-| | ${get_framesize}= | Get Frame Size | ${framesize}\r
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}\r
-| | ${binary_min}= | Set Variable | ${min_rate}\r
-| | ${binary_max}= | Set Variable | ${max_rate}\r
-| | ${threshold}= | Set Variable | ${min_rate}\r
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology\r
-| | And Add single PCI device to all DUTs\r
-| | And Run Keyword If | ${get_framesize} < ${1522}\r
-| | ... | Add no multi seg to all DUTs\r
-| | And Apply startup configuration on all VPP DUTs\r
-| | And Initialize L2 xconnect for single memif in 3-node circular topology\r
-| | ... | ${rxq}\r
-| | Then Run Keyword If | '${search_type}' == 'NDR'\r
-| | ... | Find NDR using binary search and pps\r
-| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}\r
-| | ... | ${min_rate} | ${max_rate} | ${threshold}\r
-| | ... | ELSE IF | '${search_type}' == 'PDR'\r
-| | ... | Find PDR using binary search and pps\r
-| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}\r
-| | ... | ${min_rate} | ${max_rate} | ${threshold}\r
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}\r
-\r
-*** Test Cases ***\r
-| tc01-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 64B | 1C | NDRDISC\r
-| | framesize=${64} | wt=1 | rxq=1 | search_type=NDR\r
-\r
-| tc02-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 64B | 1C | PDRDISC\r
-| | framesize=${64} | wt=1 | rxq=1 | search_type=PDR\r
-\r
-| tc03-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 1518B | 1C | NDRDISC\r
-| | framesize=${1518} | wt=1 | rxq=1 | search_type=NDR\r
-\r
-| tc04-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 1518B | 1C | PDRDISC\r
-| | framesize=${1518} | wt=1 | rxq=1 | search_type=PDR\r
-\r
-| tc05-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 9000B | 1C | NDRDISC\r
-| | framesize=${9000} | wt=1 | rxq=1 | search_type=NDR\r
-\r
-| tc06-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 9000B | 1C | PDRDISC\r
-| | framesize=${9000} | wt=1 | rxq=1 | search_type=PDR\r
-\r
-| tc07-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 1C | NDRDISC\r
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1 | search_type=NDR\r
-\r
-| tc08-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 1C | PDRDISC\r
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1 | search_type=PDR\r
-\r
-| tc09-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 64B | 2C | NDRDISC\r
-| | framesize=${64} | wt=2 | rxq=1 | search_type=NDR\r
-\r
-| tc10-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 64B | 1C | PDRDISC\r
-| | framesize=${64} | wt=2 | rxq=1 | search_type=PDR\r
-\r
-| tc11-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 1518B | 2C | NDRDISC\r
-| | framesize=${1518} | wt=2 | rxq=1 | search_type=NDR\r
-\r
-| tc12-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 1518B | 2C | PDRDISC\r
-| | framesize=${1518} | wt=2 | rxq=1 | search_type=PDR\r
-\r
-| tc13-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 9000B | 2C | NDRDISC\r
-| | framesize=${9000} | wt=2 | rxq=1 | search_type=NDR\r
-\r
-| tc14-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 9000B | 2C | PDRDISC\r
-| | framesize=${9000} | wt=2 | rxq=1 | search_type=PDR\r
-\r
-| tc15-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 2C | NDRDISC\r
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1 | search_type=NDR\r
-\r
-| tc16-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\\r
-| | ... | 1 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 2C | PDRDISC\r
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1 | search_type=PDR\r
-\r
-| tc17-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\\r
-| | ... | 2 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 64B | 4C | NDRDISC\r
-| | framesize=${64} |  wt=4 | rxq=2 | search_type=NDR\r
-\r
-| tc18-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\\r
-| | ... | 2 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 64B | 4C | PDRDISC\r
-| | framesize=${64} |  wt=4 | rxq=2 | search_type=PDR\r
-\r
-| tc19-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\\r
-| | ... | 2 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 1518B | 4C | NDRDISC\r
-| | framesize=${1518} |  wt=4 | rxq=2 | search_type=NDR\r
-\r
-| tc20-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\\r
-| | ... | 2 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 1518B | 4C | PDRDISC\r
-| | framesize=${1518} |  wt=4 | rxq=2 | search_type=PDR\r
-\r
-| tc21-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\\r
-| | ... | 2 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ...\r
-| | [Tags] | 9000B | 4C | NDRDISC\r
-| | framesize=${9000} |  wt=4 | rxq=2 | search_type=NDR\r
-\r
-| tc22-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\\r
-| | ... | 2 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ...\r
-| | [Tags] | 9000B | 4C | PDRDISC\r
-| | framesize=${9000} |  wt=4 | rxq=2 | search_type=PDR\r
-\r
-| tc23-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\\r
-| | ... | 2 receive queue per NIC port.\r
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 4C | NDRDISC\r
-| | framesize=IMIX_v4_1 |  wt=4 | rxq=2 | search_type=NDR\r
-\r
-| tc24-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc\r
-| | [Documentation]\r
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\\r
-| | ... | 2 receive queue per NIC port.\r
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\\r
-| | ... | linerate, step 50kpps, LT=0.5%.\r
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)\r
-| | ...\r
-| | [Tags] | IMIX | 4C | PDRDISC\r
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2 | search_type=PDR\r
+# Copyright (c) 2018 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
+| ... | NIC_Intel-X710 | ETH | L2XCFWD | BASE | MEMIF | SINGLE_MEMIF | DOCKER
+| ...
+| Suite Setup | Run Keywords
+| ... | Set up 3-node performance topology with DUT's NIC model | L2
+| ... | Intel-X710
+| ... | AND | Set up performance test suite with MEMIF
+| ... | AND | Set up performance topology with containers
+| ...
+| Suite Teardown | Tear down 3-node performance topology with container
+| ...
+| Test Setup | Run Keywords
+| ... | Set up performance test
+| ... | AND | Restart VPP in all 'VNF' containers
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Find NDRPDR for l2xcbase-eth-1memif-1dcr
+| ...
+| Documentation |  *Raw results L2XC test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 configured with L2 cross-
+| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X710 by Intel.
+| ... | Container is connected to VPP via Memif interface running same VPP
+| ... | version as running on DUT. Resources are limited via cgroup to use 5
+| ... | cores allocated from pool of isolated CPUs. There are no memory
+| ... | contraints. Cross Horizontal topology with packets flowing via DUT (VPP)
+| ... | to Container, then via horizontal memif to the next Container, and so on
+| ... | until the last Container then to NIC (in last Container). Single
+| ... | Container is supported as of now.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage
+| ... | of packets transmitted. NDR and PDR are discovered for different
+| ... | Ethernet L2 frame sizes using either binary search or linear search
+| ... | algorithms with configured starting rate and final step that determines
+| ... | throughput measurement resolution. Test packets are generated by TG on
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static
+| ... | payload. MAC addresses are matching MAC addresses of the TG node
+| ... | interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# X710-DA2 bandwidth limit
+| ${s_limit} | ${10000000000}
+# Traffic profile
+| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254
+# Container settings
+| ${container_count}= | ${1}
+| ${container_engine}= | Docker
+| ${container_image}= | ubuntu:xenial-20180412
+| ${container_install_dkms}= | ${TRUE}
+| ${container_chain_topology}= | cross_horiz
+# CPU settings
+| ${system_cpus}= | ${1}
+| ${vpp_cpus}= | ${5}
+| ${container_cpus}= | ${5}
+
+*** Keywords ***
+| Find NDRPDR for l2xcbase-eth-1memif-1dcr
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\
+| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
+| | ... | [Ver] Find ${search_type} for ${framesize} frames using binary search\
+| | ... | start at 10GE linerate, step 50kpps.
+| | ...
+| | [Arguments] | ${framesize} | ${wt} | ${rxq} | ${search_type}
+| | ... | ${min_rate}=${50000}
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate}
+| | ${get_framesize}= | Get Frame Size | ${framesize}
+| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
+| | ${binary_min}= | Set Variable | ${min_rate}
+| | ${binary_max}= | Set Variable | ${max_rate}
+| | ${threshold}= | Set Variable | ${min_rate}
+| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | And Add single PCI device to all DUTs
+| | And Run Keyword If | ${get_framesize} < ${1522}
+| | ... | Add no multi seg to all DUTs
+| | And Apply startup configuration on all VPP DUTs
+| | And Initialize L2 xconnect for single memif in 3-node circular topology
+| | ... | ${rxq}
+| | Then Run Keyword If | '${search_type}' == 'NDR'
+| | ... | Find NDR using binary search and pps
+| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
+| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ... | ELSE IF | '${search_type}' == 'PDR'
+| | ... | Find PDR using binary search and pps
+| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
+| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+
+*** Test Cases ***
+| tc01-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 64B | 1C | NDRDISC
+| | framesize=${64} | wt=1 | rxq=1 | search_type=NDR
+
+| tc02-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 64B | 1C | PDRDISC
+| | framesize=${64} | wt=1 | rxq=1 | search_type=PDR
+
+| tc03-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 1518B | 1C | NDRDISC
+| | framesize=${1518} | wt=1 | rxq=1 | search_type=NDR
+
+| tc04-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 1518B | 1C | PDRDISC
+| | framesize=${1518} | wt=1 | rxq=1 | search_type=PDR
+
+| tc05-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 9000B | 1C | NDRDISC
+| | framesize=${9000} | wt=1 | rxq=1 | search_type=NDR
+
+| tc06-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 9000B | 1C | PDRDISC
+| | framesize=${9000} | wt=1 | rxq=1 | search_type=PDR
+
+| tc07-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 1C | NDRDISC
+| | framesize=IMIX_v4_1 | wt=1 | rxq=1 | search_type=NDR
+
+| tc08-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 1C | PDRDISC
+| | framesize=IMIX_v4_1 | wt=1 | rxq=1 | search_type=PDR
+
+| tc09-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 64B | 2C | NDRDISC
+| | framesize=${64} | wt=2 | rxq=1 | search_type=NDR
+
+| tc10-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 64B | 1C | PDRDISC
+| | framesize=${64} | wt=2 | rxq=1 | search_type=PDR
+
+| tc11-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 1518B | 2C | NDRDISC
+| | framesize=${1518} | wt=2 | rxq=1 | search_type=NDR
+
+| tc12-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 1518B | 2C | PDRDISC
+| | framesize=${1518} | wt=2 | rxq=1 | search_type=PDR
+
+| tc13-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 9000B | 2C | NDRDISC
+| | framesize=${9000} | wt=2 | rxq=1 | search_type=NDR
+
+| tc14-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 9000B | 2C | PDRDISC
+| | framesize=${9000} | wt=2 | rxq=1 | search_type=PDR
+
+| tc15-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 2C | NDRDISC
+| | framesize=IMIX_v4_1 | wt=2 | rxq=1 | search_type=NDR
+
+| tc16-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
+| | ... | 1 receive queue per NIC port.
+| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 2C | PDRDISC
+| | framesize=IMIX_v4_1 | wt=2 | rxq=1 | search_type=PDR
+
+| tc17-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
+| | ... | 2 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 64B | 4C | NDRDISC
+| | framesize=${64} |  wt=4 | rxq=2 | search_type=NDR
+
+| tc18-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
+| | ... | 2 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 64B | 4C | PDRDISC
+| | framesize=${64} |  wt=4 | rxq=2 | search_type=PDR
+
+| tc19-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
+| | ... | 2 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 1518B | 4C | NDRDISC
+| | framesize=${1518} |  wt=4 | rxq=2 | search_type=NDR
+
+| tc20-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
+| | ... | 2 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 1518B | 4C | PDRDISC
+| | framesize=${1518} |  wt=4 | rxq=2 | search_type=PDR
+
+| tc21-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
+| | ... | 2 receive queue per NIC port.
+| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ...
+| | [Tags] | 9000B | 4C | NDRDISC
+| | framesize=${9000} |  wt=4 | rxq=2 | search_type=NDR
+
+| tc22-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
+| | ... | 2 receive queue per NIC port.
+| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ...
+| | [Tags] | 9000B | 4C | PDRDISC
+| | framesize=${9000} |  wt=4 | rxq=2 | search_type=PDR
+
+| tc23-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
+| | ... | 2 receive queue per NIC port.
+| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 4C | NDRDISC
+| | framesize=IMIX_v4_1 |  wt=4 | rxq=2 | search_type=NDR
+
+| tc24-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
+| | ... | 2 receive queue per NIC port.
+| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
+| | ... | linerate, step 50kpps, LT=0.5%.
+| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
+| | ...
+| | [Tags] | IMIX | 4C | PDRDISC
+| | framesize=IMIX_v4_1 | wt=4 | rxq=2 | search_type=PDR