Re: the patch "bridge: export multicast database via netlink" broke kernel 3.8 uapi

2013-01-15 Thread Cong Wang
On Tue, 2013-01-15 at 12:55 +0200, Thomas Backlund wrote:
> 
> as it seemed to fix the libvirt case
> 
> but then asked it to be ignored after I tried to build connman,
> and hit this conflict with glibc-2.17:
> 
> In file included from /usr/include/arpa/inet.h:22:0,
>   from ./include/connman/inet.h:25,
>   from src/connman.h:128,
>   from src/tethering.c:40:
> /usr/include/netinet/in.h:35:5: error: expected identifier before 
> numeric constant
> /usr/include/netinet/in.h:197:8: error: redefinition of 'struct in6_addr'
> In file included from /usr/include/linux/if_bridge.h:17:0,
>   from src/tethering.c:38:
> /usr/include/linux/in6.h:30:8: note: originally defined here
> In file included from /usr/include/arpa/inet.h:22:0,
>   from ./include/connman/inet.h:25,
>   from src/connman.h:128,
>   from src/tethering.c:40:
> /usr/include/netinet/in.h:238:8: error: redefinition of 'struct 
> sockaddr_in6'
> In file included from /usr/include/linux/if_bridge.h:17:0,
>   from src/tethering.c:38:
> /usr/include/linux/in6.h:46:8: note: originally defined here
> In file included from /usr/include/arpa/inet.h:22:0,
>   from ./include/connman/inet.h:25,
>   from src/connman.h:128,
>   from src/tethering.c:40:
> /usr/include/netinet/in.h:274:8: error: redefinition of 'struct ipv6_mreq'
> In file included from /usr/include/linux/if_bridge.h:17:0,
>   from src/tethering.c:38:
> /usr/include/linux/in6.h:54:8: note: originally defined here
> make[1]: *** [src/src_connmand-tethering.o] Error 1
> 
> 
> So I'm not sure it's the right one...

% rpm -q --whatprovides /usr/include/netinet/in.h 
glibc-headers-2.14.90-24.fc16.9.x86_64

Seems we have conflicts with glibc headers...


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: the patch "bridge: export multicast database via netlink" broke kernel 3.8 uapi

2013-01-15 Thread Thomas Backlund

Cong Wang skrev 15.1.2013 12:11:

On Tue, 2013-01-15 at 12:03 +0200, Thomas Backlund wrote:

Eric Blake skrev 15.1.2013 01:57:

On 01/13/2013 01:05 PM, Thomas Backlund wrote:

Thomas Backlund skrev 13.1.2013 20:38:

patch both inline and attached as thunderbird tends to mess up ...



-

if_bridge.h uses struct in6_addr ip6; but does not include the in6.h
header.

Found by trying to build libvirt and connman against 3.8-rc3 headers.



Ok,
ignore this patch, it's not the correct fix as it introduces
redefinitions...

Btw, the error that I hit that made me suggest this fix was libvirt
config check bailing out:

config.log:/usr/include/linux/if_bridge.h:173:20: error: field 'ip6' has
incomplete type


Hmm, just now noticing this thread, after independently hitting and and
having to work around the same problem in libvirt:
https://www.redhat.com/archives/libvir-list/2013-January/msg00930.html
https://bugzilla.redhat.com/show_bug.cgi?id=895141



Yep,

and the commit breaking uapi headers is by using "struct in6_addr ip6" is:


  From ee07c6e7a6f8a25c18f0a6b18152fbd7499245f6 Mon Sep 17 00:00:00 2001
From: Cong Wang 
Date: Fri, 7 Dec 2012 00:04:48 +
Subject: [PATCH] bridge: export multicast database via netlink


Does the following patch help?

$ git diff include/uapi/linux/if_bridge.h
diff --git a/include/uapi/linux/if_bridge.h
b/include/uapi/linux/if_bridge.h
index 5db2975..653db23 100644
--- a/include/uapi/linux/if_bridge.h
+++ b/include/uapi/linux/if_bridge.h
@@ -14,6 +14,7 @@
  #define _UAPI_LINUX_IF_BRIDGE_H

  #include 
+#include 

  #define SYSFS_BRIDGE_ATTR  "bridge"
  #define SYSFS_BRIDGE_FDB   "brforward"



Well, I suggested the same fix in the beginning of the thread
on netdev and lkml: "if_bridge.h: include in6.h for struct in6_addr use"

as it seemed to fix the libvirt case

but then asked it to be ignored after I tried to build connman,
and hit this conflict with glibc-2.17:

