mptcp: expose server_side attribute in MPTCP netlink events
authorKishen Maloor <kishen.maloor@intel.com>
Mon, 2 May 2022 20:52:36 +0000 (13:52 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 3 May 2022 23:54:55 +0000 (16:54 -0700)
This change records the 'server_side' attribute of MPTCP_EVENT_CREATED
and MPTCP_EVENT_ESTABLISHED events to inform their recipient about the
Client/Server role of the running MPTCP application.

Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/246
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Kishen Maloor <kishen.maloor@intel.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/uapi/linux/mptcp.h
net/mptcp/pm_netlink.c

index 9690efe..e41ea01 100644 (file)
@@ -188,6 +188,7 @@ enum mptcp_event_attr {
        MPTCP_ATTR_IF_IDX,      /* s32 */
        MPTCP_ATTR_RESET_REASON,/* u32 */
        MPTCP_ATTR_RESET_FLAGS, /* u32 */
+       MPTCP_ATTR_SERVER_SIDE, /* u8 */
 
        __MPTCP_ATTR_AFTER_LAST
 };
index eeaa96b..a4430c5 100644 (file)
@@ -1985,6 +1985,9 @@ static int mptcp_event_created(struct sk_buff *skb,
        if (err)
                return err;
 
+       if (nla_put_u8(skb, MPTCP_ATTR_SERVER_SIDE, READ_ONCE(msk->pm.server_side)))
+               return -EMSGSIZE;
+
        return mptcp_event_add_subflow(skb, ssk);
 }