1# IPMI network format
2
3On platforms running AMI BMC firmware (Habanero and Firestone at the moment),
4the 'Get/Set' System Boot Options' command has been extended to allow overrides
5to the network configuration to be specified. In Petitboot this will cause any
6existing network configuration to be overridden by the specified configuration.
7The format of each IPMI request is similar to that of the usual boot options
8request, with a slightly different payload.
9
10The start of the request is similar to a usual boot option override, but
11specifies the fields of interest differently, ie;
12
13Specify 'chassis bootdev', field 96, data1 0x00 0x08 0x61 0x80
14
15The rest of request format is defined by Petitboot as: - 4 byte cookie value
16(always 0x21 0x70 0x62 0x21) - 2 byte version value (always 0x00 0x01) - 1 byte
17hardware address size (eg. 0x06 for MAC address) - 1 byte IP address size (eg.
180x04 for IPv4) - Hardware (MAC) address - 1 byte flags for 'ignore' and
19'method', where method = 0 is DHCP and method = 1 is Static. And for static
20configs: - IP Address - 1 byte subnet value - Gateway address
21
22Describing each field in more detail:
23
24Specify 'chassis bootdev', field 96, data1 0x00 0x08 0x61 0x80
25
26Set a special cookie that Petitboot will recognise: 0x21 0x70 0x62 0x21
27
28Specify the version (only 1 at the moment) 0x00 0x01
29
30Specify the size of the MAC address and IP address. This is used to
31differentiate between IPv4 and IPv6 addresses, or potential future support for
32Infiniband/etc. 0x06 0x04 (6-byte MAC address, IPv4 IP address)
33
34Set the hardware address of the interface you want to override, eg: 0xf4 0x52
350x14 0xf3 0x01 0xdf
36
37Specify 'ignore' or 'static/dynamic' flags. The second byte specifies to use
38either DHCP or static IP configuration (0 for DHCP). 0x00 0x01
39
40The below fields are required if setting a static configuration:
41
42Set the IP address you want to use, eg: 0x0a 0x3d 0xa1 0x42
43
44Set the subnet mask (short notation), eg '16': 0x10
45
46Set the gateway address, eg: 0x0a 0x3d 0x2 0x1
47
48All together this should look like: 0x00 0x08 0x61 0x80 0x21 0x70 0x62 0x21 0x00
490x01 0x06 0x04 0xf4 0x52 0x14 0xf3 0x01 0xdf 0x00 0x01 0x0a 0x3d 0xa1 0x42 0x10
500x0a 0x3d 0x2 0x1
51
52To clear a network override, it is sufficient to clear out the request, or set a
53zero-cookie which Petitboot will reject. Eg: 0x00 0x08 0x61 0x80 0x00 0x00 0x00
540x00
55
56You can 'Get' the override back with 0x00 0x09 0x61 0x80 0x00 which should
57return whatever is currently set.
58