* [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).