Skip to content

Commit

Permalink
gnmi_subscriptionlist_test (openconfig#2348)
Browse files Browse the repository at this point in the history
* gnmi_subscriptionlist_test

This is to test for gNMI `Subscription` to multiple paths with different `SubscriptionMode` in a single `SubscriptionRequest` message using the `Subscriptionlist` field. Goal here is to,
  * Ensure that the NOS supports "Subscriptionlist" field with multiple `Subscription` messages and also supports the desired `Subscriptionmode` per path in each `Subscription` message.
  * The tests also check if the DUT is responding back everytime with a `SubscriptionResponse` message that has the `sync_response` field set to `true`

* Update testregistry.textproto

* Update README.md

* Update README.md

* Update testregistry.textproto

* Update testregistry.textproto

Co-authored-by: Darren Loher <[email protected]>

* Create README.md

* Delete feature/gnmi/gnmi_subscriptionlist_test directory

---------

Co-authored-by: Darren Loher <[email protected]>
  • Loading branch information
sachendras and dplore authored Nov 16, 2023
1 parent b11e6a0 commit af94fcf
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 0 deletions.
51 changes: 51 additions & 0 deletions feature/gnmi/subscribe/tests/gnmi_subscriptionlist_test/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# GNMI-2: gnmi_subscriptionlist_test

## Summary
This is to test for gNMI `Subscription` to multiple paths with different `SubscriptionMode` in a single `SubscriptionRequest` message using the `Subscriptionlist` field. Goal here is to,
* Ensure that the NOS supports "Subscriptionlist" field with multiple `Subscription` messages and also supports the desired `Subscriptionmode` per path in each `Subscription` message.
* The tests also check if the DUT is responding back everytime with a `SubscriptionResponse` message that has the `sync_response` field set to `true`

## Procedure
### GNMI-2.1: Verify single subscription request with a Subscriptionlist and different SubscriptionModes:
* Send a single `SubscribeRequest` message to the DUT with a **SubcriptionList** and **SubscriptionMode** matching the "Telemetry Parameter Coverage" section below. Use `Stream` mode for the `SubcribeRequest`.
* Ensure that the implementation successfully allows subscription to all the paths mentioned below and a `SubscribeResponse` message is received by the client with the `sync_reponse` field set to `true`. The RPC via which the `SubscribeRequest` was recieved should eventually be closed by the client.
### GNMI-2.2: Change SubscriptionModes in the subscription list and verify receipt of sync_response:
* In the "Telemetry Parameter coverage" section below, change the `Subscribe` message for each of the paths with `SubscriptionMode` as `ON_CHANGE` to `TARGET_DEFINED` and the ones that are `TARGET_DEFINED` to `SAMPLE` w/ a sampe_interval of 10secs and send all the subscribe messages in a single `SubscribeRequest` message to the DUT. Confirm that a `SubscribeResponse` message is received by the client with the `sync_reponse` field set to `true`. The client should then close the RPC session
* Again, switch the `SubscriptionMode` in each `Subscription` message to its original state i.e. from `TARGET_DEFINED` to `ON_CHANGE` and from `SAMPLE` to `TARGET_DEFINED` and resend the `SubscriptionRequest` with `Mode` as `STREAM`. Confirm that the DUT is responding back to the client with a `SubscriptionResponse` and the `Sync_Response` field set to `true`

## Telemetry Parameter Coverage

* SubscriptionMode: ON_CHANGE
* /interfaces/interface/state/admin-status
* /lacp/interfaces/interface/members/member/interface
* /interfaces/interface/ethernet/state/macaddress
* /interfaces/interface/state/hardware-port
* /interfaces/interface/state/id
* /interfaces/interface/state/oper-status
* /interfaces/interface/ethernet/state/port-speed
* /components/component/integrated-circuit/state/node-id
* /components/component/state/parent
* /components/component/state/oper-status
* /interfaces/interface/state/forwarding-viable
* /components/component/integrated-circuit/backplane-facing-capacity/state/total-operational-ca
pacity
* SubscriptionMode: TARGET_DEFINED
* /interfaces/interface/state/counters/in-unicast-pkts
* /interfaces/interface/state/counters/in-broadcast-pkts
* /interfaces/interface/state/counters/in-multicast-pkts
* /interfaces/interface/state/counters/out-unicast-pkts
* /interfaces/interface/state/counters/out-broadcast-pkts
* /interfaces/interface/state/counters/out-multicast-pkts
* /interfaces/interface/state/counters/in-octets
* /interfaces/interface/state/counters/out-octets
* /interfaces/interface/state/counters/in-discards
* /interfaces/interface/state/counters/out-discards
* /interfaces/interface/state/counters/in-errors
* /interfaces/interface/state/counters/out-errors
* /interfaces/interface/state/counters/in-fcs-errors
* /qos/interfaces/interface/output/queues/queue/state/transmit-pkts
* /qos/interfaces/interface/output/queues/queue/state/transmit-octets
* /qos/interfaces/interface/output/queues/queue/state/dropped-pkts
* /components/component/integrated-circuit/backplane-facing-capacity/state/available-pct
* /components/component/integrated-circuit/backplane-facing-capacity/state/consumed-capacity
* /components/component/integrated-circuit/backplane-facing-capacity/state/total”
6 changes: 6 additions & 0 deletions testregistry.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -834,6 +834,12 @@ test: {
readme: "https://github.com/openconfig/featureprofiles/blob/main/feature/system/gnmi/get/tests/system_gnmi_get_test/README.md"
exec: " "
}
test: {
id: "gNMI-2"
description: "Gnmi Subscriptionlist Test"
readme: "https://github.com/openconfig/featureprofiles/blob/main/feature/gnmi/subscribe/tests/gnmi_subscriptionlist_test/README.md"
exec: " "
}
test: {
id: "gNOI-2.1"
description: "Packet-based Link Qualification"
Expand Down

0 comments on commit af94fcf

Please sign in to comment.