Skip to content

Commit

Permalink
[yang]: Add Yang model support for adding Channel to PORT table (soni…
Browse files Browse the repository at this point in the history
…c-net#14228)

Why I did it
Add 'channel' to the CONFIG_DB PORT table. This will be needed to support PORT breakout to multiple channel ports so that Xcvrd can understand which datapath or channel to initialize on the CMIS compliant optics

How I did it
Add 'channel' to the CONFIG_DB PORT table.

How to verify it
Added unit test for valid and invalid channel number
Channel 0 -> No breakout
Channel 1 to 8 -> Breakout channel 1,2, ..8

Signed-off-by: Prince George <[email protected]>
  • Loading branch information
prgeor authored and mssonicbld committed Mar 19, 2023
1 parent 6644725 commit b776294
Show file tree
Hide file tree
Showing 5 changed files with 114 additions and 11 deletions.
27 changes: 27 additions & 0 deletions src/sonic-yang-models/doc/Configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -1341,6 +1341,33 @@ optional attributes.
}
}
2x100G port breakout
{
"PORT": {
"Ethernet0": {
"admin_status": "up",
"index": "1",
"lanes": "101,102,103,104",
"description": "etp1a",
"mtu": "9100",
"alias": "etp1a",
"speed": "100000",
"channel": 1
},
"Ethernet4": {
"admin_status": "up",
"index": "1",
"lanes": "105,106,107,108",
"description": "etp1b",
"mtu": "9100",
"alias": "etp1b",
"speed": "100000",
"channel": 2
},
}
}
```

### Port Channel
Expand Down
27 changes: 18 additions & 9 deletions src/sonic-yang-models/tests/files/sample_config_db.json
Original file line number Diff line number Diff line change
Expand Up @@ -537,71 +537,80 @@
"admin_status": "up",
"autoneg": "on",
"adv_speeds": "all",
"adv_interface_types": "all"
"adv_interface_types": "all",
"channel" : "0"
},
"Ethernet3": {
"alias": "Eth1/4",
"lanes": "68",
"description": "",
"speed": "11100",
"tpid": "0x88A8",
"admin_status": "up"
"admin_status": "up",
"channel": "1"
},
"Ethernet4": {
"alias": "Eth2/1",
"lanes": "69",
"description": "",
"speed": "11100",
"tpid": "0x9100",
"admin_status": "up"
"admin_status": "up",
"channel": "2"
},
"Ethernet5": {
"alias": "Eth2/2",
"lanes": "70",
"description": "",
"speed": "11100",
"tpid": "0x9200",
"admin_status": "up"
"admin_status": "up",
"channel": "3"
},
"Ethernet6": {
"alias": "Eth2/3",
"lanes": "71",
"description": "",
"speed": "11100",
"tpid": "0x8100",
"admin_status": "up"
"admin_status": "up",
"channel": "4"
},
"Ethernet7": {
"alias": "Eth2/4",
"lanes": "72",
"description": "",
"speed": "11100",
"tpid": "0x8100",
"admin_status": "up"
"admin_status": "up",
"channel": "5"
},
"Ethernet8": {
"alias": "Eth3/1",
"lanes": "73",
"description": "",
"speed": "11100",
"tpid": "0x8100",
"admin_status": "up"
"admin_status": "up",
"channel": "6"
},
"Ethernet9": {
"alias": "Eth3/2",
"lanes": "74",
"description": "",
"speed": "11100",
"tpid": "0x8100",
"admin_status": "up"
"admin_status": "up",
"channel": "7"
},
"Ethernet10": {
"alias": "Eth3/3",
"lanes": "75",
"description": "",
"speed": "11100",
"tpid": "0x8100",
"admin_status": "up"
"admin_status": "up",
"channel": "8"
},
"Ethernet11": {
"alias": "Eth3/4",
Expand Down
9 changes: 8 additions & 1 deletion src/sonic-yang-models/tests/yang_model_tests/tests/port.json
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,13 @@
"PORT_INVALID_MULTIASIC_TEST": {
"desc": "PORT_INVALID_MULTIASIC_TEST invalid role pattern, expect fail",
"eStrKey": "Pattern"
},
"PORT_VALID_CHANNEL_NUMBER": {
"desc": "PORT_VALID_CHANNEL_NUMBER no failure."
},
"PORT_INVALID_CHANNEL_NUMBER": {
"desc": "Out of range channel number",
"eStrKey": "Range",
"eStr": "0..8"
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -515,7 +515,60 @@
}
}
},


"PORT_INVALID_CHANNEL_NUMBER": {
"sonic-port:sonic-port": {
"sonic-port:PORT": {
"PORT_LIST": [
{
"name": "Ethernet0",
"alias": "etp1a",
"lanes": "60, 61",
"speed": 100000,
"channel": 9
}
]
}
}
},

"PORT_VALID_CHANNEL_NUMBER": {
"sonic-port:sonic-port": {
"sonic-port:PORT": {
"PORT_LIST": [
{
"name": "Ethernet0",
"alias": "etp1a",
"lanes": "60, 61",
"speed": 100000,
"channel": 1
},
{
"name": "Ethernet2",
"alias": "etp1b",
"lanes": "62, 63",
"speed": 100000,
"channel": 2
},
{
"name": "Ethernet4",
"alias": "etp1c",
"lanes": "64, 65",
"speed": 100000,
"channel": 3
},
{
"name": "Ethernet6",
"alias": "etp1d",
"lanes": "66, 67",
"speed": 100000,
"channel": 4
}
]
}
}
},

"PORT_VALID_MULTIASIC_TEST": {
"sonic-port:sonic-port": {
"sonic-port:PORT": {
Expand Down
7 changes: 7 additions & 0 deletions src/sonic-yang-models/yang-models/sonic-port.yang
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,13 @@ module sonic-port{
}
}

leaf channel {
description "Logical channel(s) for physical port breakout";
type uint8 {
range 0..8;
}
}

leaf index {
type uint16;
}
Expand Down

0 comments on commit b776294

Please sign in to comment.