Skip to content

Feature Testing

Tejaswi Goel edited this page Aug 2, 2019 · 53 revisions

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

Table of Contents:

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 Show system info hostname, currenttime, boottime ✔️
show system memory Show total/used memory info ✔️
show system cpu Show CPU usage (user/kernel/idle) percentages ✔️
show system processes Show all processes running in the host system ✔️
show system processes pid <pid> Show 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 Status of all interfaces ✔️ -
show interface counters Port-Statistics of all interfaces ✔️ -
show interface Ethernet Description of all interfaces ✔️ -
show interface Ethernet <id> Description of a specific interface ✔️ -
description <string> Configure description for an interface ✔️ -
no description Remove 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}/config/enabled enabled Not supported get type
/openconfig-interfaces:interfaces/interface={name}/config/mtu Get request for mtu Not supported get type
/openconfig-interfaces:interfaces/interface={name}/config/mtu Set request ✔️ Not tested
/openconfig-interfaces:interfaces/interface={name}/subinterfaces/subinterface={index}/openconfig-if-ip:ipv4/addresses/address={ip} ip ✔️ Not supported get type
/openconfig-interfaces:interfaces/interface={name}/subinterfaces/subinterface={index}/openconfig-if-ip:ipv6/addresses/address={ip} ip ✔️ Not supported get type

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] Shows a specific IPv4 ACL ✔️
ip access-group [ACL-table-name] in Apply Ingress IPv4 access control list (ACL) to an interface ✔️
ip access-group [ACL-table-name] out Apply Egress IPv4 access control list (ACL) to an interface ✔️
show ip access-group Show IP access-group information ✔️ shows both ingress and egress config
no ip access-group [ACL-table-name] out Remove 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 Remove Igress 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] Delete 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 Show a table of LLDP neighbors ✔️ testcase notes
show lldp neighbors Show LLDP information on all interfaces ✔️ testcase notes
show lldp neighbors <ifname> Show 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
Clone this wiki locally