From nobody Thu May 2 07:13:56 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:bd2:0:0:0:0 with SMTP id g18csp704698jad; Thu, 3 Mar 2022 06:48:25 -0800 (PST) X-Google-Smtp-Source: ABdhPJxeZHvizSHQcYwAISKmctNh/EUP7YxDQxd+lph1l5KetyD56TUeH1sMshed7Z1X1EBRWKdT X-Received: by 2002:ad4:5be7:0:b0:435:1aad:6a84 with SMTP id k7-20020ad45be7000000b004351aad6a84mr6407033qvc.124.1646318905795; Thu, 03 Mar 2022 06:48:25 -0800 (PST) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id z10-20020a05622a028a00b002de37cb64c2si600643qtw.606.2022.03.03.06.48.25 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Mar 2022 06:48:25 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4075-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) client-ip=2604:1380:1:3600::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=XpMApuqG; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4075-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4075-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id 6FAD21C0DCD for ; Thu, 3 Mar 2022 14:48:25 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 11F8566BE; Thu, 3 Mar 2022 14:48:24 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0204F7E for ; Thu, 3 Mar 2022 14:48:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646318900; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1IH9+kUQv02ud/elnbzWmF7DM3/FVlMWljyY6Jc8P7U=; b=XpMApuqGRsTlSUxQil56jARG2zFbqFcNNrHFRkmKf1m2vYVuSHStFS6GSR0GpT+USvFF6T af4Il3sJMMPytJnkArFpZQjn5vVYORrP21HyMv7skDfcXXTYmzBUsFmjL55vUSkXsTlryX aGeyXWqLCVxvNiz3yG6fyt66DQFxxTw= Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04lp2051.outbound.protection.outlook.com [104.47.13.51]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-9-3LC0cpTtO9qw__f90o5eLA-1; Thu, 03 Mar 2022 15:48:19 +0100 X-MC-Unique: 3LC0cpTtO9qw__f90o5eLA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PmGRavNux5PUbMLYQWG0NrHcka59mKXu1OhZOfK6usUZfrUVoc1iZMkA/hlojoLvqrSbbrFIk3sb75TT0rnf2i47p68//hzEdBUrKl6xUJI6vjTtCXBNwnSjxPGLZR/tyuUmsj3ns9ua6UFUUbXeAw8Sx0TS1cPyOArZ0JR1uur1AUC1Xvjvnek9BWjI4xBWGW3jJIjkU7O5QOIzQaPhX4rLL0NDS4dufUVcA5WXXMEwkRGpmu1T/p7mtJ+63YZN0Gd6PsG4oeeQqLRHbOapMn5t+GFm3ahzEH2X7XuYEA40aYrS+eTjgAsh85wG89mgibzLfiJAlOBNjzrDtrWBiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=sDzRSS2A/gHsMNtV8dH55DKgEtAQJA7cJ0mafdZ0V2g=; b=KMaQTSvBQimHuQ1TdbpJwQC7K1RCwsw7D/zeUerdzI8qSpIFQF/Jwrvnui0JCn7oPpHvA0vb8QvMg0UqHEwJ9uWNqrllw1NsmtnjtquQN1iRZIPujq9RsmFAu5wE/wG48VMGxN1LYxA96yvm4Cb3Xw45uK/WHFffTTFZz2CzGtHO4sE5fmBAW54OAGS8Cecul+czllfKLDYmuV7qtlWRxdd9UEp/ghYg/xQL5CkNOK5FLOzp7IVm0mEJfYDDWXSqP8teWO7vD2tndeJxjivYV4EWF+G4iF8lS8jc+lW9y4Q9Y0ywWRc/coFA/lDK5WB22SJaweVUAtCeeNq4lH9n2w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AM9PR04MB8538.eurprd04.prod.outlook.com (2603:10a6:20b:435::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.14; Thu, 3 Mar 2022 14:48:17 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%5]) with mapi id 15.20.5017.027; Thu, 3 Mar 2022 14:48:17 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 1/3] Squash to "bpf: add 'bpf_mptcp_sock' structure and helper" Date: Thu, 3 Mar 2022 22:47:58 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR06CA0013.apcprd06.prod.outlook.com (2603:1096:202:2e::25) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 39473cb4-c0e3-47e5-8488-08d9fd24da11 X-MS-TrafficTypeDiagnostic: AM9PR04MB8538:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iMDri7pbR/6gdUlBtFo+77KWpEWol666wmAsperLCZreQGeAtKlhqsX9iDij42YIdvESu9oHDJcIHyJg9BqSVOPj7EnaFATKWYQuF8BygfFM6BeMeWHRajjnR90MDOJTdmzzZKDs/+CR4J0Ggi2/D18OjmQSigZZsddsPc6ZOgx5GCereLy7aELyOxEswnqWP6mJV92jWzQ6oH0nkGQ9iGGE/1iE7frSQ9+VVoiMBxUoJBHPRU7Fs+TDuE6NLsWZkvW8Jf6SJlTw0hXM0Heb2T77ZpiG2mHmKIfy2wHjcUup8i4AKqMPQMDoHgGrxICaNuuydB+WeZjbTFwymaF+RAjaWLayRLbGTz67ClbfHy2qKdpmhmxsLL7LpAkSbuuMYLh9aRn9pbnYU8aLfTu9rWiFfgdb9No6aoO1mptHQiIxzan4vOu5jcS7IbdH0VcIOLE0clEVBwSG2S6SzjOipuZrMNSL/vEAs3ezD5mlveuXgfsJJo3QIcGs1eYOPs7mW1cHfueD8eztYrO23ALyU8vVlVVCfgCah2wql2R7rxvnLIPepSV44hx8el+0re8DZrgpj8BSIMI5YUDNe0f+d+irNDcDnouMTsP+xGSumSzJETAy9QML2wXoF1CXqowR0/f6kv1rJCxzI1i6C/WiXpIBFN2rP/ZT6xE9dy3uQ0Uc/lXqnJFoCcFnlJXwzrc7Jmd1cLstr+AazfR72OVn6g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(8936002)(6512007)(6506007)(5660300002)(38100700002)(66476007)(2616005)(6486002)(36756003)(6666004)(86362001)(44832011)(4326008)(83380400001)(26005)(6916009)(2906002)(186003)(107886003)(316002)(508600001)(8676002)(66946007)(66556008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?DzI2yojv2S4XOFiCtbDofQB/wP2Vv84eHAD6/BfQl0B+df9POxeCaz+dw7kU?= =?us-ascii?Q?k+B+BMbBdopMuXFXZIXE/fh3Us6kwav9D4JYFKR8Wr3el1JjURvib2HqdQ6b?= =?us-ascii?Q?5j3PMXJWFtLfyy7op04xXWW86bkoBG3VXwTjP5ktngQsImIKYfEb8KdIzSaY?= =?us-ascii?Q?0qGnpqXxj0dBN7Fmke/RwKzfdWiEVUWuH3wZPdSiRV1FSY1o2XJk2xfPc1cl?= =?us-ascii?Q?Qi7/e6dBkoU8SCK9xb1xC5pJ17zetBS9kfElNQw58EdykbQaVzrD6DAh1U9m?= =?us-ascii?Q?Ejq+CiaZf0gUtHo/Nk9Ht1hxQmWrUwNsD0zJy5wxgj2J7is97EKCZYvODACB?= =?us-ascii?Q?WcKhggNx8lcR+Dr1OJyhZuW+EpQLkjm3Z6kXJy3bePU9UVj1VTGp24d0Co+t?= =?us-ascii?Q?Rz8kjeFfxU7TGtF39Rptd846xs9P3PvBBXtlzYyqAnX3bAtxQdHEus1okrQg?= =?us-ascii?Q?d6gIV5XH2Sg2Yu21QUYeJKNdn8yaghKCFgRfYnZrLXWbNxShKNLPi2brW+Ig?= =?us-ascii?Q?DHXIBOY89dacgY+vd7f03pZLteON2cuZ+aDa6Y+F0v65SclF94MtHkyPKdYl?= =?us-ascii?Q?gaHlPb8L1Tms5E3J0FlRmmUlUBXvxzzlWIMK7GXk7XAViXK3FtooGkzJQxb7?= =?us-ascii?Q?vUebNqZpCQnR39gEIhw+TiKYOelQ0dSEsn5S36csxJZzgIIPjuWYfHQkrwUJ?= =?us-ascii?Q?TKpuYCWzLzn4wC6lj5IF+tWSa6sfT62GfuDJ1PnJEKR2HQjB5P+pL+c5wPDT?= =?us-ascii?Q?f6aYvnK4nGZXxREC9PgdfeoclYhLu23Q6rTJFtaodnh2lctRDBUBaXJEYlCq?= =?us-ascii?Q?bENvjkeLskv9tTeYFkS4pPw8WQySql56qAs3dZOCydcXbWMXProTdgz3FQE/?= =?us-ascii?Q?IlYZGZ8NwrHw+C/zrH8PiLYCws0b6iBfTB9yN1nJ/oVSEtsjYPkYAevyXO69?= =?us-ascii?Q?ctXZxOC2utVRZN0tkPxrpNrxh8YePCoEOQKbfFPAk2TOnmJjlMF69Fs5Di/f?= =?us-ascii?Q?Ap3qfRuQ1mqKeHMtSu6Ug/f+YrvKUGLmxEwsoYrf68wP9kYBPBRqLCw9e2uD?= =?us-ascii?Q?qsYIQj1TIdf6ogQm1wJDCHAsDJel2mBB3qxiBQzOA3JFdQzWVylijG+xGWj+?= =?us-ascii?Q?U/2OYDBv0SjZ+tOYnWZ2MvKf4dipGnhL5yIDxije4zQ4L6bovXMf901WLGwC?= =?us-ascii?Q?ridYSyISJWbhM0wq+ZaSWCLJmDfKrtEuZvn/VqtZNb7smPJ2qrN+YBD8EQnz?= =?us-ascii?Q?cpSbddt3TlZpBEmdrCu8rPRqCMrQqEh+pnDoO7GRKHIcqBF5nYp7dV9KFH2h?= =?us-ascii?Q?eEUnCay2SKouMrTEndA0nYftizLmTk8KKsUAAanfwMRecN6FhiGftNrdep9A?= =?us-ascii?Q?K5WxXcUbWprF5QMLdmVyd9gSFGcGmlDwSdjnbeuQ9TTk8XGPDJvgKyYtcjMO?= =?us-ascii?Q?zDphrJ5dBXnefD1bljxa/bnXf/YxovPfO/DIbrjOxuKUz6EBIedN4MyE2g9p?= =?us-ascii?Q?m88H1j66Ve9AEk8ne1y4z2LhVx2UTUoK8e1gFQOHtm0PgWfqQOKwTnyjBMHc?= =?us-ascii?Q?ErKFuYbNHRWDwVfVh7ZvAdgX81Zf2LL9c0uh0MpDTeCCVL7gmIUhyOsavHTz?= =?us-ascii?Q?CrTxWG/Pyl+f6hEpYSwK2z0=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39473cb4-c0e3-47e5-8488-08d9fd24da11 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2022 14:48:17.1835 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BCaE9deZEZN7GJLXZkJhQFL4XNcjtof9NPviyPlfNQJpde4McEjw8nC3ZOMG2IsEAx2vlZRvAuvX5VA8+JanHg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8538 Content-Type: text/plain; charset="utf-8" Drop RET_PTR_TO_MPTCP_SOCK and bpf_mptcp_sock_convert_ctx_access as Alexei suggested. Signed-off-by: Geliang Tang --- include/linux/bpf.h | 20 ------------------- kernel/bpf/verifier.c | 20 ------------------- net/core/filter.c | 4 ---- net/mptcp/bpf.c | 45 ------------------------------------------- 4 files changed, 89 deletions(-) diff --git a/include/linux/bpf.h b/include/linux/bpf.h index 5a17c1e3a6bc..0ae57df2f226 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -407,7 +407,6 @@ enum bpf_return_type { RET_PTR_TO_MAP_VALUE, /* returns a pointer to map elem value */ RET_PTR_TO_SOCKET, /* returns a pointer to a socket */ RET_PTR_TO_TCP_SOCK, /* returns a pointer to a tcp_sock */ - RET_PTR_TO_MPTCP_SOCK, /* returns a pointer to mptcp_sock */ RET_PTR_TO_SOCK_COMMON, /* returns a pointer to a sock_common */ RET_PTR_TO_ALLOC_MEM, /* returns a pointer to dynamically allocated memo= ry */ RET_PTR_TO_MEM_OR_BTF_ID, /* returns a pointer to a valid memory or a btf= _id */ @@ -418,7 +417,6 @@ enum bpf_return_type { RET_PTR_TO_MAP_VALUE_OR_NULL =3D PTR_MAYBE_NULL | RET_PTR_TO_MAP_VALUE, RET_PTR_TO_SOCKET_OR_NULL =3D PTR_MAYBE_NULL | RET_PTR_TO_SOCKET, RET_PTR_TO_TCP_SOCK_OR_NULL =3D PTR_MAYBE_NULL | RET_PTR_TO_TCP_SOCK, - RET_PTR_TO_MPTCP_SOCK_OR_NULL =3D PTR_MAYBE_NULL | RET_PTR_TO_MPTCP_SOCK, RET_PTR_TO_SOCK_COMMON_OR_NULL =3D PTR_MAYBE_NULL | RET_PTR_TO_SOCK_COMMO= N, RET_PTR_TO_ALLOC_MEM_OR_NULL =3D PTR_MAYBE_NULL | MEM_ALLOC | RET_PTR_TO_= ALLOC_MEM, RET_PTR_TO_BTF_ID_OR_NULL =3D PTR_MAYBE_NULL | RET_PTR_TO_BTF_ID, @@ -499,7 +497,6 @@ enum bpf_reg_type { PTR_TO_SOCKET, /* reg points to struct bpf_sock */ PTR_TO_SOCK_COMMON, /* reg points to sock_common */ PTR_TO_TCP_SOCK, /* reg points to struct tcp_sock */ - PTR_TO_MPTCP_SOCK, /* reg points to struct mptcp_sock */ PTR_TO_TP_BUFFER, /* reg points to a writable raw tp's buffer */ PTR_TO_XDP_SOCK, /* reg points to struct xdp_sock */ /* PTR_TO_BTF_ID points to a kernel struct that does not need @@ -528,7 +525,6 @@ enum bpf_reg_type { PTR_TO_SOCKET_OR_NULL =3D PTR_MAYBE_NULL | PTR_TO_SOCKET, PTR_TO_SOCK_COMMON_OR_NULL =3D PTR_MAYBE_NULL | PTR_TO_SOCK_COMMON, PTR_TO_TCP_SOCK_OR_NULL =3D PTR_MAYBE_NULL | PTR_TO_TCP_SOCK, - PTR_TO_MPTCP_SOCK_OR_NULL =3D PTR_MAYBE_NULL | PTR_TO_MPTCP_SOCK, PTR_TO_BTF_ID_OR_NULL =3D PTR_MAYBE_NULL | PTR_TO_BTF_ID, =20 /* This must be the last entry. Its purpose is to ensure the enum is @@ -2221,7 +2217,6 @@ extern const struct bpf_func_proto bpf_get_local_stor= age_proto; extern const struct bpf_func_proto bpf_strtol_proto; extern const struct bpf_func_proto bpf_strtoul_proto; extern const struct bpf_func_proto bpf_tcp_sock_proto; -extern const struct bpf_func_proto bpf_mptcp_sock_proto; extern const struct bpf_func_proto bpf_jiffies64_proto; extern const struct bpf_func_proto bpf_get_ns_current_pid_tgid_proto; extern const struct bpf_func_proto bpf_event_output_data_proto; @@ -2309,7 +2304,6 @@ struct sk_reuseport_kern { u32 reuseport_id; bool bind_inany; }; - bool bpf_tcp_sock_is_valid_access(int off, int size, enum bpf_access_type = type, struct bpf_insn_access_aux *info); =20 @@ -2365,11 +2359,6 @@ bool bpf_mptcp_sock_is_valid_access(int off, int siz= e, enum bpf_access_type type, struct bpf_insn_access_aux *info); =20 -u32 bpf_mptcp_sock_convert_ctx_access(enum bpf_access_type type, - const struct bpf_insn *si, - struct bpf_insn *insn_buf, - struct bpf_prog *prog, - u32 *target_size); #else /* CONFIG_MPTCP */ static inline bool bpf_mptcp_sock_is_valid_access(int off, int size, enum bpf_access_type type, @@ -2377,15 +2366,6 @@ static inline bool bpf_mptcp_sock_is_valid_access(in= t off, int size, { return false; } - -static inline u32 bpf_mptcp_sock_convert_ctx_access(enum bpf_access_type t= ype, - const struct bpf_insn *si, - struct bpf_insn *insn_buf, - struct bpf_prog *prog, - u32 *target_size) -{ - return 0; -} #endif /* CONFIG_MPTCP */ =20 enum bpf_text_poke_type { diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 1bb1b5d0419d..d7473fee247c 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -430,7 +430,6 @@ static bool type_is_sk_pointer(enum bpf_reg_type type) return type =3D=3D PTR_TO_SOCKET || type =3D=3D PTR_TO_SOCK_COMMON || type =3D=3D PTR_TO_TCP_SOCK || - type =3D=3D PTR_TO_MPTCP_SOCK || type =3D=3D PTR_TO_XDP_SOCK; } =20 @@ -438,7 +437,6 @@ static bool reg_type_not_null(enum bpf_reg_type type) { return type =3D=3D PTR_TO_SOCKET || type =3D=3D PTR_TO_TCP_SOCK || - type =3D=3D PTR_TO_MPTCP_SOCK || type =3D=3D PTR_TO_MAP_VALUE || type =3D=3D PTR_TO_MAP_KEY || type =3D=3D PTR_TO_SOCK_COMMON; @@ -454,7 +452,6 @@ static bool reg_type_may_be_refcounted_or_null(enum bpf= _reg_type type) { return base_type(type) =3D=3D PTR_TO_SOCKET || base_type(type) =3D=3D PTR_TO_TCP_SOCK || - base_type(type) =3D=3D PTR_TO_MPTCP_SOCK || base_type(type) =3D=3D PTR_TO_MEM || base_type(type) =3D=3D PTR_TO_BTF_ID; } @@ -554,7 +551,6 @@ static const char *reg_type_str(struct bpf_verifier_env= *env, [PTR_TO_SOCKET] =3D "sock", [PTR_TO_SOCK_COMMON] =3D "sock_common", [PTR_TO_TCP_SOCK] =3D "tcp_sock", - [PTR_TO_MPTCP_SOCK] =3D "mptcp_sock", [PTR_TO_TP_BUFFER] =3D "tp_buffer", [PTR_TO_XDP_SOCK] =3D "xdp_sock", [PTR_TO_BTF_ID] =3D "ptr_", @@ -2778,7 +2774,6 @@ static bool is_spillable_regtype(enum bpf_reg_type ty= pe) case PTR_TO_SOCKET: case PTR_TO_SOCK_COMMON: case PTR_TO_TCP_SOCK: - case PTR_TO_MPTCP_SOCK: case PTR_TO_XDP_SOCK: case PTR_TO_BTF_ID: case PTR_TO_BUF: @@ -3671,9 +3666,6 @@ static int check_sock_access(struct bpf_verifier_env = *env, int insn_idx, case PTR_TO_TCP_SOCK: valid =3D bpf_tcp_sock_is_valid_access(off, size, t, &info); break; - case PTR_TO_MPTCP_SOCK: - valid =3D bpf_mptcp_sock_is_valid_access(off, size, t, &info); - break; case PTR_TO_XDP_SOCK: valid =3D bpf_xdp_sock_is_valid_access(off, size, t, &info); break; @@ -3830,9 +3822,6 @@ static int check_ptr_alignment(struct bpf_verifier_en= v *env, case PTR_TO_TCP_SOCK: pointer_desc =3D "tcp_sock "; break; - case PTR_TO_MPTCP_SOCK: - pointer_desc =3D "mptcp_sock "; - break; case PTR_TO_XDP_SOCK: pointer_desc =3D "xdp_sock "; break; @@ -6762,9 +6751,6 @@ static int check_helper_call(struct bpf_verifier_env = *env, struct bpf_insn *insn } else if (base_type(ret_type) =3D=3D RET_PTR_TO_TCP_SOCK) { mark_reg_known_zero(env, regs, BPF_REG_0); regs[BPF_REG_0].type =3D PTR_TO_TCP_SOCK | ret_flag; - } else if (base_type(ret_type) =3D=3D RET_PTR_TO_MPTCP_SOCK) { - mark_reg_known_zero(env, regs, BPF_REG_0); - regs[BPF_REG_0].type =3D PTR_TO_MPTCP_SOCK | ret_flag; } else if (base_type(ret_type) =3D=3D RET_PTR_TO_ALLOC_MEM) { mark_reg_known_zero(env, regs, BPF_REG_0); regs[BPF_REG_0].type =3D PTR_TO_MEM | ret_flag; @@ -7479,7 +7465,6 @@ static int adjust_ptr_min_max_vals(struct bpf_verifie= r_env *env, case PTR_TO_SOCKET: case PTR_TO_SOCK_COMMON: case PTR_TO_TCP_SOCK: - case PTR_TO_MPTCP_SOCK: case PTR_TO_XDP_SOCK: verbose(env, "R%d pointer arithmetic on %s prohibited\n", dst, reg_type_str(env, ptr_reg->type)); @@ -10854,7 +10839,6 @@ static bool regsafe(struct bpf_verifier_env *env, s= truct bpf_reg_state *rold, case PTR_TO_SOCKET: case PTR_TO_SOCK_COMMON: case PTR_TO_TCP_SOCK: - case PTR_TO_MPTCP_SOCK: case PTR_TO_XDP_SOCK: /* Only valid matches are exact, which memcmp() above * would have accepted @@ -11385,7 +11369,6 @@ static bool reg_type_mismatch_ok(enum bpf_reg_type = type) case PTR_TO_SOCKET: case PTR_TO_SOCK_COMMON: case PTR_TO_TCP_SOCK: - case PTR_TO_MPTCP_SOCK: case PTR_TO_XDP_SOCK: case PTR_TO_BTF_ID: return false; @@ -12810,9 +12793,6 @@ static int convert_ctx_accesses(struct bpf_verifier= _env *env) case PTR_TO_TCP_SOCK: convert_ctx_access =3D bpf_tcp_sock_convert_ctx_access; break; - case PTR_TO_MPTCP_SOCK: - convert_ctx_access =3D bpf_mptcp_sock_convert_ctx_access; - break; case PTR_TO_XDP_SOCK: convert_ctx_access =3D bpf_xdp_sock_convert_ctx_access; break; diff --git a/net/core/filter.c b/net/core/filter.c index a07b28997ad3..f64454722a7e 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -7850,10 +7850,6 @@ sock_ops_func_proto(enum bpf_func_id func_id, const = struct bpf_prog *prog) case BPF_FUNC_tcp_sock: return &bpf_tcp_sock_proto; #endif /* CONFIG_INET */ -#ifdef CONFIG_MPTCP - case BPF_FUNC_mptcp_sock: - return &bpf_mptcp_sock_proto; -#endif /* CONFIG_MPTCP */ default: return bpf_sk_base_func_proto(func_id); } diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c index 5332469fbb28..2e42a95d1206 100644 --- a/net/mptcp/bpf.c +++ b/net/mptcp/bpf.c @@ -25,48 +25,3 @@ bool bpf_mptcp_sock_is_valid_access(int off, int size, e= num bpf_access_type type return size =3D=3D sizeof(__u32); } } - -u32 bpf_mptcp_sock_convert_ctx_access(enum bpf_access_type type, - const struct bpf_insn *si, - struct bpf_insn *insn_buf, - struct bpf_prog *prog, u32 *target_size) -{ - struct bpf_insn *insn =3D insn_buf; - -#define BPF_MPTCP_SOCK_GET_COMMON(FIELD) \ - do { \ - BUILD_BUG_ON(sizeof_field(struct mptcp_sock, FIELD) > \ - sizeof_field(struct bpf_mptcp_sock, FIELD)); \ - *insn++ =3D BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct mptcp_sock, FIELD), \ - si->dst_reg, si->src_reg, \ - offsetof(struct mptcp_sock, FIELD)); \ - } while (0) - - if (insn > insn_buf) - return insn - insn_buf; - - switch (si->off) { - case offsetof(struct bpf_mptcp_sock, token): - BPF_MPTCP_SOCK_GET_COMMON(token); - break; - } - - return insn - insn_buf; -} - -BPF_CALL_1(bpf_mptcp_sock, struct sock *, sk) -{ - if (sk_fullsock(sk) && sk->sk_protocol =3D=3D IPPROTO_TCP && sk_is_mptcp(= sk)) { - struct mptcp_subflow_context *mptcp_sfc =3D mptcp_subflow_ctx(sk); - - return (unsigned long)mptcp_sfc->conn; - } - return (unsigned long)NULL; -} - -const struct bpf_func_proto bpf_mptcp_sock_proto =3D { - .func =3D bpf_mptcp_sock, - .gpl_only =3D false, - .ret_type =3D RET_PTR_TO_MPTCP_SOCK_OR_NULL, - .arg1_type =3D ARG_PTR_TO_SOCK_COMMON, -}; --=20 2.34.1 From nobody Thu May 2 07:13:56 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:bd2:0:0:0:0 with SMTP id g18csp704756jad; Thu, 3 Mar 2022 06:48:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJzuaJ+2Eax3m6x2XfaMJhcXAKVJ7cfgjoyxBWCoOCMWHw0Lf2vWnVM6qiRJrNqAiHgctgc5 X-Received: by 2002:ad4:5883:0:b0:432:b007:962b with SMTP id dz3-20020ad45883000000b00432b007962bmr23214409qvb.55.1646318911194; Thu, 03 Mar 2022 06:48:31 -0800 (PST) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id dn13-20020a056214094d00b0042d095d5cedsi585413qvb.248.2022.03.03.06.48.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Mar 2022 06:48:31 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4076-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) client-ip=147.75.197.195; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=lcjK2+9p; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4076-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4076-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id DF7F81C0D95 for ; Thu, 3 Mar 2022 14:48:30 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A82B866BE; Thu, 3 Mar 2022 14:48:29 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DB0F87E for ; Thu, 3 Mar 2022 14:48:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646318906; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=idkAu/GV1XBEd0USUsg0S8la7TmFGY5C2bHtnQ+kaPE=; b=lcjK2+9pq9eqqufIpHK/XOjEOtqNIKO2nFbDh9m0zB0V7BGFISgrgRFB6VjPdZXFAIJCSm N42R2CwNDI8jDW1FoB+616Ke+bUNJbzsvKkLHhvvImgXdpTMixWcQ3Qo/AcKdgWhx9nVOd TfONSi65vteUwT+qqYZxeWk7QRqm1eo= Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2059.outbound.protection.outlook.com [104.47.8.59]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-30-G67zoQJ9NUK8m0wUR1i9Tg-1; Thu, 03 Mar 2022 15:48:25 +0100 X-MC-Unique: G67zoQJ9NUK8m0wUR1i9Tg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VjXQsDZUW4AFlzzhLdQLnbEa3cXVF1pkX80zuTnD2RUZsrjssZea56bhJgasTNGMRCnin49i/E/mpir2gogncnCmalN+qzRGifZdoDAvJcSbh3I0M/wAQeL7F1jxt/ZaFnpC1RXxmFVM712EA97f4hmNLINCM7APEGjSQnbh62XfS+kqsEThdGV3Orym5nykw6cyU5YzcRjTQFIrYLev36xh1arlj+G9Ennr1ikR4tBk+b3Oygm2lZxFzuiSt1WVqARaYD/1YNoRjnV8T0+8HEctsoZmDyf8IeJELkEfxYUiApbe+IlxsguLlUls1Stft7yBfbkX86jIt0FbJVDO7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=V4EgAF6UvYKVHxMZRziV2k6hq2UZZeO8tPU0AxcFniQ=; b=D/GG4euoh4IMR5mmS5ez+6w4PeJBXu1m2XhE42xJk5yQL3mmWCA978qt3lc00Tt0u6VagCa0w3JB3NyEDA5wsljdhqX0sSlssGbH9l+NTmFG7kFdHjbJBgKxSNKIx9f695wrcEEZN58g/Z40ir5CvV6q5M5feiOJjg8/7AW9ifV2IqBQCyU0VFci5wvAH6VqV94R7gKo9mL5fdnxHrprSxs2RjO9MkLaar6B0s4vM1uOHFWk6QIy3iBUyds6dycpNFPWniHsQ6L6FjYZ4MS+pMnbHxoftCLM4J3Y1STFwpSdV5PhJPuamFeQRLGjJKn1N7+pY9l7HFej5xVWq9MJ+Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by DBBPR04MB6218.eurprd04.prod.outlook.com (2603:10a6:10:d0::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.14; Thu, 3 Mar 2022 14:48:24 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%5]) with mapi id 15.20.5017.027; Thu, 3 Mar 2022 14:48:24 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 2/3] bpf: implement bpf_mptcp_sock() Date: Thu, 3 Mar 2022 22:47:59 +0800 Message-ID: <35863a093e11972db811c4839dd04c97f463c802.1646318613.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2P15301CA0014.APCP153.PROD.OUTLOOK.COM (2603:1096:202:1::24) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f84498cd-d28b-43ab-154c-08d9fd24de47 X-MS-TrafficTypeDiagnostic: DBBPR04MB6218:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vEWAY3WXrIUChm9twV7IpxJwekR28xXqedKwCUdJbs8kz/myaCR53E4k7mxFzaK7rcOKY+detj6Xchcor+bK70LRtm94E1Cm7N1jHq5NzUPWYhHyXK3WK16tH6IsDbA1I3pOGI/njR3992HWjkh8waQexQJiWJGL5//BiC5NaW0oGcvbwWABsa51IKmHM/pRfgGMI2HKRFGDU1FPnHxf7uoSRfbmydXQpdRehj9jt697x44BpZSn+7yuxOsyxne265CplcZl7GNIRGN0vL1dr8a5TEGfO/yIkgc2nor+xE1AViACTpAMQzTBkh3pY4Om6iO0+SB5kaUFpJVoCoccpISyZei98oWvqmOEkYHOmUvaW9KLi7gBVbpB64LtPpqZThZgLq7twoyYNkOCz7e3no1kbijwxn4J9v5gWODUHbexh1+c6o3hwQ6kFgTZNK1wQwWmqJOYx7dw+HXyxnRluz8ifzLdw+a85D+vbWG7lFLx7n/f1d0jr8KS5HVHpoFhuAJVgephFEf2UB/R0kkekLONBqQowftz6DS8Zcf3+dF7o8g+GKdwdZt03OyLh7y0xXaMt4uasZ3WVeCo/Y/IZP1vG0+CQ2fC0Fek5liOIDfcKcxAV2A0zLoWyQdGH65rxoicFX7YhjQ80OZtu7Coi3cU4xslPuiySW2rWGSOTshNLmod0AWYYuW8bpzNdC2KDrTMq8rWjjuXDVmx8R41IA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(2906002)(86362001)(8936002)(5660300002)(38100700002)(26005)(44832011)(186003)(2616005)(107886003)(6916009)(6506007)(6512007)(6666004)(508600001)(6486002)(36756003)(66476007)(66556008)(66946007)(4326008)(8676002)(83380400001)(316002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cInr6xupbqid8/j52EeWNo3wUgLBKjZReEOxZVVaEResBxIKxwZUwp4PjiEw?= =?us-ascii?Q?pEFQG/AU8+0ix5DEBv1R/b6Q7GOz3x94c7J07OeoQJfHiLDPRheoD3H0UaHY?= =?us-ascii?Q?VvJAspzwXYp3H/VTf9gzx+OrOWLHrBpqGP5oRn5tbeuoYg5qxjGoIzTNNlC5?= =?us-ascii?Q?0GN83kLwhGSq6BFyz3SpB1TIrbbY5AdwD9AALsSZx/DSjYjSlpE0fqNPsT+V?= =?us-ascii?Q?Uhcaka1OSuVfDLI0QW+4RXmXGM8+XeatGRV72E9XYnmu67lkQmzjJCsKPynF?= =?us-ascii?Q?olYiwj9/knacfN74pvduLaUOI44NGECcjt5ku6/vfPcfsGyCBJFzbJE1YIr+?= =?us-ascii?Q?yQ5nMnIMxFQAktFov6OKgZkdPvmB7yI92RDy2nO7jLo6+aWWQPovP1cc0RPe?= =?us-ascii?Q?d+OM1Y4U9WtFlzmtwluj6RNy52hnGU61gamTUdQT2MNUa/TL/rIMK/UKuV2C?= =?us-ascii?Q?UN5vw+KrcQG4b3/ZTDokNYtwsCp57hVQ+zJATIDdFqbz2g1uwzkGdP0fI3qH?= =?us-ascii?Q?62LdqBNAIsqk1sR3f6QNRZ7A/8DG8G3ZLEpa1LNHuDQH4sPMejljyaqRNx6N?= =?us-ascii?Q?UIymIw47aaMn5LpTxE8MDKvQeTXRwZKVBYa8cOafsefiZDE1ecfIn5H9NT+k?= =?us-ascii?Q?GrLa5yxJ3FI2L2n71Um4CKGP0ca9rR8ubSNY1AZF1SnjarPOQBg0S3dhVi1m?= =?us-ascii?Q?O2b+y9hjmAWQ7nq2f4GqC7qE964BCi0D2SeCJuZOKYW8QZZF2WHJew56scZc?= =?us-ascii?Q?odhQvrP5j14Xs2SaIkgWB3O6jU7AdRc7mmHJa7CVYUGQ7/dj/qU/gSCw/lcM?= =?us-ascii?Q?TLX2cphjjfCn7Qy9iV1DVNMUOF2gJKpeoFexg5vlzqlXEN2wcZEJsQtuEols?= =?us-ascii?Q?ldmtBe2nPYnvmUaGbqwigvw2ibNY99F4EacWBPCWC4v38iQHndIeWONdXTrH?= =?us-ascii?Q?N6Bavp7BtAxVhMZgIN7kVLg/LsNUK+SzwKFV3WbvL86OWWyANREpber8RSQJ?= =?us-ascii?Q?nfbDeA6FUgj6h2MpRlvvXZgC8suCyNGJR5+PLMBo9kzdqDjNSBn3n2cs7Jpe?= =?us-ascii?Q?y0ui2qAPBPuWITFVPqzBn+uIZamoulQoealYKt8mDsoTxwuNL2NwC7dq2d8L?= =?us-ascii?Q?5O8Q8Z6NY9Z62x4V4nNuIgu0bS3/vfNKq1k/46WJHNRWiw6GcK2MGI8Ahal8?= =?us-ascii?Q?9COhLKuEqHDqx1DPWAS4a7M9Rquo1X0iPmKM9gwvzwa8JTNJvKAJ//uWTYnc?= =?us-ascii?Q?DoOYE8HR4yo91Ys8tXPkEIKWWL4iP5GJLzUXu7QsGBc9OI68AnTLOMZcbL9O?= =?us-ascii?Q?sYRtRyGjNnkdO0PE+GR0efTB9fvZ20FMRyM9Si+3gUd+Y70emPIP5MqLWbDh?= =?us-ascii?Q?4X25zZ2qwIy4MkUb0BQhLYt6kOYG18KKlzKkHB7wnxIEbNMj9lQTD7wNbd4s?= =?us-ascii?Q?6uLoK6D242x6opyO1VbAoAmBeUegnwa0ykBdzGda3SND/weQcrzh0f7okWmw?= =?us-ascii?Q?NP0TyZmC3HNmV6MGjn9I0O5gLPtePgBA5Jus/CW/NLejp+SmE366cu5pMxNv?= =?us-ascii?Q?aLnH+0eoNgZiJN+LdT8iYfv5eXtGpoaBcU6hsZNlL+Px/Het18cIdSMorcAV?= =?us-ascii?Q?E6uUWF/4PUC8CCZ9Wfx2yv0=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: f84498cd-d28b-43ab-154c-08d9fd24de47 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2022 14:48:24.1204 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Y2ouYJoHFzrF4HniYc0KyVIibyMwyql2g+GvOjcDBVdkov4dFtDpw0LyGMOeHttL4pmsvyZzX3l1EooZUH8z5Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB6218 Content-Type: text/plain; charset="utf-8" This patch implemented the function bpf_mptcp_sock(). Defined a new bpf_id BTF_SOCK_TYPE_MPTCP, and added a new helper bpf_mptcp_sock_from_subflow() to get struct bpf_mptcp_sock from a given subflow socket. Signed-off-by: Geliang Tang --- include/linux/bpf.h | 6 ++++++ include/linux/btf_ids.h | 3 ++- net/core/filter.c | 17 +++++++++++++++++ net/mptcp/bpf.c | 15 +++++++++++++++ 4 files changed, 40 insertions(+), 1 deletion(-) diff --git a/include/linux/bpf.h b/include/linux/bpf.h index 0ae57df2f226..08616218e305 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -2359,6 +2359,7 @@ bool bpf_mptcp_sock_is_valid_access(int off, int size, enum bpf_access_type type, struct bpf_insn_access_aux *info); =20 +struct bpf_mptcp_sock *bpf_mptcp_sock_from_subflow(struct sock *sk); #else /* CONFIG_MPTCP */ static inline bool bpf_mptcp_sock_is_valid_access(int off, int size, enum bpf_access_type type, @@ -2366,6 +2367,11 @@ static inline bool bpf_mptcp_sock_is_valid_access(in= t off, int size, { return false; } + +static struct bpf_mptcp_sock *bpf_mptcp_sock_from_subflow(struct sock *sk) +{ + return NULL; +} #endif /* CONFIG_MPTCP */ =20 enum bpf_text_poke_type { diff --git a/include/linux/btf_ids.h b/include/linux/btf_ids.h index bc5d9cc34e4c..335a19092368 100644 --- a/include/linux/btf_ids.h +++ b/include/linux/btf_ids.h @@ -178,7 +178,8 @@ extern struct btf_id_set name; BTF_SOCK_TYPE(BTF_SOCK_TYPE_TCP6, tcp6_sock) \ BTF_SOCK_TYPE(BTF_SOCK_TYPE_UDP, udp_sock) \ BTF_SOCK_TYPE(BTF_SOCK_TYPE_UDP6, udp6_sock) \ - BTF_SOCK_TYPE(BTF_SOCK_TYPE_UNIX, unix_sock) + BTF_SOCK_TYPE(BTF_SOCK_TYPE_UNIX, unix_sock) \ + BTF_SOCK_TYPE(BTF_SOCK_TYPE_MPTCP, mptcp_sock) =20 enum { #define BTF_SOCK_TYPE(name, str) name, diff --git a/net/core/filter.c b/net/core/filter.c index f64454722a7e..83ed8db32c79 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -7395,6 +7395,19 @@ static const struct bpf_func_proto bpf_sock_ops_rese= rve_hdr_opt_proto =3D { .arg3_type =3D ARG_ANYTHING, }; =20 +BPF_CALL_1(bpf_mptcp_sock, struct sock *, sk) +{ + return (unsigned long)bpf_mptcp_sock_from_subflow(sk); +} + +static const struct bpf_func_proto bpf_mptcp_sock_proto =3D { + .func =3D bpf_mptcp_sock, + .gpl_only =3D false, + .ret_type =3D RET_PTR_TO_BTF_ID_OR_NULL, + .arg1_type =3D ARG_PTR_TO_SOCK_COMMON, + .ret_btf_id =3D &btf_sock_ids[BTF_SOCK_TYPE_MPTCP], +}; + #endif /* CONFIG_INET */ =20 bool bpf_helper_changes_pkt_data(void *func) @@ -7850,6 +7863,10 @@ sock_ops_func_proto(enum bpf_func_id func_id, const = struct bpf_prog *prog) case BPF_FUNC_tcp_sock: return &bpf_tcp_sock_proto; #endif /* CONFIG_INET */ +#ifdef CONFIG_MPTCP + case BPF_FUNC_mptcp_sock: + return &bpf_mptcp_sock_proto; +#endif /* CONFIG_MPTCP */ default: return bpf_sk_base_func_proto(func_id); } diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c index 2e42a95d1206..e3213818c45b 100644 --- a/net/mptcp/bpf.c +++ b/net/mptcp/bpf.c @@ -25,3 +25,18 @@ bool bpf_mptcp_sock_is_valid_access(int off, int size, e= num bpf_access_type type return size =3D=3D sizeof(__u32); } } + +struct bpf_mptcp_sock *bpf_mptcp_sock_from_subflow(struct sock *sk) +{ + if (sk && sk_fullsock(sk) && sk->sk_protocol =3D=3D IPPROTO_TCP && sk_is_= mptcp(sk)) { + struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); + struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); + struct bpf_mptcp_sock *bpf_msk; + + bpf_msk =3D (struct bpf_mptcp_sock *)subflow->conn; + bpf_msk->token =3D msk->token; + return bpf_msk; + } + return NULL; +} +EXPORT_SYMBOL(bpf_mptcp_sock_from_subflow); --=20 2.34.1 From nobody Thu May 2 07:13:56 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:bd2:0:0:0:0 with SMTP id g18csp704822jad; Thu, 3 Mar 2022 06:48:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJxe0hu3r1UBJsBFjbSwLVyPrStkbPegSdml4sK9Z1GeOtyYOobzU4AOuKEYS2AZD88DgmE4 X-Received: by 2002:ac8:7e93:0:b0:2e0:463f:924e with SMTP id w19-20020ac87e93000000b002e0463f924emr1831365qtj.378.1646318917707; Thu, 03 Mar 2022 06:48:37 -0800 (PST) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id e11-20020a0562141d0b00b0043522627aacsi719304qvd.207.2022.03.03.06.48.37 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Mar 2022 06:48:37 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4077-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) client-ip=2604:1380:1:3600::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=jBjOzClI; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4077-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4077-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id 5C6D11C0C5F for ; Thu, 3 Mar 2022 14:48:37 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 50E2866C0; Thu, 3 Mar 2022 14:48:36 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A3D3A7E for ; Thu, 3 Mar 2022 14:48:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646318912; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=sErNYKMOsAhQOEfUf4veJZY5Fiaeha/B21DPUzp+9vQ=; b=jBjOzClIyoVeKnaKaCHuCmWRC+GIZka/UBvCuoTE1k8wv/DHLJiEcHBmIAGh3+tIjF/MWO sz+22SBxBNSVSlHgF/R16FpaYyOtzLvrr7qIi8IjEeAbZadFdj9bFqbJJhuhTdOI0kXZzD +z9yBasUDFOnmIcyIgkgX8NYd7Lqa0U= Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2053.outbound.protection.outlook.com [104.47.8.53]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-12-V0HobEB3PuW6oUMKh35akw-1; Thu, 03 Mar 2022 15:48:31 +0100 X-MC-Unique: V0HobEB3PuW6oUMKh35akw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IReMNlp/jCS4WVpweTSjAflOZHofL4jBFiH47MiJGH2Pw74AQYEHrMwE/huD/1+o0JZV/VRdYN+DOKJ/0KV207RG7WjINeVi3DAa2q5v+3vqRKng7CVHtQu45ej0cWURG73OvomhP5sVCxSx5MUVXZ2ydbVUUfGzj71NvghGxf9SSXhx6XhE9mvmnScLVvmryKUkyk//UmvPpGOaeBIHl7fBWzgMaqkURvL5wPVMWH4GwSFEzfWGmIEyOg1kbkl0OH5kWJPipkY6LXbkgMfTZPKH6nueeYoW0Qsi2ph74dNeXbn+9TdlZsY2VIDBinoj068bfOqMdYYAdGbNMKnXaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=UtFDs3NnhzQ2WGQ4SrO0ZYogrqG+bENXapr1ZNfRsqA=; b=nUkedROMvGiVNYN2lm1v5aKQO8xlcfeIEeq/YCEjaCHBWzB0WN4iS778u+Clk3woMasXL5AlZ2TvP8be3VSulREIqacuZgt4mH9baHD4gHwmW1amIT9ELeEu3qa3KG7Q4Q04OnpUQ0iaHq8lUcZvRFCoIdJhNGZAVJojVNRdJJdEcC5ctsrF87VWa3i0glwjWEQ4xBLmAHvo+LurBmXE1MKkYbEeLTcjTTI8w0Fqhq3+qpGi4WYKZ6km8GbNaozNzPR8GHpqSJN8UA5yuftls2IOq9nN5asnoxS2i7/ZBwvTVZWw15boCQV16u1Ne9dIBJAnkiLL4a48YcZEx88WHw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by DBBPR04MB6218.eurprd04.prod.outlook.com (2603:10a6:10:d0::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.14; Thu, 3 Mar 2022 14:48:30 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%5]) with mapi id 15.20.5017.027; Thu, 3 Mar 2022 14:48:30 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 3/3] selftests: bpf: exercise bpf_mptcp_sock() Date: Thu, 3 Mar 2022 22:48:00 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0139.apcprd02.prod.outlook.com (2603:1096:202:16::23) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 41ab80b4-f86b-4798-97c0-08d9fd24e22b X-MS-TrafficTypeDiagnostic: DBBPR04MB6218:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OWLnvzywbeV7ArielKV5NVYaZGBkvczMf91EcHEhLpbmGc2Vh8aVokp8fIREqZXrDft57emu/ER/zUjJIM15w0hado+8gpa0iqBDDksL1tW2tt3xGvINczZ+nje7MmXwldg3J/MJS1rYKUQyOFzFhY3dcnrI84humpP/pZJ1lkjcnXSjuZrlnttfOg0voNlpeQMxVLQYXHPd/mSk55PtAsx5DzP19dFXFBiUor1KdhqsLqC6gYAPF0srHSL1ovePBvopSFbIl9rfeh8NA2ejtdCi/vCZbK187ZQJgqWKnA6j8atPJhWlHAQZd12juSS/G40I9EMpsEtVV7UJJyCu2f72W9++NRYmP5vVpmdD/Xa/ffDwanwk8zEaURDDXQ/pta9D0toA9Itdi3KR04wt1rAVfbTErBpj3Ex2kBOJIgEHLKXDHPNfhg8DFBL7McuE4M/kqMPHQCmk1jES8/SU9E6JJgpZDTdiV2ISb8Jn4nwnhNhzE0UP2ZnkWLx2KbCJSUaa0+gwHXknPWjSuDciwZZVyN28g/P2aP1U21dPlTNBfOz9E8jGMbpIAbZFYpcTcZaYFs8hQxIZkJrLHuA0XuA8tIoO7+O0ZFv14CT7GrSD5BBt89JdFaeTOOUr9dhZUedqbmxhVgVIM1/d5PGxHkfOu4nUE7XQBuQrYD0e8xg4LXSGngUWyE0zGwESXPy/ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(2906002)(86362001)(8936002)(5660300002)(38100700002)(26005)(44832011)(186003)(2616005)(107886003)(6916009)(6506007)(6512007)(6666004)(508600001)(6486002)(36756003)(66476007)(66556008)(66946007)(4326008)(8676002)(83380400001)(316002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5wdL0cOsY2h+pIbcDfcbQ9BHXGVUcvkFcW6jKvXLTpApgDjig2swSeD/dwRm?= =?us-ascii?Q?0YLSKzkoGIsgRkWw3wvRCRkzNKM8RQdGZkjdPT+FurRffr3FYsSx5sqlAmPB?= =?us-ascii?Q?8RJVxncMvimTjkzmILgNCooZe6yhtG2Wgg/dp26VBsILFVBnNVH8MRVrqm3A?= =?us-ascii?Q?dqd0QYHNgAfhX2qX7DOIaHvpWKBpxWaO2JRbPBm3/0pbezoW7rf/IWMzj+Nd?= =?us-ascii?Q?otIzACqJl30paurI9BxFGwEo056U12MxwnP6TRE8OzYJdlAu4JAf0sYHSElv?= =?us-ascii?Q?7cN+32lk8ApxAXDXaQxvTfVteIWcT6aK+AlbhV4lA/gWEHIdOHJTngb8Wtkw?= =?us-ascii?Q?AnpEQwKbDdXfth4RiJh8tjB1sRte8kBys/x1SfW1gjlRSpQzPjfBqkTQvhSz?= =?us-ascii?Q?2LZjgN0NU+bLdtgPcmt8Vd0QRTXiqYnZxi7+LZpQVzto2xB6E5kKI6Xb0RKI?= =?us-ascii?Q?Xa2swebGMqGa9n/8m8PuvXNmJZhzAhp4LqQxY+o7BT7m/j76ZeNQyMwef5kF?= =?us-ascii?Q?96jVlhfk8PLpk9/fiGHv0+SVGReT1+mxvUr34+F+DsoO/oC7EkZaBlfIJcnd?= =?us-ascii?Q?4Hii4lBCLpcd6Jl0EUJsL8CfuOvkc+RP7ozsUNHNhBUhTbZGVsWSt5OhyKyq?= =?us-ascii?Q?YGZcX6hseyJUN0+9ZOrAwKtKmdDdDBnBYyDVgb1AOlStgV6XY7suH0vxagwm?= =?us-ascii?Q?dSv1mB4VSu5ufwfYebvODP+6oTRL6SGuukRI+hSB7sM1iVe5ZEdwKf8l9QrE?= =?us-ascii?Q?OhxtDM8BxLLqYm8ztlkSCtQMOvarNtTvFaAlnHdOIe98Vbxwc54eCgCcSxMH?= =?us-ascii?Q?6RAVOk1wZHEwnWCJ3WxQ0L5Ks57u6alxes9PRbuHOxzvawR9Ytexhgj13kVr?= =?us-ascii?Q?v+oMEUk63rZFQQxmFqHDxLHuET6PPD8CrfWmV8JRycPTMPQrHbNeAGWSX7F8?= =?us-ascii?Q?n9HXu5nU/UCzgatc/xx9mVMJJ1vFvNCwgTfA2/F8+056gP87/LrYKHA0DVNX?= =?us-ascii?Q?ObIGoJe87R3bwvpfFguIMuipCUJS734tAMhgna21AXq7hqyWQEw+ZP4WxhBD?= =?us-ascii?Q?KnbUx3kDjATBIk15EyF3z/OiHWdYvxpBPm5Pk4R99BdRr4emXSQoUawg2zLi?= =?us-ascii?Q?1TrW05zbChx92Xna34DEtVVHrIzrSM/BhLLDKnpSaW4S4oHbzN+KeNv1cLht?= =?us-ascii?Q?BEhel5WbBaAXhPWSedDBsBbqCFbocgJON3Q6cPeOgwQkBKJSYeG34zG87spa?= =?us-ascii?Q?wFG2OW9xvUryFJ3y5u/QoJ7cVwyEKM3b2LXDIPaaiXbNE8dfJhvn3FPk9L+B?= =?us-ascii?Q?ZLe9C1JL+ropSHhhGuNmmDXEKEbhQv9AbVP8pHThUsMaQP6bgMuT8C31rPZ8?= =?us-ascii?Q?HLcP01K+iLK/H2wHoC2AlYmYhaYVIEQ6AdvTk1eWZkIk7GIfgHXKSjLa8+S+?= =?us-ascii?Q?eEUlC/0fykZzNWA/BX021HliFf5UYjkwxXD+v1NGpo/JBCZtdNBuHSX6XVPj?= =?us-ascii?Q?DzAjXY+0IiTzI6s0AF8Qr3q2APlRkk8MGzdLgDwtSkcaiEPHZRmWv9fttQMG?= =?us-ascii?Q?b5HZCSNrX2oD/pH3Mm1t7Xdt5zyQPmEseqtVROAved9J/zC/PIg+GK4YKekn?= =?us-ascii?Q?iNDf7eflr/Oh+zidN8TEMEg=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 41ab80b4-f86b-4798-97c0-08d9fd24e22b X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2022 14:48:30.8230 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: GYY4hTyRqr3uruWN9ngkA7EISERFPC4vE/Fqra3qqTtRyixeWkMVd3imVXPFFg5q29YwC2AiWTpTo6XmbOcsMQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB6218 Content-Type: text/plain; charset="utf-8" This patch extended the MPTCP test base, to exercise bpf_mptcp_sock() from C test as Alexei suggested in v3. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 25 ++++++++++++++++--- tools/testing/selftests/bpf/progs/mptcp.c | 22 ++++++++++++++++ 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 04aef0f147dc..5682afdf468d 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -6,9 +6,11 @@ struct mptcp_storage { __u32 invoked; __u32 is_mptcp; + __u32 token; }; =20 -static int verify_sk(int map_fd, int client_fd, const char *msg, __u32 is_= mptcp) +static int verify_sk(int map_fd, int client_fd, const char *msg, + __u32 is_mptcp, __u32 token) { int err =3D 0, cfd =3D client_fd; struct mptcp_storage val; @@ -19,8 +21,23 @@ static int verify_sk(int map_fd, int client_fd, const ch= ar *msg, __u32 is_mptcp) * does not trigger sockops events. * We silently pass this situation at the moment. */ - if (is_mptcp =3D=3D 1) + if (is_mptcp =3D=3D 1) { + if (token <=3D 0) + return 0; + + if (CHECK_FAIL(bpf_map_lookup_elem(map_fd, &cfd, &val) < 0)) { + perror("Failed to read socket storage"); + return -1; + } + + if (val.token <=3D 0) { + log_err("%s: unexpected bpf_mptcp_sock.token %d !=3D %d", + msg, val.token, token); + err++; + } + return 0; + } =20 if (CHECK_FAIL(bpf_map_lookup_elem(map_fd, &cfd, &val) < 0)) { perror("Failed to read socket storage"); @@ -76,8 +93,8 @@ static int run_test(int cgroup_fd, int server_fd, bool is= _mptcp) goto close_client_fd; } =20 - err +=3D is_mptcp ? verify_sk(map_fd, client_fd, "MPTCP subflow socket", = 1) : - verify_sk(map_fd, client_fd, "plain TCP socket", 0); + err +=3D is_mptcp ? verify_sk(map_fd, client_fd, "MPTCP subflow socket", = 1, 1) : + verify_sk(map_fd, client_fd, "plain TCP socket", 0, 0); =20 close_client_fd: close(client_fd); diff --git a/tools/testing/selftests/bpf/progs/mptcp.c b/tools/testing/self= tests/bpf/progs/mptcp.c index be5ee8dac2b3..faf5cbe49d70 100644 --- a/tools/testing/selftests/bpf/progs/mptcp.c +++ b/tools/testing/selftests/bpf/progs/mptcp.c @@ -8,6 +8,7 @@ __u32 _version SEC("version") =3D 1; struct mptcp_storage { __u32 invoked; __u32 is_mptcp; + __u32 token; }; =20 struct { @@ -20,6 +21,7 @@ struct { SEC("sockops") int _sockops(struct bpf_sock_ops *ctx) { + char fmt[] =3D "invoked=3D%u is_mptcp=3D%u token=3D%u\n"; struct mptcp_storage *storage; struct bpf_tcp_sock *tcp_sk; int op =3D (int)ctx->op; @@ -43,6 +45,26 @@ int _sockops(struct bpf_sock_ops *ctx) =20 storage->invoked++; storage->is_mptcp =3D tcp_sk->is_mptcp; + storage->token =3D 0; + + if (tcp_sk->is_mptcp) { + struct bpf_mptcp_sock *msk; + + msk =3D bpf_mptcp_sock(sk); + if (!msk) + return 1; + storage =3D bpf_sk_storage_get(&socket_storage_map, msk, 0, + BPF_SK_STORAGE_GET_F_CREATE); + if (!storage) + return 1; + + storage->invoked++; + storage->token =3D msk->token; + storage->is_mptcp =3D 1; + } + + bpf_trace_printk(fmt, sizeof(fmt), + storage->invoked, storage->is_mptcp, storage->token); =20 return 1; } --=20 2.34.1