Skip to content

Commit f86ce36

Browse files
NosImage Profile enhancement README and ImageType field (#5395)
* NosImage Profile enhancement readme creation * NosImage proto changes * NosImage Profile enhancement readme creation * NosImage Profile enhancement readme creation and proto update * NosImage Profile enhancement readme creation and proto update --------- Co-authored-by: Darren Loher <dloher@google.com>
1 parent 5390d41 commit f86ce36

2 files changed

Lines changed: 65 additions & 5 deletions

File tree

proto/nosimage.proto

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@ import "github.com/openconfig/featureprofiles/proto/ocrpcs.proto";
2727
import "github.com/openconfig/ondatra/proto/testbed.proto";
2828
import "google/protobuf/timestamp.proto";
2929

30+
// Defines the release type of the network operating system image.
31+
enum ImageType {
32+
IMAGETYPE_UNSPECIFIED = 0; // Default value
33+
IMAGETYPE_GA = 1; // General Availability
34+
IMAGETYPE_EFT = 2; // Early Field Trial
35+
}
36+
3037
// NOSImageProfile - A network operating system and version which provides
3138
// support for a list of OpenConfig paths and RPCs.
3239
message NOSImageProfile {
@@ -58,18 +65,21 @@ message NOSImageProfile {
5865
// OpenConfig RPCs supported by the network operating system.
5966
openconfig.ocrpcs.OCRPCs ocrpcs = 6;
6067

61-
// featureprofile_test_result contains a list of tests which
68+
// featureprofile_test_result contains a list of tests which
6269
// were executed on the NOS software was tested against
6370
repeated FeatureProfileTestResult featureprofile_test_result = 8;
6471

72+
// Specifies the type of the image release.
73+
ImageType image_type = 9;
6574
}
6675

6776
message FeatureProfileTestResult {
68-
// The unique identifier for a featureprofiles test plan. This string must match
69-
// the Metadata plan_id defined for the referenced test.
77+
// The unique identifier for a featureprofiles test plan. This string must
78+
// match the Metadata plan_id defined for the referenced test.
7079
string plan_id = 1;
71-
72-
// The git commit hash for the featureprofiles repository containing the referenced test
80+
81+
// The git commit hash for the featureprofiles repository containing the
82+
// referenced test
7383
string commit = 2;
7484

7585
// result identifies if the test was executed and its outcome
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# NOSImageProfile Enhancement Requirements
2+
3+
The `NOSImageProfile` describes a network operating system's (NOS) properties, including identifying the software, its support of OpenConfig RPCs and paths, as well as an assertion of [featureprofiles](https://github.com/openconfig/featureprofiles/tree/main) test results.
4+
5+
## Enhancement Field Requirements
6+
7+
### 1. Machine-Consumable featureprofiles Test Data
8+
To enable automated coverage analysis and validation tracking, vendors must provide structured test results within the `featureprofile_test_result` field. This structured reporting replaces manual or unstructured updates, providing a unified view of test outcomes.
9+
10+
* **Field**: `repeated FeatureProfileTestResult featureprofile_test_result = 8;`
11+
* **Attributes**:
12+
* **plan_id**: The unique identifier for the test plan, which must match the metadata defined in the `featureprofiles` repository.
13+
* **commit**: The specific git commit hash of the `featureprofiles` repository used for the execution.
14+
* **result**: The final status of the test (e.g., `PASSED`, `FAILED`, `NOT_EXECUTED`).
15+
16+
### 2. Image Release Type
17+
The `image_type` field defines the release stage of the network operating system image, allowing automated ingestion pipelines to categorize builds correctly.
18+
19+
* **Field**: `ImageType image_type = 10;`
20+
* **Supported Values**:
21+
* `IMAGETYPE_GA`: General Availability release.
22+
* `IMAGETYPE_EFT`: Early Field Trial release.
23+
24+
25+
---
26+
27+
## Textproto Example
28+
29+
```textproto
30+
vendor_id: OPENCONFIG
31+
nos: "network-os"
32+
software_version: "24.1.R1"
33+
hardware_name: "fixed-sku-01"
34+
35+
# Enhancement: Multiple machine-consumable test results
36+
featureprofile_test_result: {
37+
plan_id: "interfaces-base-config"
38+
commit: "a1b2c3d4e5f6g7h8i9j0"
39+
result: PASSED
40+
}
41+
featureprofile_test_result: {
42+
plan_id: "bgp-neighbor-state"
43+
commit: "a1b2c3d4e5f6g7h8i9j0"
44+
result: FAILED
45+
}
46+
47+
48+
49+
# Enhancement: Categorized image release type
50+
image_type: IMAGETYPE_GA

0 commit comments

Comments
 (0)