Skip to content

Feature Testing

Tejaswi Goel edited this page Sep 11, 2019 · 53 revisions

This information describes the testing completed in the Project Arlo features. The intention is to describe the coverage of manual test cases that have been run so far, not necessarily to thoroughly document and provide evidence.

OpenConfig Models

OpenConfig models

This section covers feature testing for the OpenConfig models supported in Project Arlo.

openconfig-platform

Tested CLI commands

  • Date tested: 2019/07/23
Command Description Result Notes
show platform Displays platform information about components like PSU, fans, and temperature sensors ✔️
show platform syseeprom Displays system EEPROM information ✔️

YANG object testing

  • Date tested: 2019/07/23
  • REST paths tested using the Swagger UI
  • gNMI paths tested using gnmi-client CLI utility
Object Attribute REST Result gNMI Result Notes
components/component empty ✔️
components/component removable ✔️
components/component name ✔️
components/component operstatus ✔️
components/component location ✔️
components/component id ✔️
components/component partno ✔️
components/component serialno ✔️
components/component mfgdate ✔️
components/component hardwareversion ✔️
components/component description ✔️
components/component mfgname ✔️
components/component software version ✔️

openconfig-system

Tested CLI commands

  • Date tested: 2019/07/23
Command Description Result Notes
show system Displays system info including hostname, currenttime, boottime ✔️
show system memory Displays total/used memory info ✔️
show system cpu Displays CPU usage (user/kernel/idle) percentages ✔️
show system processes Displays all processes running in the host system ✔️
show system processes pid <pid> Displays specific process information ✔️

YANG object testing

  • Date tested: 2019/07/23
  • REST paths tested using the Swagger UI
  • gNMI paths tested using gnmi-client CLI utility
Object Attribute REST Result gNMI Result Notes
system/state empty ✔️
system/state hostname ✔️
system/state currentdatetime ✔️
system/state boottime ✔️
system/memory empty ✔️
system/memory physical ✔️
system/memory reserved ✔️
system/cpus/state/[user/kernel/idle] empty ✔️
system/cpus/state/[user/kernel/idle] instant Individual attributes not tested due to defect in translib
system/processes ✔️
system/processes/<pid>/state ✔️
system/processes/<pid>/state Name ✔️
system/processes/<pid>/state starttime ✔️
system/processes/<pid>/state uptime ✔️
system/processes/<pid>/state cpu-usage-user ✔️
system/processes/<pid>/state cpu-usage-system ✔️
system/processes/<pid>/state memory-usage ✔️
system/processes/<pid>/state memory-utilization ✔️
system/processes/<pid>/state pid ✔️

openconfig-interface

Tested CLI commands

  • Date tested: 2019/07/23
Command Description Result Notes
show interface status Displays status of all interfaces ✔️ -
show interface counters Displays port statistics of all interfaces ✔️ -
show interface Ethernet Displays description of all interfaces ✔️ -
show interface Ethernet <id> Displays description of a specific interface ✔️ -
description <string> Configures description for an interface ✔️ -
no description Removes description ✔️ -
shutdown Shuts down an interface ✔️ -
no shutdown Configures admin-status as UP for an interface ✔️ -
mtu <val> Configures MTU for an interface ✔️ -
no mtu Resets MTU to 9100 for an interface ✔️ -
ip address <ip-address with mask> Configures IPv4 address for an interface ✔️ -
no ip address Removes IPv4 address for an interface ✔️ -
ipv6 address Configures IPv6 address for an interface ✔️ -
no ipv6 address Removes IPv6 address for an interface ✔️ -

YANG object testing

  • Date tested: 2019/07/23
  • REST paths tested using the Swagger UI
  • gNMI paths tested using gnmi-client CLI utility
