Skip to content

Commit 23321f7

Browse files
Changes after internal review
1 parent 29d2f4f commit 23321f7

File tree

1 file changed

+63
-36
lines changed

1 file changed

+63
-36
lines changed

doc/bmc/nexthop-BMC-SONiC-support.md

Lines changed: 63 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -14,68 +14,95 @@
1414
- [5.4. sonic-swss Support](#54-sonic-swss-support)
1515
- [6. Restrictions/Limitations](#6-restrictionslimitations)
1616

17-
### 1\. Revision
17+
### 1. Revision
1818

1919
| Rev | Date | Author | Change Description |
2020
| :---- | :---- | :---- | :---- |
2121
| 0.1 | 2025-07-16 | ctikku-nexthop | Initial Draft |
22+
| 0.2 | 2025-08-28 | ctikku-nexthop | Revisised draft |
23+
| 0.3 | 2025-09-25 | chander-nexthop | Revisised draft |
2224

23-
### 2\. Scope
25+
### 2. Scope
2426
This document outlines adding BMC support in SONiC and executing SONiC on a BMC controller for out-of-band management of the network device.
2527

26-
### 3\. Definitions/Abbreviations
28+
### 3. Definitions/Abbreviations
2729

28-
| Term | Definition |
30+
| Term | Definition |
2931
| :---- | :---- |
3032
| BMC | Baseboard Management Controller |
3133
| NOS | Network Operating System |
3234
| PSU | Power Supply Unit |
3335
| CLI | Command Line Interface |
3436
| SEL | System Event Log |
3537

36-
### 4\. Overview
38+
### 4. Overview
3739

38-
The purpose of this HLD is to run a BMC-feature enabled SONiC image, on a BMC controller, in the network switch for out-of-band monitoring and management of the switch. It is to enhance the reliability, manageability, and automation capabilities by allowing interaction to the switch device via the BMC controller. The initial capabilities will include the ability to power cycle the main CPU and redirection of its serial console over the network.
40+
The purpose of this HLD is to run a BMC-feature enabled SONiC image, on a BMC controller, in the network switch for out-of-band monitoring and management of the switch device. It is to enhance the reliability, manageability, and automation capabilities by allowing interaction to the switch device via the BMC controller. The initial capabilities will include the ability to power cycle the main CPU and redirection of its serial console over the network.
3941

40-
In the future the capabilities can be expanded to include comprehensive hardware health metrics, including telemetry data, proactive fault management, and support BMC-driven operations for device provisioning and other diagnostics actions.
42+
In the future the capabilities can be expanded to include comprehensive hardware health metrics, including telemetry data, proactive fault management, and support BMC-driven operations for device provisioning and other diagnostics actions.
4143

42-
### 5\. High-Level Requirements
44+
### 5. High-Level Requirements
4345

4446
#### 5.1. Functional Requirements
4547

46-
- BMC-SONiC-OS: SONiC-OS, will execute on a BMC controller, operating in an isolated and support role to the main switch CPU. It will have its own out-of-band network access and will be independent of any resources on the main swich CPU or the NOS running on it.
47-
48-
- Console: BMC-SONiC-OS will provide the capablity to redirect serial port console of the main switch CPU over its network.
49-
50-
- Power: BMC-SONiC-OS will provide the capablity to power cycle the main switch CPU and any other components (ex: switch ASIC, PSU, etc.) as needed.
51-
52-
- Events: BMC-SONiC-OS will be able to retrieve and process System Event Log (SEL) entries from main switch CPU.
53-
54-
#### 5.2. sonic-platform-daemons Support
48+
##### 5.1.1 Baseboard Management Controller (BMC)
49+
- The BMC will be a dedicated hardware component, separate from the main switch CPU.
50+
- It will have its own Operating System, running independently from that of the main switch CPU.
51+
- It will have its own management network port for out-of-band management.
52+
- It will have its own serial port, separate from that of the main switch system.
53+
54+
##### 5.1.2 BMC Hardware
55+
- The BMC controller will have its own CPU, memory, storage, and network port.
56+
- SOC: Aspeed 2720 chip (arm64), Memory: 4GB, Storage: 32GB eMMC, Network: 1Gbps.
57+
- The main switch CPU can operate with or without the presence of the BMC controller.
58+
- The BMC controller can operate with or without the presence of the main switch CPU.
59+
60+
##### 5.1.3 Operating System (OS)
61+
- The operating system running on the BMC will be called BMC-SONiC-OS.
62+
- BMC-SONiC-OS image will be built from the SONiC-OS codebase: https://github.com/sonic-net/sonic-buildimage.git
63+
- All changes related to BMC functionaliy will be committed back into the same git repository.
64+
- The BMC-SONiC-OS image will leverage SONiC-OS build tools and processes, but build with differnent flags.
65+
- There will be no changes to the SONiC-OS image build steps, functionality or the image itself.
66+
- BMC-SONiC-OS will include BMC functionality, similar to SONiC-OS, in the docker container format.
67+
- BMC-SONiC-OS will remove switching functionality and associated docker containers from its image.
68+
69+
##### 5.1.4 Out-of-Band Management (OOB Management)
70+
- BMC-SONiC-OS running on BMC, will contain its own management network port and network IP address.
71+
- BMC-SONiC-OS will allow connection to it using standard network protocols (ex: SSH)
72+
- BMC-SONiC-OS will allow the main switch CPU to be managed (reboot, power cycled) from the BMC controller.
73+
- Rebooting or power cycling of main switch CPU will not affect the BMC controller.
74+
- Rebooting or power cycling of BMC controller will not affect the main switch CPU.
75+
76+
##### 5.1.5 Serial Console
77+
- BMC will have its own serial port (UART), separate from that of the main switch system.
78+
- The physical serial port on the front panel of the device can be "attached" to the BMC or the main switch CPU.
79+
- Fixed hot keys will be used to swap between the two serial UART that connect to the front panel.
80+
81+
##### 5.1.6 OBMC Console
82+
- BMC-SONiC-OS will use obmc-console for console services: https://github.com/openbmc/obmc-console
83+
- BMC-SONiC-OS will log the serial console output from the main switch CPU to a file for later access.
84+
- Log files will be managed using compression and rotation, similar to syslog.
85+
- Access to the switch CPU console will also be available from the BMC when connected to it over the network.
86+
87+
##### 5.1.7 OBMC Web
88+
- BMC-SONiC-OS will use OpenBMC Web - https://github.com/openbmc/bmcweb as the RESTful API (Redfish) server.
89+
- bmcweb will be used to provide a web interface to the switch CPU console.
90+
91+
#### 5.2 BMC Components deployment
92+
- BMC-SONiC-OS will deploy the BMC functionality as docker containers.
93+
- BMC-SONiC-OS will use kubernetes for container orchestration.
94+
95+
#### 5.3. sonic-platform-daemons Support
5596
- sonic-platform-daemons executing on the main NOS CPU will not require any update to support the BMC integration.
5697

57-
#### 5.3. sonic-utilities Support
98+
#### 5.4. sonic-utilities Support
5899
- show commands executing on the main NOS CPU will not require any update to support the BMC integration.
59100

60-
#### 5.4. sonic-swss Support
101+
#### 5.5. sonic-swss Support
61102
- sonic-swss executing on the main NOS CPU will not require any update to support the BMC integration.
62103

63-
### 6.0 High Level Design
64-
OpenBMC, a project from the Linux Foundation, provides the necessary software stack, thats widely used in the industry for BMC implementations. The OpenBMC framework will be used as the base for the BMC-SONiC-OS. Its proposed that we pull the necessary components from OpenBMC and integrate them into SONiC, while adding the necessary SONiC components to support the BMC functionality.
65-
66-
### 6.1.1 Boot Loader Components
67-
OpenBMC uses the uboot as its boot loader. Its proposed that we continue to use uboot as the boot loader for BMC-SONiC-OS.
68-
69-
### 6.1.2 SONiC Kernel Components
70-
Sonic Kernel will be used as the base for the BMC-SONiC-OS kernel. Its proposed to adopt the relevant kernel config options and drivers from the OpenBMC kernel and add them to the SONiC kernel.
71-
72-
### 6.1.3 SONiC User Space Components
73-
The user space components from OpenBMC will be integrated into SONiC. To begin with its proposed to add
74-
75-
- OpenBMC Console - https://github.com/openbmc/obmc-console as the console capture and redirection component.
76-
- OpenBMC BMC Web - https://github.com/openbmc/bmcweb as the RESTful API (Redfish) server component.
77-
78-
These components will be built as docker containers to conform to the SONiC docker based architecture.
104+
### 6. Boot Loader Components
105+
- BMC-SONiC-OS will use uboot as the boot loader.
79106

80-
### 7\. Restrictions/Limitations
107+
### 7. Restrictions/Limitations
81108
The functionality does not exist yet. It is possible that the final implementation and areas needed to be changed may differ.

0 commit comments

Comments
 (0)