netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch net-next 0/2] add support for IFA_FLAGS nl attribute
@ 2013-12-08 11:16 Jiri Pirko
  2013-12-08 11:16 ` [patch net-next 1/2] dn_dev: " Jiri Pirko
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Jiri Pirko @ 2013-12-08 11:16 UTC (permalink / raw)
  To: netdev
  Cc: davem, kuznet, jmorris, yoshfuji, kaber, hannes, bcrl, gaofeng,
	joe, tgraf

As this was recently added for ipv6, add it for the rest of occurences
as requested by DaveM.

Jiri Pirko (2):
  dn_dev: add support for IFA_FLAGS nl attribute
  ipv4: add support for IFA_FLAGS nl attribute

 include/linux/inetdevice.h |  2 +-
 include/net/dn_dev.h       |  2 +-
 net/decnet/dn_dev.c        | 13 +++++++++----
 net/ipv4/devinet.c         |  8 ++++++--
 4 files changed, 17 insertions(+), 8 deletions(-)

-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [patch net-next 1/2] dn_dev: add support for IFA_FLAGS nl attribute
  2013-12-08 11:16 [patch net-next 0/2] add support for IFA_FLAGS nl attribute Jiri Pirko
@ 2013-12-08 11:16 ` Jiri Pirko
  2013-12-08 11:16 ` [patch net-next 2/2] ipv4: " Jiri Pirko
  2013-12-11  2:50 ` [patch net-next 0/2] " David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: Jiri Pirko @ 2013-12-08 11:16 UTC (permalink / raw)
  To: netdev
  Cc: davem, kuznet, jmorris, yoshfuji, kaber, hannes, bcrl, gaofeng,
	joe, tgraf

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
---
 include/net/dn_dev.h |  2 +-
 net/decnet/dn_dev.c  | 13 +++++++++----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/include/net/dn_dev.h b/include/net/dn_dev.h