Object Attribute REST Result gNMI Result Notes
/openconfig-interfaces:interfaces Get Request ✔️ ✔️
/openconfig-interfaces:interfaces/interface={name} Get Request ✔️ ✔️
/openconfig-interfaces:interfaces/interface={name}/config/ ✔️ ✔️
/openconfig-interfaces:interfaces/interface={name}/state/ ✔️ ✔️
/openconfig-interfaces:interfaces/interface={name}/state/admin-status Get request for admin-status ✔️ ✔️
/openconfig-interfaces:interfaces/interface={name}/state/mtu Get request for mtu ✔️ ✔️
/openconfig-interfaces:interfaces/interface={name}/config/mtu Set request for mtu ✔️ ✔️
/openconfig-interfaces:interfaces/interface={name}/subinterfaces/subinterface={index}/openconfig-if-ip:ipv4/addresses/address={ip} get request for ipv4 address ✔️ Not supported get type
/openconfig-interfaces:interfaces/interface={name}/subinterfaces/subinterface={index}/openconfig-if-ip:ipv6/addresses/address={ip} get request for ipv6 address ✔️ Not supported get type
/openconfig-interfaces:interfaces/interface={name}/subinterfaces/subinterface={index}/openconfig-if-ip:ipv4/addresses/address={ip}/config set request for ipv4 ✔️ ✔️
/openconfig-interfaces:interfaces/interface={name}/subinterfaces/subinterface={index}/openconfig-if-ip:ipv6/addresses/address={ip}/config set request for ipv6 ✔️ ✔️
/openconfig-interfaces:interfaces/interface={name}/subinterfaces/subinterface={index}/openconfig-if-ip:ipv4/addresses/address={ip}/config/prefix-length remove ipv4 address ✔️ ✔️
/openconfig-interfaces:interfaces/interface={name}/subinterfaces/subinterface={index}/openconfig-if-ip:ipv6/addresses/address={ip}/config/prefix-length remove ipv6 address ✔️ ✔️

openconfig-acl

Tested CLI commands

  • Date tested: 2019/07/23
Command Description Result Notes
ip access-list [ACL-table-name] Configures an IPv4 ACL ✔️
seq <id> { permit | deny } [ tcp ] [ src-prefix | any] { src-eq <src-port> } [ dst-prefix | any ] { dst-eq <dst-port> } { dscp <value> } Configures IPv4 ACL rule ✔️
show ip access-lists Displays all ACLs ✔️
show ip access-lists [ACL-table-name] Displays a specific IPv4 ACL ✔️
ip access-group [ACL-table-name] in Applies ingress IPv4 access control list (ACL) to an interface ✔️
ip access-group [ACL-table-name] out Applies egress IPv4 access control list (ACL) to an interface ✔️
show ip access-group Displays IP access-group information ✔️ shows both ingress and egress config
no ip access-group [ACL-table-name] out Removes egress IPv4 access control list (ACL) from an interface Change not reflected hardware, https://github.com/project-arlo/sonic-mgmt-framework/issues/44
no ip access-group [ACL-table-name] in Removes ingress IPv4 access control list (ACL) from an interface Change not reflected in hardware, https://github.com/project-arlo/sonic-mgmt-framework/issues/43
no seq <id> Delete ACL rule ✔️
no ip access-list [ACL-table-name] Deletes ACL table ✔️

YANG object testing

  • Date tested: 2019/07/23
  • REST paths tested using the Swagger UI
  • gNMI paths tested using gnmi-client CLI utility
Object Attribute Operation REST Result gNMI Result Notes
openconfig-acl:acl get all ✔️ ✔️ testcase notes
openconfig-acl:acl/acl-sets name,type get specific ACL ✔️ ✔️ testcase notes
openconfig-acl:acl configure ACL rules ✔️ ✔️
openconfig-acl:acl delete all ✔️ https://github.com/project-arlo/sonic-mgmt-framework/issues/57
openconfig-acl:acl delete table ✔️ https://github.com/project-arlo/sonic-mgmt-framework/issues/57
openconfig-acl:acl name,type delete specific ACL rule ✔️ https://github.com/project-arlo/sonic-mgmt-framework/issues/57

openconfig-lldp

Note: SONiC does not support multiple LLDP neighbors on a single interface.

Tested CLI commands

  • Date tested: 8/1/2019
Command Description Result Notes
show lldp table Displays a table of LLDP neighbors ✔️ testcase notes
show lldp neighbors Displays LLDP information on all interfaces ✔️ testcase notes
show lldp neighbors <ifname> Displays LLDP information on a specific interfaces ✔️ testcase notes

YANG object testing

  • Date tested: 8/1/2019
  • REST paths tested using the Swagger UI
/openconfig-lldp:lldp/interfaces
/openconfig-lldp:lldp/interfaces/interface={name}

gNMI paths tested using gnmi-client CLI utility

Object Attribute REST Result gNMI Result Notes
/openconfig-lldp:lldp/interfaces GET request ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces id ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces system-name ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces system-description ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces chassis-id ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces chassis-id-type ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces port-description ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces port-id ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces port-id-type ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces management-address ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces capability ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces/interface={name} GET request ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces/interface={name} id ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces/interface={name} system-name ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces/interface={name} system-description ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces/interface={name} chassis-id ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces/interface={name} chassis-id-type ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces/interface={name} port-description ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces/interface={name} port-id ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces/interface={name} port-id-type ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces/interface={name} management-address ✔️ ✔️ testcase notes
/openconfig-lldp:lldp/interfaces/interface={name} capability ✔️ ✔️ testcase notes