Open-Network-Models-and-Interfaces-ONMI / TAPI

LF ONMI Transport API Repository (TAPI)
https://github.com/Open-Network-Models-and-Interfaces-ONMI/TAPI/wiki
Apache License 2.0
95 stars 80 forks source link

Identification of the stream when consuming via gNMI Subscribe #591

Open roshan-joyce-fujitsu opened 3 months ago

roshan-joyce-fujitsu commented 3 months ago

TR548 defines 3 connection-protocols for streams: SSE, web-socket, and gNMI. And TAPI server advertises available streams in the list /tapi-common:context/stream-context/available-stream. Each stream object has a uuid, stream-id, and a name. Each stream object also has a connection-address.

In the case of a stream supporting SSE or web-socket connection-protocol, the connection-address will be a URL and the URL can have one component that identifies the specific stream.

In the case of a stream supporting gNMI, I would imagine the connection-address to be a URL like grpc://<host-fqdn>:<port>. On this grpc connection, the Subscribe() RPC defined in gnmi.proto will need to be invoked. The explanation on forming the SubscribeRequest does not explain how the client can identify the particular steam it wants to subscribe to. See section 6.3.3. This will not be a problem if the server is supporting only one stream per grpc port. However, I think it is better to use prefix/target or subscription/path to identify the stream by its uuid or stream-id.

CC: @nigel-r-davis @amazzini