tap: Move all-ones initialisation of mac_guest to tap_sock_init()
It has nothing to do with tap_sock_unix_init(). It used to be there as
that function could be called multiple times per passt instance, but
it's not the case anymore.
This also takes care of the fact that, with --fd, we wouldn't set the
initial MAC address, so we would need to wait for the guest to send us
an ARP packet before we could exchange data.
Fixes: 6b4e68383c
("passt, tap: Add --fd option")
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Acked-by: Richard W.M. Jones <rjones@redhat.com>
This commit is contained in:
parent
45b8632dcc
commit
d02bb6ca05
1 changed files with 6 additions and 6 deletions
12
tap.c
12
tap.c
|
@ -1111,12 +1111,6 @@ static void tap_sock_unix_init(struct ctx *c)
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
die("UNIX socket: %s", strerror(errno));
|
die("UNIX socket: %s", strerror(errno));
|
||||||
|
|
||||||
/* In passt mode, we don't know the guest's MAC until it sends
|
|
||||||
* us packets. Use the broadcast address so our first packets
|
|
||||||
* will reach it.
|
|
||||||
*/
|
|
||||||
memset(&c->mac_guest, 0xff, sizeof(c->mac_guest));
|
|
||||||
|
|
||||||
for (i = 1; i < UNIX_SOCK_MAX; i++) {
|
for (i = 1; i < UNIX_SOCK_MAX; i++) {
|
||||||
char *path = addr.sun_path;
|
char *path = addr.sun_path;
|
||||||
int ex, ret;
|
int ex, ret;
|
||||||
|
@ -1312,6 +1306,12 @@ void tap_sock_init(struct ctx *c)
|
||||||
if (c->mode == MODE_PASST) {
|
if (c->mode == MODE_PASST) {
|
||||||
if (c->fd_tap_listen == -1)
|
if (c->fd_tap_listen == -1)
|
||||||
tap_sock_unix_init(c);
|
tap_sock_unix_init(c);
|
||||||
|
|
||||||
|
/* In passt mode, we don't know the guest's MAC address until it
|
||||||
|
* sends us packets. Use the broadcast address so that our
|
||||||
|
* first packets will reach it.
|
||||||
|
*/
|
||||||
|
memset(&c->mac_guest, 0xff, sizeof(c->mac_guest));
|
||||||
} else {
|
} else {
|
||||||
tap_sock_tun_init(c);
|
tap_sock_tun_init(c);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue