[YANG] Create YANG Model for Console (#11806)
How I did it Create YANG Model for SONiC console related features. How to verify it Add tests Signed-off-by: Jing Kan jika@microsoft.com
This commit is contained in:
parent
6e878a36da
commit
353b2742b2
@ -19,6 +19,7 @@ Table of Contents
|
|||||||
* [Buffer port egress profile list](#buffer-port-egress-profile-list)
|
* [Buffer port egress profile list](#buffer-port-egress-profile-list)
|
||||||
* [Cable length](#cable-length)
|
* [Cable length](#cable-length)
|
||||||
* [COPP_TABLE](#copp_table)
|
* [COPP_TABLE](#copp_table)
|
||||||
|
* [Console](#console)
|
||||||
* [CRM](#crm)
|
* [CRM](#crm)
|
||||||
* [Data Plane L3 Interfaces](#data-plane-l3-interfaces)
|
* [Data Plane L3 Interfaces](#data-plane-l3-interfaces)
|
||||||
* [DEFAULT_LOSSLESS_BUFFER_PARAMETER](#DEFAULT_LOSSLESS_BUFFER_PARAMETER)
|
* [DEFAULT_LOSSLESS_BUFFER_PARAMETER](#DEFAULT_LOSSLESS_BUFFER_PARAMETER)
|
||||||
@ -687,6 +688,29 @@ This kind of profiles will be handled by buffer manager and won't be applied to
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Console
|
||||||
|
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"CONSOLE_PORT": {
|
||||||
|
"1": {
|
||||||
|
"baud_rate": "115200",
|
||||||
|
"flow_control": "0",
|
||||||
|
"remote_device": "host-1"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"baud_rate": "9600",
|
||||||
|
"flow_control": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CONSOLE_SWITCH": {
|
||||||
|
"console_mgmt": {
|
||||||
|
"enabled": "yes"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### CRM
|
### CRM
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -98,6 +98,7 @@ setup(
|
|||||||
'./yang-models/sonic-buffer-queue.yang',
|
'./yang-models/sonic-buffer-queue.yang',
|
||||||
'./yang-models/sonic-cable-length.yang',
|
'./yang-models/sonic-cable-length.yang',
|
||||||
'./yang-models/sonic-copp.yang',
|
'./yang-models/sonic-copp.yang',
|
||||||
|
'./yang-models/sonic-console.yang',
|
||||||
'./yang-models/sonic-crm.yang',
|
'./yang-models/sonic-crm.yang',
|
||||||
'./yang-models/sonic-default-lossless-buffer-parameter.yang',
|
'./yang-models/sonic-default-lossless-buffer-parameter.yang',
|
||||||
'./yang-models/sonic-device_metadata.yang',
|
'./yang-models/sonic-device_metadata.yang',
|
||||||
|
@ -1964,6 +1964,23 @@
|
|||||||
"default_dynamic_th": "0",
|
"default_dynamic_th": "0",
|
||||||
"over_subscribe_ratio": "0"
|
"over_subscribe_ratio": "0"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"CONSOLE_PORT": {
|
||||||
|
"1": {
|
||||||
|
"baud_rate": "115200",
|
||||||
|
"flow_control": "0",
|
||||||
|
"remote_device": "host-1"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"baud_rate": "9600",
|
||||||
|
"flow_control": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CONSOLE_SWITCH": {
|
||||||
|
"console_mgmt": {
|
||||||
|
"enabled": "yes"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"SAMPLE_CONFIG_DB_UNKNOWN": {
|
"SAMPLE_CONFIG_DB_UNKNOWN": {
|
||||||
|
@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"CONSOLE_DISABLED": {
|
||||||
|
"desc": "Verifying CONSOLE_SWITCH configuration."
|
||||||
|
},
|
||||||
|
"CONSOLE_DEFAULT_CONSOLE_MGMT": {
|
||||||
|
"desc": "CONSOLE_SWITCH default value for console_mgmt enabled field.",
|
||||||
|
"eStrKey": "Verify",
|
||||||
|
"verify": {
|
||||||
|
"xpath": "/sonic-console:sonic-console/CONSOLE_SWITCH/console_mgmt/enabled",
|
||||||
|
"key": "sonic-console:enabled",
|
||||||
|
"value": "no"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CONSOLE_DISABLED_INCORRECT_PATTERN": {
|
||||||
|
"desc": "CONSOLE_SWITCH configuration pattern failure.",
|
||||||
|
"eStrKey": "Pattern"
|
||||||
|
},
|
||||||
|
"CONSOLE_PORT_DEFAULT_FLOW_CONTROL": {
|
||||||
|
"desc": "CONSOLE_PORT default value for flow_control field.",
|
||||||
|
"eStrKey": "Verify",
|
||||||
|
"verify": {
|
||||||
|
"xpath": "/sonic-console:sonic-console/CONSOLE_PORT/CONSOLE_PORT_LIST[name='1']/flow_control",
|
||||||
|
"key": "sonic-console:flow_control",
|
||||||
|
"value": "0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CONSOLE_PORT_INVALID_NAME": {
|
||||||
|
"desc": "CONSOLE_PORT invalid name failure.",
|
||||||
|
"eStrKey": "InvalidValue",
|
||||||
|
"eStr": ["name"]
|
||||||
|
},
|
||||||
|
"CONSOLE_PORT_INVALID_BAUD": {
|
||||||
|
"desc": "CONSOLE_PORT invalid baud failure.",
|
||||||
|
"eStrKey": "InvalidValue",
|
||||||
|
"eStr": ["baud"]
|
||||||
|
},
|
||||||
|
"CONSOLE_PORT_VALID": {
|
||||||
|
"desc": "Verifying CONSOLE_PORT configuration no failure."
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
"CONSOLE_DISABLED": {
|
||||||
|
"sonic-console:sonic-console": {
|
||||||
|
"sonic-console:CONSOLE_SWITCH": {
|
||||||
|
"sonic-console:console_mgmt": {
|
||||||
|
"enabled": "no"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CONSOLE_DEFAULT_CONSOLE_MGMT": {
|
||||||
|
"sonic-console:sonic-console": {
|
||||||
|
"sonic-console:CONSOLE_SWITCH": {
|
||||||
|
"sonic-console:console_mgmt": {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CONSOLE_DISABLED_INCORRECT_PATTERN": {
|
||||||
|
"sonic-console:sonic-console": {
|
||||||
|
"sonic-console:CONSOLE_SWITCH": {
|
||||||
|
"sonic-console:console_mgmt": {
|
||||||
|
"enabled": "false"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CONSOLE_PORT_DEFAULT_FLOW_CONTROL": {
|
||||||
|
"sonic-console:sonic-console": {
|
||||||
|
"sonic-console:CONSOLE_PORT": {
|
||||||
|
"CONSOLE_PORT_LIST": [
|
||||||
|
{
|
||||||
|
"name": "1",
|
||||||
|
"baud_rate": "9600"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CONSOLE_PORT_INVALID_NAME": {
|
||||||
|
"sonic-console:sonic-console": {
|
||||||
|
"sonic-console:CONSOLE_PORT": {
|
||||||
|
"CONSOLE_PORT_LIST": [
|
||||||
|
{
|
||||||
|
"name": "invalid",
|
||||||
|
"baud_rate": "9600"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CONSOLE_PORT_INVALID_BAUD": {
|
||||||
|
"sonic-console:sonic-console": {
|
||||||
|
"sonic-console:CONSOLE_PORT": {
|
||||||
|
"CONSOLE_PORT_LIST": [
|
||||||
|
{
|
||||||
|
"name": "1",
|
||||||
|
"baud_rate": "invalid"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CONSOLE_PORT_VALID": {
|
||||||
|
"sonic-console:sonic-console": {
|
||||||
|
"sonic-console:CONSOLE_PORT": {
|
||||||
|
"CONSOLE_PORT_LIST": [
|
||||||
|
{
|
||||||
|
"name": "1",
|
||||||
|
"baud_rate": "9600",
|
||||||
|
"flow_control": "1",
|
||||||
|
"remote_device": "remote_host_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "2",
|
||||||
|
"baud_rate": "9600",
|
||||||
|
"flow_control": "0",
|
||||||
|
"remote_device": "remote_host_2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "3",
|
||||||
|
"baud_rate": "9600"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
76
src/sonic-yang-models/yang-models/sonic-console.yang
Normal file
76
src/sonic-yang-models/yang-models/sonic-console.yang
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
module sonic-console {
|
||||||
|
yang-version 1.1;
|
||||||
|
namespace "http://github.com/Azure/sonic-console";
|
||||||
|
prefix console;
|
||||||
|
|
||||||
|
import sonic-types {
|
||||||
|
prefix stypes;
|
||||||
|
}
|
||||||
|
|
||||||
|
description "SONiC CONSOLE";
|
||||||
|
|
||||||
|
revision 2022-08-22 {
|
||||||
|
description "First Revision";
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef console-mgmt-enabled {
|
||||||
|
description "configuration to set if console switch is enabled or not";
|
||||||
|
type string {
|
||||||
|
pattern "yes|no";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef console-flow-control {
|
||||||
|
description "configuration to set if enable flow control on a console port";
|
||||||
|
type string {
|
||||||
|
pattern "0|1";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
container sonic-console {
|
||||||
|
container CONSOLE_PORT {
|
||||||
|
description "CONSOLE_PORT part of config_db.json";
|
||||||
|
|
||||||
|
list CONSOLE_PORT_LIST {
|
||||||
|
key "name";
|
||||||
|
|
||||||
|
leaf name {
|
||||||
|
description "Configure console port name";
|
||||||
|
type uint16;
|
||||||
|
}
|
||||||
|
|
||||||
|
leaf baud_rate {
|
||||||
|
description "Configure baud rate";
|
||||||
|
type uint32;
|
||||||
|
}
|
||||||
|
|
||||||
|
leaf flow_control {
|
||||||
|
description "Configure if enable/disable flow control";
|
||||||
|
type console-flow-control;
|
||||||
|
default "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
leaf remote_device {
|
||||||
|
description "Configure the remote device name";
|
||||||
|
type stypes:hostname;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} /* end of container CONSOLE_PORT */
|
||||||
|
|
||||||
|
container CONSOLE_SWITCH {
|
||||||
|
description "CONSOLE_SWITCH part of config_db.json";
|
||||||
|
|
||||||
|
container console_mgmt {
|
||||||
|
leaf enabled {
|
||||||
|
description "This configuration indicate if enable console management feature on SONiC";
|
||||||
|
type console-mgmt-enabled;
|
||||||
|
default "no";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} /* end of container CONSOLE_SWITCH */
|
||||||
|
|
||||||
|
} /* end of top level container */
|
||||||
|
|
||||||
|
} /* end of module sonic-console */
|
Loading…
Reference in New Issue
Block a user