netlink: add NLA_F_NESTED to all nested attributes
authorFelix Fietkau <nbd@nbd.name>
Tue, 17 May 2022 18:15:57 +0000 (20:15 +0200)
committerFelix Fietkau <nbd@nbd.name>
Tue, 17 May 2022 18:15:59 +0000 (20:15 +0200)
Newer generic netlink APIs (e.g. wireguard) require this to be able to parse
nested attributes

Signed-off-by: Felix Fietkau <nbd@nbd.name>
include/netlink/attr.h
include/netlink/netlink-kernel.h

index bcfbf07fa8091140fd12d9347e6100f2525678cc..3e3047ff696a3d5312579513e537d4517ef429c0 100644 (file)
@@ -495,7 +495,7 @@ static inline struct nlattr *nla_nest_start(struct nl_msg *msg, int attrtype)
 {
        struct nlattr *start = (struct nlattr *) nlmsg_tail(msg->nm_nlh);
 
-       if (nla_put(msg, attrtype, 0, NULL) < 0)
+       if (nla_put(msg, attrtype | NLA_F_NESTED, 0, NULL) < 0)
                return NULL;
 
        return start;
index a0f5535664fc4cd0407b97f76c1c71ff273fe093..026a91423050ab8e5db47e4b012cdd245d1b1951 100644 (file)
@@ -175,6 +175,8 @@ struct nlmsghdr
 
 /** @} */
 
+#define NLA_F_NESTED           (1 << 15)
+
 /**
  * Netlink error message
  * @ingroup msg