Skip to content

Commit

Permalink
buildimage: Add gearbox phy device files and a new physyncd docker to…
Browse files Browse the repository at this point in the history
… support VS gearbox phy feature

* scripts and configuration needed to support a second syncd docker (physyncd)
* physyncd supports gearbox device and phy SAI APIs and runs multiple instances of syncd, one per phy in the device
* support for VS target (sonic-sairedis vslib has been extended to support a virtual BCM81724 gearbox PHY).

HLD is located at https://github.com/Azure/SONiC/blob/b817a12fd89520d3fd26bbc5897487928e7f6de7/doc/gearbox/gearbox_mgr_design.md

**- Why I did it**

This work is part of the gearbox phy joint effort between Microsoft and Broadcom, and is based
on multi-switch support in sonic-sairedis.

**- How I did it**

Overall feature was implemented across several projects. The collective pull requests (some in late stages of review at this point):

sonic-net/sonic-utilities#931 - CLI (merged)
sonic-net/sonic-swss-common#347 - Minor changes (merged)
sonic-net/sonic-swss#1321 - gearsyncd, config parsers, changes to orchargent to create gearbox phy on supported systems
sonic-net/sonic-sairedis#624 - physyncd, virtual BCM81724 gearbox phy added to vslib

**- How to verify it**

In a vslib build:

root@sonic:/home/admin# show gearbox interfaces status
  PHY Id    Interface        MAC Lanes    MAC Lane Speed        PHY Lanes    PHY Lane Speed    Line Lanes    Line Lane Speed    Oper    Admin
--------  -----------  ---------------  ----------------  ---------------  ----------------  ------------  -----------------  ------  -------
       1   Ethernet48  121,122,123,124               25G  200,201,202,203               25G       204,205                50G    down     down
       1   Ethernet49  125,126,127,128               25G  206,207,208,209               25G       210,211                50G    down     down
       1   Ethernet50      69,70,71,72               25G  212,213,214,215               25G           216               100G    down     down

In addition, docker ps | grep phy should show a physyncd docker running.

  Signed-off-by: [email protected]
  • Loading branch information
slogan621 committed Jun 25, 2020
1 parent 719c8e6 commit f7253f6
Show file tree
Hide file tree
Showing 22 changed files with 985 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"CONTEXTS": [
{
"guid" : 0,
"name" : "sw0",
"dbAsic" : "ASIC_DB",
"dbCounters" : "COUNTERS_DB",
"dbFlex": "FLEX_COUNTER_DB",
"dbState" : "STATE_DB",
"switches": [
{
"index" : 0,
"hwinfo" : ""
}
]
},
{
"guid" : 1,
"name" : "phy1",
"dbAsic" : "GB_ASIC_DB",
"dbCounters" : "GB_COUNTERS_DB",
"dbFlex": "GB_FLEX_COUNTER_DB",
"dbState" : "STATE_DB",
"switches": [
{
"index" : 1,
"hwinfo" : ""
}
]
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"phys": [
{
"phy_id": 1,
"name": "sesto-1",
"address": "0x1000",
"lib_name": "libsai_phy_sesto-1.so",
"firmware_path": "/tmp/phy-sesto-1.bin",
"config_file": "/usr/share/sonic/hwsku/phy1_config_1.json",
"sai_init_config_file": "/usr/share/sonic/hwsku/sesto-1.bcm",
"phy_access": "mdio",
"bus_id": 0
}
],
"interfaces": [
{
"name": "Ethernet0",
"index": 0,
"phy_id" : 1,
"system_lanes": [200,201],
"line_lanes": [206]
},
{
"name": "Ethernet4",
"index": 1,
"phy_id" : 1,
"system_lanes": [202,203],
"line_lanes": [207]
},
{
"name": "Ethernet8",
"index": 2,
"phy_id" : 1,
"system_lanes": [204,205],
"line_lanes": [208]
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
{
"lanes": [
{
"index": 200,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": "0x0200"
},
{
"index": 201,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": "0x0201"
},
{
"index": 202,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": "0x0202"
},
{
"index": 203,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": "0x0203"
},
{
"index": 204,
"local_lane_id": 0,
"system_side": false,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 200,
"mdio_addr": "0x0204"
},
{
"index": 205,
"local_lane_id": 0,
"system_side": false,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 202,
"mdio_addr": "0x0205"
},
{
"index": 206,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": "0x0206"
},
{
"index": 207,
"local_lane_id": 0,
"system_side": false,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": "0x0207"
},
{
"index": 208,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": "0x0208"
}
],
"ports": [
{
"index": 0,
"mdio_addr": "0x2000",
"system_speed": 20000,
"system_fec": "none",
"system_auto_neg": true,
"system_loopback": "none",
"system_training": false,
"line_speed": 40000,
"line_fec": "none",
"line_auto_neg": true,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_loopback": "none",
"line_training": false,
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 1,
"mdio_addr": "0x3000",
"system_speed": 20000,
"system_fec": "none",
"system_auto_neg": true,
"system_loopback": "none",
"system_training": false,
"line_speed": 40000,
"line_fec": "none",
"line_auto_neg": true,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_loopback": "none",
"line_training": false,
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 2,
"mdio_addr": "0x4000",
"system_speed": 20000,
"system_fec": "none",
"system_auto_neg": true,
"system_loopback": "none",
"system_training": false,
"line_speed": 40000,
"line_fec": "none",
"line_auto_neg": true,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_loopback": "none",
"line_training": false,
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"CONTEXTS": [
{
"guid" : 0,
"name" : "sw0",
"dbAsic" : "ASIC_DB",
"dbCounters" : "COUNTERS_DB",
"dbFlex": "FLEX_COUNTER_DB",
"dbState" : "STATE_DB",
"switches": [
{
"index" : 0,
"hwinfo" : ""
}
]
},
{
"guid" : 1,
"name" : "phy1",
"dbAsic" : "GB_ASIC_DB",
"dbCounters" : "GB_COUNTERS_DB",
"dbFlex": "GB_FLEX_COUNTER_DB",
"dbState" : "STATE_DB",
"switches": [
{
"index" : 1,
"hwinfo" : ""
}
]
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"phys": [
{
"phy_id": 1,
"name": "sesto-1",
"address": "0x1000",
"lib_name": "libsai_phy_sesto-1.so",
"firmware_path": "/tmp/phy-sesto-1.bin",
"config_file": "/usr/share/sonic/hwsku/sesto-1.json",
"sai_init_config_file": "/usr/share/sonic/hwsku/sesto-1.bcm",
"phy_access": "mdio",
"bus_id": 0
}
],
"interfaces": [
{
"name": "Ethernet48",
"index": 49,
"phy_id" : 1,
"system_lanes": [200,201,202,203],
"line_lanes": [204,205]
},
{
"name": "Ethernet49",
"index": 50,
"phy_id" : 1,
"system_lanes": [206,207,208,209],
"line_lanes": [210,211]
},
{
"name": "Ethernet50",
"index": 51,
"phy_id" : 1,
"system_lanes": [212,213,214,215],
"line_lanes": [216]
}
]
}
Loading

0 comments on commit f7253f6

Please sign in to comment.