Threshold based streaming telemetry for optical network element performance monitoring.
This project implements streaming telemetry based performance monitoring (PM) using NETCONF notifications (RFC 5277). Conventional “all-you-can-eat“ streaming telemetry (since 2014) has seen increasing adoption and is steadily replacing SNMP-based monitoring. Streaming telemetry is now available on several networking platforms (routing, optical transport) which uses gRPC as the streaming wire protocol. Open interface definitions such as gNMI introduce gRPC service definitions that can be used across different vendor implementations of streaming telemetry to standardize a common set of telemetry operations.
In this project, we showcase:
sample_interval
which indicates the frequency at which the network element should emit the PM data.<create-subscription>
NETCONF native RPC to subscribe to event streams of interest. The NE can support one or more streams on which data (PM, alarms, events) are published.This project uses Cisco/Tail-F ConfD as the NETCONF stack to implement the threshold-based streaming notifications. We use OpenConfig YANG models (with extensions) to represent the PM data. Specifically, we stream the following optical NE controller’s operating system level PM parameters:
Threshold based streaming of each of the above PM parameters is independently performed by a separate OS process (on the optical NE). The ConfD stack runs as a separate set of processes implementing the NETCONF protocol. Using ConfD’s IPC mechanism (libconfd.so
), each of the PM streaming processes connect to ConfD, and write data to the NETCONF operational data store (as well as publish to a dedicated NETCONF notification stream) which is then available to the telemetry clients. The ConfD stack and the streaming processes all run on the optical NE’s operating system.
This project also has Python ncclient based NETCONF client implementation to subscribe to the threshold PM telemetry data from the optical NE.
This project was done as a collaboration between Infinera and Oracle Cloud Infrastructure (OCI), as part of OFC 2020 Demo Zone:
confd-basic
, we have tested our streaming agents with ConfD Premium and it works just as well.libcrypto.so.1.0.0
. Newer versions of libcrypto may not be (historically) compatible with ConfD. Please refer to the ConfD user guide for details.libcrypto.so.1.0.0
library.Abhinava Sadasivarao, (c) Infinera Corporation, 2020