Difference between revisions of "CSIT/Honeycomb/Summary"

From fd.io
Jump to: navigation, search
m
(updated summary)
Line 2: Line 2:
 
CRUD tests for the following areas:
 
CRUD tests for the following areas:
 
* Interface management:
 
* Interface management:
** state changes
+
** modify interface state up/down
** IP addresses
+
** configure ipv4/ipv6 address
** IP neighbors
+
** configure ipv4 neighbor
* Bridge domains
+
* Bridge domains:
* Vxlan, VxLan GPE tunnels
+
** configure bridge domains
 +
** assign interfaces to bridge domains
 +
** configure L2 FIB entries
 +
* Vxlan, VxLan GPE tunnels:
 
* TAP interfaces
 
* TAP interfaces
 
* Vhost-user interfaces
 
* Vhost-user interfaces
* Vlan sub-interfaces
+
* Vlan sub-interfaces:
* ACL (access-control-lists)
+
** modify sub-interface state
 +
** configure sub-interface ipv4/ipv6 address
 +
** assign sub-interface to bridge domain
 +
* ACL (access-control-lists):
 +
** v3po-ACL model
 +
** ietf-ACL model:
 +
*** layers: L2, L3, L4, mixed
 
* PBB (provider-backbone-bridge) sub-interface
 
* PBB (provider-backbone-bridge) sub-interface
* LISP
+
* LISP:
 +
** enable/disable feature
 +
** configure mappings
 +
** configure locator sets
 +
** configure adjacencies
 +
**configure locator sets
 
* NSH_SFC
 
* NSH_SFC
* Port mirroring
+
* Port mirroring:
 +
** SPAN
 +
 
 
Non-CRUD tests:
 
Non-CRUD tests:
** Persistence suite:
+
* config persistence
***persist and/or restore configuration through a restart of Honeycomb, VPP or both
+
* Netconf basic CRUD operations
** Netconf suite:
+
* Netconf notifications
*** basic stress test - replicates a specific issue with executing many commands in quick succession
+
*** Notifications - listen for notifications that should be sent out on interface creation, deletion and state change
+
** High-level ACLs (IETF-ACL):
+
*** utilizing an alternative ACL node/model, no VAT dump available (would require saving extra metadata on VPP)
+
*** Traffic tests separately for L2, L3, L4 layers, mixed layer cases and multiple rules
+
  
 
== Planned Test Cases ==
 
== Planned Test Cases ==
  
 +
* ACL using vpp-acl-plugin
 
* routing
 
* routing
* ACL - using vpp-acl-plugin
 
* Netconf transaction revert
 
* security groups
 
 
== Honeycomb testing Summary ==
 
For details on the Honeycomb project itself, [[Honeycomb | check out its own page]]. This page assumes you are also familiar with the rest of CSIT.
 
 
 
Execution info:
 
* test suite is run separately from the rest of CSIT
 
* a test run is triggered by every successful run of "honeycomb-integration" Jenkins job (which includes unit testing)
 
* in addition to CSIT requirements, test runs require Honeycomb to be set up on the primary DUT as a Linux service
 
 
 
Topology and misc:
 
* tests are primarily CRUD, as such test cases only utilize a single DUT node with no traffic generator
 
* planned traffic tests will use standard two-node double-link topology with one DUT and TG
 
* unlike CSIT core tests, VPP is not restarted before/after every test but only after a test failure - due to time constraints
 
* all tests are tagged with "honeycomb_sanity" (subject to change)
 
 
 
Test structure:
 
* separate "honeycomb" folders exist for Honeycomb-specific python libraries, robot files, test data and command templates
 
* Restconf communication with Honeycomb uses python's Requests library
 
* Netconf communication with Honeycomb uses python's Paramiko library
 
* Honeycomb maintains two data stores:
 
*# Operational data - read-only, built from VPP-API data dumps and should reflect state of VPP configuration
 
*# Configuration data - desired configuration; pushed to VPP whenever a change is made, and on initial connection or reconnection to VPP
 
* CRUD test flow is generally:
 
*# Check current status of Honeycomb operational data
 
*# Check current status from VAT dump
 
*# Make a change to configuration data
 
*# Verify change in operational data
 
*# Verify change in VAT dump
 
*# [Teardown] Revert changes
 

Revision as of 13:32, 11 January 2017

Summary of Existing Tests

CRUD tests for the following areas:

  • Interface management:
    • modify interface state up/down
    • configure ipv4/ipv6 address
    • configure ipv4 neighbor
  • Bridge domains:
    • configure bridge domains
    • assign interfaces to bridge domains
    • configure L2 FIB entries
  • Vxlan, VxLan GPE tunnels:
  • TAP interfaces
  • Vhost-user interfaces
  • Vlan sub-interfaces:
    • modify sub-interface state
    • configure sub-interface ipv4/ipv6 address
    • assign sub-interface to bridge domain
  • ACL (access-control-lists):
    • v3po-ACL model
    • ietf-ACL model:
      • layers: L2, L3, L4, mixed
  • PBB (provider-backbone-bridge) sub-interface
  • LISP:
    • enable/disable feature
    • configure mappings
    • configure locator sets
    • configure adjacencies
    • configure locator sets
  • NSH_SFC
  • Port mirroring:
    • SPAN

Non-CRUD tests:

  • config persistence
  • Netconf basic CRUD operations
  • Netconf notifications

Planned Test Cases

  • ACL using vpp-acl-plugin
  • routing