index 20b5ab0..197886c 100644
--- a/include/net/dn_dev.h
+++ b/include/net/dn_dev.h
@@ -9,7 +9,7 @@ struct dn_ifaddr {
 	struct dn_dev    *ifa_dev;
 	__le16            ifa_local;
 	__le16            ifa_address;
-	__u8              ifa_flags;
+	__u32             ifa_flags;
 	__u8              ifa_scope;
 	char              ifa_label[IFNAMSIZ];
 	struct rcu_head   rcu;
diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c
index dd0dfb2..a603823 100644
--- a/net/decnet/dn_dev.c
+++ b/net/decnet/dn_dev.c
@@ -561,6 +561,7 @@ static const struct nla_policy dn_ifa_policy[IFA_MAX+1] = {
 	[IFA_LOCAL]		= { .type = NLA_U16 },
 	[IFA_LABEL]		= { .type = NLA_STRING,
 				    .len = IFNAMSIZ - 1 },
+	[IFA_FLAGS]		= { .type = NLA_U32 },
 };
 
 static int dn_nl_deladdr(struct sk_buff *skb, struct nlmsghdr *nlh)
@@ -648,7 +649,8 @@ static int dn_nl_newaddr(struct sk_buff *skb, struct nlmsghdr *nlh)
 
 	ifa->ifa_local = nla_get_le16(tb[IFA_LOCAL]);
 	ifa->ifa_address = nla_get_le16(tb[IFA_ADDRESS]);
-	ifa->ifa_flags = ifm->ifa_flags;
+	ifa->ifa_flags = tb[IFA_FLAGS] ? nla_get_u32(tb[IFA_FLAGS]) :
+					 ifm->ifa_flags;
 	ifa->ifa_scope = ifm->ifa_scope;
 	ifa->ifa_dev = dn_db;
 
@@ -669,7 +671,8 @@ static inline size_t dn_ifaddr_nlmsg_size(void)
 	return NLMSG_ALIGN(sizeof(struct ifaddrmsg))
 	       + nla_total_size(IFNAMSIZ) /* IFA_LABEL */
 	       + nla_total_size(2) /* IFA_ADDRESS */
-	       + nla_total_size(2); /* IFA_LOCAL */
+	       + nla_total_size(2) /* IFA_LOCAL */
+	       + nla_total_size(4); /* IFA_FLAGS */
 }
 
 static int dn_nl_fill_ifaddr(struct sk_buff *skb, struct dn_ifaddr *ifa,
@@ -677,6 +680,7 @@ static int dn_nl_fill_ifaddr(struct sk_buff *skb, struct dn_ifaddr *ifa,
 {
 	struct ifaddrmsg *ifm;
 	struct nlmsghdr *nlh;
+	u32 ifa_flags = ifa->ifa_flags | IFA_F_PERMANENT;
 
 	nlh = nlmsg_put(skb, portid, seq, event, sizeof(*ifm), flags);
 	if (nlh == NULL)
@@ -685,7 +689,7 @@ static int dn_nl_fill_ifaddr(struct sk_buff *skb, struct dn_ifaddr *ifa,
 	ifm = nlmsg_data(nlh);
 	ifm->ifa_family = AF_DECnet;
 	ifm->ifa_prefixlen = 16;
-	ifm->ifa_flags = ifa->ifa_flags | IFA_F_PERMANENT;
+	ifm->ifa_flags = ifa_flags;
 	ifm->ifa_scope = ifa->ifa_scope;
 	ifm->ifa_index = ifa->ifa_dev->dev->ifindex;
 
@@ -694,7 +698,8 @@ static int dn_nl_fill_ifaddr(struct sk_buff *skb, struct dn_ifaddr *ifa,
 	    (ifa->ifa_local &&
 	     nla_put_le16(skb, IFA_LOCAL, ifa->ifa_local)) ||
 	    (ifa->ifa_label[0] &&
-	     nla_put_string(skb, IFA_LABEL, ifa->ifa_label)))
+	     nla_put_string(skb, IFA_LABEL, ifa->ifa_label)) ||
+	     nla_put_u32(skb, IFA_FLAGS, ifa_flags))
 		goto nla_put_failure;
 	return nlmsg_end(skb, nlh);
 
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [patch net-next 2/2] ipv4: add support for IFA_FLAGS nl attribute
  2013-12-08 11:16 [patch net-next 0/2] add support for IFA_FLAGS nl attribute Jiri Pirko
  2013-12-08 11:16 ` [patch net-next 1/2] dn_dev: " Jiri Pirko
@ 2013-12-08 11:16 ` Jiri Pirko
  2013-12-11  2:50 ` [patch net-next 0/2] " David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: Jiri Pirko @ 2013-12-08 11:16 UTC (permalink / raw)
  To: netdev
  Cc: davem, kuznet, jmorris, yoshfuji, kaber, hannes, bcrl, gaofeng,
	joe, tgraf

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
---
 include/linux/inetdevice.h | 2 +-
 net/ipv4/devinet.c         | 8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/include/linux/inetdevice.h b/include/linux/inetdevice.h
index 0d678ae..8c6a4ae 100644
--- a/include/linux/inetdevice.h
+++ b/include/linux/inetdevice.h
@@ -136,8 +136,8 @@ struct in_ifaddr {
 	__be32			ifa_mask;
 	__be32			ifa_broadcast;
 	unsigned char		ifa_scope;
-	unsigned char		ifa_flags;
 	unsigned char		ifa_prefixlen;
+	__u32			ifa_flags;
 	char			ifa_label[IFNAMSIZ];
 
 	/* In seconds, relative to tstamp. Expiry is at tstamp + HZ * lft. */
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index a1b5bcb..b877bb4 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -99,6 +99,7 @@ static const struct nla_policy ifa_ipv4_policy[IFA_MAX+1] = {
 	[IFA_BROADCAST] 	= { .type = NLA_U32 },
 	[IFA_LABEL]     	= { .type = NLA_STRING, .len = IFNAMSIZ - 1 },
 	[IFA_CACHEINFO]		= { .len = sizeof(struct ifa_cacheinfo) },
+	[IFA_FLAGS]		= { .type = NLA_U32 },
 };
 
 #define IN4_ADDR_HSIZE_SHIFT	8
@@ -755,7 +756,8 @@ static struct in_ifaddr *rtm_to_ifaddr(struct net *net, struct nlmsghdr *nlh,
 	INIT_HLIST_NODE(&ifa->hash);
 	ifa->ifa_prefixlen = ifm->ifa_prefixlen;
 	ifa->ifa_mask = inet_make_mask(ifm->ifa_prefixlen);
-	ifa->ifa_flags = ifm->ifa_flags;
+	ifa->ifa_flags = tb[IFA_FLAGS] ? nla_get_u32(tb[IFA_FLAGS]) :
+					 ifm->ifa_flags;
 	ifa->ifa_scope = ifm->ifa_scope;
 	ifa->ifa_dev = in_dev;
 
@@ -1435,7 +1437,8 @@ static size_t inet_nlmsg_size(void)
 	       + nla_total_size(4) /* IFA_ADDRESS */
 	       + nla_total_size(4) /* IFA_LOCAL */
 	       + nla_total_size(4) /* IFA_BROADCAST */
-	       + nla_total_size(IFNAMSIZ); /* IFA_LABEL */
+	       + nla_total_size(IFNAMSIZ) /* IFA_LABEL */
+	       + nla_total_size(4);  /* IFA_FLAGS */
 }
 
 static inline u32 cstamp_delta(unsigned long cstamp)
@@ -1503,6 +1506,7 @@ static int inet_fill_ifaddr(struct sk_buff *skb, struct in_ifaddr *ifa,
 	     nla_put_be32(skb, IFA_BROADCAST, ifa->ifa_broadcast)) ||
 	    (ifa->ifa_label[0] &&
 	     nla_put_string(skb, IFA_LABEL, ifa->ifa_label)) ||
+	    nla_put_u32(skb, IFA_FLAGS, ifa->ifa_flags) ||
 	    put_cacheinfo(skb, ifa->ifa_cstamp, ifa->ifa_tstamp,
 			  preferred, valid))
 		goto nla_put_failure;
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [patch net-next 0/2] add support for IFA_FLAGS nl attribute
  2013-12-08 11:16 [patch net-next 0/2] add support for IFA_FLAGS nl attribute Jiri Pirko
  2013-12-08 11:16 ` [patch net-next 1/2] dn_dev: " Jiri Pirko
  2013-12-08 11:16 ` [patch net-next 2/2] ipv4: " Jiri Pirko
@ 2013-12-11  2:50 ` David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2013-12-11  2:50 UTC (permalink / raw)
  To: jiri
  Cc: netdev, kuznet, jmorris, yoshfuji, kaber, hannes, bcrl, gaofeng,
	joe, tgraf

From: Jiri Pirko <jiri@resnulli.us>
Date: Sun,  8 Dec 2013 12:16:08 +0100

> As this was recently added for ipv6, add it for the rest of occurences
> as requested by DaveM.

Applied, thanks for following up on this.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-12-11  2:50 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-08 11:16 [patch net-next 0/2] add support for IFA_FLAGS nl attribute Jiri Pirko
2013-12-08 11:16 ` [patch net-next 1/2] dn_dev: " Jiri Pirko
2013-12-08 11:16 ` [patch net-next 2/2] ipv4: " Jiri Pirko
2013-12-11  2:50 ` [patch net-next 0/2] " David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).