In file included from /usr/include/arpa/inet.h:22:0,
 from ./include/connman/inet.h:25,
 from src/connman.h:128,
 from src/tethering.c:40:
/usr/include/netinet/in.h:35:5: error: expected identifier before 
numeric constant

/usr/include/netinet/in.h:197:8: error: redefinition of 'struct in6_addr'
In file included from /usr/include/linux/if_bridge.h:17:0,
 from src/tethering.c:38:
/usr/include/linux/in6.h:30:8: note: originally defined here
In file included from /usr/include/arpa/inet.h:22:0,
 from ./include/connman/inet.h:25,
 from src/connman.h:128,
 from src/tethering.c:40:
/usr/include/netinet/in.h:238:8: error: redefinition of 'struct 
sockaddr_in6'

In file included from /usr/include/linux/if_bridge.h:17:0,
 from src/tethering.c:38:
/usr/include/linux/in6.h:46:8: note: originally defined here
In file included from /usr/include/arpa/inet.h:22:0,
 from ./include/connman/inet.h:25,
 from src/connman.h:128,
 from src/tethering.c:40:
/usr/include/netinet/in.h:274:8: error: redefinition of 'struct ipv6_mreq'
In file included from /usr/include/linux/if_bridge.h:17:0,
 from src/tethering.c:38:
/usr/include/linux/in6.h:54:8: note: originally defined here
make[1]: *** [src/src_connmand-tethering.o] Error 1


So I'm not sure it's the right one...


--
Thomas

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: the patch "bridge: export multicast database via netlink" broke kernel 3.8 uapi (was: Re: [libvirt] if_bridge.h: include in6.h for struct in6_addr use)

2013-01-15 Thread Cong Wang
On Tue, 2013-01-15 at 12:03 +0200, Thomas Backlund wrote:
> Eric Blake skrev 15.1.2013 01:57:
> > On 01/13/2013 01:05 PM, Thomas Backlund wrote:
> >> Thomas Backlund skrev 13.1.2013 20:38:
> >>> patch both inline and attached as thunderbird tends to mess up ...
> >>
> >>> -
> >>>
> >>> if_bridge.h uses struct in6_addr ip6; but does not include the in6.h
> >>> header.
> >>>
> >>> Found by trying to build libvirt and connman against 3.8-rc3 headers.
> >>>
> >>
> >> Ok,
> >> ignore this patch, it's not the correct fix as it introduces
> >> redefinitions...
> >>
> >> Btw, the error that I hit that made me suggest this fix was libvirt
> >> config check bailing out:
> >>
> >> config.log:/usr/include/linux/if_bridge.h:173:20: error: field 'ip6' has
> >> incomplete type
> >
> > Hmm, just now noticing this thread, after independently hitting and and
> > having to work around the same problem in libvirt:
> > https://www.redhat.com/archives/libvir-list/2013-January/msg00930.html
> > https://bugzilla.redhat.com/show_bug.cgi?id=895141
> 
> 
> Yep,
> 
> and the commit breaking uapi headers is by using "struct in6_addr ip6" is:
> 
> 
>  From ee07c6e7a6f8a25c18f0a6b18152fbd7499245f6 Mon Sep 17 00:00:00 2001
> From: Cong Wang 
> Date: Fri, 7 Dec 2012 00:04:48 +
> Subject: [PATCH] bridge: export multicast database via netlink

Does the following patch help?

$ git diff include/uapi/linux/if_bridge.h
diff --git a/include/uapi/linux/if_bridge.h
b/include/uapi/linux/if_bridge.h
index 5db2975..653db23 100644
--- a/include/uapi/linux/if_bridge.h
+++ b/include/uapi/linux/if_bridge.h
@@ -14,6 +14,7 @@
 #define _UAPI_LINUX_IF_BRIDGE_H
 
 #include 
+#include 
 
 #define SYSFS_BRIDGE_ATTR  "bridge"
 #define SYSFS_BRIDGE_FDB   "brforward"

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


the patch "bridge: export multicast database via netlink" broke kernel 3.8 uapi (was: Re: [libvirt] if_bridge.h: include in6.h for struct in6_addr use)

2013-01-15 Thread Thomas Backlund

Eric Blake skrev 15.1.2013 01:57:

On 01/13/2013 01:05 PM, Thomas Backlund wrote:

Thomas Backlund skrev 13.1.2013 20:38:

patch both inline and attached as thunderbird tends to mess up ...



-

if_bridge.h uses struct in6_addr ip6; but does not include the in6.h
header.

Found by trying to build libvirt and connman against 3.8-rc3 headers.



Ok,
ignore this patch, it's not the correct fix as it introduces
redefinitions...

Btw, the error that I hit that made me suggest this fix was libvirt
config check bailing out:

config.log:/usr/include/linux/if_bridge.h:173:20: error: field 'ip6' has
incomplete type


Hmm, just now noticing this thread, after independently hitting and and
having to work around the same problem in libvirt:
https://www.redhat.com/archives/libvir-list/2013-January/msg00930.html
https://bugzilla.redhat.com/show_bug.cgi?id=895141



Yep,

and the commit breaking uapi headers is by using "struct in6_addr ip6" is:


From ee07c6e7a6f8a25c18f0a6b18152fbd7499245f6 Mon Sep 17 00:00:00 2001
From: Cong Wang 
Date: Fri, 7 Dec 2012 00:04:48 +
Subject: [PATCH] bridge: export multicast database via netlink

V5: fix two bugs pointed out by Thomas
remove seq check for now, mark it as TODO

V4: remove some useless #include
some coding style fix

V3: drop debugging printk's
update selinux perm table as well

V2: drop patch 1/2, export ifindex directly
Redesign netlink attributes
Improve netlink seq check
Handle IPv6 addr as well

This patch exports bridge multicast database via netlink
message type RTM_GETMDB. Similar to fdb, but currently bridge-specific.
We may need to support modify multicast database too (RTM_{ADD,DEL}MDB).

(Thanks to Thomas for patient reviews)

Cc: Herbert Xu 
Cc: Stephen Hemminger 
Cc: "David S. Miller" 
Cc: Thomas Graf 
Cc: Jesper Dangaard Brouer 
Signed-off-by: Cong Wang 
Acked-by: Thomas Graf 
Signed-off-by: David S. Miller 
---
 include/uapi/linux/if_bridge.h |   55 ++
 include/uapi/linux/rtnetlink.h |3 +
 net/bridge/Makefile|2 +-
 net/bridge/br_mdb.c|  163 


 net/bridge/br_multicast.c  |1 +
 net/bridge/br_private.h|1 +
 security/selinux/nlmsgtab.c|1 +
 7 files changed, 225 insertions(+), 1 deletions(-)
 create mode 100644 net/bridge/br_mdb.c

--
Thomas



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: the patch bridge: export multicast database via netlink broke kernel 3.8 uapi

2013-01-15 Thread Cong Wang
On Tue, 2013-01-15 at 12:55 +0200, Thomas Backlund wrote:
 
 as it seemed to fix the libvirt case
 
 but then asked it to be ignored after I tried to build connman,
 and hit this conflict with glibc-2.17:
 
 In file included from /usr/include/arpa/inet.h:22:0,
   from ./include/connman/inet.h:25,
   from src/connman.h:128,
   from src/tethering.c:40:
 /usr/include/netinet/in.h:35:5: error: expected identifier before 
 numeric constant
 /usr/include/netinet/in.h:197:8: error: redefinition of 'struct in6_addr'
 In file included from /usr/include/linux/if_bridge.h:17:0,
   from src/tethering.c:38:
 /usr/include/linux/in6.h:30:8: note: originally defined here
 In file included from /usr/include/arpa/inet.h:22:0,
   from ./include/connman/inet.h:25,
   from src/connman.h:128,
   from src/tethering.c:40:
 /usr/include/netinet/in.h:238:8: error: redefinition of 'struct 
 sockaddr_in6'
 In file included from /usr/include/linux/if_bridge.h:17:0,
   from src/tethering.c:38:
 /usr/include/linux/in6.h:46:8: note: originally defined here
 In file included from /usr/include/arpa/inet.h:22:0,
   from ./include/connman/inet.h:25,
   from src/connman.h:128,
   from src/tethering.c:40:
 /usr/include/netinet/in.h:274:8: error: redefinition of 'struct ipv6_mreq'
 In file included from /usr/include/linux/if_bridge.h:17:0,
   from src/tethering.c:38:
 /usr/include/linux/in6.h:54:8: note: originally defined here
 make[1]: *** [src/src_connmand-tethering.o] Error 1
 
 
 So I'm not sure it's the right one...

% rpm -q --whatprovides /usr/include/netinet/in.h 
glibc-headers-2.14.90-24.fc16.9.x86_64

Seems we have conflicts with glibc headers...


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


the patch bridge: export multicast database via netlink broke kernel 3.8 uapi (was: Re: [libvirt] if_bridge.h: include in6.h for struct in6_addr use)

2013-01-15 Thread Thomas Backlund

Eric Blake skrev 15.1.2013 01:57:

On 01/13/2013 01:05 PM, Thomas Backlund wrote:

Thomas Backlund skrev 13.1.2013 20:38:

patch both inline and attached as thunderbird tends to mess up ...



-

if_bridge.h uses struct in6_addr ip6; but does not include the in6.h
header.

Found by trying to build libvirt and connman against 3.8-rc3 headers.



Ok,
ignore this patch, it's not the correct fix as it introduces
redefinitions...

Btw, the error that I hit that made me suggest this fix was libvirt
config check bailing out:

config.log:/usr/include/linux/if_bridge.h:173:20: error: field 'ip6' has
incomplete type


Hmm, just now noticing this thread, after independently hitting and and
having to work around the same problem in libvirt:
https://www.redhat.com/archives/libvir-list/2013-January/msg00930.html
https://bugzilla.redhat.com/show_bug.cgi?id=895141



Yep,

and the commit breaking uapi headers is by using struct in6_addr ip6 is:


From ee07c6e7a6f8a25c18f0a6b18152fbd7499245f6 Mon Sep 17 00:00:00 2001
From: Cong Wang amw...@redhat.com
Date: Fri, 7 Dec 2012 00:04:48 +
Subject: [PATCH] bridge: export multicast database via netlink

V5: fix two bugs pointed out by Thomas
remove seq check for now, mark it as TODO

V4: remove some useless #include
some coding style fix

V3: drop debugging printk's
update selinux perm table as well

V2: drop patch 1/2, export ifindex directly
Redesign netlink attributes
Improve netlink seq check
Handle IPv6 addr as well

This patch exports bridge multicast database via netlink
message type RTM_GETMDB. Similar to fdb, but currently bridge-specific.
We may need to support modify multicast database too (RTM_{ADD,DEL}MDB).

(Thanks to Thomas for patient reviews)

Cc: Herbert Xu herb...@gondor.apana.org.au
Cc: Stephen Hemminger shemmin...@vyatta.com
Cc: David S. Miller da...@davemloft.net
Cc: Thomas Graf tg...@suug.ch
Cc: Jesper Dangaard Brouer bro...@redhat.com
Signed-off-by: Cong Wang amw...@redhat.com
Acked-by: Thomas Graf tg...@suug.ch
Signed-off-by: David S. Miller da...@davemloft.net
---
 include/uapi/linux/if_bridge.h |   55 ++
 include/uapi/linux/rtnetlink.h |3 +
 net/bridge/Makefile|2 +-
 net/bridge/br_mdb.c|  163 


 net/bridge/br_multicast.c  |1 +
 net/bridge/br_private.h|1 +
 security/selinux/nlmsgtab.c|1 +
 7 files changed, 225 insertions(+), 1 deletions(-)
 create mode 100644 net/bridge/br_mdb.c

--
Thomas



--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: the patch bridge: export multicast database via netlink broke kernel 3.8 uapi (was: Re: [libvirt] if_bridge.h: include in6.h for struct in6_addr use)

2013-01-15 Thread Cong Wang
On Tue, 2013-01-15 at 12:03 +0200, Thomas Backlund wrote:
 Eric Blake skrev 15.1.2013 01:57:
  On 01/13/2013 01:05 PM, Thomas Backlund wrote:
  Thomas Backlund skrev 13.1.2013 20:38:
  patch both inline and attached as thunderbird tends to mess up ...
 
  -
 
  if_bridge.h uses struct in6_addr ip6; but does not include the in6.h
  header.
 
  Found by trying to build libvirt and connman against 3.8-rc3 headers.
 
 
  Ok,
  ignore this patch, it's not the correct fix as it introduces
  redefinitions...
 
  Btw, the error that I hit that made me suggest this fix was libvirt
  config check bailing out:
 
  config.log:/usr/include/linux/if_bridge.h:173:20: error: field 'ip6' has
  incomplete type
 
  Hmm, just now noticing this thread, after independently hitting and and
  having to work around the same problem in libvirt:
  https://www.redhat.com/archives/libvir-list/2013-January/msg00930.html
  https://bugzilla.redhat.com/show_bug.cgi?id=895141
 
 
 Yep,
 
 and the commit breaking uapi headers is by using struct in6_addr ip6 is:
 
 
  From ee07c6e7a6f8a25c18f0a6b18152fbd7499245f6 Mon Sep 17 00:00:00 2001
 From: Cong Wang amw...@redhat.com
 Date: Fri, 7 Dec 2012 00:04:48 +
 Subject: [PATCH] bridge: export multicast database via netlink

