[yang][smartswitch] Add YANG model for MID_PLANE_BRIDGE and DPU tables. (#17311)
- Why I did it Add the YANG model according to Smart Switch IP address assignment HDL. - How I did it Implement new YANG model containers. - How to verify it Run YANG model unit tests. The changes add new unit tests to cover new functionality.
This commit is contained in:
parent
30ff77350f
commit
885f1629dd
@ -2718,6 +2718,37 @@ The FIPS table introduces FIPS configuration.
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
### MID_PLANE_BRIDGE"
|
||||||
|
|
||||||
|
The MID_PLANE_BRIDGE" table introduces the configuration for the midplane bridge interface for Smart Switch.
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"MID_PLANE_BRIDGE": {
|
||||||
|
"GLOBAL" : {
|
||||||
|
"bridge": "bridge_midplane",
|
||||||
|
"ip_prefix": "169.254.200.254/24"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### DPUS
|
||||||
|
|
||||||
|
The DPUS table introduces the information on the DPUs (Data Processing Unit) available on the platform.
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"DPUS": {
|
||||||
|
"dpu0": {
|
||||||
|
"midplane_interface": "dpu0"
|
||||||
|
},
|
||||||
|
"dpu1": {
|
||||||
|
"midplane_interface": "dpu1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
#### 5.2.3 Update value directly in db memory
|
#### 5.2.3 Update value directly in db memory
|
||||||
|
|
||||||
|
@ -197,7 +197,8 @@ setup(
|
|||||||
'./yang-models/sonic-static-route.yang',
|
'./yang-models/sonic-static-route.yang',
|
||||||
'./yang-models/sonic-system-port.yang',
|
'./yang-models/sonic-system-port.yang',
|
||||||
'./yang-models/sonic-macsec.yang',
|
'./yang-models/sonic-macsec.yang',
|
||||||
'./yang-models/sonic-bgp-sentinel.yang']),
|
'./yang-models/sonic-bgp-sentinel.yang',
|
||||||
|
'./yang-models/sonic-smart-switch.yang',]),
|
||||||
('cvlyang-models', ['./cvlyang-models/sonic-acl.yang',
|
('cvlyang-models', ['./cvlyang-models/sonic-acl.yang',
|
||||||
'./cvlyang-models/sonic-bgp-common.yang',
|
'./cvlyang-models/sonic-bgp-common.yang',
|
||||||
'./cvlyang-models/sonic-bgp-global.yang',
|
'./cvlyang-models/sonic-bgp-global.yang',
|
||||||
|
@ -2558,6 +2558,20 @@
|
|||||||
"bank": "1",
|
"bank": "1",
|
||||||
"link": "PortChannel2"
|
"link": "PortChannel2"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"MID_PLANE_BRIDGE": {
|
||||||
|
"GLOBAL" : {
|
||||||
|
"bridge": "bridge_midplane",
|
||||||
|
"ip_prefix": "169.254.200.254/24"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DPUS": {
|
||||||
|
"dpu0": {
|
||||||
|
"midplane_interface": "dpu0"
|
||||||
|
},
|
||||||
|
"dpu1": {
|
||||||
|
"midplane_interface": "dpu1"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"SAMPLE_CONFIG_DB_UNKNOWN": {
|
"SAMPLE_CONFIG_DB_UNKNOWN": {
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"SMART_SWITCH_MID_PLANE_BRIDGE_WITH_DPU_TEST" : {
|
||||||
|
"desc": "Valid configuration in MID_PLANE_BRIDGE and DPUS tables."
|
||||||
|
},
|
||||||
|
"SMART_SWITCH_DPU_NAME_TEST" : {
|
||||||
|
"desc": "DPU name validation.",
|
||||||
|
"eStr": "does not satisfy the constraint"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"SMART_SWITCH_MID_PLANE_BRIDGE_WITH_DPU_TEST": {
|
||||||
|
"sonic-smart-switch:sonic-smart-switch": {
|
||||||
|
"sonic-smart-switch:MID_PLANE_BRIDGE": {
|
||||||
|
"GLOBAL": {
|
||||||
|
"bridge": "bridge_midplane",
|
||||||
|
"ip_prefix": "169.254.200.254/24"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sonic-smart-switch:DPUS": {
|
||||||
|
"DPUS_LIST": [
|
||||||
|
{
|
||||||
|
"dpu_name": "dpu0",
|
||||||
|
"midplane_interface": "dpu0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dpu_name": "dpu1",
|
||||||
|
"midplane_interface": "dpu1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"SMART_SWITCH_DPU_NAME_TEST": {
|
||||||
|
"sonic-smart-switch:sonic-smart-switch": {
|
||||||
|
"sonic-smart-switch:DPUS": {
|
||||||
|
"DPUS_LIST": [
|
||||||
|
{
|
||||||
|
"dpu_name": "dpu0",
|
||||||
|
"midplane_interface": "dpuX"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dpu_name": "dpu1",
|
||||||
|
"midplane_interface": "dpu0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -157,7 +157,7 @@ module sonic-device_metadata {
|
|||||||
|
|
||||||
leaf subtype {
|
leaf subtype {
|
||||||
type string {
|
type string {
|
||||||
pattern "DualToR";
|
pattern "DualToR|SmartSwitch";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
80
src/sonic-yang-models/yang-models/sonic-smart-switch.yang
Normal file
80
src/sonic-yang-models/yang-models/sonic-smart-switch.yang
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
module sonic-smart-switch {
|
||||||
|
|
||||||
|
yang-version 1.1;
|
||||||
|
|
||||||
|
namespace "http://github.com/sonic-net/sonic-smart-switch";
|
||||||
|
prefix smart-switch;
|
||||||
|
|
||||||
|
import ietf-inet-types {
|
||||||
|
prefix inet;
|
||||||
|
}
|
||||||
|
|
||||||
|
import sonic-types {
|
||||||
|
prefix stypes;
|
||||||
|
}
|
||||||
|
|
||||||
|
import sonic-port {
|
||||||
|
prefix port;
|
||||||
|
}
|
||||||
|
|
||||||
|
description "Smart Switch yang Module for SONiC OS";
|
||||||
|
|
||||||
|
revision 2023-10-17 {
|
||||||
|
description "First Revision";
|
||||||
|
}
|
||||||
|
|
||||||
|
container sonic-smart-switch {
|
||||||
|
|
||||||
|
container MID_PLANE_BRIDGE {
|
||||||
|
|
||||||
|
description "MID_PLANE_BRIDGE part of config_db.json";
|
||||||
|
|
||||||
|
container GLOBAL {
|
||||||
|
leaf bridge {
|
||||||
|
type string {
|
||||||
|
pattern "bridge_midplane";
|
||||||
|
}
|
||||||
|
description "Name of the midplane bridge";
|
||||||
|
|
||||||
|
must "(current()/../ip_prefix)";
|
||||||
|
}
|
||||||
|
|
||||||
|
leaf ip_prefix {
|
||||||
|
type stypes:sonic-ip4-prefix;
|
||||||
|
description "IP prefix of the midplane bridge";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* end of container GLOBAL */
|
||||||
|
}
|
||||||
|
/* end of container MID_PLANE_BRIDGE */
|
||||||
|
|
||||||
|
container DPUS {
|
||||||
|
description "DPUS part of config_db.json";
|
||||||
|
|
||||||
|
list DPUS_LIST {
|
||||||
|
key "dpu_name";
|
||||||
|
|
||||||
|
leaf dpu_name {
|
||||||
|
description "Name of the DPU";
|
||||||
|
type string {
|
||||||
|
pattern "dpu[0-9]+";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
leaf midplane_interface {
|
||||||
|
description "Name of the interface that represents DPU";
|
||||||
|
|
||||||
|
type string {
|
||||||
|
pattern "dpu[0-9]+";
|
||||||
|
}
|
||||||
|
|
||||||
|
must "(current() = current()/../dpu_name)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* end of container DPUS_LIST */
|
||||||
|
}
|
||||||
|
/* end of container DPUS */
|
||||||
|
}
|
||||||
|
/* end of container sonic-smart-switch */
|
||||||
|
}
|
||||||
|
/* end of module sonic-smart-switch */
|
Loading…
Reference in New Issue
Block a user