How sonic-net/sonic-platform-common works
SONiC platform-common is a set of Python interfaces and reusable implementations for platform-specific switch hardware. The principal workflow is that SONiC platform code uses these interfaces to discover or access peripherals, interpret their data, and—in supported subsystems—control or update them. The graph preserves distinct transceiver, EEPROM, thermal, storage, BMC, and Y-cable capabilities. Source excerpts are partial, so links between unsampled subsystems and a common runtime orchestrator are omitted rather than inferred.
Main entry points: thermal_manager_base.py Thermal policy manager · y_cable_simulated.py Cable simulator · platform_base.py Platform device APIs · sfputilbase.py SFP port access
Components 22
Platform interfaces
- Platform device APIs
sonic_platform_base/platform_base.py - Chassis components
sonic_platform_base/chassis_base.py - Fan, LED, PSU
sonic_platform_base/fan_base.py
Optics and EEPROM
- SFP port access
sonic_platform_base/sonic_sfp/sfputilbase.py - Transceiver APIs
sonic_platform_base/sonic_xcvr/api/public/cmis.py - Transceiver EEPROM
sonic_platform_base/sonic_xcvr/xcvr_eeprom.py - TLV EEPROM data
sonic_platform_base/sonic_eeprom/eeprom_tlvinfo.py
Thermal control
- Thermal policy manager
sonic_platform_base/sonic_thermal_control/thermal_manager_base.py - Thermal policies
sonic_platform_base/sonic_thermal_control/thermal_policy.py - Thermal actions
sonic_platform_base/sonic_thermal_control/thermal_action_base.py
Storage health
- Storage discovery
sonic_platform_base/sonic_storage/storage_devices.py - Storage metrics
sonic_platform_base/sonic_storage/storage_common.py - SSD, eMMC, USB
sonic_platform_base/sonic_storage/ssd.py
BMC and Y-cable
- BMC interfaces
sonic_platform_base/bmc_base.py - Redfish client
sonic_platform_base/redfish_client.py - BMC firmware update
sonic_platform_base/bmc_fw_update.py - Y-cable API
sonic_y_cable/y_cable.py - Y-cable drivers
sonic_y_cable/y_cable_base.py - Cable simulator
sonic_y_cable/microsoft/y_cable_simulated.py
Other components
- SONiC platform code
- Switch peripherals
- Mux simulator service
Connections 20
- SONiC platform code → Platform device APIs: uses interfaces
- Platform device APIs → Switch peripherals: accesses peripherals
- SONiC platform code → SFP port access: uses port access
- SFP port access → Switch peripherals: reads transceivers
- Transceiver APIs → Transceiver EEPROM: reads fields
- SONiC platform code → TLV EEPROM data: reads or writes EEPROM
- SONiC platform code → Thermal policy manager: loads thermal control
- Thermal policy manager → Thermal policies: loads policies
- Thermal policy manager → Thermal actions: runs actions
- Thermal policy manager → Chassis components: sets fan speeds
- Storage discovery → SSD, eMMC, USB: creates device utilities
- Storage metrics → Switch peripherals: reads disk counters
- SONiC platform code → Storage discovery: discovers storage
- SONiC platform code → BMC interfaces: uses BMC interface
- BMC interfaces → Redfish client: uses Redfish client
- SONiC platform code → BMC firmware update: requests firmware update
- SONiC platform code → Y-cable API: uses cable controls
- Y-cable API → Switch peripherals: reads port EEPROM
- Cable simulator → Y-cable drivers: implements API
- Cable simulator → Mux simulator service: sends simulator requests