History

netlink: allow sending extended ACK with cookie on success

Now that we have extended error reporting and a new message format for netlink ACK messages, also extend this to be able to return arbitrary cookie data on success. This will allow, for example, nl80211 to not send an extra message for cookies identifying newly created objects, but return those directly in the ACK message. The cookie data size is currently limited to 20 bytes (since Jamal talked about using SHA1 for identifiers.) Thanks to Jamal Hadi Salim for bringing up this idea during the discussions.

Johannes Berg committed 9 years ago

Commit ba0dc5f1 parent 7ab606d3 files · +33 −11Browse files

Showing the changes to include/uapi/linux (1 of 3 files). Show all

Unified · Split

include/uapi/linux/netlink.h+4−0
@@ -122,6 +122,9 @@ struct nlmsgerr { · 121 unmodified lines
122122 * @NLMSGERR_ATTR_MSG: error message string (string)
123123 * @NLMSGERR_ATTR_OFFS: offset of the invalid attribute in the original
124124 * message, counting from the beginning of the header (u32)
125+ * @NLMSGERR_ATTR_COOKIE: arbitrary subsystem specific cookie to
126+ * be used - in the success case - to identify a created
127+ * object or operation or similar (binary)
125128 * @__NLMSGERR_ATTR_MAX: number of attributes
126129 * @NLMSGERR_ATTR_MAX: highest attribute number
127130 */
@@ -129,6 +132,7 @@ enum nlmsgerr_attrs { · 1 unmodified line
129132 NLMSGERR_ATTR_UNUSED,
130133 NLMSGERR_ATTR_MSG,
131134 NLMSGERR_ATTR_OFFS,
135+ NLMSGERR_ATTR_COOKIE,
132136
133137 __NLMSGERR_ATTR_MAX,
134138 NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MAX - 1