wicked-redfish(8)
π wicked-redfish(8) β the manual page, bestie edition
okay so this is the page for wicked redfish, from the Wicked User Manual (yes that's the manual name, we're folding it in here at the top like a lil name tag π). It's the redfish network host interface configuration utilities situation. Buckle up, it's actually so cool.
β¨ NAME β¨
wicked redfish β redfish network host interface configuration utilities π
πΈ SYNOPSIS πΈ
wicked redfish [options] <action>
π DESCRIPTION π
okay so the Redfish Network Host Interface, as defined by the DMTF Redfish Host Interface Specification, is the whole vibe that lets software running on a computer system actually access the Redfish Service, which you then use to manage that computer system. iconic, honestly.
Machines that support a Redfish Network Host Interface hand you an SMBIOS (3.0) Management Controller Host Interface (Type 42) structure. Inside that structure? A Device Description of the Network (Type 40h) Interface and βRedfish over IPβ Protocol (Type 04h) records, packed with the configuration to use for this network interface. You can literally see it in e.g. dmidecode -t 42 output. π
Now listen β the Redfish Network Host Interface has to be enabled and/or configured in the Management Controller (BMC, firmware, ...) first. Please go consult the machine vendor documentation for the details, fr fr. Once it is enabled in the Management Controller, the SMBIOS structure and the network interface (usb, pci) are available/appear in the system (e.g. hwinfo --netcard or lsusb, lspci, ip link show).
The wicked redfish command implements utility actions that decode those SMBIOS structures, so it can configure the Network Host Interface with those settings. Other parts of wicked use this too. slay.
So here's the thing: the automatic setup of the Redfish Network Host Interface from SMBIOS settings with wicked is (currently) disabled by default. To turn it on, run this once:
wicked redfish enable
When it's enabled, wicked ifup, wicked ifreload, wicked show-config and the related commands that set up/shut down interfaces β plus the systemctl (start, stop, reload) actions on network.service (which is an alias to an enabled wicked.service) β will all consider the Redfish Network Host Interfaces. main character energy for usb0 tbh. π
π OPTIONS π
--help,-hβ shows you the short options and actions description, then exits. your little cheat sheet bestie π
π¦ ACTIONS π¦
enableβ Enables the redfish network host interface setup.
This is an alias to the wicked firmware enable redfish command. It enables the redfish extension, which decodes SMBIOS as a "firmware:redfish" wicked interface configuration β requested during e.g. a wicked ifup all run. β¨
disableβ Disables the redfish network host interface setup.
This is an alias to the wicked firmware disable redfish command. It disables that redfish extension that decodes SMBIOS as a "firmware:redfish" wicked interface configuration β the one requested during e.g. a wicked ifup all run. π«
π§ Utility actions π§
show-configβ Decodes the SMBIOS structures with the Network Host Interface reference and βRedfish over IPβ protocol settings, then shows the βfirmware:redfishβ wicked interface configuration that the underlying extension uses. it's giving transparent πlist-ifnamesβ Decodes the SMBIOS structures and shows the referenced network host plus the vlan interface name β but only if vlan is defined by the redfish protocol. iykyk πhosts-updateβ Decodes the Redfish Service IP and Hostname from the SMBIOS structure, then updates the redfish-localhost entries in/etc/hosts.
This implements the βpost-upβ action of the redfish-update script hook, used in the βfirmware:redfishβ configuration, executed at the end of an ifup run. π«Ά
hosts-removeβ Removes the redfish-localhost entries from/etc/hosts.
This implements the βpre-downβ action of the redfish-update script hook, used in the βfirmware:redfishβ configuration, executed in an ifdown run. π§Ή
β EXAMPLE β
Here's an Redfish Network Host Interface SMBIOS settings using DHCPv4, straight outta dmidecode:
# dmidecode -t 42
Management Controller Host Interface
Host Interface Type: Network
Device Type: USB
idVendor: 0x03f0
idProduct: 0x2927
Protocol ID: 04 (Redfish over IP)
Service UUID: 8388efa4-6501-53a1-a1da-b6ee02cebbdf
Host IP Assignment Type: DHCP
Host IP Address Format: IPv4
Redfish Service IP Discovery Type: DHCP
Redfish Service IP Address Format: IPv4
Redfish Service Hostname: virt152-sp
The network interface name (as identified in the hwinfo --netcard output) is:
# ip link show dev usb0
11: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether 3a:d8:86:7c:01:64 brd ff:ff:ff:ff:ff:ff
The network interface name(s) can be identified/resolved by wicked:
# wicked redfish list-ifnames
usb0
And here's the Redfish Network Host Interface SMBIOS settings decoded by wicked into an interface config:
# wicked redfish show-config
<interface origin="firmware:redfish">
<name>usb0</name>
<scripts>
<post-up>
<script>wicked:redfish-update</script>
</post-up>
<pre-down>
<script>wicked:redfish-update</script>
</pre-down>
</scripts>
<ipv4>
<enabled>true</enabled>
</ipv4>
<ipv4:dhcp>
<enabled>true</enabled>
<update/>
</ipv4:dhcp>
</interface>
Once the Redfish Network Host Interface setup with wicked has been enabled with:
# wicked redfish enable
then the wicked show-config command contains the (same as above) wicked configuration for the usb0 interface, and the commands setting up interfaces are considering it:
# wicked ifreload all
usb0 device-ready
usb0 up
# wicked ifstatus usb0
usb0 up
link: #11, state up, mtu 1500
type: ethernet, hwaddr 3a:d8:86:7c:01:64
config: firmware:redfish
leases: ipv4 dhcp granted
addr: ipv4 16.1.15.2/30 [dhcp]
# grep redfish-localhost /etc/hosts
16.1.15.1 redfish-localhost virt152-sp
After disabling the Redfish Network Host Interface setup with wicked, the wicked show-config command stops showing the interface configuration, and the commands to set up interfaces will (shut it down if it's still active and) stop considering it in interface setup:
# wicked redfish disable
# wicked ifreload all
usb0 device-ready
# grep redfish-localhost /etc/hosts
# wicked ifstatus usb0
usb0 device-unconfigured
link: #11, state down, mtu 1500
type: ethernet, hwaddr 3a:d8:86:7c:01:64
# ip link show dev usb0
11: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether 3a:d8:86:7c:01:64 brd ff:ff:ff:ff:ff:ff
# wicked ifreload all
wicked: ifreload: no configuration changes to reload
π₯ NOTES π₯
The implementation is based on the following specifications:
- DMTF DSP0134, System Management BIOS Reference Specification (SMBIOS), Version 3.5.0
- DMTF DSP0270, Redfish Host Interface Specification, Version 1.3.0
and it covers decoding of the (raw) SMBIOS Type 42 structures from sysfs files (/sys/firmware/dmi/tables/smbios_entry_point and DMI) with:
- Network Host Interface (40h) Device Description Data for:
- USB Network Interface
- PCI/PCIe Network Interface
- USB Network Interface v2
- Multiple Redfish over IP Protocol records with
- Static, DHCP, AutoConfigure Assignment/Discovery Types for IPv4 and IPv6
- Merge of multiple SMBIOS structures for the same device
Not yet implemented are:
- βPreferred IPβ Address in AutoConfigure
- PCI/PCIe Network Interface v2
- Credential Bootstrapping
lowkey manifesting these three for a future release, but as of right now they are not there, so don't come for me π
π COPYRIGHT π
Copyright (C) 2022 SUSE LLC
π BUGS π
Please report bugs as described at <https://bugs.opensuse.org>
π SEE ALSO π
π AUTHORS π
Marius Tomaschewski.
and that's the whole page, bestie β you ate that π«Ά this was the Wicked User Manual, dated Apr 12, 2021, and the page is of course wicked-redfish(8). go forth and configure those host interfaces β¨π
π¦ where this page comes from
- opensuse-leap 16.0: wicked 0.6.80-bp160.2.1 Β· GPL-2.0-or-later
- opensuse-leap 16.0: wicked 0.6.80-bp160.2.1 Β· GPL-2.0-or-later
- opensuse-leap 16.0: wicked 0.6.80-bp160.2.1 Β· GPL-2.0-or-later
- opensuse-leap 16.0: wicked 0.6.80-bp160.2.1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms