Update TELEMETRY_CLIENT YANG model (#16861)

### Why I did it
Github issue: https://github.com/sonic-net/sonic-buildimage/issues/16356. The YANG definition breaks GCU feature.

We can either update sonic_yang and GCU's search algorithm to enable the same key count case or simply update YANG model to solve the issue.

The pros for update YANG model are it could solve the issue directly and we don't need to handle the complicate search algorithm in sonic_yang and GCU. This is the only YANG model that has this issue.

### How I did it
Combine two list into one. The previous YANG validation unit tests are still applicable.
#### How to verify it
Unit test and E2E test
This commit is contained in:
jingwenxie 2023-12-16 09:04:55 +08:00 committed by GitHub
parent 728df4e89d
commit ad90ad9fcd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 67 additions and 48 deletions

View File

@ -70,6 +70,7 @@ Table of Contents
* [TC to Priority group map](#tc-to-priority-group-map) * [TC to Priority group map](#tc-to-priority-group-map)
* [TC to Queue map](#tc-to-queue-map) * [TC to Queue map](#tc-to-queue-map)
* [Telemetry](#telemetry) * [Telemetry](#telemetry)
* [Telemetry client](#telemetry-client)
* [Tunnel](#tunnel) * [Tunnel](#tunnel)
* [Versions](#versions) * [Versions](#versions)
* [VLAN](#vlan) * [VLAN](#vlan)
@ -2221,6 +2222,31 @@ and is listed in this table.
} }
``` ```
### Telemetry client
```
{
"TELEMETRY_CLIENT": {
"Global": {
"encoding": "JSON_IETF",
"retry_interval": "30",
"src_ip": "30.57.185.38",
"unidirectional": "true"
},
"DestinationGroup|HS": {
"dst_addr": "30.57.186.214:8081,30.57.185.39:8081"
},
"Subscription|HS_RDMA": {
"dst_group": "HS",
"path_target": "COUNTERS_DB",
"paths": "COUNTERS/Ethernet*,COUNTERS_PORT_NAME_MAP",
"report_interval": "5000",
"report_type": "periodic"
}
}
}
```
### Tunnel ### Tunnel
This table configures the MUX tunnel for Dual-ToR setup This table configures the MUX tunnel for Dual-ToR setup

View File

@ -1235,10 +1235,10 @@
"src_ip": "30.57.185.38", "src_ip": "30.57.185.38",
"unidirectional": "true" "unidirectional": "true"
}, },
"DestinationGroup_HS": { "DestinationGroup|HS": {
"dst_addr": "30.57.186.214:8081,30.57.185.39:8081" "dst_addr": "30.57.186.214:8081,30.57.185.39:8081"
}, },
"Subscription_HS_RDMA": { "Subscription|HS_RDMA": {
"dst_group": "HS", "dst_group": "HS",
"path_target": "COUNTERS_DB", "path_target": "COUNTERS_DB",
"paths": "COUNTERS/Ethernet*,COUNTERS_PORT_NAME_MAP", "paths": "COUNTERS/Ethernet*,COUNTERS_PORT_NAME_MAP",

View File

@ -8,15 +8,15 @@
"src_ip": "30.57.185.38", "src_ip": "30.57.185.38",
"unidirectional": "true" "unidirectional": "true"
}, },
"TELEMETRY_CLIENT_DS_LIST": [ "TELEMETRY_CLIENT_LIST": [
{ {
"prefix": "DestinationGroup_HS", "prefix": "DestinationGroup",
"name": "HS",
"dst_addr": "30.57.186.214:8081,30.57.185.39:8081" "dst_addr": "30.57.186.214:8081,30.57.185.39:8081"
} },
],
"TELEMETRY_CLIENT_SUB_LIST": [
{ {
"prefix": "Subscription_HS_RDMA", "prefix": "Subscription",
"name": "HS_RDMA",
"dst_group": "HS", "dst_group": "HS",
"path_target": "COUNTERS_DB", "path_target": "COUNTERS_DB",
"paths": "COUNTERS/Ethernet*,COUNTERS_PORT_NAME_MAP", "paths": "COUNTERS/Ethernet*,COUNTERS_PORT_NAME_MAP",
@ -36,15 +36,15 @@
"src_ip": "30.57.185.38", "src_ip": "30.57.185.38",
"unidirectional": "true" "unidirectional": "true"
}, },
"TELEMETRY_CLIENT_DS_LIST": [ "TELEMETRY_CLIENT_LIST": [
{ {
"prefix": "DestinationGroup_HS", "prefix": "DestinationGroup",
"name": "HS",
"dst_addr": "30.57.186.214:8081,30.57.185.39:8081" "dst_addr": "30.57.186.214:8081,30.57.185.39:8081"
} },
],
"TELEMETRY_CLIENT_SUB_LIST": [
{ {
"prefix": "Subscription_HS_RDMA", "prefix": "Subscription",
"name": "HS_RDMA",
"dst_group": "FS", "dst_group": "FS",
"path_target": "COUNTERS_DB", "path_target": "COUNTERS_DB",
"paths": "COUNTERS/Ethernet*,COUNTERS_PORT_NAME_MAP", "paths": "COUNTERS/Ethernet*,COUNTERS_PORT_NAME_MAP",
@ -64,15 +64,15 @@
"src_ip": "30.57.185.388", "src_ip": "30.57.185.388",
"unidirectional": "true" "unidirectional": "true"
}, },
"TELEMETRY_CLIENT_DS_LIST": [ "TELEMETRY_CLIENT_LIST": [
{ {
"prefix": "DestinationGroup_HS", "prefix": "DestinationGroup",
"name": "HS",
"dst_addr": "30.57.186.214:8081,30.57.185.39:8081" "dst_addr": "30.57.186.214:8081,30.57.185.39:8081"
} },
],
"TELEMETRY_CLIENT_SUB_LIST": [
{ {
"prefix": "Subscription_HS_RDMA", "prefix": "Subscription",
"name": "HS_RDMA",
"dst_group": "HS", "dst_group": "HS",
"path_target": "COUNTERS_DB", "path_target": "COUNTERS_DB",
"paths": "COUNTERS/Ethernet*,COUNTERS_PORT_NAME_MAP", "paths": "COUNTERS/Ethernet*,COUNTERS_PORT_NAME_MAP",
@ -92,15 +92,15 @@
"src_ip": "30.57.185.38", "src_ip": "30.57.185.38",
"unidirectional": "true" "unidirectional": "true"
}, },
"TELEMETRY_CLIENT_DS_LIST": [ "TELEMETRY_CLIENT_LIST": [
{ {
"prefix": "DestinationGroup_HS", "prefix": "DestinationGroup",
"name": "HS",
"dst_addr": "30.57.186.214:8081,30.57.185.39:8081" "dst_addr": "30.57.186.214:8081,30.57.185.39:8081"
} },
],
"TELEMETRY_CLIENT_SUB_LIST": [
{ {
"prefix": "Subscription_HS_RDMA", "prefix": "Subscription",
"name": "HS_RDMA",
"dst_group": "HS", "dst_group": "HS",
"path_target": "COUNTERS_DB", "path_target": "COUNTERS_DB",
"paths": "COUNTERS/Ethernet*,COUNTERS_PORT_NAME_MAP", "paths": "COUNTERS/Ethernet*,COUNTERS_PORT_NAME_MAP",
@ -120,15 +120,15 @@
"src_ip": "30.57.185.38", "src_ip": "30.57.185.38",
"unidirectional": "true" "unidirectional": "true"
}, },
"TELEMETRY_CLIENT_DS_LIST": [ "TELEMETRY_CLIENT_LIST": [
{ {
"prefix": "DestinationGroup_HS", "prefix": "DestinationGroup",
"name": "HS",
"dst_addr": "30.57.186.214:80819,30.57.185.39:8081" "dst_addr": "30.57.186.214:80819,30.57.185.39:8081"
} },
],
"TELEMETRY_CLIENT_SUB_LIST": [
{ {
"prefix": "Subscription_HS_RDMA", "prefix": "Subscription",
"name": "HS_RDMA",
"dst_group": "HS", "dst_group": "HS",
"path_target": "COUNTERS_DB", "path_target": "COUNTERS_DB",
"paths": "COUNTERS/Ethernet*,COUNTERS_PORT_NAME_MAP", "paths": "COUNTERS/Ethernet*,COUNTERS_PORT_NAME_MAP",

View File

@ -86,33 +86,26 @@ module sonic-telemetry_client {
} }
} }
list TELEMETRY_CLIENT_DS_LIST { list TELEMETRY_CLIENT_LIST {
ordered-by user; ordered-by user;
key "prefix"; key "prefix name";
leaf prefix { leaf prefix {
type string { type string {
pattern "DestinationGroup_" + ".*"; pattern 'Subscription|DestinationGroup';
} }
} }
leaf name {
type string;
}
leaf dst_addr { leaf dst_addr {
type ipv4-port; type ipv4-port;
} }
}
list TELEMETRY_CLIENT_SUB_LIST {
ordered-by user;
key "prefix";
leaf prefix {
type string {
pattern "Subscription_" + ".*";
}
}
leaf dst_group { leaf dst_group {
must "(contains(../../TELEMETRY_CLIENT_DS_LIST/prefix, current()))"; must "(contains(../../TELEMETRY_CLIENT_LIST/name, current()))";
type string; type string;
} }