[linux] Set a default MAC address for tap devices

Avoid the need to always specify a local MAC address on the command
line by setting a default hardware MAC address (using the same default
address as for slirp devices).

Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/990/head
Michael Brown 2023-07-05 15:24:32 +01:00
parent 59d065c9ac
commit f3036fc213
1 changed files with 5 additions and 0 deletions

View File

@ -56,6 +56,10 @@ struct tap_nic {
int fd;
};
/** Default MAC address */
static const uint8_t tap_default_mac[ETH_ALEN] =
{ 0x52, 0x54, 0x00, 0x12, 0x34, 0x56 };
/** Open the TAP device */
static int tap_open(struct net_device * netdev)
{
@ -202,6 +206,7 @@ static int tap_probe(struct linux_device *device, struct linux_device_request *r
nic = netdev->priv;
linux_set_drvdata(device, netdev);
netdev->dev = &device->dev;
memcpy ( netdev->hw_addr, tap_default_mac, ETH_ALEN );
memset(nic, 0, sizeof(*nic));
/* Look for the mandatory if setting */