wicked-redfish(8)

πŸ“¦
version 0.6.80 Β· 2 versions
, in opensuse-leap 16.0

πŸ’… 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:

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 (C) 2022 SUSE LLC


πŸ™ˆ BUGS πŸ™ˆ

Please report bugs as described at <https://bugs.opensuse.org>


🌟 SEE ALSO 🌟

wicked(8), wicked-config(5)


πŸ’œ 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