The attributes L2TP_ATTR_UDP_ZERO_CSUM6_RX and
L2TP_ATTR_UDP_ZERO_CSUM6_TX are used as flags,
but is defined as a u8 in a comment.

This patch redocuments them as flags, and adds
them to the nla_policy, so they gets validated.

The only publicly user, iproute2, already treat
these attributes as flags.

CC: Miao Wang <shankerwangm...@gmail.com>
Signed-off-by: Asbjoern Sloth Toennesen <asbj...@asbjorn.st>
---
 include/uapi/linux/l2tp.h | 4 ++--
 net/l2tp/l2tp_netlink.c   | 2 ++
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/include/uapi/linux/l2tp.h b/include/uapi/linux/l2tp.h
index 73e3a23..345e49f 100644
--- a/include/uapi/linux/l2tp.h
+++ b/include/uapi/linux/l2tp.h
@@ -124,8 +124,8 @@ enum {
        L2TP_ATTR_STATS,                /* nested */
        L2TP_ATTR_IP6_SADDR,            /* struct in6_addr */
        L2TP_ATTR_IP6_DADDR,            /* struct in6_addr */
-       L2TP_ATTR_UDP_ZERO_CSUM6_TX,    /* u8 */
-       L2TP_ATTR_UDP_ZERO_CSUM6_RX,    /* u8 */
+       L2TP_ATTR_UDP_ZERO_CSUM6_TX,    /* flag */
+       L2TP_ATTR_UDP_ZERO_CSUM6_RX,    /* flag */
        L2TP_ATTR_PAD,
        __L2TP_ATTR_MAX,
 };
diff --git a/net/l2tp/l2tp_netlink.c b/net/l2tp/l2tp_netlink.c
index 1fe05da..e45c5409 100644
--- a/net/l2tp/l2tp_netlink.c
+++ b/net/l2tp/l2tp_netlink.c
@@ -880,6 +880,8 @@ static const struct nla_policy l2tp_nl_policy[L2TP_ATTR_MAX 
+ 1] = {
        [L2TP_ATTR_SESSION_ID]          = { .type = NLA_U32, },
        [L2TP_ATTR_PEER_SESSION_ID]     = { .type = NLA_U32, },
        [L2TP_ATTR_UDP_CSUM]            = { .type = NLA_FLAG, },
+       [L2TP_ATTR_UDP_ZERO_CSUM6_TX]   = { .type = NLA_FLAG, },
+       [L2TP_ATTR_UDP_ZERO_CSUM6_RX]   = { .type = NLA_FLAG, },
        [L2TP_ATTR_VLAN_ID]             = { .type = NLA_U16, },
        [L2TP_ATTR_DEBUG]               = { .type = NLA_U32, },
        [L2TP_ATTR_RECV_SEQ]            = { .type = NLA_U8, },
-- 
2.10.1

Reply via email to