[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 4/4] net: disallow to specify multicast MAC addre
From: |
Amos Kong |
Subject: |
Re: [Qemu-devel] [PULL 4/4] net: disallow to specify multicast MAC address |
Date: |
Tue, 22 Oct 2013 17:21:08 +0800 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Sat, Oct 19, 2013 at 12:08:14AM +0400, Dmitry Krivenok wrote:
> > Duplicate, we already have is_multicast_ether_addr() in include/net/eth.h
>
> I tried to #include "net/eth.h" in net/net.c, but it didn't work:
>
> diff --git a/net/net.c b/net/net.c
> index c330c9a..870d3bb 100644
> --- a/net/net.c
> +++ b/net/net.c
> @@ -27,6 +27,7 @@
> #include "clients.h"
> #include "hub.h"
> #include "net/slirp.h"
> +#include "net/eth.h"
> #include "util.h"
>
> #include "monitor/monitor.h"
> @@ -689,6 +690,11 @@ static int net_init_nic(const NetClientOptions
> *opts, const char *name,
> error_report("invalid syntax for ethernet address");
> return -1;
> }
> + if (nic->has_macaddr &&
> + is_multicast_ether_addr(nd->macaddr.a)) {
> + error_report("NIC cannot have multicast MAC address (odd 1st byte)");
> + return -1;
> + }
> qemu_macaddr_default_if_unset(&nd->macaddr);
>
> if (nic->has_vectors) {
>
> $ make
> CC net/net.o
> In file included from /home/krivenok/qemu/include/qemu/sockets.h:18,
> from net/net.c:35:
> /usr/include/netinet/in.h:199: error: redefinition of 'struct in6_addr'
> make: *** [net/net.o] Error 1
> $
Hi Dmitry,
"struct in6_addr" exists in <netinet/in.h>, you can remove the
definition in eth.h
diff --git a/include/net/eth.h b/include/net/eth.h
index 1d48e06..1cce570 100644
--- a/include/net/eth.h
+++ b/include/net/eth.h
@@ -28,6 +28,7 @@
#include <sys/types.h>
#include <string.h>
+#include <netinet/in.h>
#include "qemu/bswap.h"
#include "qemu/iov.h"
@@ -83,13 +84,6 @@ typedef struct ip_pseudo_header {
uint16_t ip_payload;
} ip_pseudo_header;
-/* IPv6 address */
-struct in6_addr {
- union {
- uint8_t __u6_addr8[16];
- } __in6_u;
-};
-
struct ip6_header {
union {
struct ip6_hdrctl {
>
> eth.h seems to be used only in vmware specific code and likely needs
> to be fixed to be used in other places.
> Other option is to move is_*_ether_addr() functions to another header
> and include it in both places.
--
Amos.
- [Qemu-devel] [PULL 0/4] Net patches, Stefan Hajnoczi, 2013/10/18
- [Qemu-devel] [PULL 3/4] net/rtl8139: update network information when macaddr is changed in guest, Stefan Hajnoczi, 2013/10/18
- [Qemu-devel] [PULL 2/4] net/e1000: update network information when macaddr is changed in guest, Stefan Hajnoczi, 2013/10/18
- [Qemu-devel] [PULL 4/4] net: disallow to specify multicast MAC address, Stefan Hajnoczi, 2013/10/18
- Re: [Qemu-devel] [PULL 4/4] net: disallow to specify multicast MAC address, Dmitry Krivenok, 2013/10/18
- Re: [Qemu-devel] [PULL 4/4] net: disallow to specify multicast MAC address,
Amos Kong <=
- Re: [Qemu-devel] [PULL 4/4] net: disallow to specify multicast MAC address, Dmitry Krivenok, 2013/10/22
[Qemu-devel] [PULL 1/4] net: update nic info during device reset, Stefan Hajnoczi, 2013/10/18