Skip to content

Commit

Permalink
Merge pull request sonic-net#68 from jfeng-arista/202205-yang-model-f…
Browse files Browse the repository at this point in the history
…or-fabric-monitor

Add sonic-net#14390 and sonic-net#15629 to 202205.
  • Loading branch information
gechiang committed Jul 28, 2023
2 parents e0b32ef + eebdde1 commit 239aa81
Show file tree
Hide file tree
Showing 11 changed files with 257 additions and 1 deletion.
23 changes: 23 additions & 0 deletions src/sonic-config-engine/tests/test_cfggen_from_yang.py
Original file line number Diff line number Diff line change
Expand Up @@ -265,3 +265,26 @@ def test_vlan_crm(self):
"ipv6_neighbor_threshold_type": "used"
}
})

def test_fabric_monitor_data_table(self):
arg = ["--var-json", "FABRIC_MONITOR"]
output = json.loads(self.run_script_with_yang_arg(arg))
assert(output == {\
"FABRIC_MONITOR_DATA": {
"monErrThreshCrcCells": "1",
"monErrThreshRxCells": "61035156",
"monPollThreshIsolation": "1",
"monPollThreshRecovery": "8"
}
})

def test_fabric_port_table(self):
arg = ["--var-json", "FABRIC_PORT"]
output = json.loads(self.run_script_with_yang_arg(arg))
assert(output == {\
"Fabric0": {
"alias": "Fabric0",
"isolateStatus": "False",
"lanes": "0"
}
})
24 changes: 23 additions & 1 deletion src/sonic-config-engine/tests/test_yang_data.json
Original file line number Diff line number Diff line change
Expand Up @@ -377,5 +377,27 @@
"ipv6_neighbor_threshold_type": "used"
}
}
},
"sonic-fabric-monitor:sonic-fabric-monitor": {
"sonic-fabric-monitor:FABRIC_MONITOR": {
"FABRIC_MONITOR_DATA": {
"monErrThreshCrcCells": "1",
"monErrThreshRxCells": "61035156",
"monPollThreshIsolation": "1",
"monPollThreshRecovery": "8"
}
}
},
"sonic-fabric-port:sonic-fabric-port": {
"sonic-fabric-port:FABRIC_PORT": {
"FABRIC_PORT_LIST": [
{
"name": "Fabric0",
"alias": "Fabric0",
"isolateStatus": "False",
"lanes": "0"
}
]
}
}
}
}
33 changes: 33 additions & 0 deletions src/sonic-yang-models/doc/Configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ Table of Contents
* [Device neighbor metada](#device-neighbor-metada)
* [DHCP_RELAY](#dhcp_relay)
* [DSCP_TO_TC_MAP](#dscp_to_tc_map)
* [FABRIC_MONITOR](#fabric-monitor)
* [FABRIC_PORT](#fabric-port)
* [FLEX_COUNTER_TABLE](#flex_counter_table)
* [IPv6 Link-local] (#ipv6-link-local)
* [KDUMP](#kdump)
Expand Down Expand Up @@ -896,6 +898,37 @@ instance is supported in SONiC.
```

### FABRIC_MONITOR
```
{
"FABRIC_MONITOR": {
"FABRIC_MONITOR_DATA": {
"monErrThreshCrcCells": "1",
"monErrThreshRxCells": "61035156",
"monPollThreshIsolation": "1",
"monPollThreshRecovery": "8"
}
}
}
```

### FABRIC_PORT
```
{
"FABRIC_PORT": {
"Fabric0": {
"alias": "Fabric0",
"isolateStatus": "False",
"lanes": "0"
},
"Fabric1": {
"alias": "Fabric1",
"isolateStatus": "False",
"lanes": "1"
}
}
}
```

### MPLS_TC_TO_TC_MAP
```
Expand Down
4 changes: 4 additions & 0 deletions src/sonic-yang-models/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,8 @@ def run(self):
'./yang-models/sonic-device_neighbor_metadata.yang',
'./yang-models/sonic-dhcpv6-relay.yang',
'./yang-models/sonic-extension.yang',
'./yang-models/sonic-fabric-monitor.yang',
'./yang-models/sonic-fabric-port.yang',
'./yang-models/sonic-flex_counter.yang',
'./yang-models/sonic-feature.yang',
'./yang-models/sonic-system-defaults.yang',
Expand Down Expand Up @@ -177,6 +179,8 @@ def run(self):
'./cvlyang-models/sonic-device_neighbor.yang',
'./cvlyang-models/sonic-device_neighbor_metadata.yang',
'./cvlyang-models/sonic-extension.yang',
'./cvlyang-models/sonic-fabric-monitor.yang',
'./cvlyang-models/sonic-fabric-port.yang',
'./cvlyang-models/sonic-flex_counter.yang',
'./cvlyang-models/sonic-feature.yang',
'./cvlyang-models/sonic-system-defaults.yang',
Expand Down
20 changes: 20 additions & 0 deletions src/sonic-yang-models/tests/files/sample_config_db.json
Original file line number Diff line number Diff line change
Expand Up @@ -1100,6 +1100,26 @@
"port": "50051"
}
},
"FABRIC_MONITOR": {
"FABRIC_MONITOR_DATA": {
"monErrThreshCrcCells": "1",
"monErrThreshRxCells": "61035156",
"monPollThreshIsolation": "1",
"monPollThreshRecovery": "8"
}
},
"FABRIC_PORT": {
"Fabric0": {
"alias": "Fabric0",
"isolateStatus": "False",
"lanes": "0"
},
"Fabric1": {
"alias": "Fabric1",
"isolateStatus": "False",
"lanes": "1"
}
},
"FLEX_COUNTER_TABLE": {
"PFCWD": {
"FLEX_COUNTER_STATUS": "enable"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"FABRIC_MONITOR_POSITIVE_CONFIG": {
"desc": "Configure FABRIC_MONITOR_DATA no failure."
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"FABRIC_PORT_POSITIVE_CONFIG": {
"desc": "Configure FABRIC_PORT no failure."
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"FABRIC_MONITOR_POSITIVE_CONFIG": {
"sonic-fabric-monitor:sonic-fabric-monitor": {
"sonic-fabric-monitor:FABRIC_MONITOR": {
"FABRIC_MONITOR_DATA": {
"monErrThreshCrcCells": "1",
"monErrThreshRxCells": "61035156",
"monPollThreshIsolation": "1",
"monPollThreshRecovery": "8"
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"FABRIC_PORT_POSITIVE_CONFIG": {
"sonic-fabric-port:sonic-fabric-port": {
"sonic-fabric-port:FABRIC_PORT": {
"FABRIC_PORT_LIST": [
{
"name": "Fabric0",
"alias": "Fabric0",
"isolateStatus": "False",
"lanes": "0"
}
]
}
}
}
}
53 changes: 53 additions & 0 deletions src/sonic-yang-models/yang-models/sonic-fabric-monitor.yang
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
module sonic-fabric-monitor{

yang-version 1.1;

namespace "http://github.com/sonic-net/sonic-fabric-monitor";
prefix fabric-monitor;

description "FABRIC_MONITOR yang Module for SONiC OS";

revision 2023-03-14 {
description "First Revision";
}

container sonic-fabric-monitor {

container FABRIC_MONITOR {

description "FABRIC_MONITOR part of config_db.json";

container FABRIC_MONITOR_DATA {

leaf monErrThreshCrcCells {
type uint32;
default 1;
description "The number of cells with errors.";
}

leaf monErrThreshRxCells {
type uint32;
default 61035156;
description "The number of cells received. If more than monErrThreshCrcCells out of monErrThreshRxCells seen with errors, the fabric port needs to be isolated";
}

leaf monPollThreshIsolation {
type uint32;
default 1;
description "Consecutive polls with higher error rate for isolation.";
}

leaf monPollThreshRecovery {
type uint32;
default 8;
description "Consecutive polls with lesser error rate for inclusion.";
}

} /* end of container FABRIC_MONITOR_DATA */

} /* end of container FABRIC_MONITOR */

} /* end of container sonic-fabric-monitor */

} /* end of module sonic-fabric-monitor */

61 changes: 61 additions & 0 deletions src/sonic-yang-models/yang-models/sonic-fabric-port.yang
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
module sonic-fabric-port{

yang-version 1.1;

namespace "http://github.com/sonic-net/sonic-fabric-port";
prefix fabric-port;

import sonic-types {
prefix stypes;
}

description "FABRIC_PORT yang Module for SONiC OS";

revision 2023-03-14 {
description "First Revision";
}

container sonic-fabric-port {

container FABRIC_PORT {

description "FABRIC_PORT part of config_db.json";

list FABRIC_PORT_LIST {

key "name";

leaf name {
type string {
length 1..128;
}
}

leaf isolateStatus {
description "Isolation status of a fabric port";
type stypes:boolean_type;
default "False";
}

leaf alias {
description "Alias of a fabric port";
type string {
length 1..128;
}
}

leaf lanes {
description "Lanes of a fabric port";
mandatory true;
type string {
length 1..128;
}
}

} /* end of list FABRIC_PORT_LIST */

} /* end of container FABRIC_PORT */

} /* end of container sonic-fabric-port */

} /* end of module sonic-fabric-port */

0 comments on commit 239aa81

Please sign in to comment.