From nobody Wed May 22 00:01:08 2024 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2074.outbound.protection.outlook.com [40.107.21.74]) (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 89CAF10FE for ; Wed, 5 Jul 2023 06:56:56 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=U3Z/8LwfQeOY2GeXKjopzrDjRLAMWcenKHiOYfQMylAFgni+MkOH9QIzhdJmNLnDz/0n6tbZ5RI7gc+1oIXYyXVsH1RrUwWwlqhcLSaruebBdbAj8zwfHvpJSrQv4Op+WgbbjGAMZKf7hGnmHtB+WsUzG/phvHSc1/dpFzvAxyssasftWNbkmzNsmvcmAc4lBbjcbdLWX1IuPLFYSaq3ZLZrVzdoSuIVgbdTJvEGxPyuUs2fZkmNdT6tHdD5O/vco2oI+kpCpBfRy6R/8/NJxqMe/0D6u+2CKTix/j9xYE9yx//6eRvuCp/huq+NUwnGNHzvzZlBASu648gcmH3dTw== 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=YbQgqogigrGt8UQgTlGHzEayRktH80TZ6EqI9hjgTrI=; b=DlbkhA/v0+tZrQ+XE9cnlIhjUt9XBaVZIywFuY7T4w5dRg6MkRLpMIvOk+I26IvaIbt2eJWvS3UwbGBMfRkPzneIErK8f+LQYY7BmcjViUkF41VvOc++tXINSe3mJE/6KzeJNVYnXhzFEvF/5oijHripDHifnwiLO3iTtJu44vlrvEGuUbXjoeClNTdYGUYmf7frCYusphbthMiZJIwwDoyalst4LKE5sBzSe1C1Jp2kBnM+ZR/5qY8jpU4rSvJbGR1FJhoEqNGtJmYg/R58hrHHxKICnsvy2cyh6/HhDW9f2bk4QCE7fIYBToNrW+8aYMhNhVl9knwFNfMthrC+Qg== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YbQgqogigrGt8UQgTlGHzEayRktH80TZ6EqI9hjgTrI=; b=bu1HJppxtn831K8AvOF/YKf64Y0uxyeY916Nrf4GHdwCdIOMpA22+3mwjrx4q2PyrfUfZYNUGfQeQ7FadmVUCB2R8QmBJgD9AZs6r8bTkHIDynrFKnLSsKJO1hLSZH+dD5kbuohTVrbT1ha1m88ehpo6hPDoKbuYk7xCLYkQhNWAbkArtSOQvJFhLlkzKZvSBigXQ01MKdEyfyQ1/JHPzpUPQH1n3MTwzxWNpp6HOCdf3OZA56zhvy2+hC6juECY8C/+V9A6K/DuTrvsibIYEhnmjvgfYFfP8Gfwsv+IzsdCmH0hiu74z/zMEdOYdnJdC9Mkvtc6CW0N5t343C4U1A== 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 AM0PR04MB7187.eurprd04.prod.outlook.com (2603:10a6:208:196::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6565.17; Wed, 5 Jul 2023 06:56:53 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6544.024; Wed, 5 Jul 2023 06:56:53 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v4 1/7] bpf: Add new prog type sockinit Date: Wed, 5 Jul 2023 14:56:35 +0800 Message-Id: <611b0ed15ec0df0ceefe513c1fb5453be551557a.1688540074.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0031.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:29d::6) 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-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AM0PR04MB7187:EE_ X-MS-Office365-Filtering-Correlation-Id: fa34e45c-41a2-423f-c5c5-08db7d2503e2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DroLGmw/UTKNHtR8VwShz4WE1nM2H1W0Oy2WiTyGjNvhDQfRkp+KRZSJQFmcP25aTYDM2KQ3I2qoWAuP7qfbqzUYqS/KlEO9C71m/coN6E1PJ6aL5aZCtmashNgy45LpAR2I/M+VBf8hP1V1Q0zgCsZwLYjSI5ckWoy+HVCh9VC4qTwmO1MOoIt1y2WmO++bFkzIL+PfF++1PjJ0ieXXDGQllPDAF+nkOYkTLtbkxsOsrJeUZ2TAvdYC3CPlsC1MgQNZgS4IJKCMYRXTvYAo1KwQr/Mnfqlkm+HOkkzWctPj4UypqgM48QvREm8oPBiAnmtiJShx9xufdhEjYo6Lb+zyYMvPuIfwc3R9kZvj2RGgpg6O24PtZiEuF0PKBRHziSpLfhL7vkCv9x1txuL0SgkgGndtxoGJKDA1rZVjRmAk9JDcxYmQCrBlZ4nQ9GCVcSQ7JGryvovE0eLdiv+viK1X/JM3E8HtOvpHtQQu5PSVkOcyaXOWmz9GJ+TrRMFIU9st4pqqYfgh+UOt5HheNKsqe/KZDjAlcWzNcX8fIghReGEJLCV3Jc9criOhQlfu7TOieBZ0Pz+4NlA4scfdUvaDRsG1RnwB6J06Q43i580= 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:(13230028)(346002)(376002)(366004)(136003)(396003)(39860400002)(451199021)(44832011)(5660300002)(8676002)(8936002)(41300700001)(316002)(2906002)(83380400001)(2616005)(4326008)(6916009)(38100700002)(66946007)(66476007)(66556008)(86362001)(186003)(6506007)(26005)(107886003)(478600001)(6486002)(36756003)(6512007)(6666004)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xgOO++4p9A+c5AWJN1qh6Pkqx6qcUz8DRC1iAXKxgnMN47M8KWBEwmbselg9?= =?us-ascii?Q?PNsAjGCc5pyLLPDvd8hudDepPBDzuMA7rIKgGShI26gUrgyfRqBACDfmHULJ?= =?us-ascii?Q?iJkTZCCE0n7IBNR+G4XhiCAl3FfA2cWqjM5+dnl0aM7VPBgYgiqrYIFj4nsq?= =?us-ascii?Q?Sl6WtSXjezeTKvQXCVJVWKYuV3m9jU2n1/5Zh3JsBEhRqjCAgULNcnJXDH5/?= =?us-ascii?Q?W8YBwNbLQj+02q/NeyD+7KmAzlKo421IApcxVBUMfmiVKpp0REVw2BPcgKtQ?= =?us-ascii?Q?0a2SfwsljouSQWdRS9VVWIBop4kS2F1c4rXamI03mveW3+V+aMFw79/kmESd?= =?us-ascii?Q?JOBCkIgkcvPPu86PZ3cGpBbbHt2XkiRYl3QcOTHb/YeA05xzBlf4bqNAwwL2?= =?us-ascii?Q?n8KX1C65qL2q0fftDU/mQkvPvsbmbcuGYnh9h/g+0mIZ/tWSZnoo/pMXPthb?= =?us-ascii?Q?5s3iCb0GPh9MKORz6hykL4iA4G9uuCKovs13t4NoWq9QqILO3RS8Hi4vlZqb?= =?us-ascii?Q?oEFnFe/d7PDuJVG8Uzgqeed2ioZV/KUsGHP4HrfKfe6cA1nRVZfKVTOfz1Rc?= =?us-ascii?Q?goHYiFoLSikRAs0cn9g50v5LcS1w/xyM+oem4sgTLWXbKttvbRVUnDBNV0xB?= =?us-ascii?Q?eIdrewvtwh6skUE+9M1980wpC2/VWgE9lWCu5UWT8p7ETTkk2gkOqStAMaQT?= =?us-ascii?Q?E9WO22zGSfAX+qsCwkjygsrgTPSlZpZAeSSMXXCPq3SiHr9fsEirM6UCs79D?= =?us-ascii?Q?XJ1MDhv1fg6W3sAc8L43EnGGdMCe4m19eelOsE5UtYn60VaXvofl8GKVR9mx?= =?us-ascii?Q?1hBFlPmCg/bVfDUQhfWBTYkcZXYalDCIGU2t2VTc5WxEPX4EqCxeazFUB2Jm?= =?us-ascii?Q?qr6FeJpOyiedne7ytFKURXiK/tsRHzHm7wfp+vwEUtb0n/DAu2nNQ/b387Cy?= =?us-ascii?Q?Sl9zk6vrcTHEyT73NGTw+w7eDVTtDqdjbXXuVHSp27ZlvJHQHsVHVG61xcn4?= =?us-ascii?Q?0X+eru6GN5U2vpgjaXFJfw6ywxR92ur4IicDBsdk+H00UYybNr7BJVL2bGRu?= =?us-ascii?Q?/tVb+I6f3PixrVSsH6T12vTXsPLDTbjyjmsAdKw9ucNO9JX9vB4WPjLk+Y2G?= =?us-ascii?Q?QT1APb2vXjptKbh7pWsW1vOWQdyLWqgP4T36eZON4sE3CCZE4cYoKdBF2vvy?= =?us-ascii?Q?wd4WyG6Rm0xOxZKH9K1HwD7KHxlpSWuBSLuq04/LbfJl6ZQU5wW9+fSk6L3i?= =?us-ascii?Q?7KVailTSqeT77ftS2v/iDrsqZj2eX8OJ9HdTelwLxwgD01BJDDFRaz9QZgcS?= =?us-ascii?Q?OsihzbX+AFMgBfdGIutD1mhRu/OZB4wNUa66H1cux+4VM538ve4qoB+SBo3K?= =?us-ascii?Q?OZVSk4r3vU/q3UEPJ7+h5e4w0vZyGTD6BS4UeZpOCo8J3wDrZ6vKDL5alp5k?= =?us-ascii?Q?/Gf1T7goAz1rFWnQG0dXzmXpVfO+D8QseVUwsa3+sfFW9tp9TIV3jjuRtWTZ?= =?us-ascii?Q?Y5hoz1kSqM5iE7htrR0PwTne+4TXHi5CzAD1QNzz/I1cydDxxWxXkPFcf7yo?= =?us-ascii?Q?IYhhyv15cFgfpT4rIXzrKs6DifpAjrUVDSkOVo1h?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: fa34e45c-41a2-423f-c5c5-08db7d2503e2 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2023 06:56:53.7850 (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: 71ZgASiLBuIYziAPA0o0v+96jkkZ+Who80RM1KopvbJgxZ8gNUFYiUPKW3DbfSHmqNQ9ZH1oi2nAV/0LkFwqjg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB7187 Content-Type: text/plain; charset="utf-8" The patch introduces new program type BPF_PROG_TYPE_CGROUP_SOCKINIT and attach type BPF_CGROUP_SOCKINIT on cgroup basis. Define this program by BPF_PROG_TYPE(), and implement two operations: cg_sockinit_prog_ops and cg_sockinit_verifier_ops. Signed-off-by: Geliang Tang --- include/linux/bpf_types.h | 2 ++ include/uapi/linux/bpf.h | 8 +++++ kernel/bpf/cgroup.c | 66 +++++++++++++++++++++++++++++++++++++++ kernel/bpf/syscall.c | 7 +++++ kernel/bpf/verifier.c | 1 + 5 files changed, 84 insertions(+) diff --git a/include/linux/bpf_types.h b/include/linux/bpf_types.h index fc0d6f32c687..44afed8e5444 100644 --- a/include/linux/bpf_types.h +++ b/include/linux/bpf_types.h @@ -52,6 +52,8 @@ BPF_PROG_TYPE(BPF_PROG_TYPE_TRACING, tracing, #ifdef CONFIG_CGROUP_BPF BPF_PROG_TYPE(BPF_PROG_TYPE_CGROUP_DEVICE, cg_dev, struct bpf_cgroup_dev_ctx, struct bpf_cgroup_dev_ctx) +BPF_PROG_TYPE(BPF_PROG_TYPE_CGROUP_SOCKINIT, cg_sockinit, + struct bpf_sockinit_ctx, struct bpf_sockinit_ctx) BPF_PROG_TYPE(BPF_PROG_TYPE_CGROUP_SYSCTL, cg_sysctl, struct bpf_sysctl, struct bpf_sysctl_kern) BPF_PROG_TYPE(BPF_PROG_TYPE_CGROUP_SOCKOPT, cg_sockopt, diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index 60a9d59beeab..cb882ab8065d 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -980,6 +980,7 @@ enum bpf_prog_type { BPF_PROG_TYPE_CGROUP_SYSCTL, BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE, BPF_PROG_TYPE_CGROUP_SOCKOPT, + BPF_PROG_TYPE_CGROUP_SOCKINIT, BPF_PROG_TYPE_TRACING, BPF_PROG_TYPE_STRUCT_OPS, BPF_PROG_TYPE_EXT, @@ -1013,6 +1014,7 @@ enum bpf_attach_type { BPF_CGROUP_UDP6_RECVMSG, BPF_CGROUP_GETSOCKOPT, BPF_CGROUP_SETSOCKOPT, + BPF_CGROUP_SOCKINIT, BPF_TRACE_RAW_TP, BPF_TRACE_FENTRY, BPF_TRACE_FEXIT, @@ -6829,6 +6831,12 @@ struct bpf_raw_tracepoint_args { __u64 args[0]; }; =20 +struct bpf_sockinit_ctx { + __u32 family; + __u32 type; + __u32 protocol; +}; + /* DIRECT: Skip the FIB rules and go to FIB table associated with device * OUTPUT: Do lookup from egress perspective; default is ingress */ diff --git a/kernel/bpf/cgroup.c b/kernel/bpf/cgroup.c index 5b2741aa0d9b..93b9f404a007 100644 --- a/kernel/bpf/cgroup.c +++ b/kernel/bpf/cgroup.c @@ -2505,6 +2505,72 @@ const struct bpf_verifier_ops cg_sockopt_verifier_op= s =3D { const struct bpf_prog_ops cg_sockopt_prog_ops =3D { }; =20 +static const struct bpf_func_proto * +cgroup_sockinit_func_proto(enum bpf_func_id func_id, const struct bpf_prog= *prog) +{ + const struct bpf_func_proto *func_proto; + + func_proto =3D cgroup_common_func_proto(func_id, prog); + if (func_proto) + return func_proto; + + func_proto =3D cgroup_current_func_proto(func_id, prog); + if (func_proto) + return func_proto; + + switch (func_id) { + default: + return bpf_base_func_proto(func_id); + } +} + +static bool cgroup_sockinit_is_valid_access(int off, int size, + enum bpf_access_type type, + const struct bpf_prog *prog, + struct bpf_insn_access_aux *info) +{ + const int size_default =3D sizeof(__u32); + + if (off < 0 || off + size > sizeof(struct bpf_sockinit_ctx)) + return false; + + if (off % size !=3D 0) + return false; + + switch (off) { + case bpf_ctx_range(struct bpf_sockinit_ctx, family): + bpf_ctx_record_field_size(info, size_default); + if (!bpf_ctx_narrow_access_ok(off, size, size_default)) + return false; + break; + case bpf_ctx_range(struct bpf_sockinit_ctx, type): + bpf_ctx_record_field_size(info, size_default); + if (!bpf_ctx_narrow_access_ok(off, size, size_default)) + return false; + break; + case bpf_ctx_range(struct bpf_sockinit_ctx, protocol): + if (type =3D=3D BPF_READ) { + bpf_ctx_record_field_size(info, size_default); + return bpf_ctx_narrow_access_ok(off, size, size_default); + } else { + return size =3D=3D size_default; + } + default: + if (size !=3D size_default) + return false; + } + + return true; +} + +const struct bpf_verifier_ops cg_sockinit_verifier_ops =3D { + .get_func_proto =3D cgroup_sockinit_func_proto, + .is_valid_access =3D cgroup_sockinit_is_valid_access, +}; + +const struct bpf_prog_ops cg_sockinit_prog_ops =3D { +}; + /* Common helpers for cgroup hooks. */ const struct bpf_func_proto * cgroup_common_func_proto(enum bpf_func_id func_id, const struct bpf_prog *= prog) diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c index a2aef900519c..2952dd88c614 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c @@ -2513,6 +2513,7 @@ static bool is_net_admin_prog_type(enum bpf_prog_type= prog_type) case BPF_PROG_TYPE_CGROUP_SOCK_ADDR: case BPF_PROG_TYPE_CGROUP_SOCKOPT: case BPF_PROG_TYPE_CGROUP_SYSCTL: + case BPF_PROG_TYPE_CGROUP_SOCKINIT: case BPF_PROG_TYPE_SOCK_OPS: case BPF_PROG_TYPE_EXT: /* extends any prog */ case BPF_PROG_TYPE_NETFILTER: @@ -3574,6 +3575,8 @@ attach_type_to_prog_type(enum bpf_attach_type attach_= type) case BPF_CGROUP_GETSOCKOPT: case BPF_CGROUP_SETSOCKOPT: return BPF_PROG_TYPE_CGROUP_SOCKOPT; + case BPF_CGROUP_SOCKINIT: + return BPF_PROG_TYPE_CGROUP_SOCKINIT; case BPF_TRACE_ITER: case BPF_TRACE_RAW_TP: case BPF_TRACE_FENTRY: @@ -3640,6 +3643,7 @@ static int bpf_prog_attach(const union bpf_attr *attr) case BPF_PROG_TYPE_CGROUP_SOCK_ADDR: case BPF_PROG_TYPE_CGROUP_SOCKOPT: case BPF_PROG_TYPE_CGROUP_SYSCTL: + case BPF_PROG_TYPE_CGROUP_SOCKINIT: case BPF_PROG_TYPE_SOCK_OPS: case BPF_PROG_TYPE_LSM: if (ptype =3D=3D BPF_PROG_TYPE_LSM && @@ -3682,6 +3686,7 @@ static int bpf_prog_detach(const union bpf_attr *attr) case BPF_PROG_TYPE_CGROUP_SOCK_ADDR: case BPF_PROG_TYPE_CGROUP_SOCKOPT: case BPF_PROG_TYPE_CGROUP_SYSCTL: + case BPF_PROG_TYPE_CGROUP_SOCKINIT: case BPF_PROG_TYPE_SOCK_OPS: case BPF_PROG_TYPE_LSM: return cgroup_bpf_prog_detach(attr, ptype); @@ -3726,6 +3731,7 @@ static int bpf_prog_query(const union bpf_attr *attr, case BPF_CGROUP_SYSCTL: case BPF_CGROUP_GETSOCKOPT: case BPF_CGROUP_SETSOCKOPT: + case BPF_CGROUP_SOCKINIT: case BPF_LSM_CGROUP: return cgroup_bpf_prog_query(attr, uattr); case BPF_LIRC_MODE2: @@ -4717,6 +4723,7 @@ static int link_create(union bpf_attr *attr, bpfptr_t= uattr) case BPF_PROG_TYPE_CGROUP_DEVICE: case BPF_PROG_TYPE_CGROUP_SYSCTL: case BPF_PROG_TYPE_CGROUP_SOCKOPT: + case BPF_PROG_TYPE_CGROUP_SOCKINIT: ret =3D cgroup_bpf_link_attach(attr, prog); break; case BPF_PROG_TYPE_EXT: diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 11e54dd8b6dd..d0ade7759123 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -14316,6 +14316,7 @@ static int check_return_code(struct bpf_verifier_en= v *env) case BPF_PROG_TYPE_CGROUP_DEVICE: case BPF_PROG_TYPE_CGROUP_SYSCTL: case BPF_PROG_TYPE_CGROUP_SOCKOPT: + case BPF_PROG_TYPE_CGROUP_SOCKINIT: break; case BPF_PROG_TYPE_RAW_TRACEPOINT: if (!env->prog->aux->attach_btf_id) --=20 2.35.3 From nobody Wed May 22 00:01:08 2024 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2069.outbound.protection.outlook.com [40.107.6.69]) (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 289A610FE for ; Wed, 5 Jul 2023 06:57:07 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dGBRqwiCTf0oSyrShEGpdqQIuugJvYoFsdA0aUFqjbeuWxqUFdiSwYvpQk938kOp+/dCURFqvnXf8NtwD1nTJW7W7bpW73kWb40YWhKZxtjum7Wleh1A38jbhLDfqRloQ6jozGbR6BzJtcU/HULBFKIl+lDmAEe6yoeQOhtxII1uNCSuT4RcI9DShvJ8Ni2uOz0a4ohltbKhleOEI6C02vaPKpXdoDOF7NIEN4O3RcRna3fMGiwP/OFinYwk0RzJ3LKWvS0NuAuMpon6AW7FfYjN4aOHMwQBUlgEqUlrUfQ5Mb1o3da2HOKP6D4Vi7ZDnJupbljqCTx5cz2UmAfhXg== 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=wCbo5XqEqbC+uIC16R9lbl1b4dXbL9eVmWQcvZ28mp8=; b=n9V2E+dNHPlqPh22i4pYeWdEMRB92a5hqfMzTApp3/2JOEbbMdGwlI2RR5IJzmjt1Tngg7DOk856walyoV510KCkqumtkL+uDXhU1mUzSSvFvz1E6wrF+w9pYPvft5raEApI/G8AXeUU8SlnlPeR/dc5MJhzug6fNeZbJa7fnP1rffXwg9zKj3XhFsuAea7+ME3K90s4NCuJHmK/+U/4VMb5xEZeEDCXMmP2zK6Yx59w/L+1UCpZ6Z5g1B5X+BhWsH8j2u7NKsL21VuxoR1NvNMxviTxsdDSFZ4B2cye/PSWsXfHsTahKoflKdhkR/43aoHuC56uNYkOKzJUPuBarA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wCbo5XqEqbC+uIC16R9lbl1b4dXbL9eVmWQcvZ28mp8=; b=GpB1nztYm0P8tiTh3Kd+TY3UpiJwabek3Oww/CsCKtu//4R+X/vEU5et7rxe4MgTQnx8JGKporIyicS6meB/39lFdrQZmlFGI+7HecD5dgZ3f7btW4DmARUZXS8ZQ6bQDcH/D9OHg9LOrzP2zUoYoydEKmcpdUg/TuzLS5aSUNVHXFjnFR+qke085Dvzr0UjzqYxyUKRfzCF2Vt/1OiFStRJfbEabbb+mvou2kQIAR4ipTk6LBhYENy167jX4NZEQYSkIC4mM0I4fc8cKq5BK1/A5tuRasbWpiwWnu51U0zW8SwbC5KJ24iPWKaoi9sUSwxPsBhFQX0qb5QICMiJNA== 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 AM0PR04MB7187.eurprd04.prod.outlook.com (2603:10a6:208:196::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6565.17; Wed, 5 Jul 2023 06:57:04 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6544.024; Wed, 5 Jul 2023 06:57:04 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v4 2/7] bpf: Run a sockinit program Date: Wed, 5 Jul 2023 14:56:36 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCPR01CA0031.jpnprd01.prod.outlook.com (2603:1096:405:1::19) 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-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AM0PR04MB7187:EE_ X-MS-Office365-Filtering-Correlation-Id: 50dcbaa9-a8c2-43b3-f5db-08db7d250a4a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TUUwVhkUvuw+l+j+p2VqpQi9uQPPOKxe2iRCSga398inzYHQwtW/Q5KFPc2h6paq9a/dJmVZufGkoAriqlkg9ffuLIk/I3caznIa0N+e1rC0Rf7w8zRV6FYZD3aHIFOP7Y5OdXBWPpOmIxA1mvvNnJGMfpIof4cddjbW3M8RZ7nnn1t0/udc2E/DqlDM4TsPwbwqDnnZFNwSXLqkZo4jUTYULrytp59qnjuS8m2buwnjIk/im+yST88Q/NutaMUjFIVxoREN978hxlfMf/+coXz6IhDpTdFScIei0iG8WXdNbJ5sla+EKP5KofHiaDw3PmGwmX13wr6eeAJiIT79OMVx+Gh+BJZsPjnF5IQ+s4EawOYgDkPWFYjDQjhwXQpGfJF5SACzxE5PABja5NtljUzBpk1y7DzHQBwmtXb4Noo5rSmC6F1WODG62Bs/7ODhb4KnAhJeyLh+it8a4zTVROhv2wLCrAiyHTam2f533efCQsEZdmF5x0q95uReHshp7x8xdOEGczxaZuLGmICEsT02oU/wAWy1ZbY7Z3heJ7bQcekRvh3adizQunZV4pAaxjyPTdkdqPLW/v5BTgut+1RobQyCMf5zfZOwzidfk88= 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:(13230028)(346002)(376002)(366004)(136003)(396003)(39860400002)(451199021)(44832011)(5660300002)(8676002)(8936002)(41300700001)(316002)(2906002)(83380400001)(2616005)(4326008)(6916009)(38100700002)(66946007)(66476007)(66556008)(86362001)(186003)(6506007)(26005)(107886003)(478600001)(6486002)(36756003)(6512007)(6666004)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?WuBMHblN55ICC1wpiPi9vbcop1lxy5mCl3+pjOjHM09syE2yVLSEzPUzuVwg?= =?us-ascii?Q?jBgXCtcuG9qzGwxBTf9/R2DiSPXA704A/Z4+uPduMLQR9k7kRO6rEKA99fZP?= =?us-ascii?Q?rPR/18i5NEUtiOeeMah2WWcprc+T24AAYBZa3yXBNx8ubiUhzztKnDHFyiOX?= =?us-ascii?Q?fb9Xq4p2gbL+FwZ30ttyKfEVZFqEFYq2msijy/3KaCZCx2POM0sIQbFPWzmV?= =?us-ascii?Q?ompc82ie7i1Aw5ypLJ00L3yCftbCB9J+QeXRrqE/qKgdUo5YpYVE/9OyHSRh?= =?us-ascii?Q?VXH67h0utvV2PebAInHB98spghXfxJ9jGR905EUfQCAbhCRyMJrFWaj2L0xr?= =?us-ascii?Q?rljDaS27BcTBHs5I6HZ/svxo2ImTNI17wQTn6zaNFJbBv2DQPPP+OKe7j8NJ?= =?us-ascii?Q?QIGDv5ubPfWJK4qDAJHnN4LdcJOHPf5Ytlh/NCuXs44qCp7r9kjwCElzxz+A?= =?us-ascii?Q?XoE90CSUYJ++Cp7vRgsZKUcwnga4y0dSxnX/ZWXh+4RcH97t4BUKTmMEpLRs?= =?us-ascii?Q?oGGZEy4I0mmTMVFI4HZEQ0VP9jhZU4VhyurITxo1TC1WMh1zBvYI2i1bGp4X?= =?us-ascii?Q?LhNdO7AMuP8OFLuqHy9Ii3Aa8aN1UDAXIJydDQoT+lNeJJDn7Gt5FeGjzTLL?= =?us-ascii?Q?fZArvLFJBAxMYa4hdbOJxO4D4iPVr9ftLSYoxUQxbmsvVW/GTrUW+qMtOlfu?= =?us-ascii?Q?tFTNUVSsli1qBmRCq4UDJjPap+sEZoXuutk1w6YQLbcIu9Z3eR4asPkx1Qes?= =?us-ascii?Q?IuLuWcBn94aNwjfvjtOMlz5au0g4JhI3RZV6uXWdGLT3/Z/BDDWCvn5HLFYl?= =?us-ascii?Q?fC/48DGWnrSU4dfgM6n0BLWk04P7E2l7CtMMXCOimREf35t7MRAJrMn5VOCn?= =?us-ascii?Q?lhfC0xXfBPW85JaShhUGoGqovoZk5DyrzoHxcnaojkooKE260KT1zNzHxyyo?= =?us-ascii?Q?LQbQyJIzyvYTETCBf7ZN7RZc7yfS1Y6d9r2d9E66W6AQYCd4P9QPWbTeyAVd?= =?us-ascii?Q?qOeTKUbrDcUIX4B5ArdUWDahDGBIYWhB5ivZ9/0360funZTyFymdOEYyYp1d?= =?us-ascii?Q?5fhddmBE2fLCB2NEhezuSyatTKbbBlcJ/W5bmvGiHHlVcwt6/Rjlh6eQ0ccm?= =?us-ascii?Q?kGglDyPH4cU95PCL44DghQpCZlzXxUm7rt8caUE03eK5N7jjSifr3rLsOtO0?= =?us-ascii?Q?yGhUBduh4gFLupy1bv/4TjwvLcjIo3tJRtIOMeVOYXR8yjXGV1L8yhK428W8?= =?us-ascii?Q?B1zVKAQ8So9O009agp5x4dj0Yc+RWXekXCNr762YbJyoH6265jDc7rIuQaar?= =?us-ascii?Q?t6OdQW3FZinzOEUUBYKxOs6Qom+vax332iRRJwgErzfKLHNbNDG+x4spQttW?= =?us-ascii?Q?Jw9Syd+3QdQUb/CFOXEZ9+QQuzP9FrX1W8qaRwSo2x/WErQGCRfCPLt8N4qi?= =?us-ascii?Q?Eg/6our5FDYD7vVOSKateJxlcv3HfEJlmPigj6zGL+7U22acMNZ/TJIE9orJ?= =?us-ascii?Q?K4dOu1RxWCaWP3DAKZXjE1p7a8W3zSF0Sj60j4rEnA38Zdpk1Gk94ePI7Nhx?= =?us-ascii?Q?v+0mEw96j0ZSDrBmb8y9K6DTucZEg1Zg60fps5X4?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 50dcbaa9-a8c2-43b3-f5db-08db7d250a4a X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2023 06:57:04.6812 (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: Ll4wT0/uyfJjEBN6lQhVqnUHvDHWBha1A9mh1ODjKntDwo5JcnGgpzxuUdyfAmdiRFwo/Nci3N4Lv2qFnOrULA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB7187 Content-Type: text/plain; charset="utf-8" This patch defines BPF_CGROUP_RUN_PROG_SOCKINIT() helper, and implements __cgroup_bpf_run_sockinit() helper to run a sockinit program. Signed-off-by: Geliang Tang --- include/linux/bpf-cgroup-defs.h | 1 + include/linux/bpf-cgroup.h | 14 ++++++++++++++ kernel/bpf/cgroup.c | 24 ++++++++++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/include/linux/bpf-cgroup-defs.h b/include/linux/bpf-cgroup-def= s.h index 7b121bd780eb..aa9ee82f5d20 100644 --- a/include/linux/bpf-cgroup-defs.h +++ b/include/linux/bpf-cgroup-defs.h @@ -37,6 +37,7 @@ enum cgroup_bpf_attach_type { CGROUP_UDP6_RECVMSG, CGROUP_GETSOCKOPT, CGROUP_SETSOCKOPT, + CGROUP_SOCKINIT, CGROUP_INET4_GETPEERNAME, CGROUP_INET6_GETPEERNAME, CGROUP_INET4_GETSOCKNAME, diff --git a/include/linux/bpf-cgroup.h b/include/linux/bpf-cgroup.h index 57e9e109257e..a2f58f0d2260 100644 --- a/include/linux/bpf-cgroup.h +++ b/include/linux/bpf-cgroup.h @@ -57,6 +57,7 @@ to_cgroup_bpf_attach_type(enum bpf_attach_type attach_typ= e) CGROUP_ATYPE(CGROUP_UDP6_RECVMSG); CGROUP_ATYPE(CGROUP_GETSOCKOPT); CGROUP_ATYPE(CGROUP_SETSOCKOPT); + CGROUP_ATYPE(CGROUP_SOCKINIT); CGROUP_ATYPE(CGROUP_INET4_GETPEERNAME); CGROUP_ATYPE(CGROUP_INET6_GETPEERNAME); CGROUP_ATYPE(CGROUP_INET4_GETSOCKNAME); @@ -148,6 +149,9 @@ int __cgroup_bpf_run_filter_getsockopt_kern(struct sock= *sk, int level, int optname, void *optval, int *optlen, int retval); =20 +int __cgroup_bpf_run_sockinit(int *family, int *type, int *protocol, + enum cgroup_bpf_attach_type atype); + static inline enum bpf_cgroup_storage_type cgroup_storage_type( struct bpf_map *map) { @@ -407,6 +411,15 @@ static inline bool cgroup_bpf_sock_enabled(struct sock= *sk, __ret; \ }) =20 +#define BPF_CGROUP_RUN_PROG_SOCKINIT(family, type, protocol) \ +({ \ + int __ret =3D 0; \ + if (cgroup_bpf_enabled(CGROUP_SOCKINIT)) \ + __ret =3D __cgroup_bpf_run_sockinit(family, type, protocol, \ + CGROUP_SOCKINIT); \ + __ret; \ +}) + int cgroup_bpf_prog_attach(const union bpf_attr *attr, enum bpf_prog_type ptype, struct bpf_prog *prog); int cgroup_bpf_prog_detach(const union bpf_attr *attr, @@ -505,6 +518,7 @@ static inline int bpf_percpu_cgroup_storage_update(stru= ct bpf_map *map, optlen, retval) ({ retval; }) #define BPF_CGROUP_RUN_PROG_SETSOCKOPT(sock, level, optname, optval, optle= n, \ kernel_optval) ({ 0; }) +#define BPF_CGROUP_RUN_PROG_SOCKINIT(family, type, protocol) ({ 0; }) =20 #define for_each_cgroup_storage_type(stype) for (; false; ) =20 diff --git a/kernel/bpf/cgroup.c b/kernel/bpf/cgroup.c index 93b9f404a007..fe294e4d618c 100644 --- a/kernel/bpf/cgroup.c +++ b/kernel/bpf/cgroup.c @@ -1996,6 +1996,30 @@ int __cgroup_bpf_run_filter_getsockopt_kern(struct s= ock *sk, int level, =20 return ret; } + +int __cgroup_bpf_run_sockinit(int *family, int *type, int *protocol, + enum cgroup_bpf_attach_type atype) +{ + struct bpf_sockinit_ctx ctx =3D { + .family =3D *family, + .type =3D *type, + .protocol =3D *protocol, + }; + struct cgroup *cgrp; + int ret; + + rcu_read_lock(); + cgrp =3D task_dfl_cgroup(current); + ret =3D bpf_prog_run_array_cg(&cgrp->bpf, atype, &ctx, bpf_prog_run, 0, + NULL); + rcu_read_unlock(); + + *family =3D ctx.family; + *type =3D ctx.type; + *protocol =3D ctx.protocol; + + return ret; +} #endif =20 static ssize_t sysctl_cpy_dir(const struct ctl_dir *dir, char **bufp, --=20 2.35.3 From nobody Wed May 22 00:01:08 2024 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2081.outbound.protection.outlook.com [40.107.104.81]) (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 04D2210FE for ; Wed, 5 Jul 2023 06:57:18 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QKeMFRVpTp2OEs0xa4V0EnDwr5zzHVBjPcrv2RiG1WvFFH3yBHLg6MzwNF+eXvOO5/xZ3NOvQKu7fd61d06bWlqHeMjjVI2Vwg7u9+prZvyYOa+1DDvqm503rGQGZz21u+rI3HSxQ+EFZYfCzFj9NQqqPRqjT3C9rKADW7tlJz4VvfNzTmCH38RJoay7Hirp8sQQFPPgadw7PElY41hEGaYylEHUvxxIdr/5XBgepUyW9IqORbwJZKQp4SGfEwYZDkLx2eyJNmh+5dpCNczPoX6xMEFD8QwytplpJ6M99ImsT0yYR/UK6USe19fQte3NzaWoYENGa1P8CkxB+dVL+Q== 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=lY3Pgk1uh4FXkQ6a+2ml9sNjR4idpzfAMSUu5Wzp0tY=; b=VgHEtOI3E7EYCgN/wf2W+aqeYNn3cx2rmvmQQVn7EMAUgEGmlXrmRqqJKzf3MaCTk29pFdOGFDv2MzmnV4fT82Clab5QvYpm0qfhsrfxgon9Tor0tlxOEAlQpuwF4HiheD/U+wBU2D5OL1Dq7IhZo0fmqx+M/4SMRN3kVQsIVaQa2y4jY/EpO7OmYihFwFMGLhlco91dd7poMe48WBoYnD9bs+MsqFb9DHzdNkACSKG8oiJbfSXwmj6VtrggEou46+fyAJTfNJrcXgsuFqYSI5dNy2fMkeVu5fsrIDBedXBsfCorRduLkXe+TrfkPK4biqzoUlk0iP/j2dgFTY8dQA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lY3Pgk1uh4FXkQ6a+2ml9sNjR4idpzfAMSUu5Wzp0tY=; b=IuihkJgp4LXGh22ceZ1vAGhTA5L0hM4HTKPtANGdu3kg6gQhIq8ezLFFCkjCf6++OKv3+TzrvxSLk0bVgSrl3MQ+P5PIjxX3J8t8wmumprvo70dqJ1SZMMT91bA0md0CkjtqcsyM6bHskivBF/USVSxR6re/LTGR1AAF4P2A9KGF5N4g/Jpzo+V00eyzZ2BpRN4PKn71xYQUJWmWnPckrS6A1/YYyGHSDY3BQ+ctJnye1brUlVYnTmtp47TCcCMsL4fx21Bdwrld3ITJGOp537T84fiAgSlQioV7tEFEpfWiS7hKHHOBHazq1VYrJU2VfrVAqcr9bLL+c6xjry6kaQ== 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 PAXPR04MB8720.eurprd04.prod.outlook.com (2603:10a6:102:21f::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Wed, 5 Jul 2023 06:57:15 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6544.024; Wed, 5 Jul 2023 06:57:15 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v4 3/7] net: socket: run sockinit hooks Date: Wed, 5 Jul 2023 14:56:37 +0800 Message-Id: <1740c11d12f49a122ccea2927f3ac9f833836721.1688540074.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0096.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2b4::12) 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-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|PAXPR04MB8720:EE_ X-MS-Office365-Filtering-Correlation-Id: 7edad94a-9e60-47d9-5b33-08db7d25110b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yBl45LmP/j+VL6zCmeZwORB8faszL1agSEC+251PEjILeWJn5DSYcHr6N+yro29nSCwPERX5SDCPaYcXc63V+o8yrZtTeA9fQLf/ul4JFFT2RVIx/+DAyoPyqT01AKySXjRX3+MM6hSx9dOxijARs9e3TopRla5N4hilV7j13bwW7KIuPVc6QH6BhLGlYOgGqE1SySk2EzfUchFMtthhV2wL0ZnfU/XUDvrjDnjvg9LPhEAblqtglUuGNe+lQkLJ4u2zOpC15x/LsZTk4+15ft70XzGUfIFrH+FRC/qEbW0cvxpzevj4DnYKVXhvNLe1zjiYyKF1VsbtYq9ydQxHEScnTFG8aLeNrT9N6OMUIxvKGjxQMSW3BBqyfh6UWDYTuTvOjFSFW+hxWNhYZ0Hg4QUfDwQf9SpCT+DlNsM31+rTIbZJF/dCS78mbs0+LZVwjszgGrh2sYkDAWmp5Ar9lFg45n3STKXkdJESrZgnRLcnotidyPfbce4iV3uX25s9XZ+hnCueu4DcIm5FEB+wT6Ecb6TClPMPf2RTViAHdTGMEMBEBgwn6ZlQF+jUdDN2y9M409c64MXmF/AiR/495fYFjDiDsac+TpiFgsWagWI= 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:(13230028)(346002)(396003)(39860400002)(376002)(136003)(366004)(451199021)(6512007)(44832011)(26005)(186003)(86362001)(8676002)(6666004)(36756003)(2906002)(6486002)(4744005)(8936002)(5660300002)(41300700001)(38100700002)(478600001)(107886003)(6506007)(66556008)(6916009)(66946007)(4326008)(66476007)(2616005)(316002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?pdhN++2DlM2M33NdclkRpx46xkl3rh9qqzQ8shYyBV6xOCqRdU5cvlhzY90r?= =?us-ascii?Q?7/cYKzxiU4yiHuZ/YogiQP+1kYKnCwVNVWtdiTeXFJVn2scJxN3MY/gTS6EC?= =?us-ascii?Q?5hpecW3N0bjUgXPn1uPc+qRHh0IIgQHq1k34wxShPjTVssmvi6u8WTOip7O/?= =?us-ascii?Q?SrasAJegGC6L1eYDq/VEPWLzFrqJF/RojgmPgBvGte80Pm6aFIWtUiF9laMQ?= =?us-ascii?Q?KN76rGu58oeug6GXUfH5Pj46ojcxyz7wrPFfkGZoXutLrKASMC0K3sAJqD2I?= =?us-ascii?Q?Gox8CXfUCSs2Z1pv0AEIApSK+SDKKTlAc8zRBiRdDaZX+AhrzQGZ03fyVud4?= =?us-ascii?Q?FqWyGIYbhAQRxVo1vLtUYiee2uEXFwfj1AqSZYlkLr+dHX32XTVrQuAxJuk9?= =?us-ascii?Q?z/I8m8uTazvpBh6w5MvaUuLLVS2EIgxqqZ2o7t5WAQ+S5HatCuEN4ZTdWp6d?= =?us-ascii?Q?5AQvh35YLC4wRpAZ0nMaUGtkjFJ6xEHBE/4iRwVhbjud8h7Z7i/Q3PfgzuCT?= =?us-ascii?Q?qmgU3PyAlliOISE9uLRCKeavouEZhqKA18+oGyE+8ej0vfPS8TK000lzr3mI?= =?us-ascii?Q?hjyinYK8JxdBjRSE4LM/UtXsklIW5OblAV2Vo0ndyB7xkRvO7emNfgfIMELq?= =?us-ascii?Q?z0sov5oI/MzhvWlwwVguejSqcK9Q2S7Hu9G4YAWbY0tvBCnFLykdYjdV6RCD?= =?us-ascii?Q?B8uP6wxyuhx7SnoAdTaTr4puqebdTIXr0dKtGvEirGUP8egj28gs43yA8JJ0?= =?us-ascii?Q?Pf7xcm0ICe5oa/o/84gAVtLaT6U/3Hf1tBkZnD7BvAD2Wk2MlyfryYKJppo/?= =?us-ascii?Q?7UvYl3M8MChsLKzZ017QUbfHe/mS6ICHTx600A5X27gKPYO+r9L8Us6lWFLg?= =?us-ascii?Q?yvutDawto6UT8TE6fcBk27ZERIV5IsyiAfkbBGHmALEQbwgXHoqwK6eY3c4j?= =?us-ascii?Q?HIk9qTQVHdqzZGxu4y6W+67Jpxe5POOnOrCYec1d/dGXFVxBsvgxLu5G0Y9Z?= =?us-ascii?Q?OfjlZCwP5QJcTvIoYob+GkomG5GCeHTO3NU7C75W22XFUja6J09UxOc+1zPt?= =?us-ascii?Q?aw2BkqEDS4W8TkkwlDR2VkmPrbf+rDuWKp6BfaoD7cRtJopsYKrYUHgTSSO9?= =?us-ascii?Q?Qh7DZmqavYOA+WEP2yfq5tuKCXod78FpXAJvFQM6HFD0dmQpFe+RcGgKqZkA?= =?us-ascii?Q?Imuxcx1jYnignT3vL3eQ/sLzPxB5kec78LVBrI9IeCE6CTydTW51dQ6rB/aV?= =?us-ascii?Q?S3Hi+vxNxcYo/X9f+vwzzG7xETgCe6izCLubt77fTVCL917ghDH2ROP3vhOe?= =?us-ascii?Q?obTD05fZEhDYaEiwrwj/+9grqx0jcH4j7WPnIbbNZebl90FsGGrMRu3APIrF?= =?us-ascii?Q?VkXyiHJ4am8NvEP7bdiND50M717e9RfapE/A+3L7xxx3NSDk2BN6nh39n1+b?= =?us-ascii?Q?3ct10//WiLqyxiPKoMsjV70P4oG4nAQvfSvmtM+lWGCLGjN3danVz+zt36at?= =?us-ascii?Q?OveM1r15tSNu8E9Mbv0a9uCeyiopHl5joxIoFUI/U8hQeshI4tqeBv/GLpuV?= =?us-ascii?Q?Evi9Sgrm9odXcBX6ppy3E5IboKiSyB3CUrMtAxUk?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7edad94a-9e60-47d9-5b33-08db7d25110b X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2023 06:57:15.8304 (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: Wdn9zt5UQXOP8XPpG830W6hUu5yl/b0Stb3rmef9xP9Xrsd9MMF+CyaDcU9IDf8VryUoVj2QcMI6ojmClx8mNw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8720 Content-Type: text/plain; charset="utf-8" The arguments of socket() need to be changed sometimes like the MPTCP case in the next commits. It's too late to add the BPF hooks in BPF_CGROUP_RUN_PROG_INET_SOCK() in inet_create(). So this patch invokes BPF_CGROUP_RUN_PROG_SOCKINIT() in __socket_create() to change the arguments. Signed-off-by: Geliang Tang --- net/socket.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/net/socket.c b/net/socket.c index 2b0e54b2405c..27b423e1800f 100644 --- a/net/socket.c +++ b/net/socket.c @@ -1469,6 +1469,12 @@ int __sock_create(struct net *net, int family, int t= ype, int protocol, struct socket *sock; const struct net_proto_family *pf; =20 + if (!kern) { + err =3D BPF_CGROUP_RUN_PROG_SOCKINIT(&family, &type, &protocol); + if (err) + return err; + } + /* * Check protocol is in range */ --=20 2.35.3 From nobody Wed May 22 00:01:08 2024 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2085.outbound.protection.outlook.com [40.107.21.85]) (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 7FC7610FE for ; Wed, 5 Jul 2023 06:57:29 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M+5TKMVmaMa4WwfXewLeu1iRXsOnsyQQs8HBKN2evbkoON6i/kb18haTny/eaT0P+ajTZJrRePjl2sbs2Qu/obSxFzMZz3vYsrzogDWlt2iwEYY44AW0LRwY2AA5Rp6cqbne+NhQAvQIOPpfx01vB4u2sNN8o2kyaOM9ZwrCqriIHYrTj8ve+/KPocXAwNDjgC6iU77xsrCkGIw3g+eaXa9UTTLgMttT3n70470ZGU9y0sbZgQWAOiKA8ppPvYVvwEalLL5JkbZVHBaXWF1GCEUT/t+lquGXVVtDXrItwR6Ve7HGCXaOrMszwDG7OpiBx7OzwlS1Kh9AVBgEsNfOkg== 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=hFcnVtBZ8UP2TGfsabD++11bnT8sUFM686NQ5RYwVgI=; b=XyNarcElgnIwMGZARnY+t2YnX2cipmPNNqfuZXJ8waZyGgcIW153qdO6il2QyUWL4+n4W6lkO6pXSUi1HFEBJEvatPzUizZNxaYgitgzb4gyBYUcBiO/Wg1K2qglhvWtGpBm2pZIPcl/Caq+5Ic8eQwV8Sr1/FtuEaPEGmBupAL2UzBNzx2Q4s6x0Z4SENv/V87dgb6rLwS+2z06xlIwp/G64wpxdK7yux7qnkIR2z0wSjI8OerFM6Kd4gPTP9QA54oKoP5KvqKQHmSBzb66Ilvh3UCLwpyywkGAVWdA/m1YsNQccRhxofxSsQrEjyZ6jDoc2XyWvx527OZziteEVg== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hFcnVtBZ8UP2TGfsabD++11bnT8sUFM686NQ5RYwVgI=; b=dcmdiI1YfpoZVKaIsPuDSjajvoP9ATNHTMGTKEC1IGrw9Uiyzis20PhOA2Z0QRvcIh/Jq0EaMoPPtNUcYpKQVziSarIG0z5B1+l6EonU5ruUAsoD6ST3qvT5T/xWOaZ7WcQnLfEBNhs91OhtThSTXiOqO5f6r30r/hucclVyZvGpHpJlxt0+g89aFWvUyg68mGJewtvgmUz3QFyWEB7RW+5rfaXH1gOR0oKDC7Y8XfAV9aEAfh7EEb4RWZdb2Ed6PDlIJvMj4O5epySLo7qgkaH7LVNWbJ6ipYXq9MgSaruS4+80bSJFeSiwCasCuCxwWs1tf49Wi7scBlfd8fELRQ== 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 PAXPR04MB8720.eurprd04.prod.outlook.com (2603:10a6:102:21f::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Wed, 5 Jul 2023 06:57:26 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6544.024; Wed, 5 Jul 2023 06:57:26 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v4 4/7] libbpf: Support sockinit hook Date: Wed, 5 Jul 2023 14:56:38 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0101.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2b4::14) 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-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|PAXPR04MB8720:EE_ X-MS-Office365-Filtering-Correlation-Id: 39ac6318-5ecd-43c9-2b1e-08db7d251752 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OpSyaYilUIDI7Jyi2fdAO0gquGJSPuZQ1mU0KY3u1rHp6D1OoprVWIPixmgythSaMcVkJ7Xrt/A0h+jRsjVCjFnRH1jrYe5LYZeSRhX9FvTbH7NNAu1bLG9R6J6+tvo55jSyvGJ1jkeMfERN/pHaaQIYgdxBmMxBLfOlzOG+vKKy0BiKGBZXl07XP5jFeRJbdghlTvjQRHrhs/Dwo6H91GoxFH62yKz+C6LDr23xT0oAPeTl8dysjl12a0TTXmVTl1awr2lh84iTqu13fmFVOLAoEebbL3WqTlh/MZZhnAywzbXRYK90vEcwJZFx/Y8D6ci0Wi6VVSOP00AT2xmwpILygnHMx2ESRE79VdGMiatOA6i89cgxrHuZ+rCMZJER9aG1zVwaiFiUuB7EpqbhCVM/1X8lsR4k/VoPvZHSz38g8VBrByxaJt5xAY5AfglifWThE7TmH6a8pvfeKTLkc/YRrCJHXEBLyMIeoT2t+PhJH7YDWsTZ1q6X2m50MpVbgS5UqvebQegXIogPo5GlGOHoz8XQ5u6zMfuC8fdRsllHIX2NGvNPEH/vED31iq1xWn/upu63ioTeoNcon6nBWTwKxScgdgCn0vvlJEiutyA= 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:(13230028)(346002)(396003)(39860400002)(376002)(136003)(366004)(451199021)(6512007)(44832011)(26005)(186003)(86362001)(8676002)(6666004)(36756003)(2906002)(6486002)(8936002)(5660300002)(41300700001)(38100700002)(478600001)(107886003)(6506007)(66556008)(6916009)(66946007)(4326008)(66476007)(2616005)(316002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?XsPARGl7fay9mNLPFbxuo4LDTTGIsIQ5CGfMGN3e5jp0NjLy3OjpoN6tY/zY?= =?us-ascii?Q?kuClPhYIR+6tXQDPkS3pp0wWzOo/4o25pXqqijj408XfmxFVlDm8qjNya/MJ?= =?us-ascii?Q?SFNsvPVQ8p3JR6c5ESBQk7pkAz9LOSORD+bW6hj555aumq6GXq5zSSX9h+HG?= =?us-ascii?Q?7vk+9yFCPqIjNLQMKEuM/E6Rr97UcFFSNHhYFpO8RtR7LV8kEbvIEq+rbBgM?= =?us-ascii?Q?DFa1Nc6xGcWyzfZneWIJSqbyFFjLhwtJZXyIZaUK4T0F3XtKIX+prVAohkjU?= =?us-ascii?Q?Q6FEMnuLyJRaWV5GzbMQb+lMTz3EG57ecRvKOUsnaMpedY89ChDXj0NbTF8v?= =?us-ascii?Q?tQawHazk5VdU6bpFz9UFq60220QUIKBwIz3hRRp0xgzB/JdaWpraNSyueJF7?= =?us-ascii?Q?jQjTcLQGqW4G9uNCO4XbnSuOAtFRnRsXui6FBcBYbSKL9QwXd0CzbWKB5TqQ?= =?us-ascii?Q?CJO1F7DRiFl0gfZKBdgNlkOlWKf7qcJPR51TNaEjtjv3k/jRMMreuSotxWZw?= =?us-ascii?Q?ETCZ09tP0G2yQ/PEcK+d6Rgmxk4Qh3o4BFZRRq1uFoqJysisBQqvzz41FhvJ?= =?us-ascii?Q?yCI7oVscPsATOKr/UIewMeAkeV1Mk4ICwGF5wCKhhKelQYB2q9QLvOhrd//R?= =?us-ascii?Q?5NLvwdZlnPBN+wN4chWycqqkvjo7roKrDo68Rmg125w0tvJOjE5W739gqm3j?= =?us-ascii?Q?bmTCqzv0KqBEzVWsvxwqrl/rkT0tbZRMroGrEUbbPMoFTv4STgxE//Bw66/R?= =?us-ascii?Q?FrHE2X0blwPql8ovj4xqDCXxzc5GVlblBLfP/f5ll279pEtz8szpwsFLPQfW?= =?us-ascii?Q?P89CYspISRq2LAaCx2qFljxYhpszRVyG0sKp1obn2marFlz1/NR/wyiX6wSv?= =?us-ascii?Q?deTinyf5YvwDxnH/RqeY6QBIXDWLeo1FlaAq0LBNULK+C66QAw1M3Tz4+/RT?= =?us-ascii?Q?zQqueTLoriHc26mZPfnKRkjaeUf/YwV7cPDv61QyMOUrWMO7LUSR6bioaFIw?= =?us-ascii?Q?tnFaNa9OH5gfzRIfkFTcFgUPoQ3xdFQPX27R0jzmpVkVEfQFelcF5EHoqIFM?= =?us-ascii?Q?K/z4xuQ6p63v8ol0UBqBFt1ktLPirMK3ZWHc0eNqMM1uur/ZgTvWOumIJxUa?= =?us-ascii?Q?4KP2X9d5rbAUGfHZ1S7HZb34Y3xi0r15mHHhVSeA4WZ+Siqr/tOnQbrhEhAq?= =?us-ascii?Q?WxV4fBOKfxZ5go2SUFhnU+Wf8q+0L0JYbhw+5cMSyL1ESGp+28gbL/nOUHgh?= =?us-ascii?Q?2SAZ8fMkFQp2Y6feShSpsTa1vBOMUc+3n4N4sYNeeFgFCQKo2Lbj92QPkKKs?= =?us-ascii?Q?sRILYJU6Zxa4qiYPw5q2CCZ6jvzirBEf3dR8+MSH1NZRo2Ml7TjbWp5C0QaG?= =?us-ascii?Q?CxlrrqkXjeuGm1ecY5bvMXocFPYLlNb5RRjS3/DuJYHj27Yn5YcY6glA3kjf?= =?us-ascii?Q?km2UsNfNsyuG52nmtVo8VDnLM/XcEGVp6/HcOAilHRMBbUXc6p5INRIcy6gg?= =?us-ascii?Q?UDCYARL0JXlcUXVF0wAJ5d9puJLz5SL8SxlajvCdKbVFeNiYXTlVNNIVMy1C?= =?us-ascii?Q?t9txwJu6MwDuTVOfQVO33xdQFJnWhB1mjdCUM9k9?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39ac6318-5ecd-43c9-2b1e-08db7d251752 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2023 06:57:26.5430 (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: 1quEU00pDDHI3ssHXM1JR+gSghC2MYQxBVEzDQ3D3KV78QypGKbShR19BvYNja7dicXRGdc5gIg95VPmSrAhdw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8720 Content-Type: text/plain; charset="utf-8" Sync BPF_PROG_TYPE_CGROUP_SOCKINIT related bpf UAPI changes to tools/. Support BPF_PROG_TYPE_CGROUP_SOCKINIT program in libbpf: identifying program and attach types by section name, probe. Signed-off-by: Geliang Tang --- tools/include/uapi/linux/bpf.h | 8 ++++++++ tools/lib/bpf/libbpf.c | 3 +++ tools/lib/bpf/libbpf_probes.c | 1 + 3 files changed, 12 insertions(+) diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h index 60a9d59beeab..cb882ab8065d 100644 --- a/tools/include/uapi/linux/bpf.h +++ b/tools/include/uapi/linux/bpf.h @@ -980,6 +980,7 @@ enum bpf_prog_type { BPF_PROG_TYPE_CGROUP_SYSCTL, BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE, BPF_PROG_TYPE_CGROUP_SOCKOPT, + BPF_PROG_TYPE_CGROUP_SOCKINIT, BPF_PROG_TYPE_TRACING, BPF_PROG_TYPE_STRUCT_OPS, BPF_PROG_TYPE_EXT, @@ -1013,6 +1014,7 @@ enum bpf_attach_type { BPF_CGROUP_UDP6_RECVMSG, BPF_CGROUP_GETSOCKOPT, BPF_CGROUP_SETSOCKOPT, + BPF_CGROUP_SOCKINIT, BPF_TRACE_RAW_TP, BPF_TRACE_FENTRY, BPF_TRACE_FEXIT, @@ -6829,6 +6831,12 @@ struct bpf_raw_tracepoint_args { __u64 args[0]; }; =20 +struct bpf_sockinit_ctx { + __u32 family; + __u32 type; + __u32 protocol; +}; + /* DIRECT: Skip the FIB rules and go to FIB table associated with device * OUTPUT: Do lookup from egress perspective; default is ingress */ diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c index 214f828ece6b..03f62d163030 100644 --- a/tools/lib/bpf/libbpf.c +++ b/tools/lib/bpf/libbpf.c @@ -95,6 +95,7 @@ static const char * const attach_type_name[] =3D { [BPF_CGROUP_UDP6_RECVMSG] =3D "cgroup_udp6_recvmsg", [BPF_CGROUP_GETSOCKOPT] =3D "cgroup_getsockopt", [BPF_CGROUP_SETSOCKOPT] =3D "cgroup_setsockopt", + [BPF_CGROUP_SOCKINIT] =3D "cgroup_sockinit", [BPF_SK_SKB_STREAM_PARSER] =3D "sk_skb_stream_parser", [BPF_SK_SKB_STREAM_VERDICT] =3D "sk_skb_stream_verdict", [BPF_SK_SKB_VERDICT] =3D "sk_skb_verdict", @@ -197,6 +198,7 @@ static const char * const prog_type_name[] =3D { [BPF_PROG_TYPE_CGROUP_SYSCTL] =3D "cgroup_sysctl", [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE] =3D "raw_tracepoint_writable", [BPF_PROG_TYPE_CGROUP_SOCKOPT] =3D "cgroup_sockopt", + [BPF_PROG_TYPE_CGROUP_SOCKINIT] =3D "cgroup_sockinit", [BPF_PROG_TYPE_TRACING] =3D "tracing", [BPF_PROG_TYPE_STRUCT_OPS] =3D "struct_ops", [BPF_PROG_TYPE_EXT] =3D "ext", @@ -8734,6 +8736,7 @@ static const struct bpf_sec_def section_defs[] =3D { SEC_DEF("cgroup/getsockopt", CGROUP_SOCKOPT, BPF_CGROUP_GETSOCKOPT, SEC_A= TTACHABLE), SEC_DEF("cgroup/setsockopt", CGROUP_SOCKOPT, BPF_CGROUP_SETSOCKOPT, SEC_A= TTACHABLE), SEC_DEF("cgroup/dev", CGROUP_DEVICE, BPF_CGROUP_DEVICE, SEC_ATTACHABLE_O= PT), + SEC_DEF("cgroup/sockinit", CGROUP_SOCKINIT, BPF_CGROUP_SOCKINIT, SEC_ATTA= CHABLE), SEC_DEF("struct_ops+", STRUCT_OPS, 0, SEC_NONE), SEC_DEF("struct_ops.s+", STRUCT_OPS, 0, SEC_SLEEPABLE), SEC_DEF("sk_lookup", SK_LOOKUP, BPF_SK_LOOKUP, SEC_ATTACHABLE), diff --git a/tools/lib/bpf/libbpf_probes.c b/tools/lib/bpf/libbpf_probes.c index 9c4db90b92b6..3734fee60d2f 100644 --- a/tools/lib/bpf/libbpf_probes.c +++ b/tools/lib/bpf/libbpf_probes.c @@ -180,6 +180,7 @@ static int probe_prog_load(enum bpf_prog_type prog_type, case BPF_PROG_TYPE_SK_REUSEPORT: case BPF_PROG_TYPE_FLOW_DISSECTOR: case BPF_PROG_TYPE_CGROUP_SYSCTL: + case BPF_PROG_TYPE_CGROUP_SOCKINIT: break; case BPF_PROG_TYPE_NETFILTER: opts.expected_attach_type =3D BPF_NETFILTER; --=20 2.35.3 From nobody Wed May 22 00:01:08 2024 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2045.outbound.protection.outlook.com [40.107.21.45]) (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 3EC6210FE for ; Wed, 5 Jul 2023 06:57:39 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bIcm+uFh4VdlgT36dAUvoTf/5iPWa8BWmji0N2a9oC0VV8/IVOJjc3ysv+Vz9nvWE/NWqcaoS/JNUD184OU/pedke6U2uNxTLVLVAERVCuvHHeVYkVBR4RAg0Uf4OcDe+DCnZ5s2uukl+drZ8jGJgmD2ND5FuX+OnuJvBs3bVNc2xqoG3/19Ku1d5x/FqG/DLC+/T5PQlMq3rBoLPnJ4PpAsj4hTsD+iDUgls2pDN5VHT1NUn0C4a9cGwY6lAEhYj0xMzF5pfY4g2x1vedncBz8iO7BghkcXvypOXNILrgeGyfinS+b6Qikqt0qsyvG6RXIt3lRIANfaIhB2Ioa69g== 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=SPH4bwg8shk4a7dlucecBOgYz1Xs3eVluKKT5Ey3zWY=; b=RV/3wElnCcTNyCN3qZlyrSS9tZiVg0yM0EkX3KpTKE6zZ4vJ+GUa67Vf7FGJJeSYig7HKbTdi9sSaO17aE59SYW3eOQcCiGy1QaAoHNxkeaUOOgAH2yKFUI8hnQ1UZDU1xuDZp94xb0c5MG/Ou9luR3yLTwr3tqajBzt9rcBAPR2p3IlTTUOLoxZDwvqD/WHSKduz+LYUAdzS9KUsIvdFcbkMZQQgokvFDKc+znzBjxoMrpkJEHVAdfAjwv5UwLE1wHEroSnyM7K/X5hOauBnP3A91ROa0qEqUxTfqFMkKN2dNiVg3wCzBGwnmRgwiwNN14OBro6B2g/luaIcU9HSA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SPH4bwg8shk4a7dlucecBOgYz1Xs3eVluKKT5Ey3zWY=; b=mUu2xVKkzIMJIyVyLTfOHWoXFuseANunJ3eFf0m7ffchAb02FjBJkP9gUSffMb20Yh8AWjSssf8HDdKd0GrcP+/Pq/OY7kTA1hn9qFI+kKsiQg3BohnWcEN/QPQcU4UsipE/sg+59sgD5cU5Nwdl6XYwZiWFOZL8sbdA/k+QE072/MMc4FZt6hOIWkPOR2tvA/+l2j0HIIfaYEyLXzM5NCOzXotiln9gdeNz8GxQ4JOdfzKmGaGknnASSIrAyka/wVLib9QgrAYOc4RZnFBYDBxkhhFesL8N+OFg70G+JzhVu+TLIsFn6mIwIjQmxWkuRKpN9sqxezIToVEi+XOmYQ== 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 PAXPR04MB8720.eurprd04.prod.outlook.com (2603:10a6:102:21f::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Wed, 5 Jul 2023 06:57:37 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6544.024; Wed, 5 Jul 2023 06:57:37 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v4 5/7] selftests/bpf: Add mptcpify program Date: Wed, 5 Jul 2023 14:56:39 +0800 Message-Id: <11450563449c884a23b499bf629a661b07dc13e4.1688540074.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYWP286CA0006.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:178::16) 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-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|PAXPR04MB8720:EE_ X-MS-Office365-Filtering-Correlation-Id: b392895d-4bfd-4633-cbda-08db7d251e0d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MxfbijIzE+ay32NUCvFHdr/8vQECUKrY9OY/jXgOFsPTIGdgSN/P39nVJcgqL1SYEBzS5DLLYr9JWpgymldWy1K9X6qefNQjVGu2iGevYEM+7NMcHIX4uImFZrw8ML3SCXK0liJHO6Ayfu5H7mjVJ2PHXGCLQ6vfPrtbCMVhBw16snac1rdZAMq9Po6Lan1FMoVQqDKOq0GIVjzMTrTx0rfkOOY2KYpvDPPR/bQlSTKDZk1+pnjAZXiIlvllEEkkFc11NRSedQZ/gK7Gm9GJekJQAqchNH/yIYsNXAWpkVNOzH8G4K5OC7gddwPQ+3+W3SVyhTAhLCs+6MTgc9yOUn5TV/B/H5ia+yfBT5NNbrK30cAFfUpa7jFRJC28cPUirc4AEHMZku3QG4pwlovBXYM62CXY55WJu1M0kn7zYUH7D+R7JQExzRVkONeSbgfX13oZK3Fle/BnIEkgZrKC914DB0cItaYg5LL9fvQXCe1mhD/laoJOays4/RTuXaAGssM8oo/IiYPRuD7nJHQ/LJoY9s80+HAUyCMimp21GYn3B+kojguEe3xjkTwpArUynYS+6WADg6HOZRKAtf7b8MqMBr/jWFqd4sLQ5DzMQdw= 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:(13230028)(366004)(136003)(39860400002)(376002)(396003)(346002)(451199021)(66556008)(6506007)(66476007)(6916009)(66946007)(4326008)(38100700002)(478600001)(41300700001)(107886003)(316002)(2616005)(186003)(26005)(6512007)(44832011)(2906002)(8936002)(5660300002)(6486002)(86362001)(36756003)(8676002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?UWuSghwG2RkhYxUcDCho48NxG6z5Eul2mRjoogXHtWLpb4Q6ci5ndmMo8p6L?= =?us-ascii?Q?oOcbqA5HBIO9wEv6wzqAJXnfzqCEmMw0pGIHGQYQHyqPjkdFoM8dm9T2oKjy?= =?us-ascii?Q?MdcOU3b09yO1tcZ+gxAraT5UFS1fYwwqcWO6xWq2VnevDrOghVFlx4a70wQq?= =?us-ascii?Q?YecUNw/pYzJkCKGQPvYb6p5B+eHzpj1ceOuMu3PJ5Aem7prQ6rBKBulqdZzs?= =?us-ascii?Q?pJZesCDLFYaVmqO9B2+DWPfkmKLm0B7nTYMBkX8NEyDx4+R948lL7uKPUrCk?= =?us-ascii?Q?IEQw5fKEiGjhX4HdukYqVgj7/iKmApEajZ/j2dTNjW79y7RUC2PkzPpXSOef?= =?us-ascii?Q?MpbTvWwfrZMxerh2b3Wm2iMdeRkCbRknX+G82McDYtdHSmh3M4nK4JljyF8S?= =?us-ascii?Q?P7DI2LbdT5Oj3ab+iUF9nZWqEtvM0j2EtDB7zWgGB4IZdWBqacgpwCe7F9yv?= =?us-ascii?Q?FwXKC7fQO0dRpBDcHoB2ZXelvm9fmfM3vJ/zUxRTJ7I08HTLVlO+Iy5LcWbW?= =?us-ascii?Q?fkAfacySv/vmSjo+/ooXVX6TptCnz0LDSnLUxXYKsHIQeZSLVO3RD0CcGeDu?= =?us-ascii?Q?icOG2Rqjt1996rMS3/oh2P9D/9Qw05tGDt0lo2e4lLbhGapHQBsbh6vNsebk?= =?us-ascii?Q?h3Lx1HeY+CnkM7evNzA/+74EuBPUsN3bbHvBqwdK39y73dIxu6m28hkoO5l8?= =?us-ascii?Q?LJzoj7lUtEN3qr1JqPVkkEiMYdqMv+vX0HNx8sgW5p7pfIUw0TXP2w9/cAUy?= =?us-ascii?Q?yuddOnWN6gGwvtQEIVWWthKXo69UU+x4cIulmNzyNe+4xj+Iy+/HzTSGX8jM?= =?us-ascii?Q?bVWxEpGIggW9Q3UlBamZyeOwMgjl8lPkXlSMHvexl7rr6lS5QCF1VqLsb8C2?= =?us-ascii?Q?7TyC7QpsZ9pVwA+foqMkV8LSx02RyM3VHl6eusY0lzwzSzu8FJ4vp3X8KLeW?= =?us-ascii?Q?Rs905koWHtjtAfN2orQS1LquEeRf+aPPtLV0CZv044UESLu86CQaMlLPlbp/?= =?us-ascii?Q?OYpkmxl5umfn64eT9fVi5o9kppbaTvcBDRrkfv3VELHWY6tZoQtfwVLlmiiu?= =?us-ascii?Q?knl/5OVWrqRcl0CuQuzTJ9nA/HxlGvQnPKBVhch+ydOF3wE9Wdg/ccwE3NQM?= =?us-ascii?Q?qvx0MO7GoS+s+NRmVs5ncz+z50tRU3G2GhcIjuj5n/NK/lim9owkbiJLTEat?= =?us-ascii?Q?R4nkMjID7RTm0phtwQ+AyJmOBoFdf+g8cGrvgY7K1PN6CIZbpBz8pSK5io7Q?= =?us-ascii?Q?q4J2NEK5GbWko2DTCvmIa8cXOZp40UfALP8jF96r/yH/NHBSo5XybgegB1Hp?= =?us-ascii?Q?LI4BftTtBr6wtCSVjroRSMYkhHEDheskGdEm0BcVctOlAU1173Ymkuf1oTz7?= =?us-ascii?Q?V6Dmf5lAZkTrF89ltdF5RzuZoyvg2dvwYS/Yo0G3OYFH1x10TJGIoGAdmWrh?= =?us-ascii?Q?WbK44v9t4ts8V/Bf3eugg+ZHWcBxpaiT6rWtS6LfcJMcvEwqpsZuIWfVuvT4?= =?us-ascii?Q?D4B5mngNLVPto4XM6I2xSUy1i/wk9lPWUeYmk2jHQACi50Lw0EsJmKSUyaHf?= =?us-ascii?Q?WxH36949pAJhjrTwF1RJHrdxdU8zSyfNW0PYc4UP?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b392895d-4bfd-4633-cbda-08db7d251e0d X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2023 06:57:37.6843 (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: B0kemPY1a4Bu91Fq26qDw4lJvOvDEhFtXBPEwnh2FIO+KNwtzqmbQHu5fGGC6SbzJKqBXs5jqV+mXlJmtXPB7g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8720 Content-Type: text/plain; charset="utf-8" This patch implements a new test program mptcpify: if the family is AF_INET or AF_INET6, the type is SOCK_STREAM, and the protocol ID is 0 or IPPROTO_TCP, set it to IPPROTO_MPTCP. This is defined in a newly added 'sockinit' SEC, so it will be hooked in BPF_CGROUP_RUN_PROG_SOCKINIT() in __socket_create(). Signed-off-by: Geliang Tang --- .../bpf/cgroup_getset_retval_hooks.h | 1 + .../selftests/bpf/prog_tests/section_names.c | 5 ++++ tools/testing/selftests/bpf/progs/mptcpify.c | 26 +++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/mptcpify.c diff --git a/tools/testing/selftests/bpf/cgroup_getset_retval_hooks.h b/too= ls/testing/selftests/bpf/cgroup_getset_retval_hooks.h index a525d3544fd7..0ba09e135df3 100644 --- a/tools/testing/selftests/bpf/cgroup_getset_retval_hooks.h +++ b/tools/testing/selftests/bpf/cgroup_getset_retval_hooks.h @@ -14,6 +14,7 @@ BPF_RETVAL_HOOK(post_bind6, "cgroup/post_bind6", bpf_sock= _addr, 0) BPF_RETVAL_HOOK(sendmsg4, "cgroup/sendmsg4", bpf_sock_addr, 0) BPF_RETVAL_HOOK(sendmsg6, "cgroup/sendmsg6", bpf_sock_addr, 0) BPF_RETVAL_HOOK(sysctl, "cgroup/sysctl", bpf_sysctl, 0) +BPF_RETVAL_HOOK(sockinit, "cgroup/sockinit", bpf_sockinit_ctx, 0) BPF_RETVAL_HOOK(recvmsg4, "cgroup/recvmsg4", bpf_sock_addr, -EINVAL) BPF_RETVAL_HOOK(recvmsg6, "cgroup/recvmsg6", bpf_sock_addr, -EINVAL) BPF_RETVAL_HOOK(getsockopt, "cgroup/getsockopt", bpf_sockopt, 0) diff --git a/tools/testing/selftests/bpf/prog_tests/section_names.c b/tools= /testing/selftests/bpf/prog_tests/section_names.c index 8b571890c57e..52319c45de57 100644 --- a/tools/testing/selftests/bpf/prog_tests/section_names.c +++ b/tools/testing/selftests/bpf/prog_tests/section_names.c @@ -158,6 +158,11 @@ static struct sec_name_test tests[] =3D { {0, BPF_PROG_TYPE_CGROUP_SOCKOPT, BPF_CGROUP_SETSOCKOPT}, {0, BPF_CGROUP_SETSOCKOPT}, }, + { + "cgroup/sockinit", + {0, BPF_PROG_TYPE_CGROUP_SOCKINIT, BPF_CGROUP_SOCKINIT}, + {0, BPF_CGROUP_SOCKINIT}, + }, }; =20 static void test_prog_type_by_name(const struct sec_name_test *test) diff --git a/tools/testing/selftests/bpf/progs/mptcpify.c b/tools/testing/s= elftests/bpf/progs/mptcpify.c new file mode 100644 index 000000000000..f751e6f65eca --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcpify.c @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2023, SUSE. */ + +#include +#include +#include "bpf_tcp_helpers.h" + +char _license[] SEC("license") =3D "GPL"; + +#define AF_INET 2 +#define AF_INET6 10 +#define SOCK_STREAM 1 +#define IPPROTO_TCP 6 +#define IPPROTO_MPTCP 262 + +SEC("cgroup/sockinit") +int mptcpify(struct bpf_sockinit_ctx *ctx) +{ + if ((ctx->family =3D=3D AF_INET || ctx->family =3D=3D AF_INET6) && + ctx->type =3D=3D SOCK_STREAM && + (!ctx->protocol || ctx->protocol =3D=3D IPPROTO_TCP)) { + ctx->protocol =3D IPPROTO_MPTCP; + } + + return 1; +} --=20 2.35.3 From nobody Wed May 22 00:01:08 2024 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2076.outbound.protection.outlook.com [40.107.6.76]) (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 70E6E10FE for ; Wed, 5 Jul 2023 06:57:46 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vk2am+XQce/oFu/HvTulWnkmg/q25yFrYEEhSqHd5MAnSWhawWCFB35vsQKc7LUw0kYBBBpu9siNXQA0tuFLm8XFYa0dxSEhO7kLW66VbI8KD5QvvwSvABgO7RQdCKvcVu79MnAET80CXhbzsa/bF+130NfcqUWQZMUxcpf9nCqPuch88eiq9KE7bxaLFvCa+U4UEabD8C1a4OboDgDVQV+25Bq+6QAN3Qjje83HIngYcozpTGqAWd7OoEBIMNk8H69lnllJ8aSGOcNRWC3vjnrmJ5+9KnrDdjHojkQ8nw+thtF3sVYrIpNYIQ6qQGZlj5tD7V4X+D1WNqYFtIRiDg== 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=VObWVx7lM52bt2nA8f8h0h8GlYb273mMIi2tyP5Rut4=; b=I4Ed0KDHel5XufJPl+FgK059ojcMupoox8sfsXKMB/W2Tjo6hh/Mk/EVzatRe+r1zEE97uZrtGT8/EtomroWYSOyBB4k3N+Eh4JVxP7dXSALzDs44lVpcfEssRutvm6KPol7B7Rbj+plqwqEvrx5Egr3PfzSy5lLIAQMaUYWSscEMmtK3/bpunkk5yFGJUqLv2HXnI3ZGFhW9AKS0ubL9PT9okN0MVysA9ohPNJqTPNQAQjtXwBCw16jL1fpDxTWk9jw30jOMxJuGiWu9zTVV9I7ad/zstIvikRqS3M9mPVz3ThdRvyBaflzFGSMQwflfm/BW/ZUbiaf5IYbLihzNQ== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VObWVx7lM52bt2nA8f8h0h8GlYb273mMIi2tyP5Rut4=; b=pjq8pRk4B/OUHqHmoFxy8m0WhxYz/vc+QD2SomtBQIU4oxxIhGpP/vrN6cOcpgEuWnYtnk5XqhG+9FQDjGI7/6Gnf9eBhvoNvBuRhDfx1pcF+zZci1UbHZcJrL34I0WAJ1BpbQUhFMIPEFjZL2kVXiPF272MYG7O/3qEZrWZp04Au38vjXnA/+wil8RaZ1qi8Uls4A2DMuCTxcD0jW0BZA62O21wgSHPqZclnI+JDECW4hDPsOQyXrl8lOuJD1kMoDCK/eccyH2NT/w4QTx4jTje2FNeJ4/Dx3wVggqYebk11Euvd0aXzjBmJEzLdVBfVZWpxYC3KIeoySoLOe212g== 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 AM0PR04MB7187.eurprd04.prod.outlook.com (2603:10a6:208:196::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6565.17; Wed, 5 Jul 2023 06:57:43 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6544.024; Wed, 5 Jul 2023 06:57:43 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v4 6/7] Squash to "selftests/bpf: add two mptcp netns helpers" Date: Wed, 5 Jul 2023 14:56:40 +0800 Message-Id: <46dcc7443cf6f73bb777e40e5c93dea803c9e48e.1688540074.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2P153CA0032.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c7::19) 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-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AM0PR04MB7187:EE_ X-MS-Office365-Filtering-Correlation-Id: 8c3509a3-1099-4836-b6d4-08db7d252197 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rnzXlk2yN+QUC/1cODG9vLHvKIN+RTZokuX6f4obOjfaiF+dTKADvlxmEZXrqyUl9AZigtqFWH1Fqegoi909eB4YtdNwG1dNUYTZVQYL9H7YpWEmV/raCw2Sp5F37hdoVdvn5+Nl0Q/CdSGvVu5cFOIo7B4dJIOHAjiFKzo9668QWbJhQEyXRwotVUUGxvwXxyfz0NXzR3QyfVzhGfD9HV0TqSlp2Xp3cxXIjkHqgXSsYpvuwRuVSdIiZxTiBJWTDRssvBM7ImT+QONuAHdjmOdChkcW6crBgpKNmIr0C8J7wo9DmU8afmrIAJnKG5magxQUGCz40t1Ff+8Ejk5M8XcH44ndATLEvHp5bgZkmvOmmEwH93R0z6ZaGC6WVfMF8n+S712/j4ROQSKLC2vJP9zV0hMQn/23lPABKBOKJ6nqpfVvzfpKovTLS5DtSqRK1h03wUpcM/6rHnUJrI1tlhP3/deePSIgmuaVQpihrEDDYPZhwlQTzcmeTUNb1fBOzngDgdTT5oxVkZKCbQQpT0a9VOgwizhzwtCCaQyP6iZ9VyQXaqnT4duSXhUXtIoWONO9Nlk8hZngIxDUNr8t7pHGd2m/XbKw+NmJSGPAqt4= 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:(13230028)(39860400002)(396003)(136003)(366004)(376002)(346002)(451199021)(2616005)(4326008)(38100700002)(66946007)(66556008)(66476007)(6916009)(186003)(86362001)(36756003)(6486002)(6512007)(478600001)(6506007)(26005)(107886003)(8936002)(8676002)(44832011)(5660300002)(316002)(2906002)(41300700001)(83380400001)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?8oX+ox1BZgtgxECV6S0zhEYOAYVsYmSHnWvLoP7FML6CRRykybGIKY6deNI+?= =?us-ascii?Q?4Y9Se54M6+EqBb69hzXB3xzOpTxYUotsuxAkX3uxhDX6KO63QWvpBTIo/csP?= =?us-ascii?Q?Skn9s11gtADkBLM152NK7KqqA+XPW+qgD5gdSTg07Iv6ZcsPuuWJJyY2x3B+?= =?us-ascii?Q?rqWV/ve1b3Mtv8jzkMkKu1SW2ikZOjk97WlCrew+ERba8xwNwMDA5r2/NlW+?= =?us-ascii?Q?2F0IcFhvpq4UtreYcg2prqSc9+rPYQMMEma5Z7Iz9ljGLJbdRIwhINRzyVmz?= =?us-ascii?Q?EUIdBWp0vFj9dAepT9aXVz+Uv/wJqIUaMz/0zar6JnbayFJ0HhyjRKUUvihn?= =?us-ascii?Q?dfNDgSRqzuMAs1XRlYWa7T7K5Y3zCCFgPiMYkAs0BenGRcdELn6j82/yMZ7N?= =?us-ascii?Q?gQ9Fnmf4XNrx3utiBJ3APJIULKKFNgBjM8Y/bzMDBS+qhFtdRFJBJ+4lCynJ?= =?us-ascii?Q?HbyILroVQyoupH2DIWgDr6z3pIZLTEzE17O1GhnyadVNXBS0EieKmvGPF7VU?= =?us-ascii?Q?ji+S61YmebHZm8FwlhiaciwpIF0yDFg57KhQRD40R5qNGm7T67aC7I8nmrYT?= =?us-ascii?Q?ZlAnm2vWuiEcweAfQmgYIUrUnG/GXEQ6kUQ/N0aX6TPXbjWx3X1L4wt+ZUnP?= =?us-ascii?Q?EZsdC1AkupvM34K8vUVDMbh4aUMZjwXhSrcnIHkCSPtuhrQMNel0N3XwuBrZ?= =?us-ascii?Q?bYAyD2D0J4c4iO/TSWpGx6ZpABNK77aBZZGQAR2Nkv5lzXoK6d0N6jzunS0I?= =?us-ascii?Q?TP5ZySwsfReuD7bvCycXjuAclEpaXvi4tutx76VhfTtjfaCdk+qhqlRrKOKc?= =?us-ascii?Q?yrP+p34V16VLsTPp5/MniPIpOdDHtoITXBb/riNEogC1kj1ArhwJ534lXrI6?= =?us-ascii?Q?k0V797DAqtLeYwfF4XiDIY/e1g5MJzVDXScgmVqRSoqZHI3TqLA0Ffetfksd?= =?us-ascii?Q?sliBz+jQx+ZKx+qUFkTxVihK5rCOXq81nh0qX+5oD6kU0Kw01Mi5aDEyWAVh?= =?us-ascii?Q?5bHGz4Wmpzdfo0Emp2YugM6NziLooqT/Be1DhUSf5c3HxyHZTnwUybIPa0UA?= =?us-ascii?Q?6Yodn4RxkkAZ6KPaYJ3g7KlaMhO915CuCpl668svOF7nifJb2jP/bxDmCpaK?= =?us-ascii?Q?lo55KlLEvfg2TDFelTD+vK6jE30IqmObGCtS952lgp6l5T7xMB+28pRFMLCN?= =?us-ascii?Q?kKIWAoHVInxcilee5TBqdPvAh4wob3lMY3q00X7lQb+61Y2gZCmt2O71nhi1?= =?us-ascii?Q?Chrw6SyYELE5Xpm71Rj0RiASrsug5jx4CxtiE7CA1oVYwZFlrHjC4J7rHwgE?= =?us-ascii?Q?A0k6w53FHGXqlKC40zvCERnhJUZsb/fUkYo+myGGlzC47fx44rxoZZ2l/sKR?= =?us-ascii?Q?4IQwTI2YyMzsxnJiWkukHPfVpiLK3GPnWQy5QFS1fZGHfYlkWc3S1Ae5oTmQ?= =?us-ascii?Q?CZb8Khxlnw4jbxHXgXS7E0RaW7aYGXjpl7wzg7eGVlhsfNJPelFab2/gE3sd?= =?us-ascii?Q?RJMo/M7U42n4GO5r/cS7JH3ICkS54sg6kwe9kkEEWtLngualtBl4x4RfzaTq?= =?us-ascii?Q?eh9JWG283QCs04o5y51kzeFVWHc6taStJOKs36mX?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8c3509a3-1099-4836-b6d4-08db7d252197 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2023 06:57:43.8335 (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: KmJkokWRt5Wq2pVLAVwGUH950bHFCKZGdWmoPX1/w2AY0Eq0ly2AOyBmdKZuNEg+MTM//BOODR1xGx/fclHs6Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB7187 Content-Type: text/plain; charset="utf-8" Move the helpers to the beginning. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index a968641cc94a..e430bebebcf0 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -26,6 +26,26 @@ struct mptcp_storage { char ca_name[TCP_CA_NAME_MAX]; }; =20 +static struct nstoken *create_netns(void) +{ + srand(time(NULL)); + snprintf(NS_TEST, sizeof(NS_TEST), "mptcp_ns_%d", rand()); + SYS(fail, "ip netns add %s", NS_TEST); + SYS(fail, "ip -net %s link set dev lo up", NS_TEST); + + return open_netns(NS_TEST); +fail: + return NULL; +} + +static void cleanup_netns(struct nstoken *nstoken) +{ + if (nstoken) + close_netns(nstoken); + + SYS_NOFAIL("ip netns del %s &> /dev/null", NS_TEST); +} + static int verify_tsk(int map_fd, int client_fd) { int err, cfd =3D client_fd; @@ -142,26 +162,6 @@ static int run_test(int cgroup_fd, int server_fd, bool= is_mptcp) return err; } =20 -static struct nstoken *create_netns(void) -{ - srand(time(NULL)); - snprintf(NS_TEST, sizeof(NS_TEST), "mptcp_ns_%d", rand()); - SYS(fail, "ip netns add %s", NS_TEST); - SYS(fail, "ip -net %s link set dev lo up", NS_TEST); - - return open_netns(NS_TEST); -fail: - return NULL; -} - -static void cleanup_netns(struct nstoken *nstoken) -{ - if (nstoken) - close_netns(nstoken); - - SYS_NOFAIL("ip netns del %s &> /dev/null", NS_TEST); -} - static void test_base(void) { struct nstoken *nstoken =3D NULL; --=20 2.35.3 From nobody Wed May 22 00:01:08 2024 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2083.outbound.protection.outlook.com [40.107.104.83]) (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 DA51610FE for ; Wed, 5 Jul 2023 06:57:52 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eO26PNy8828bdglG0r68kZ//8FZeqjTunAdMRJyBqooRHe1uaDEu2Smfzz/NjpqWbyPMkXZ1nwK3OKWP5SSQNRzTx/KoPOVOhn2yweyMdHaZx3bl5an9Xt7Dfn1UyX86YB7TgOY2GLpdN4xfd3n592K8MNLMPZbs6ik2Z5hrraJFFgFNiu2QTKHjYE9HrAE4ae0uSkeuJ8ERG90OglCJap5hV4tej06h8O6IczoKas5SMFZYKnMW+dyU2+mfi+g6NkQWNvm28pBW/XolQHPuUq6kf6P2bz9cJRaHmdV1Cd0vwlQzCJBxbOxmJGZrD0i6H6KU2eE5lVCV83EtPAvQKA== 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=Br7yelnj0N2tUJBUeoo6Z0Y4IFjnIPIoTHsdRWjl93Q=; b=Sz2vc5nN8sX1TUaKp5Qfm26SK40gDtbxShK7M2gwr7drByRcbdeDB+jGpz8LQfyHwy/QkFb57cNZT+1HselhRAtZGnjKq8xGqxQkARDHXEbyJi9ep7fF88eIKkS7O0z7rDuiWxsLScv1EUfUhlhetkZ1q1Zdmh5DOf6LbbjsbAd6kDb1XdVQ+0wrmsIiOyjH6H6rxpm8QCGvC8LfhkcJB3dbtV0Mv4iAao3t4KbW+O9Z6TEuoag077TAZUoX5aSdds2GJIBf6SpNBxxiZ4SYu2dJYYbC8Iwqur6wnQPy4rY3OOHWestmLz+5eKeZhxszQ6TN3Pq+g0ubJoORM+MyOw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Br7yelnj0N2tUJBUeoo6Z0Y4IFjnIPIoTHsdRWjl93Q=; b=zw3SA3Tp409ZCFalXZ2N3165sYeQXh9cKKDHJ3Pbm1I9+vxGXVlV5apYLLDcMWjSqK1Q9c+/7Uksco99U57a9pFPxKiQeb8NE9kBXup6/5JfQDyJjKpxOs9JUJoiwi1fqFNwkPOfi/g5RR0useprAkH+Q7tW/WHsm9P3qdkhSLBQgtvWuXtoDfFwghpxoJEC3VGVs0MAFcuYry/K+ASgPIIVDqbeX7oY8vLm8hHVaobETk5F28eumDUMbEzIBn9HbtqdCl30215YC6QH/Zp14pLK9v9M5pNVpe0hNSU+POyNyLtl+EjEb/ZRANocLfvMTkMy7NFmr5U+Ro1T+7N4wA== 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 PAXPR04MB8720.eurprd04.prod.outlook.com (2603:10a6:102:21f::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Wed, 5 Jul 2023 06:57:50 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6544.024; Wed, 5 Jul 2023 06:57:50 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v4 7/7] selftests/bpf: Add mptcpify selftest Date: Wed, 5 Jul 2023 14:56:41 +0800 Message-Id: <9f92e80f8366da93a7a00930620a0ea47777c0b0.1688540074.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2P153CA0028.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c7::15) 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-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|PAXPR04MB8720:EE_ X-MS-Office365-Filtering-Correlation-Id: d4687f83-be7a-49ee-b020-08db7d252572 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1PanYfGH5pi/I5yrnu0P2Jn41+JjfyAAzK8DY6e8Tlgk0y7UED4Xd/bjgPUCtAjc0rnTImq/wRYBq3IDSoKFs8gCyF6VQ5nu2a2WAW32F7upiCoBzh2wZDiKLvzKyszxQgVhyfvgCT4yl7hqG+7IqF4HKDqdMxmBjuA131TlGxzw9ezQOPw+6ZhmAtwfm5tRmrLu5+6MG3WwWxwzmziOzeVcZxvwBqi0Z9A6tc+KoN379CkU9TG7uVOWil+u5Wlxv4tOOxtUkB1WcJHYvQRhecaiVGJhM8XE9x63ZSvnryP3dS8o2hqmW0hewSMDj+IIrSy0Je+9IKIoDvhU8beRdS6al6C/jUn7Cq9G7/dkc5Wcn9DF27/Q7Dpysd4s9BozwoxPn5JcqJmcWqW0hRZJ4YuFD3JGgDOoaQptYIzpLyVsh7jWM5yS5rqs404D8RrTLThH6KArYk4qb5SIE7yMfXqJy7twjJNfVzaIAEjHqN17KvV6qrd3d7SUd3pPMjldMZt8v1tzZNQdw/394Qfpo41sSRtPTsl7Pu08h6Ck4ElIo1ezR1BaP0jhp/GCbNz0F865sNl8APW2qGhiRkAWEGVICW9s51aNfAzI5D21fjM= 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:(13230028)(366004)(136003)(39860400002)(376002)(396003)(346002)(451199021)(66556008)(6506007)(66476007)(6916009)(66946007)(4326008)(38100700002)(478600001)(41300700001)(107886003)(316002)(2616005)(83380400001)(186003)(26005)(6512007)(44832011)(2906002)(8936002)(5660300002)(6486002)(86362001)(36756003)(6666004)(8676002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?iI26g3Ut5PO6Vuq4DVlmB4OOLj8pc4A0VjHXEQxEn/5cLoueAvJOZUs1mjoc?= =?us-ascii?Q?cmY9ll9VIDYPKbx4y5aB7X/6lLcnrjK2RaCR5feN0C+PUKSdeWyNd/cTA/mq?= =?us-ascii?Q?ahwr2tBO9D/A8twX+HWKJu8RnE69k94+3JBzkg7hpS4DhQehVfBDB+TvtK36?= =?us-ascii?Q?K9/s7m8sLsFQs+Q2e0Ow6+TU1OkGX0igWf+InqmQ52sil7HI3oQdLJjIjhpF?= =?us-ascii?Q?0moDogZwPYUGuBiTIS2R3TzD1RSHD2MzavxsXL4oDyJccprZbJxHRFFt3d6B?= =?us-ascii?Q?b9EI9XGDOIoNlukKbR3aXOMsdNFGlyoUj4rv/Z1hhryLgLJgAm1wGBoA9MzL?= =?us-ascii?Q?qaJ2KloEl4wk5PCucbWgO6857n932lMVi949xd2xxUbHSeH/WmRg4GqOElYa?= =?us-ascii?Q?wH4n5NuopTO4monMOg4ufc8RAyu9RQZcZPbmQpefmTPt937wA5CIZDTT5m3p?= =?us-ascii?Q?44YmasEcRWRrtSsFq4qiqO9WBrbBe9CL3mIAqmnbEBbFz52AAOHSE7hF39cd?= =?us-ascii?Q?Hd1NRoPeQWeECzLB48gpWDfBNRvv96Fo63e2tTmTzHbKDGvB5m3ueFaqiFxV?= =?us-ascii?Q?efvCIyo/YM44d+1rm/XKeohC5iIVud1O4iMm6870FfnFyHmPLapd0pxk5s08?= =?us-ascii?Q?rXA70cJ2COOCq2ipLFwiFzJOsjqnau6lOSL9hYW06YHkFd3I6Ei1ZHitJfbY?= =?us-ascii?Q?b7J61BhONmIsNVXeG0VjgqM5EEC9rOSfXfEmJP3/swxhqdG5cgA42R0kef3i?= =?us-ascii?Q?T15QdREL4U/cB5ASZrLQtWuXwF8u94cVurY9cgZeCG9lgnBVRtXL048ryTNo?= =?us-ascii?Q?FKrNiwpl1C643xCNDDFJgrZqUyTaS3qGYyLVsRH79a8vhEZFKy80d9WX1NoZ?= =?us-ascii?Q?3LjdSx+KxDBUeifZH5HJaTTMSVamxWsbgkRoGioXED0z+JMH99wt99GNMutT?= =?us-ascii?Q?cL+sQbMUu0PTgVIuI9IRZd2+RMGo5ZphoYORMfUqlc6K961twiv88YfFRB11?= =?us-ascii?Q?4dLC6zBkTM7m0rYRjWxLQheDCEjPaQh14e11d0ePEXOcCDBnI9XA4jr1mXLE?= =?us-ascii?Q?BT9zZUZaDuELN0emIoGZo6zv0m8rCXwFPGvPH97/VH90fVxQI8g4AZ+gHWBA?= =?us-ascii?Q?mW1V2TffyD1QKxp4oNUQuZdKfiWpdNdaYj1LFu3t4o1A0Pu/sQVraNrDlLL7?= =?us-ascii?Q?OyhqXvz46y05m3a34nw2CLlHYW7U/8ABbosqXtUtOEPxj9MbLQl1LzQVunac?= =?us-ascii?Q?eyl/zqaxiR2P+SAtrUilhOXBLBbON6bP6lUIlNDsm3F91KTv9bLZm57g/l5o?= =?us-ascii?Q?O2ItbDxkIwofRnH1o+zIbZsI3/qt9MpfR9rEiQiCjBipyHDhd5Zeqd9SDf7k?= =?us-ascii?Q?1u9ZyfqtbXpcnleGak27EjlAoEByt6FCBD/U7hQzSRZPNzvj28CfxMA14mWY?= =?us-ascii?Q?YFqcXrA8Y13YYp57UKc0LbO/fbMVFoHrm67icgn1bxu6nVfqoxwZefn8cY2D?= =?us-ascii?Q?2TNz8g/oY1VrwbipGhO5CNTAqI+47Rk9iuWp3F6WBn2QNy5Ey8qvvNde5gAE?= =?us-ascii?Q?v21a4OhNP5szNBiHGd5ZpJa2OkkBpk9b10qpUnVq?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d4687f83-be7a-49ee-b020-08db7d252572 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2023 06:57:50.1681 (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: 0IUiUYJYXDDqmFKVgQbCRrA3aXfzv+So1D4mcPBElv3p3qGULraZbN1PKgv4ynpjD73wQ/VYeM0DZwKfvo6OlA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8720 Content-Type: text/plain; charset="utf-8" This patch extends the MPTCP test base, add a selftest test_mptcpify() for the mptcpify case. Open and load the mptcpify test prog to mptcpify the TCP sockets dynamically, then use start_server() and connect_to_fd() to create a TCP socket, but actually what's created is an MPTCP socket, which can be verified through the output of 'ss' command. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index e430bebebcf0..69c102a02ae3 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -6,6 +6,7 @@ #include "cgroup_helpers.h" #include "network_helpers.h" #include "mptcp_sock.skel.h" +#include "mptcpify.skel.h" #include "mptcp_bpf_first.skel.h" #include "mptcp_bpf_bkup.skel.h" #include "mptcp_bpf_rr.skel.h" @@ -200,6 +201,87 @@ static void test_base(void) close(cgroup_fd); } =20 +static void send_byte(int fd) +{ + char b =3D 0x55; + + ASSERT_EQ(write(fd, &b, sizeof(b)), 1, "send single byte"); +} + +static int verify_mptcpify(void) +{ + char cmd[128]; + int err =3D 0; + + snprintf(cmd, sizeof(cmd), + "ip netns exec %s ss -tOni | grep -q tcp-ulp-mptcp", + NS_TEST); + if (!ASSERT_OK(system(cmd), "No tcp-ulp-mptcp found!")) + err++; + + return err; +} + +static int run_mptcpify(int cgroup_fd) +{ + int server_fd, client_fd, err =3D 0; + struct mptcpify *mptcpify_skel; + + mptcpify_skel =3D mptcpify__open_and_load(); + if (!ASSERT_OK_PTR(mptcpify_skel, "mptcpify__open_and_load")) + return -EIO; + + mptcpify_skel->links.mptcpify =3D + bpf_program__attach_cgroup(mptcpify_skel->progs.mptcpify, cgroup_fd); + if (!ASSERT_OK_PTR(mptcpify_skel->links.mptcpify, "bpf_program__attach_cg= roup")) { + err =3D -EIO; + goto out; + } + + /* without MPTCP */ + server_fd =3D start_server(AF_INET, SOCK_STREAM, NULL, 0, 0); + if (!ASSERT_GE(server_fd, 0, "start_server")) { + err =3D -EIO; + goto out; + } + + client_fd =3D connect_to_fd(server_fd, 0); + if (!ASSERT_GE(client_fd, 0, "connect to fd")) { + err =3D -EIO; + goto close_server; + } + + send_byte(client_fd); + err +=3D verify_mptcpify(); + + close(client_fd); +close_server: + close(server_fd); +out: + mptcpify__destroy(mptcpify_skel); + return err; +} + +static void test_mptcpify(void) +{ + struct nstoken *nstoken =3D NULL; + int cgroup_fd; + + cgroup_fd =3D test__join_cgroup("/mptcpify"); + if (!ASSERT_GE(cgroup_fd, 0, "test__join_cgroup")) + return; + + nstoken =3D create_netns(); + if (!ASSERT_OK_PTR(nstoken, "create_netns")) + goto fail; + + ASSERT_OK(run_mptcpify(cgroup_fd), "run_mptcpify"); + +fail: + cleanup_netns(nstoken); + close(cgroup_fd); +} + static const unsigned int total_bytes =3D 10 * 1024 * 1024; static int stop, duration; =20 @@ -459,6 +541,8 @@ void test_mptcp(void) { if (test__start_subtest("base")) test_base(); + if (test__start_subtest("mptcpify")) + test_mptcpify(); if (test__start_subtest("first")) test_first(); if (test__start_subtest("bkup")) --=20 2.35.3