Skip to content

Commit 257a768

Browse files
authored
NDK 0.3.0/0.4.0 release notes (#172)
* 0.3.0 release notes * added ndk 0.3.0 changelog * added 0.4.0 ndk release notes * fix admonition
1 parent 0f829fa commit 257a768

File tree

6 files changed

+80
-8
lines changed

6 files changed

+80
-8
lines changed

docs/ndk/guide/dev/go/index.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,19 @@ The toolchain that can be used to develop and build Go-based NDK apps consists o
3232
Goreleaser is optional, but it is a nice tool to build and release Go-based NDK applications in an automated fashion.
3333

3434
## Bond or no Bond?
35+
<!-- --8<-- [start:bond-intro] -->
36+
The [**`srl-labs/bond`**][bond-repo] package is a helper Go [package][bond-pkg] 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.
3537

36-
The [**`srl-labs/bond`**][bond-repo] 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.
38+
Bond takes care of the following tasks:
3739

40+
* registering the NDK agent with the NDK server
41+
* creation of NDK gRPC clients for the NDK services
42+
* creation of gNMI client to interact with SR Linux gNMI server and providing the GetWithGNMI method to
43+
* receiving the notifications from the NDK services
44+
* aggregating configuration notifications and forwarding the aggregated config to the NDK application
45+
* handling of the NDK application graceful shutdown
46+
47+
<!-- --8<-- [end:bond-intro] -->
3848
Since using `bond` is optional, we provide two documentation sets for a basic NDK app development:
3949

4050
1. With Bond - a development workflow that leverages [bond][bond-repo] package.
@@ -73,3 +83,4 @@ Let's see how we can develop this app using the `bond` package.
7383
[greeter-go-repo]: https://github.com/srl-labs/ndk-greeter-go
7484

7585
[bond-repo]: https://github.com/srl-labs/bond
86+
[bond-pkg]: https://pkg.go.dev/github.com/srl-labs/bond

docs/ndk/guide/dev/py/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Python Development Environment
22

3-
/// warning "Work in progress"
3+
/// admonition | Work in progress
4+
type: warning
45
This tutorial might be outdated. Please check Go tutorial for the latest updates until this version is updated.
56
///
67

docs/ndk/releases/0.3.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
version: v0.3.0
3+
prev_version: v0.2.0
4+
---
5+
# NDK -{{version}}- Release Notes
6+
7+
* Documentation - [ndk.srlinux.dev](https://ndk.srlinux.dev/doc/sdk?version=-{{version}}-)
8+
* Protobuf definitions - [github.com/nokia/srlinux-ndk-protobufs](https://github.com/nokia/srlinux-ndk-protobufs/tree/-{{version}}-)
9+
* Language bindings - [Go](https://github.com/nokia/srlinux-ndk-go/tree/-{{version}}-), [Python](https://github.com/nokia/srlinux-ndk-py/tree/-{{version}}-).
10+
* Introduced with SR Linux `v24.3.1`.
11+
* Diff with the previous release: [`-{{prev_version}}-...-{{version}}-`](https://github.com/nokia/srlinux-ndk-protobufs/compare/-{{prev_version}}-...-{{version}}-)
12+
13+
## Configuration Acknowledgements
14+
15+
To allow NDK agents to explicitly acknowledge the received configuration a new agent registration option - `wait_config_ack` - has been added to the [`AgentRegistrationRequest`][agent-reg-req-doc].
16+
17+
To facilitate acknowledgment exchange, a new gRPC service - [`SdkMgrConfigService`][sdk-mgr-config-svc-doc] - has been introduced in this release. Clients (NDK agents) send `AcknowledgeConfigRequest` to the NDK server to explicitly acknowledge each configuration update they received.
18+
19+
[agent-reg-req-doc]: https://ndk.srlinux.dev/doc/sdk?version=-{{version}}-#AgentRegistrationRequest
20+
[sdk-mgr-config-svc-doc]: https://ndk.srlinux.dev/doc/config?version=-{{version}}-#SdkMgrConfigService

docs/ndk/releases/0.4.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
version: v0.4.0
3+
prev_version: v0.3.0
4+
---
5+
# NDK -{{version}}- Release Notes
6+
7+
* Documentation - [ndk.srlinux.dev](https://ndk.srlinux.dev/doc/sdk?version=-{{version}}-)
8+
* Protobuf definitions - [github.com/nokia/srlinux-ndk-protobufs](https://github.com/nokia/srlinux-ndk-protobufs/tree/-{{version}}-)
9+
* Language bindings - [Go](https://github.com/nokia/srlinux-ndk-go/tree/-{{version}}-), [Python](https://github.com/nokia/srlinux-ndk-py/tree/-{{version}}-).
10+
* Introduced with SR Linux `v24.10.1`.
11+
* Diff with the previous release: [`-{{prev_version}}-...-{{version}}-`](https://github.com/nokia/srlinux-ndk-protobufs/compare/-{{prev_version}}-...-{{version}}-)
12+
13+
## Project Bond
14+
15+
--8<-- "docs/ndk/guide/dev/go/index.md:bond-intro"
16+
17+
We have created a tutorial demonstrating how to use Bond to develop a simple [NDK Greeter](../guide/dev/go/with-bond/index.md) application in Go.
18+
Developing NDK agents is much simpler with the help of the [Bond][bond-repo] package and we recommend new users to start with it.
19+
20+
## Disabled NDK caching
21+
22+
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.
23+
24+
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.
25+
26+
## Auto Telemetry State
27+
28+
The [`auto_telemetry_state`][ats-proto] 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.
29+
30+
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.
31+
32+
[bond-repo]: https://github.com/srl-labs/bond
33+
<!-- used in the snippet import -->
34+
[bond-pkg]: https://pkg.go.dev/github.com/srl-labs/bond
35+
[ats-proto]: https://github.com/nokia/srlinux-ndk-protobufs/blob/v0.4.0/ndk/sdk_service.proto#L69

docs/ndk/releases/index.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,19 @@ For the same reason the NDK versioning scheme is different from the SR Linux's o
55

66
At the same time, new NDK release appear together with a certain SR Linux release where NDK updates were made.
77

8-
/// note | Semantic Versioning and Non Backwards Compatible Changes
8+
/// admonition | Semantic Versioning and Non Backwards Compatible Changes
9+
type: subtle-note
910
Semantic Versioning imposes certain rules on how to version software releases. The most important one is that a new major version release (e.g. 2.0.0) may contain non backwards compatible changes.
1011

11-
Since NDK is versioned with `v0` at the moment of this writing, we are not bound by this rule and may introduce non backwards compatible changes in any release. The NBC changes would be mentioned in the release notes.
12+
Since NDK is versioned with `v0`, we may introduce non backwards compatible changes in the forthcoming releases until we reach `v1`. The non-backwards compatible (NBC) changes will be mentioned in the release notes.
1213
///
1314

1415
The following table shows the mapping between SR Linux and NDK releases:
1516

16-
| NDK Release | SR Linux Release[^10] | Comments |
17-
| ---------------- | ---------------- | -------- |
18-
| [v0.2.0](0.2.md) | 23.10.1 | |
17+
| NDK Release | SR Linux Release[^1] | Comments |
18+
| ---------------- | -------------------- | -------- |
19+
| [v0.2.0](0.2.md) | 23.10.1 | |
20+
| [v0.3.0](0.3.md) | 24.3.1 | |
21+
| [v0.4.0](0.4.md) | 24.10.1 | |
1922

20-
[^10]: SR Linux release where NDK changes were introduced.
23+
[^1]: SR Linux release where NDK changes were introduced.

mkdocs.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ nav:
8080
- Releases:
8181
- ndk/releases/index.md
8282
- 0.2: ndk/releases/0.2.md
83+
- 0.3: ndk/releases/0.3.md
84+
- 0.4: ndk/releases/0.4.md
8385
- Ansible:
8486
- ansible/index.md
8587
- nokia.srlinux collection:

0 commit comments

Comments
 (0)