diff options
author | Samuel Mendoza-Jonas <sam.mj@au1.ibm.com> | 2014-12-03 15:08:23 +1100 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2014-12-03 12:12:47 +0800 |
commit | 9c33c54f7b431074a7d0daddce34140044aaadf6 (patch) | |
tree | f726dca93146b8218f4c5711a49b4eb1fe49c12a /discover/network.c | |
parent | ba1633025d93d7b41bda9bd32fa1d2337c7c4365 (diff) | |
download | talos-petitboot-9c33c54f7b431074a7d0daddce34140044aaadf6.tar.gz talos-petitboot-9c33c54f7b431074a7d0daddce34140044aaadf6.zip |
discover/pxe: Format IPAPPEND mac addresses correctly
The SYSAPPEND/IPAPPEND option 2 in PXE configs requires
the MAC address of the booting interface to be appended
to the boot options. Previously we formatted this as
"BOOTIF=01:02:03:04:05:06",
but syslinux/pxelinux implementation use this format:
"BOOTIF=01-01-02-03-04-05-06",
where the leading '01' represents the hardware type.
The relevant part of the pxelinux doc is at:
http://www.syslinux.org/wiki/index.php/SYSLINUX#SYSAPPEND_bitmask
Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'discover/network.c')
-rw-r--r-- | discover/network.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/discover/network.c b/discover/network.c index c9460ac..3946694 100644 --- a/discover/network.c +++ b/discover/network.c @@ -109,6 +109,19 @@ static struct interface *find_interface_by_name(struct network *network, return NULL; } +uint8_t *find_mac_by_name(void *ctx, struct network *network, + const char *name) +{ + struct interface *interface; + + interface = find_interface_by_name(network, name); + if (!interface) + return NULL; + + return talloc_memdup(ctx, &interface->hwaddr, + sizeof(uint8_t) * HWADDR_SIZE); +} + static int network_init_netlink(struct network *network) { struct sockaddr_nl addr; |