cumulusnetworks.com ACPI for Network Switches Dustin Byford <[email protected]> LinuxCon NA 2015, Seattle 8/18/2015 - 3pm PST
cumulusnetworks.com
ACPI for Network Switches
Dustin Byford <[email protected]>
LinuxCon NA 2015, Seattle8/18/2015 - 3pm PST
cumulusnetworks.com
cumulusnetworks.com
● Platform bringup at Cumulus
● Hardware description protocols, ACPI
● Platform bringup revised
● Switch specifics
● What’s next?
●
●
Agenda
cumulusnetworks.com
Platform Bringup at Cumulus
cumulusnetworks.com
Step 0 - The Stare Down
Take the cover off, stare at the switch for at least 10 minutes.
cumulusnetworks.com
cumulusnetworks.com
Step 1 - Boot the OS
Get a JTAG debugger, start from scratch or reverse engineer the existing bootloader.
cumulusnetworks.com
cumulusnetworks.com
Step 2 - Enable Switch Functions
Convert the hardware spec, often a .pdf, into code and configuration files.
cumulusnetworks.com
cumulusnetworks.com
cumulusnetworks.com
cumulusnetworks.com
Step 3 - Test
* more later
cumulusnetworks.com
Step 4 - Ship
Ship a new version of Cumulus Linux
cumulusnetworks.com
Pixels. Retrieved from http://xkcd.com/1416/
cumulusnetworks.com
Silverstein, S. (1981) A Light in the Attic. New York, NY: HarperCollins
cumulusnetworks.com
ACPI as a Platform Description Protocol
cumulusnetworks.com
1. Loggerhead
cumulusnetworks.com
1. Loggerhead2. Green
cumulusnetworks.com
1. Loggerhead2. Green3. Kemps-Ridley4. Leatherback
cumulusnetworks.com
Method (C2K, 1, NotSerialized) { Add (Multiply (Arg0, 0x0A), 0x0AAC, Local0) If (LLessEqual (Local0, 0x0AAC)) { Store (0x0BB8, Local0) } If (LGreater (Local0, 0x0FAC)) { Store (0x0BB8, Local0) } Return (Local0) }
cumulusnetworks.com
By Jason Scott on Flickr (textfiles) CC-BY-2.0 (https://creativecommons.org/licenses/by/2.0/), via https://flic.kr/p/66xFow
By Jason Scott on Flickr (textfiles) CC-BY-2.0 (https://creativecommons.org/licenses/by/2.0/), via https://flic.kr/p/66xEK5
cumulusnetworks.com
OS
Hardware
Firmware
ACPI
Kernel
Tests Tools
Generic Drivers
InterfaceSpecification
HOWTOGuide
cumulusnetworks.com
[traffic on highway picture]
By User Minesweeper on en.wikipedia (Minesweeper) [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)], via Wikimedia Commons
cumulusnetworks.com
Without ACPI
With ACPI
Steps0, 1
Test ShipPortONIE
PortOS
PortONIE
DescribePlatform
Certify Ship
Standards Based OS Vendor Specific
cumulusnetworks.com
Switch Specifics
CPLDs, Switching ASICs, SFF Cages
cumulusnetworks.com
cumulusnetworks.com
CPLD Driver
ACPI _DSD
Fan
Sensor
SFP Cage
CPLD I2C HardwareMFD
GPIOLEDsI2C
0x00: HW Rev
0x01: SFP mux
0x02: Fan PWM
0x03: SFP Prs
0x04: SFP Dis
0x05: S. LED
regmap_read()regmap_write()
devm_gpiod_get()
/sys/class/hwmon
I2C / GPIO
cumulusnetworks.com
Switch ASIC
ACPI _DSD
SerDes 0
SerDes 1
SerDes 2
SerDes 3
QSFP Cage
QSFP Lane 0
QSFP Lane 1
QSFP Lane 2
QSFP Lane 3
I2C
GPIO w/Intr.
CPU
x86ARM32
PowerPC
PCIe
LED Bit 42
2 Color LED
ACPI _DSD
cumulusnetworks.com
Future Stuff
●
● Standardize everything we can
● Continue to work with hardware vendors
● Improve SFF pluggable (SFP/QSFP) drivers
● Improve testing tools
cumulusnetworks.com
Thank You!
© 2015 Cumulus Networks. Cumulus Networks, the Cumulus Networks Logo, and Cumulus Linux are trademarks or registered trademarks of Cumulus Networks, Inc. or its affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis.