diff mbox

[IPROUTE] libnetlink: Use ifinfomsg instead of rtgenmsg in rtnl_wilddump_req_filter

Message ID 20130425220710.6520.32515.stgit@ahduyck-cp1.jf.intel.com
State Accepted, archived
Delegated to: stephen hemminger
Headers show

Commit Message

Duyck, Alexander H April 25, 2013, 10:07 p.m. UTC
This change corrects a kernel incompatibility that was resulting in the
ext_filter_mask not being correctly discovered by the kernel as it is buried
somewhere in the ifinfomsg.

Reported-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
---
 lib/libnetlink.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Stephen Hemminger April 25, 2013, 11:17 p.m. UTC | #1
On Thu, 25 Apr 2013 15:07:10 -0700
Alexander Duyck <alexander.h.duyck@intel.com> wrote:

> This change corrects a kernel incompatibility that was resulting in the
> ext_filter_mask not being correctly discovered by the kernel as it is buried
> somewhere in the ifinfomsg.
> 
> Reported-by: Or Gerlitz <ogerlitz@mellanox.com>
> Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>

This looks good, I will apply it unless there are objections.

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller April 25, 2013, 11:22 p.m. UTC | #2
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 25 Apr 2013 16:17:03 -0700

> On Thu, 25 Apr 2013 15:07:10 -0700
> Alexander Duyck <alexander.h.duyck@intel.com> wrote:
> 
>> This change corrects a kernel incompatibility that was resulting in the
>> ext_filter_mask not being correctly discovered by the kernel as it is buried
>> somewhere in the ifinfomsg.
>> 
>> Reported-by: Or Gerlitz <ogerlitz@mellanox.com>
>> Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
> 
> This looks good, I will apply it unless there are objections.

Same here:

Acked-by: David S. Miller <davem@davemloft.net>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Or Gerlitz May 2, 2013, 2:12 p.m. UTC | #3
On 26/04/2013 01:07, Alexander Duyck wrote:
> This change corrects a kernel incompatibility that was resulting in the
> ext_filter_mask not being correctly discovered by the kernel as it is buried
> somewhere in the ifinfomsg.

working well,  thanks for fixing this up Alex.

Or.

>
> Reported-by: Or Gerlitz <ogerlitz@mellanox.com>
> Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
> ---
>   lib/libnetlink.c |    4 ++--
>   1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/libnetlink.c b/lib/libnetlink.c
> index 04201cd..b17e1aa 100644
> --- a/lib/libnetlink.c
> +++ b/lib/libnetlink.c
> @@ -99,7 +99,7 @@ int rtnl_wilddump_req_filter(struct rtnl_handle *rth, int family, int type,
>   {
>   	struct {
>   		struct nlmsghdr nlh;
> -		struct rtgenmsg g;
> +		struct ifinfomsg ifm;
>   		/* attribute has to be NLMSG aligned */
>   		struct rtattr ext_req __attribute__ ((aligned(NLMSG_ALIGNTO)));
>   		__u32 ext_filter_mask;
> @@ -111,7 +111,7 @@ int rtnl_wilddump_req_filter(struct rtnl_handle *rth, int family, int type,
>   	req.nlh.nlmsg_flags = NLM_F_DUMP|NLM_F_REQUEST;
>   	req.nlh.nlmsg_pid = 0;
>   	req.nlh.nlmsg_seq = rth->dump = ++rth->seq;
> -	req.g.rtgen_family = family;
> +	req.ifm.ifi_family = family;
>   
>   	req.ext_req.rta_type = IFLA_EXT_MASK;
>   	req.ext_req.rta_len = RTA_LENGTH(sizeof(__u32));
>

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Or Gerlitz May 2, 2013, 2:13 p.m. UTC | #4
On 26/04/2013 01:07, Alexander Duyck wrote:
> This change corrects a kernel incompatibility that was resulting in the
> ext_filter_mask not being correctly discovered by the kernel as it is buried
> somewhere in the ifinfomsg.

working well,  thanks for fixing this upAlex.

Or.

>
> Reported-by: Or Gerlitz <ogerlitz@mellanox.com>
> Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
> ---
>   lib/libnetlink.c |    4 ++--
>   1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/libnetlink.c b/lib/libnetlink.c
> index 04201cd..b17e1aa 100644
> --- a/lib/libnetlink.c
> +++ b/lib/libnetlink.c
> @@ -99,7 +99,7 @@ int rtnl_wilddump_req_filter(struct rtnl_handle *rth, int family, int type,
>   {
>   	struct {
>   		struct nlmsghdr nlh;
> -		struct rtgenmsg g;
> +		struct ifinfomsg ifm;
>   		/* attribute has to be NLMSG aligned */
>   		struct rtattr ext_req __attribute__ ((aligned(NLMSG_ALIGNTO)));
>   		__u32 ext_filter_mask;
> @@ -111,7 +111,7 @@ int rtnl_wilddump_req_filter(struct rtnl_handle *rth, int family, int type,
>   	req.nlh.nlmsg_flags = NLM_F_DUMP|NLM_F_REQUEST;
>   	req.nlh.nlmsg_pid = 0;
>   	req.nlh.nlmsg_seq = rth->dump = ++rth->seq;
> -	req.g.rtgen_family = family;
> +	req.ifm.ifi_family = family;
>   
>   	req.ext_req.rta_type = IFLA_EXT_MASK;
>   	req.ext_req.rta_len = RTA_LENGTH(sizeof(__u32));
>

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/lib/libnetlink.c b/lib/libnetlink.c
index 04201cd..b17e1aa 100644
--- a/lib/libnetlink.c
+++ b/lib/libnetlink.c
@@ -99,7 +99,7 @@  int rtnl_wilddump_req_filter(struct rtnl_handle *rth, int family, int type,
 {
 	struct {
 		struct nlmsghdr nlh;
-		struct rtgenmsg g;
+		struct ifinfomsg ifm;
 		/* attribute has to be NLMSG aligned */
 		struct rtattr ext_req __attribute__ ((aligned(NLMSG_ALIGNTO)));
 		__u32 ext_filter_mask;
@@ -111,7 +111,7 @@  int rtnl_wilddump_req_filter(struct rtnl_handle *rth, int family, int type,
 	req.nlh.nlmsg_flags = NLM_F_DUMP|NLM_F_REQUEST;
 	req.nlh.nlmsg_pid = 0;
 	req.nlh.nlmsg_seq = rth->dump = ++rth->seq;
-	req.g.rtgen_family = family;
+	req.ifm.ifi_family = family;
 
 	req.ext_req.rta_type = IFLA_EXT_MASK;
 	req.ext_req.rta_len = RTA_LENGTH(sizeof(__u32));