From nobody Mon May 6 01:47:47 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6402:358d:0:0:0:0 with SMTP id y13csp23184edc; Thu, 3 Mar 2022 07:23:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJzaYzsj/3zYtVKbvjWKP7uimoMgwr6D0iWGiOiYskeNgckpVgsvXqa9D3yjKJWOgqsPY2uR X-Received: by 2002:a05:6214:19ed:b0:42f:f387:ff0f with SMTP id q13-20020a05621419ed00b0042ff387ff0fmr24814484qvc.83.1646320983745; Thu, 03 Mar 2022 07:23:03 -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 s22-20020a05620a29d600b00648d7e35c1bsi645304qkp.554.2022.03.03.07.23.03 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Mar 2022 07:23:03 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4080-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=GW1tGPET; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4080-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4080-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 54F921C0BB1 for ; Thu, 3 Mar 2022 15:23:03 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1460466C5; Thu, 3 Mar 2022 15:23:02 +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 D408E7E for ; Thu, 3 Mar 2022 15:22:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646320978; 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=GW1tGPETmpOZOXWiuRCgTa6D9i+2azJN/3eWl+6y2ANWIMygFtsvuZKQ/+QJOIRu9liqcx /Qc5+z2FHfH57IZH2on+OY22QgegTs5uoGnYr5Sf+lhT5hUk0wyE2SNnKB3p1fjSKVNhA6 Yf8D7PfVzW1jUE94xJt3spuQC9FTV1c= 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-37-iQt6oM0aMtqjW0vClhQ8BA-1; Thu, 03 Mar 2022 16:22:57 +0100 X-MC-Unique: iQt6oM0aMtqjW0vClhQ8BA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Lc3F+iQXBcBWDF9KkItYybaxNjrsJzNKtwXP5G5vGpERWrRHe11TNfKsAJsZ7Dn0CIqMT8ro7U8DiPHxUrtRIxHcbXvC/XKaH1HSDD1WlMbY8ejv45YW/+VSuhxZnfANpqb4VYNC/lW7AqSFpGFDveKMw/Ot9WJvUBHXvOMbH6nVhlfGI4rUKKw7gn7/F0Q55+/ba2tLnDwlbwFGEhft8a/WAa753pnUWYXldqrnIoPANsZWC6XbGOikogZAKMsydMpo+NW6ogdUseiHMWW/jk3nJsXuFyn/S9n6PGdpvSjfPYbG6HtQf1Nou2qmRvwWVJCt0x5M3Z5PQc0jYRKERQ== 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=OPFa0MCTQ/t9kswitoN7h3qadi0X3L+ZAuI7FOKJpul2o7aNq/16BoCMCW71fCJ4efarLT6+IT2dODLgWof3n0d+kTvyZLvV84PNgAFvRYB87ICDjzuUS6Uo7VwFmQ33a8TKBtL1DIZhCqOs0eBMBMywREfTTxSi9b5j5DxWOXH+MFzQSORch2g8V8dL0Zd0UNmMp+Al9MW4Y9bQRpWd0S6z2M3nAAcaMfzBUIhuvN77/TGUdY8kS9OVOq5RclAlRUokcQD6/9LTrXrYsXeqq+dEFIDFxEZaLjFkD6XPnR0GN5oQ1pMtx6ZzNKQxtQOiVr9lFQcf1vaPBqMltcp1lA== 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 VI1PR04MB3213.eurprd04.prod.outlook.com (2603:10a6:802:a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.25; Thu, 3 Mar 2022 15:22:56 +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 15:22:56 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH RESEND mptcp-next v5 1/3] Squash to "bpf: add 'bpf_mptcp_sock' structure and helper" Date: Thu, 3 Mar 2022 23:22:36 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR0302CA0013.apcprd03.prod.outlook.com (2603:1096:202::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: 3d49fa01-8f1d-4de1-09c5-08d9fd29b0f9 X-MS-TrafficTypeDiagnostic: VI1PR04MB3213: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: kd3Ywf0J1t2SLKptww6H+ZeoMeezZ1nu/Cb9hAyxB4ihEe+I6olKqiIg0TdtG+ldat6TLM3PxIIZsxtYNNTpJ6ema2m4X8Hf/ma/ap26OajQBIshoHhIwZMV3g+7GnYeMOVMobzIsvzO/Qt4xB8TIuJrCA9CpvMjZZFYiUslHKhD3Jr8UThXH+HI2jEMXSnQs0ane5qL7yRwbEaPq5Q4DefsQ6/cBsXimAXqYA6b56qBiz2m69o9w3O8EmHTWNMRyZ7oiSMHEhI8f5OWw8EbRnYk+dIPgjvRQPL4HWWW0A2FdioCxJwqR3ITlTo8qvwxUNytA95kX/KURdNXnDluVfsZNOrBxYr736CoXsV4dCju8jSivHVeSybmR/Np28juWS5xO4d2j3K4wGKFZW20GsgXjiOr7ZEztkTI41Bow1NOLTQTEJNJ9A7XFFgILmrYJlITPtt5xBcYBphiFVP4sDHRW09W6vi+2tO0iRl9CQvx6TPPqFPvyqb8F3SLaYPOGy+AFYGkf5jWEFHsqFqlfrZh5AbFC5rdyGeaMFvhMjVLUdBXAZg0e5Ugyytrl0pvaa01Eq+tOSYPJb1aRcJw2CwjMxi5//EOHPnJiZR+Z1G3Pk9JTAl3CTSjBpgrL+wyeTukAnIjqhuQE3Z/w5rZMfK3aN2/1UcJdDqRQcuyYZdf/gPQ7BIj+vuia1Vuh8jIsbuOt/LdPbdDIVpPOyryvQ== 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)(66556008)(4326008)(66946007)(2906002)(66476007)(2616005)(107886003)(6666004)(5660300002)(6506007)(8936002)(8676002)(6512007)(44832011)(316002)(86362001)(26005)(186003)(6486002)(6916009)(508600001)(83380400001)(36756003)(38100700002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4d2H4Zb/vjz32kZc3oKIV4CQ4v6qPsG+F4n0bzMhIakOgnrCv+gwZ/SR21pH?= =?us-ascii?Q?J6BU886T6DbslHjOf7YXZ9vvAOFk7HnyA/UlF1bfBXfryHFiIroEO12FOc7y?= =?us-ascii?Q?rH3tiqGs0rGAMD0MQ/KeCnFQd4cwrKlFWWnrGZbXAZ1eqRwrvq9EBL/fqkx3?= =?us-ascii?Q?KXgJMJgYXQEcVHOOi39qacMFygePmt6AlulmgOmJ/JcZcBkxotu+KuCv06AV?= =?us-ascii?Q?RLwXI2gja60xHqY6TUIkMCIgzbZDDboy2S53EjUi/6Evtb/Jh8U3Tqql8SN2?= =?us-ascii?Q?pm9Ypbx3ewqfkS1WkX7VlSmnBq+ignUGTt0WCkdApt2+4IkIMXuE28yKkXQN?= =?us-ascii?Q?gCiSFGvRarOHyAPcrunufYvnAg9KBA7R/l/uqzzc0GLt/5iEh15FXKHJHAmt?= =?us-ascii?Q?9F3kTEtkLWU/8HpFG7uCpykKwpEW8EwqqaDdYFM3s+Q27sgUWwC2KzXxw9Ao?= =?us-ascii?Q?hwzPXM++HMzJt/WFGo3edyjaPhDu9J9PgXQGUKXNQ5LV9j1neFpXGpmxNzb2?= =?us-ascii?Q?Wes6uyJXRTd7ZZNEMh2jIsVnnbQ+YiEdpmtuJ8GHSVt/+g8znFA+bDUoLvMG?= =?us-ascii?Q?gws5PlTTCZsoH1/NDTpERYevenxREz9rtY+GqOoe3Zz2LAS8aJ64H8jxT67Y?= =?us-ascii?Q?m1utLJ8+l4mYrMnSSyUE3VpA2aRyccAEhtcLnExQs/mfhTJYiTKpDRM4uVA0?= =?us-ascii?Q?noPFCBYU258cjM1DrzWTbXZUypBC9ds0/0aJwoKqfvfIn8wdioTAmogrvxbd?= =?us-ascii?Q?SzGY71wbyTjfOuoEqn7erYMdy3Kl9OlcJ4YWK2y8K3HfvyrhCmU69Z1mLdPn?= =?us-ascii?Q?8TWCZhgQ/XJSp9Vcg/4m6195ILoVV24ER1hheXxj7Uf56KoB8TERN0TKIaqS?= =?us-ascii?Q?JWdVrsMhDZ1Wi5CRR9eT02Z1F8LNUMQpgk+j9QponNp7hVD0DttrVcnx4uJn?= =?us-ascii?Q?MGX3d+goSAJDJJ8d44l4ZIsVIsOfVBk13n8+DF5zq6HndfG+jIWuBxrfz371?= =?us-ascii?Q?urjA7KLc6fABwTatOG43V3fAo/NjzMgARF2NAe0oo00mHHRFfcouHRYF+N5z?= =?us-ascii?Q?Y+V9TyNBMZXznK37p/qXxjGajbRFQlJZHmmsWeb0zSVsQadmIZlfH5zP0CA2?= =?us-ascii?Q?E3/B7N6jl2zKFToraWHQ10DMkekdnNxmixDa2WB3RJbpjFvuHitXR6Ki/AEb?= =?us-ascii?Q?COtAm3VTE/oAs4Fd7YZzHEzPbA5rZ1E6uhwVh7tFoLrkuWdpP098cZ2pYnab?= =?us-ascii?Q?mCeLDhmpQfpsqXzy8WpUp7uWaRR8xUcGbkHxKEEZ3aDaT7QlKFn98O272AxS?= =?us-ascii?Q?mumUyXvtSKsmMynPkutlGTO2hP8Q9yFJfwA25Kr86BP11xRt7g8TMxoAAlhf?= =?us-ascii?Q?MXk+czw5Omuevk/GlkbD3uGBc9kzN0/Fh1kO3A08NY0SnpJVJziJIHPzJQ7d?= =?us-ascii?Q?vXOtYBQRmWyJULRJcA6P0q3VfsNsyeL9+k2uvQoSPFlwmxSIunt0+XCCvZLV?= =?us-ascii?Q?CWWWuLzQwP3eI/05PCpKhBG0UKZwShbqKiT/nbRxSMl5r8XKhgaHPWRrIA63?= =?us-ascii?Q?pqc2QalP5vyxKhrb2UP6QXDH3haR8+/vYWrJ6QxjKPE/Z+stfyYl3lJAhO2X?= =?us-ascii?Q?yIIlAvThRV/90Qyfxg60Brs=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3d49fa01-8f1d-4de1-09c5-08d9fd29b0f9 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2022 15:22:55.9701 (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: EDGeHjSg9erw6eO2uz1IU4Z1+CA55PK9ecxU+zig++aY6giITZtj5S7JbPNaH/Ncq5ZCG3mWcIlFPSPvDASsjQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3213 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 Mon May 6 01:47:47 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6402:358d:0:0:0:0 with SMTP id y13csp23191edc; Thu, 3 Mar 2022 07:23:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJxP6O4lsG3ba4AQPL+T5fXhlFsXnX3iuMFV+guOWHLN2UOmO0aWm1xFSxsCjyigkROJ4cKK X-Received: by 2002:a17:902:f550:b0:14f:acf1:c729 with SMTP id h16-20020a170902f55000b0014facf1c729mr37118700plf.82.1646320990793; Thu, 03 Mar 2022 07:23:10 -0800 (PST) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [147.75.69.165]) by mx.google.com with ESMTPS id o7-20020a63fb07000000b00374da8c04c3si2302410pgh.422.2022.03.03.07.23.10 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Mar 2022 07:23:10 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4081-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) client-ip=147.75.69.165; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=avZvGZ7Q; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4081-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4081-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 sjc.edge.kernel.org (Postfix) with ESMTPS id EF42B3E0F4F for ; Thu, 3 Mar 2022 15:23:09 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DC0CF66C6; Thu, 3 Mar 2022 15:23:08 +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 4F6647E for ; Thu, 3 Mar 2022 15:23:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646320985; 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=WM7I/W20rlZ/WmEIHVCw3hBkcnYpvZfBnaQYYVMe6jA=; b=avZvGZ7QWKdh0tkNYASVAQG+Py2lMihQPEteoaMnZ4iZHvMwrZHVxwJxuta6dNayfCbqkF W3jiWbGFClV+TloBrmJYOELNoccQbjcTOs7R7O/SBYABsVJkdoRZylXC4flmkkmUVe/+aX PqCgxZVEwnjHfAJxDMiEJ02stmgDySk= Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2050.outbound.protection.outlook.com [104.47.14.50]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-8-xb4Hfr91Nzy-oLhchGmMGw-1; Thu, 03 Mar 2022 16:23:04 +0100 X-MC-Unique: xb4Hfr91Nzy-oLhchGmMGw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=drk0uXR93qYIfffm4pgbXkB++7PlNDzINX6I68+rWQSU3jhlrF9Ed6+Y64KqKYprHQdzdSSxhov5JfBsGJ8EqEXKIqzFAJtVbU+drdwj0ZRp8LJ9O8psD3Vi5QMb9wU7GR+sNo7C5obDkoX32yTHO7PmCr11u14pZoTbfEbGyTzqRONvQcodNAa870UwS7xBJnyteeQJrDvYiiJPTbqGzRj6AdfiFeW/ezcoLE3coWcFN7EVDqZ+BiBUhF/gHYBkwDU19du/2az8hGYL1iJsS8knycQ24gMWdFrELmr6qit2HoLwtVejztdjTfMUvDKm4Hv/quvRDNbM3lUEFjFMzA== 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=5xvHKsOxzZ9F+E+cR0eK1TFp4Hl0Uj/N1LTO8cu6RZE=; b=Ap8Ex2rjoWJ3yKrGqTBxpvPIJQMXA0VbTsNB1PYPyIGlLDWXZKLFaNpLrnT0qYVN+UzNaGjPnYjFYEbc9veT+ODyzJvFMtcyqeSdVk6LoXxVB9jgID5WD+/2C97UI/IR4eyzsPQmKju1MHQDinKkzSLT0J69uym6+BOp9YT/TOZpd9bK1W42frDNtBzZf8rUrAmj26y4yeeFMPt+xS2kJrAXCiNOnLSyNbNTnJpDQIiHU911KRh5pKF/Z5mD7h2rd+eBJwP+BKt5fGTKt3iqBdwPR4shEcnrUm1j4w2GhLg0M86o1kdLDBOpPV9XT7ksPSXZBsDxfG6chlZc4tU76g== 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 VI1PR04MB3213.eurprd04.prod.outlook.com (2603:10a6:802:a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.25; Thu, 3 Mar 2022 15:23:03 +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 15:23:03 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH RESEND mptcp-next v5 2/3] bpf: implement bpf_mptcp_sock() Date: Thu, 3 Mar 2022 23:22:37 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR04CA0056.apcprd04.prod.outlook.com (2603:1096:202:14::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: 70bc0a8f-c270-4377-d3eb-08d9fd29b548 X-MS-TrafficTypeDiagnostic: VI1PR04MB3213: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: a+6CTMpaIp7ko5O47eDalzKJ+cxYAgQNGwupJhnnAIleajcKFXKK6JC2G3lfZ/Os4HiVuZ9qshmRKYrFRKP/ArbaA83AcfJ1gdRRYk1SKZL9jG1nWyYXHylBcecc5h9ZNi9xU93VrP8a5f3x7NHfAWzHzFTJIkgcFySWK/cPzbzNnP0mCgC+oA67LQ1OmhAvkjCQH+A0GNBYSquowjkwJWyzxvrBztBasbGzb9oK1c1thhE0VNcWrk1bEYMZsE8WBELEiCszrt6RkMZJMrKlODx+Q/PceYqTDmebp8RPnpkFbH93qv8vIuESwge50nfVk6f5wyU5BN80j4Nn5QJmANs8eeP73ajaXxyUdrjcQCnXMTFsQBnmW2m6h2TWgPE7rOL8PEdN7my/6/3TuvlXeVPVcQ+PT+fakSEAOohzTjAHdG531U97itnHx+XJqRFDjPtZyCuX6ENGDdZehZ4x77Qm50amBWgolFZi4U6P2T2g/hIoT80hlZtDc2bOP3BNuwwyvaYSrPFk6Wg92VzY3vAWJNqg5XHkxK7KnQduYAL9w+D027dKie38Ni+hfGMwfHrWSlRKex9bx7XSm7AcEZoauNXRQW7cCPHKD8Y9CK46vp2NznVRYe24UnnFqMe6r3o0yF59V2v/0icALShfoqD9uiGOADGBkB9pgyD5NgkhbDXE2Pfoxc22bGZS2flLmQLdL6ttFuEr2vjZMLsClA== 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)(66556008)(4326008)(66946007)(2906002)(66476007)(2616005)(107886003)(6666004)(5660300002)(6506007)(8936002)(8676002)(6512007)(44832011)(316002)(86362001)(26005)(186003)(6486002)(6916009)(508600001)(83380400001)(36756003)(38100700002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4SPO7htfMC+fdnTVY1TBQsxQ0bUg/yfoEckiLeL/O4rEutLZlDsIK/+kfQBN?= =?us-ascii?Q?8PWxE7nhRLoNpdFTz4+M+HJQEtqnoZ4x1rFncWPIh1N7HI0NWDNyqhFA4h0O?= =?us-ascii?Q?CfT+yhgNMzvgokUUFf4TLJGPAVjeNXMMMkWKMLKivtG89Z3p3nDW+UOy4Oaq?= =?us-ascii?Q?ecY8TBZ0NLJTOsobCIynhhRfWZoA1kIUWrVxw5gqn5WRWEMKJPcvX8qewyDZ?= =?us-ascii?Q?cX6G5Iuit6kTNNohe3xACQ1dXC8tm2pXj1/B7wd8AZUETbmsNqrAunDUpsYJ?= =?us-ascii?Q?WGAgcPZfeJV51uFagsffGXESez0wApqXvStOWZrhipwfaDg5ix8Nj+Q55kLZ?= =?us-ascii?Q?1GL+OFKcYWsRh6KGNEME88hUCnm3UJrnDYNif5Eg+JE4+XrKs4dV26zFtHBt?= =?us-ascii?Q?4I8wn6IzHLqKcftJaH1L2JWXq0W6Pn5clTSwGaQaPlpjDabHHj87HzIA5JNg?= =?us-ascii?Q?U8RmkadJZEY2iCg0LZ8MfoHrRSFskNp4jNiwhmTaKabYtGacmrrBu93gFiJs?= =?us-ascii?Q?XrsthbWvZ/t4TxD2b9/c39gqJJZGxjDYo+Fjzcpf6wCNX1RlTv3pO7Y7APZf?= =?us-ascii?Q?TBRsL1C2dkRFm+BmEP5pLq/5CxiYS6aH4hugIObbTeZbILN7QtEluOyRWpgm?= =?us-ascii?Q?V6uXXq3Gf48Pz/0STmZQbF6amsl/9qr0xcJh8aNwbi93DfQeFOKy+dyXnGCP?= =?us-ascii?Q?FFvRczD/mAGcSWW5K98LAsQiuSDjeU08qm9k4+SM9w+Dub+kdLxl6L8pAzqq?= =?us-ascii?Q?AMPar7SKxHZ60d85nk40ngKDqcz5Ur+nz4iRDnt1FfuPQZc9n8k4qm6BgLpo?= =?us-ascii?Q?YulovMyKm2gzMusHnjVpGHxOAfbaFfV2eANniWqsWykIjx6iYuAturI/sWCn?= =?us-ascii?Q?9Vt4N5y1beukMSdpBC1t0O8+D0FKAYBQyJulPxN3XSViwOFAjCvvoLBTz5EK?= =?us-ascii?Q?5SRcC401/sQSDGlFb8XpWvKF3x1TX1lR/KCxTdvzoXGBSr73EbWgHO43NeJ8?= =?us-ascii?Q?brxl0Twf44k3hrkdbeeUuhgG2E3mKVSCdZN1a3F9L9a2PXK9nQd3Y8LK2eMK?= =?us-ascii?Q?oPKI72DMFH51a3i9VPuHVJiW5DQ6ezQ7fiTEvkH0FBsXCRc/sd2od14z/jFL?= =?us-ascii?Q?dMebrS05B1hBtu2kEvvxcY5LMV36xGjtS46VcZ0HYcO5eBrXcWxrIjYFKphV?= =?us-ascii?Q?tZfGAG5stfmVmzLckmO1Qb8CuV9u9Rx1UEgwQoldS8b68UHsP6FRZDmeW7zR?= =?us-ascii?Q?HwK2Zjx/rsMWPF73r1ZF9XkQoTey7QtXz2OK4XRYpktZUfDp4b+3uufaR6Jy?= =?us-ascii?Q?GkibZ/DinSqe+MsCNG05py2oTTbfcnTJSo+AavELPckeU1Wjfd5KQOQIXK3T?= =?us-ascii?Q?UlhXWsoFHifAqcJmeXWWz803YgAxsxb8AMdmxgUQ+5USEteGl6MLEEl+1dt2?= =?us-ascii?Q?SJmlFR/Dtv1L+Ys7+fTYeZrlyuJzz4Ol38Ej1fWMDnFeYj4H420Ov9M1Kb5o?= =?us-ascii?Q?Ri3wEysdhznZ/onKTrqgVOPcWg166BjqjT+lPGisdWItkJWXgAziHChaOcHW?= =?us-ascii?Q?9JLNuravDQaxNlglAJEmdTIpiB+S3Ypge5MfO7epRE//0vmXFt+CDFwdjYBl?= =?us-ascii?Q?0v5cMngLK6zvJcoEM5DUKlo=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 70bc0a8f-c270-4377-d3eb-08d9fd29b548 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2022 15:23:02.9852 (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: 8/o7vCKJ+7wk3BXS8K80Gs2/IDnMaxjsZySubDsOh4CBH8eu96USJoYmOFkBD/Cv64IX2hFTu6G7gByYY3CQmw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3213 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..38290b249d5f 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 inline struct bpf_mptcp_sock *bpf_mptcp_sock_from_subflow(struct so= ck *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 Mon May 6 01:47:47 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6402:358d:0:0:0:0 with SMTP id y13csp23198edc; Thu, 3 Mar 2022 07:23:16 -0800 (PST) X-Google-Smtp-Source: ABdhPJxb2Vf3wYaG0fpi8skvKlyMW0X4wz9QKTbUX6G5exrXjb65VMOTol3mBF72MQDpxLL5AlZu X-Received: by 2002:a17:90b:3a8f:b0:1bf:ccc:59bc with SMTP id om15-20020a17090b3a8f00b001bf0ccc59bcmr3957792pjb.234.1646320996446; Thu, 03 Mar 2022 07:23:16 -0800 (PST) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id m5-20020a170902bb8500b0014ffb47df67si2259293pls.130.2022.03.03.07.23.16 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Mar 2022 07:23:16 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4084-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) client-ip=2604:1380:1000:8100::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b="ZH5wD/Jl"; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4084-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4084-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 sjc.edge.kernel.org (Postfix) with ESMTPS id C2D7A3E0FEB for ; Thu, 3 Mar 2022 15:23:15 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DBE0666C5; Thu, 3 Mar 2022 15:23:14 +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 6E3047E for ; Thu, 3 Mar 2022 15:23:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646320991; 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=Er90FEpmBcJNW9tibI3s6E4Ke0Bu9EXz5pzPG70EmLE=; b=ZH5wD/Jlo8UwJf+5g9faBxT3QVHG7eXA0EyL4DppBOp0Y3+oO097eEqOFk08twgsrSnyik m7qA2MnTucsmul2uWYTMSs2GSEEeVFbkdKXrv28Synq5QSRQI0nh0oJWkMKk6sQSShu+Ns eLWR2z8UUWMt8mpsOSShwJIhsANkG2Y= Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01lp2057.outbound.protection.outlook.com [104.47.1.57]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-37-IKBW_mDkPwG3aqZ7HAvEVA-1; Thu, 03 Mar 2022 16:23:10 +0100 X-MC-Unique: IKBW_mDkPwG3aqZ7HAvEVA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PlDtc8ZRE2sWrRP/iZqlucJEMA9VHX3gchKsBG0xFoALDqyRVDOkRkbcKP9xTo2emRN5uvIqmsA1oWWdctSTn/WvFf2KfVvwKgjfwc/Pg5ZCZS1aJQ76s9uN953aPxDE7rngOukKNCp1IuMHgXY3A/VbG8Krrd1CMMToDeavl5GgKV51QQumYK+12bzbCxanBGfTlEa4j8MnCG4TM1Zl8bbIYipW86sDsobsOAM1cgJJbr5sDZHhdgvpCVdeq5aRieZJAKquFmoaYwgNO23CQ1TyO78Ha3PHZFC/NNRTVFc4Pfcn7JtMcL4Y4guKPcuCQ9efo0YT8zIhEZzxQFkxTg== 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=1ONTR9Ll9gu1xS28KWpnJ2cAiN6XdjqqZj+0mJJO6IE=; b=C3FSKZUarg29i/+ut2KYUCa66rVtsanW2/BDkHqcYTF4hY8gjw803+3DIOCU/gAhX4ArNx+9lAUggavz1DnUsLrQZrwL5/SLLiX7Opi+E1Plac+Tn6izSwH07UYFj+Hh2ftoLBOJ06xSyP4T4sRpIJFNaJkuEVlb5a7YCWf4YSHwoRl0m5O1XG+nSuMFYtJUEys0kH1Wyt1HgIWjpiEvihLdwaxXtxfrqOidJr8BC71BjRGLlNhyt4JTNHMsu4xhjDCm0YAF20p0i8FYAQ9m6e4SQl37pZ/03pzfkWNbmWDQ8rGssMMvEQIArND1hHsa8niLETnjF93nBRDM++ROSA== 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 AM5PR04MB3011.eurprd04.prod.outlook.com (2603:10a6:206:b::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.15; Thu, 3 Mar 2022 15:23:09 +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 15:23:09 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH RESEND mptcp-next v5 3/3] selftests: bpf: exercise bpf_mptcp_sock() Date: Thu, 3 Mar 2022 23:22:38 +0800 Message-ID: <59d5dd61358bdee3d5b1a95208461e20e006b8fe.1646320786.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR0401CA0007.apcprd04.prod.outlook.com (2603:1096:202:2::17) 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: da133f8b-4517-4ab7-de8f-08d9fd29b955 X-MS-TrafficTypeDiagnostic: AM5PR04MB3011: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: GHBJI5nFZ3MApNKXVx6+hYMTFnUIo9uKjumVkp2OoXU/yfmwaUevJlxnSybawd4W4LWlUpYs/l//S7gODAVRfCi9/DdcYRWFYQVd2BGRHStwzFI97vVctBVTB5fGH5Vxz7shekZDy/05g3XJeNAUWI0xVDvphia7yKWb5Ll/ipcDIft6G3oQSncmIZKXBdiGdyU1/jE46JOjCSOJ/VFb4RQgoQqnNgKmeQKM+Gh3Vigk6hpOTsnIRu4rWPJpcN+dEo0jsYz3fXoMTvoNqfW0a5qfl3eq0YlcLF1rD5lwxaxeRfpRnusgLMPQVJ5bulpi5P2J+Pix8uF9NTx9DEwAwTEl/VTeNETuW+fSEoKaOcyN2v/vdp8J0GTcgTkjLWJ0I55jri0s8e5lp+r3Mi6BJaSry9F39c/IJq/VoBH7kvcwWm2pYwGjinsDYk30K4a4rKL9NXAirt95e9vgXYnYZbO3iz2uUW4pimH5Tu1SmCQwOBQcke8Gmgg6RhcfMsSq4ODzvMLXvbigGgAyWAGFroopxxNLMXYbxooWYTyH0Xfh3nlTxMXiVDpXKFPJhfvXisUf679l45pjVSGgnqN4PwrqpS0e4w/JYOyuxCl+jvof3m/ng/OLGfOcDRGKYeq1L/Isc3yvTaV4IqiEtp6BdKGhJJO+VQBRQIHc1SONnK1lBbksxgd7vcMCHjtCJEwH 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)(5660300002)(2906002)(83380400001)(26005)(36756003)(2616005)(186003)(6666004)(107886003)(6506007)(44832011)(6512007)(8936002)(66556008)(66476007)(316002)(38100700002)(86362001)(508600001)(66946007)(6486002)(8676002)(4326008)(6916009)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9j4XifsIQmcQ42MqTZJnTZKllMZQ3ohr4NDUhe/AuRDZoBNow0BvKm82Xx/k?= =?us-ascii?Q?XilBvLXOciy2yEIVFYSOoBmpV7C4W3Y0PmWq9OOMA0XONWUdSgBe8mLlv59l?= =?us-ascii?Q?XulFzaHtcJHBt3oJfBnRpJRQCaS2oHdMgwTmxCPU7CweQiM6fe39DJkTF03o?= =?us-ascii?Q?NIAySaUqi8z2ze2gsmOMCCQfr2Lnj8aWxDpcIG5uWNyygORyVarw3TFgoBts?= =?us-ascii?Q?hfk1f6IbNZbwtAkzQMmjifr9Z3xzoVr99TLycqhf2UJ3FTlKWhOlRH+iz1b8?= =?us-ascii?Q?VJYGK392o0sWalzXqGh2W51p+YJfIQkuV62PGhnlzG3XsV0SRB+6Hi3a224t?= =?us-ascii?Q?1LWNSycxp5LE17mazvdUMPs0nin3ZdA5xdN6+ZCmClD+MDtjRK5TuuVUP8SY?= =?us-ascii?Q?8997QgAC6H59DQMjLLqCeEJjIhul6Ihbrvd6FdaYMML00Nf5kHoQ+llzjCoy?= =?us-ascii?Q?5R40Q/V4RcvmY/tZ4+2xkMqjSqiFEX/uEZapJ5gBbeU/DoUvPdXgRKoYHKhB?= =?us-ascii?Q?U16ZVyzZ57yVWN5y94yqRAkgjMFYQ9QCThyQp3p4BII2GqPOqTJcNJXZ8oFI?= =?us-ascii?Q?kfrrOQHlquBGgwiqTYwteM+xaYEwmxJOdRvUieyoDw+IVCKhW7LPdoCFw5AH?= =?us-ascii?Q?AbXDAcwa5PpB/Q2UhcarWOSDF2V4C31T54BOk39Xo/4yPDpMTqIwX89p34XI?= =?us-ascii?Q?NkCZps+6grP6sr3zL4A4b3R6dktn0+ra1FFupDxEthGalXJtTHveNueOK/7s?= =?us-ascii?Q?i929ZUdol1nwZFkW7MzTiER7Rvqzr/oLu8LtPAlBiQP1lM396kWjrNkAZRog?= =?us-ascii?Q?hzYoCUve27pvKuTAUhRCR8HgGRPquc+tg5uCT7kc+xLAL9X2Vd7qSaIT7PfP?= =?us-ascii?Q?0k3xkeIF/0LmXuyzmlmcvVJrSQrGSPIHmQ0IxA6eXpa38oUfWvp0xyPjCrfN?= =?us-ascii?Q?avJtMgV3XuOwCn+leY1uTlEDC1hh/ud2fsEVYqua1aH2aAjUdAje8oeUXbka?= =?us-ascii?Q?5BdLPUJBmyDBQmtGXu+GfNNoildMEp2iqU2I1PGBJRDWWGB56siNXKsPrRTb?= =?us-ascii?Q?aPTTIzHPaDKzObNP/wOAtqM8UJLYcOmlek6uTv+uCuS95cvAYpPBU8p+9fC2?= =?us-ascii?Q?H4OAw8LgEitxk8vQ9wNkwPAs/uaCMr6/XYPKK5MUATfb0JhpLM1MxeTjWhQ7?= =?us-ascii?Q?8OQnnR1Oap9HYaFOAe72Uz1WVCqOuKp3sAwci6DJICYKKb9NkMjfE30c3y0M?= =?us-ascii?Q?HkJTf+H8F+BEaoCoPGIGx79S3wULJMYOqdZcHe/B5LKH4+cT+rN+DdJtCI/0?= =?us-ascii?Q?sw4BIDC+1rVSuj9MsvqpmD0TRpy9HImbRP25A4aFuOJ6ywTVZa8pacv3VUsS?= =?us-ascii?Q?LCL6vP9sFG0NVcb//+o6GcIincGyNLLmLNfdpYP8uwCvONZ1T9EILc9on4wb?= =?us-ascii?Q?7Ky8yOHWGyWtuHb/AwsTxVf8XzE3RQCCRnmksqRVXrAfzzrO5clialkl+UtG?= =?us-ascii?Q?BWnSlBWrcgRDoPI2JonIr7nnqG4O4WprSSvBYCW5tckoDq/MZlzQ+LDoKyjA?= =?us-ascii?Q?Nc60U1AIgDxDTrwvfpkDNfmQPBhGgGaDACGcDZXwb8Bzo5DGkSe6y4eZ2QFu?= =?us-ascii?Q?wuvdMxrfHkjYGK6RN9InfFg=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: da133f8b-4517-4ab7-de8f-08d9fd29b955 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2022 15:23:09.7503 (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: zPXrlUHXgIbwUF6OeapntZ5chCVmfpwOyD7/tLWjYOOJPzx/LKx5rFOjl/Qgj8ukfSQ65FBKJRxwoxBCb1BRxg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR04MB3011 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 | 27 +++++++++++++++---- tools/testing/selftests/bpf/progs/mptcp.c | 22 +++++++++++++++ 2 files changed, 44 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 04aef0f147dc..ba856956f9c3 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) - return 0; + 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 %d", + msg, val.token, token); + err++; + } + + return err; + } =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