ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com...

31
cumulusnetworks.com ACPI for Network Switches Dustin Byford <[email protected]> LinuxCon NA 2015, Seattle 8/18/2015 - 3pm PST

Transcript of ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com...

Page 1: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

ACPI for Network Switches

Dustin Byford <[email protected]>

LinuxCon NA 2015, Seattle8/18/2015 - 3pm PST

Page 2: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Page 3: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

● Platform bringup at Cumulus

● Hardware description protocols, ACPI

● Platform bringup revised

● Switch specifics

● What’s next?

Agenda

Page 4: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Platform Bringup at Cumulus

Page 5: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Step 0 - The Stare Down

Take the cover off, stare at the switch for at least 10 minutes.

Page 6: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Page 7: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Step 1 - Boot the OS

Get a JTAG debugger, start from scratch or reverse engineer the existing bootloader.

Page 8: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Page 9: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Step 2 - Enable Switch Functions

Convert the hardware spec, often a .pdf, into code and configuration files.

Page 10: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Page 11: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Page 12: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Page 13: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Step 3 - Test

* more later

Page 14: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Step 4 - Ship

Ship a new version of Cumulus Linux

Page 15: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Pixels. Retrieved from http://xkcd.com/1416/

Page 16: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Silverstein, S. (1981) A Light in the Attic. New York, NY: HarperCollins

Page 17: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

ACPI as a Platform Description Protocol

Page 18: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

1. Loggerhead

Page 19: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

1. Loggerhead2. Green

Page 20: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

1. Loggerhead2. Green3. Kemps-Ridley4. Leatherback

Page 21: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

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) }

Page 22: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

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

Page 23: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

OS

Hardware

Firmware

ACPI

Kernel

Tests Tools

Generic Drivers

InterfaceSpecification

HOWTOGuide

Page 24: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

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

Page 25: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Without ACPI

With ACPI

Steps0, 1

Test ShipPortONIE

PortOS

PortONIE

DescribePlatform

Certify Ship

Standards Based OS Vendor Specific

Page 26: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Switch Specifics

CPLDs, Switching ASICs, SFF Cages

Page 27: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Page 28: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

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

Page 29: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

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

Page 30: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

cumulusnetworks.com

Future Stuff

● Standardize everything we can

● Continue to work with hardware vendors

● Improve SFF pluggable (SFP/QSFP) drivers

● Improve testing tools

Page 31: ACPI for Network Switches › sites › events › files... · 2017-12-14 · cumulusnetworks.com ACPI for Network Switches Dustin Byford  LinuxCon

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.