Does the following patch help?

$ git diff include/uapi/linux/if_bridge.h
diff --git a/include/uapi/linux/if_bridge.h
b/include/uapi/linux/if_bridge.h
index 5db2975..653db23 100644
--- a/include/uapi/linux/if_bridge.h
+++ b/include/uapi/linux/if_bridge.h
@@ -14,6 +14,7 @@
 #define _UAPI_LINUX_IF_BRIDGE_H
 
 #include linux/types.h
+#include linux/in6.h
 
 #define SYSFS_BRIDGE_ATTR  bridge
 #define SYSFS_BRIDGE_FDB   brforward

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: the patch bridge: export multicast database via netlink broke kernel 3.8 uapi

2013-01-15 Thread Thomas Backlund

Cong Wang skrev 15.1.2013 12:11:

On Tue, 2013-01-15 at 12:03 +0200, Thomas Backlund wrote:

Eric Blake skrev 15.1.2013 01:57:

On 01/13/2013 01:05 PM, Thomas Backlund wrote:

Thomas Backlund skrev 13.1.2013 20:38:

patch both inline and attached as thunderbird tends to mess up ...



-

if_bridge.h uses struct in6_addr ip6; but does not include the in6.h
header.

Found by trying to build libvirt and connman against 3.8-rc3 headers.



Ok,
ignore this patch, it's not the correct fix as it introduces
redefinitions...

Btw, the error that I hit that made me suggest this fix was libvirt
config check bailing out:

config.log:/usr/include/linux/if_bridge.h:173:20: error: field 'ip6' has
incomplete type


Hmm, just now noticing this thread, after independently hitting and and
having to work around the same problem in libvirt:
https://www.redhat.com/archives/libvir-list/2013-January/msg00930.html
https://bugzilla.redhat.com/show_bug.cgi?id=895141



Yep,

and the commit breaking uapi headers is by using struct in6_addr ip6 is:


  From ee07c6e7a6f8a25c18f0a6b18152fbd7499245f6 Mon Sep 17 00:00:00 2001
From: Cong Wang amw...@redhat.com
Date: Fri, 7 Dec 2012 00:04:48 +
Subject: [PATCH] bridge: export multicast database via netlink


Does the following patch help?

$ git diff include/uapi/linux/if_bridge.h
diff --git a/include/uapi/linux/if_bridge.h
b/include/uapi/linux/if_bridge.h
index 5db2975..653db23 100644
--- a/include/uapi/linux/if_bridge.h
+++ b/include/uapi/linux/if_bridge.h
@@ -14,6 +14,7 @@
  #define _UAPI_LINUX_IF_BRIDGE_H

  #include linux/types.h
+#include linux/in6.h

  #define SYSFS_BRIDGE_ATTR  bridge
  #define SYSFS_BRIDGE_FDB   brforward



Well, I suggested the same fix in the beginning of the thread
on netdev and lkml: if_bridge.h: include in6.h for struct in6_addr use

as it seemed to fix the libvirt case

but then asked it to be ignored after I tried to build connman,
and hit this conflict with glibc-2.17:

In file included from /usr/include/arpa/inet.h:22:0,
 from ./include/connman/inet.h:25,
 from src/connman.h:128,
 from src/tethering.c:40:
/usr/include/netinet/in.h:35:5: error: expected identifier before 
numeric constant

/usr/include/netinet/in.h:197:8: error: redefinition of 'struct in6_addr'
In file included from /usr/include/linux/if_bridge.h:17:0,
 from src/tethering.c:38:
/usr/include/linux/in6.h:30:8: note: originally defined here
In file included from /usr/include/arpa/inet.h:22:0,
 from ./include/connman/inet.h:25,
 from src/connman.h:128,
 from src/tethering.c:40:
/usr/include/netinet/in.h:238:8: error: redefinition of 'struct 
sockaddr_in6'

In file included from /usr/include/linux/if_bridge.h:17:0,
 from src/tethering.c:38:
/usr/include/linux/in6.h:46:8: note: originally defined here
In file included from /usr/include/arpa/inet.h:22:0,
 from ./include/connman/inet.h:25,
 from src/connman.h:128,
 from src/tethering.c:40:
/usr/include/netinet/in.h:274:8: error: redefinition of 'struct ipv6_mreq'
In file included from /usr/include/linux/if_bridge.h:17:0,
 from src/tethering.c:38:
/usr/include/linux/in6.h:54:8: note: originally defined here
make[1]: *** [src/src_connmand-tethering.o] Error 1


So I'm not sure it's the right one...


--
Thomas

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/