BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//pretalx//talks.osfc.io//osfc-2026//speaker//SHXXYF
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:DAYLIGHT
DTSTART:20250915T000000
TZNAME:CEST
TZOFFSETFROM:+0200
TZOFFSETTO:+0200
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20251026T030000
RDATE:20261025T030000
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20260329T030000
RDATE:20270328T030000
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
SUMMARY:The Switch Has No CPU: Running an Entire Fabric Switch on Its BMC 
 - Sam Cook
DTSTART;TZID=Europe/Berlin:20260915T140000
DTEND;TZID=Europe/Berlin:20260915T143000
DTSTAMP:20260817T124823Z
UID:pretalx-osfc-2026-RHDDHV@talks.osfc.io
DESCRIPTION:Almost everywhere OpenBMC runs\, it is a *server* BMC stack\, 
 acting as sidecar to a much bigger host CPU\, and it carries assumptions o
 ne can't see by reading the code. The only way to find assumptions buried 
 that deep is to take the stack somewhere it was never meant to go\, so we 
 ran it on a high-radix fabric switch\, then on a chassis of eighteen BMCs\
 , and watched what broke. Our fabric switch has no separate control-plane 
 processor\, so the BMC *is* the switch's main processor. \n\nBecause there
  is no host CPU underneath\, the BMC drives the fabric hardware itself. A 
 daemon reads the switch ASIC's port counters directly\, and through the mo
 dule-management layer the BMC talks to every cable in the switch to read p
 resence\, temperature\, identity\, and more. All of that gets republished 
 on D-Bus and projected into the DMTF `Fabrics / Switches / Ports` resource
  tree. We'll show where a standard built for servers bends to fit a fabric
 \, and the one or two places where we decided an empty field was more hone
 st than a server's answer.\n\nWe then put a switch into a chassis with mul
 tiple individually managed line cards\, and that is where it gets interest
 ing. Upstream bmcweb's Redfish aggregation is built for a single satellite
  and on our quest to aggregate multiple satellites\, we discover how chall
 enging lifting a seemingly simple assumption can be. We walk through each 
 change as a concrete gap with a concrete fix\, able to handle the single-s
 erver case the code was built for and our chassis paradigm.
LOCATION:Main
URL:https://talks.osfc.io/osfc-2026/talk/RHDDHV/
END:VEVENT
END:VCALENDAR
