Skip to content

NDK v0.4.0 Release Notes#

Project Bond#

The srl-labs/bond package is a helper Go package that abstracts the low-level NDK API and assists in the development of the NDK applications. It is a wrapper around the NDK gRPC services with utility functions that were designed to provide a more pleasant development experience.

Bond takes care of the following tasks:

  • registering the NDK agent with the NDK server
  • creation of NDK gRPC clients for the NDK services
  • creation of gNMI client to interact with SR Linux gNMI server and providing the GetWithGNMI method to
  • receiving the notifications from the NDK services
  • aggregating configuration notifications and forwarding the aggregated config to the NDK application
  • handling of the NDK application graceful shutdown

We have created a tutorial demonstrating how to use Bond to develop a simple NDK Greeter application in Go. Developing NDK agents is much simpler with the help of the Bond package and we recommend new users to start with it.

Disabled NDK caching#

Starting with SR Linux 24.10.1 caching will be disabled by default for all NDK services except Network instance, Appid, and Config. This is done to ensure high performance of the NDK server while keeping the memory consumption low.

A user can enable caching by registering the agent with the enable_cache registration option against the NDK manager server. With disabled caching, the services will have to use CreateOrUpdate SDK Manager Operation, instead of a separate Create and Update operations.

Auto Telemetry State#

The auto_telemetry_state field has been added to the AgentRegistrationRequest message to instruct the NDK server to automatically mirror the NDK app's configuration to the state database.

When this field is set to true, the application will no longer need to set the its configuration to state manually via Telemetry service. This can be useful for applications that do not manage their own state and only need to have configuration values. For such apps, it is no longer needed to update the state manually as it will be done automatically by the NDK server.

Comments