ipip/rtnl: add IFLA_IPTUN_PMTUDISC on dump
authorNicolas Dichtel <nicolas.dichtel@6wind.com>
Wed, 14 Nov 2012 05:14:02 +0000 (05:14 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 15 Nov 2012 03:02:38 +0000 (22:02 -0500)
This parameter was missing in the dump.

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/if_tunnel.h
net/ipv4/ipip.c

index f5ea6b7b651f861f8bd6617040abf910fdc3d49b..5ab0c8ddc2bc2cd755fd589aea14016dbfb6c279 100644 (file)
@@ -48,6 +48,7 @@ enum {
        IFLA_IPTUN_FLOWINFO,
        IFLA_IPTUN_FLAGS,
        IFLA_IPTUN_PROTO,
+       IFLA_IPTUN_PMTUDISC,
        __IFLA_IPTUN_MAX,
 };
 #define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1)
index 4be88cc9895782ca95d04a1b4dde3f31a0db52b8..1fc0ea4786b933c8618fc39234eb5c5800a4d3ce 100644 (file)
@@ -835,6 +835,8 @@ static size_t ipip_get_size(const struct net_device *dev)
                nla_total_size(1) +
                /* IFLA_IPTUN_TOS */
                nla_total_size(1) +
+               /* IFLA_IPTUN_PMTUDISC */
+               nla_total_size(1) +
                0;
 }
 
@@ -847,7 +849,9 @@ static int ipip_fill_info(struct sk_buff *skb, const struct net_device *dev)
            nla_put_be32(skb, IFLA_IPTUN_LOCAL, parm->iph.saddr) ||
            nla_put_be32(skb, IFLA_IPTUN_REMOTE, parm->iph.daddr) ||
            nla_put_u8(skb, IFLA_IPTUN_TTL, parm->iph.ttl) ||
-           nla_put_u8(skb, IFLA_IPTUN_TOS, parm->iph.tos))
+           nla_put_u8(skb, IFLA_IPTUN_TOS, parm->iph.tos) ||
+           nla_put_u8(skb, IFLA_IPTUN_PMTUDISC,
+                      !!(parm->iph.frag_off & htons(IP_DF))))
                goto nla_put_failure;
        return 0;