From nobody Sun Feb 8 05:08:54 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=silabs.com); dmarc=fail(p=none dis=none) header.from=silabs.com ARC-Seal: i=2; a=rsa-sha256; t=1676651837; cv=pass; d=zohomail.com; s=zohoarc; b=RpBFCLBjHB62O/zvCvy0cwd0TjdelTcsv6z9pVAkzoILL2YMHF+P89HRfYUAJLmtzSoPLFZ3hGkhj9SPmFLh4nacbChu41UEVbFcSNwNsoUyrgDe/a6EMlQOj5HkIBJmKrYzdsJ8jtQk2J7vt6NlmkvacyZAo6EYUC48o4ClWm4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676651837; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/pjLcBWB7cIR3RULHTMUw77zRUWcn8DISd9NOLRkQwA=; b=Kp/xfVe7dFtWLhC3alHDZGUxHFXL/YQ7JUz3rUy2AJ6i3DDSZv6l21EFRsHFM4HFOukk5IwStB+zPPInE37PM84uDZoHdsPOTo4NudC3bfhEPpG50BCGvrpvazClDKd8CSnapLrwVT7AXvErZxstvYPDW0gk2HHgTs/TySJNvfw= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=silabs.com); dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676651837398343.0265191876001; Fri, 17 Feb 2023 08:37:17 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pT3ii-0006wZ-9v; Fri, 17 Feb 2023 11:36:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pT3if-0006wC-2w for qemu-devel@nongnu.org; Fri, 17 Feb 2023 11:36:22 -0500 Received: from mail-co1nam11on20615.outbound.protection.outlook.com ([2a01:111:f400:7eab::615] helo=NAM11-CO1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pT3id-0007iT-5p for qemu-devel@nongnu.org; Fri, 17 Feb 2023 11:36:20 -0500 Received: from MN2PR11MB4711.namprd11.prod.outlook.com (2603:10b6:208:24e::13) by PH7PR11MB7497.namprd11.prod.outlook.com (2603:10b6:510:270::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6111.15; Fri, 17 Feb 2023 16:36:15 +0000 Received: from MN2PR11MB4711.namprd11.prod.outlook.com ([fe80::bc75:99b6:488f:fd50]) by MN2PR11MB4711.namprd11.prod.outlook.com ([fe80::bc75:99b6:488f:fd50%9]) with mapi id 15.20.6111.013; Fri, 17 Feb 2023 16:36:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=et/o64PO1V7DixuA+fduGVxPqm7IH9d9ErMHHM1b26Qu1Gl8l7ddg1zqfibbAyoJUd8pfYHyESY+KmHRz8HQZlObYrnqVpipes0xn/e0v8wQv1zyiqkfqL7HQXZwFziSACV/wE5beH36McjuKCocL8n1VpQg7RF0u2oAiVHuJ2rEtohzU+UszOmoFSgN/CjbdycUli7YwHlxBaKX1EIu+I2iuKkbBjYparra5687XijDxWOV7LcR/x6OMjH+l50zz9QizAacCwmEF0KWEfymJBBOEJh77HExGUn0y3mnss8wp3cxoAz3zIFIOe4euM+jQAMFjokCfaGgx3Haut2y0w== 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=/pjLcBWB7cIR3RULHTMUw77zRUWcn8DISd9NOLRkQwA=; b=hsE4SuJgIqnHnRVtaEzUuU1gir5vYyhaaCdtdRGDuI7gahs8HHLfwrm8HCo12m99hxIYbzml5GKOeFzIOEI+jRkusySawJQBtC3BzeZWGhgqa7YDWK00k7fQivAZANMQFo2O2jtTpC7/1NzEni6W5ErbfV1ZER166Pg16XoNlWAYJ8NGt8H9q5xjCl0CtVYLBjPc+EXz8SMpceS0mTloY+EfLMyamMni7T278lng0LM3quj6Wnj6uncEKHAvaG6HQUzm3wPZAnhrJx68odjZ1tavbFBl3EBCq68UmtgxRdXp2RoPpblZTVZq9FRw3PMZq2hzIfsgpIoOZujxRf9YTw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/pjLcBWB7cIR3RULHTMUw77zRUWcn8DISd9NOLRkQwA=; b=SHp+t4wUm9E1MqYG2b3h+EVw+JRvM3PqrGP2POpUmiXXIrm/fzFDyy1pxCb5QHArJaoCoooDipjQD27mBCP2CyYqYm9cib1I7BzTezXqIUujCiqfoVwvKfA33gg1USbYOrMqf4nPAo2w5Dt8dCQH5J4hTr73v+1VNP3iCCqF9cY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=silabs.com; From: Mathis Marion To: Laurent Vivier Cc: qemu-devel@nongnu.org, =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= , Mathis Marion Subject: [PATCH v1 3/4] linux-user: add target to host netlink conversions Date: Fri, 17 Feb 2023 17:35:26 +0100 Message-Id: <20230217163527.619486-4-Mathis.Marion@silabs.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230217163527.619486-1-Mathis.Marion@silabs.com> References: <20230217163527.619486-1-Mathis.Marion@silabs.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MR2P264CA0081.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:32::21) To MN2PR11MB4711.namprd11.prod.outlook.com (2603:10b6:208:24e::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN2PR11MB4711:EE_|PH7PR11MB7497:EE_ X-MS-Office365-Filtering-Correlation-Id: 57562158-a7a7-4102-5e09-08db11051631 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yBY1D4ZmqB8JUU57FxDtgdTGgh2zEx4urECdShhWZKY7YHKCjS02Cn7Fx+0ci6A5Hhc8eg3HdqhGo4lDKF3TGnpXcH693AFc2HKNwwpLsrvIA5j/ue3yogT4q4gzKZ0h2RmratKZEfSqwiig240EcetQcw8RK6nPoraFrE09Ub++pOwcZRJRJl/L91jzBRJZAeaPnV0wW2da5K8jGRwvOL2Z6HBPTjiHbWdIz6U3BUUZ0tZLqcGrhJVaZLqXBJgX+r3scui2N9uuZF5c2jbqSXW6ipiv8Z0jJM/V0WElGQoqyOubWnxsMFMj3pA3TM5IvEkOR14Ae2kCbXqix/OU55t2LCj+7zehqkhn4GeYQkETN8TkPYym9qtPc5T5VBk6NQw4fYS1NfbS6+qDrOhghw0PVMQBKOvLMH38FjMRPGT7ADbZocb2tkvEmcoF6ocnIdMAUf5cgIR2H2dXYONBR9L5YZCGrbQreXsNmx3Wmo3H3Jwh87eM1mpC8m26RjGi1cRPZuQIPEpWLkgsc9phzjCh/7LCRZyyeKU39wQQJIgHm+uZWtBEACRHLGlVRHQZIvVT7FSdqUvs3disYIRWF0KZN1e0u2+EwkAUJOP8+UfK9SNbniWgjAYuAK2RDllXyOkl5bwckab7kcWJXroDvwpj+BGowM0jsDD4Uh5D22F+2uU8eOEdqDnA3slKFPNaMmgIW9U6ns3pQNIWbMG2qQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4711.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(376002)(136003)(39860400002)(346002)(366004)(396003)(451199018)(2616005)(86362001)(5660300002)(41300700001)(6486002)(36756003)(66946007)(66476007)(66556008)(4326008)(8676002)(6916009)(316002)(54906003)(478600001)(52116002)(8936002)(2906002)(107886003)(38350700002)(38100700002)(6512007)(6666004)(186003)(26005)(1076003)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?VTaFwXTPPyjfCCwUyxF+sJwwLc6MYnofGVitdX00Bf/WF1R4e4RbzD+kRlwm?= =?us-ascii?Q?QkuperKbBZZfqEqQLFhHUVQlC+29x2j1wCgO2kR1gQ3iXhG+uamgTRR3ojri?= =?us-ascii?Q?ewRISL3V+qEyNT/SmaNhopGgbTQkm1Unn1ImGUCXAUrIGZfsznFtSuOzeIgi?= =?us-ascii?Q?69rHiI+tmYCQsLXTlX3JR8vQat5gqXezLsSoG29fGl2tbmrUR0BFp4rdHvQ+?= =?us-ascii?Q?vNQ4pYGYp0Qrml3kqMKyP4Fy3LnoEJdhlMpODe42bwpH+ry+x+eRaA6BqY2p?= =?us-ascii?Q?9io/RKpVlPymx9IUomy2/SuFT5q/Yn0rS3p5YGtqUtAu/ScmQH7P8gB8VM2o?= =?us-ascii?Q?m+0SeUhkrLcFNw6KsHHDHelPDYJ/5IyNujqDbntBnL7OHc1rLsuzFfFupjo7?= =?us-ascii?Q?cJebLlPdjUm7Dr6lNO5cCRZX1azymoazj7PokEuZwwl/M1XPaSRQBZNv46t0?= =?us-ascii?Q?34ve+KaWR/V9n5NiK4CwEgOH7lwMqQoWeAUIpDs62ob0fulSKXoZmoyWvNIp?= =?us-ascii?Q?Huk00PRFy3/k70ZeTkOO9UV8JMz6KHLvvt+KoiD6bDFaclVOH2Xc7knU/g7x?= =?us-ascii?Q?UbbWAHCkYjFv71BS7bXyrPcSIDWYKZn5VR76B3gDCA7Ums445C3/nczb+jLR?= =?us-ascii?Q?tgJIx6m9yvaSEOAtGzSH/7LRxDUcPrPdBtIkMtjh2I9m8Z8UybWuUBnvi2gr?= =?us-ascii?Q?d9p1Y+4nIVS4jvtJvgGmKCNkORYnbBUh0n4aTU8/zEROjUTn9s3mWlUowSuS?= =?us-ascii?Q?RcwXh2XnMQDSCT/r0EIIXCX/ZYHK7miXc49OKX3iQO44rTpWQLa+Rl4KY2re?= =?us-ascii?Q?88NYWO5DBqaY0V/Lrk3EZDZYiI3rWPWvIsYOZKlbzoB0K3CWckCOCFKQR85u?= =?us-ascii?Q?kd4nS5XUz/wWulRU5IC0zEGtnMUVkGgpkQsoUc/b3rk09R2vwoMx5etNv/uz?= =?us-ascii?Q?D9cLMMHSl0T8i2QistjAeqExiVCa2lEkITUpJR/JlPrUfF3pSzbss6iWA+J0?= =?us-ascii?Q?rzHwlWeBK0qWzHjkKPsr9uKC7M5LTbR01ZOZJZy5a/zI/jxqSCc2rX7o5puE?= =?us-ascii?Q?vD50R6hTkXjaQkSlBwYRDO71JcSBa1rrLgXSo7aKKZA04R0aLymVpu68MPlF?= =?us-ascii?Q?z7gp+SpSvMxhL/iH36rQXXzPQ6nb33e54+7lx6Ri/tTbHNP6jLp3QryBKsyu?= =?us-ascii?Q?JRLCXvqLdKOS6GaOpX6nO9/7S7tInYnx5XYM3sG8C0laOy9bohbBfNw4lRTb?= =?us-ascii?Q?thVOJ+6Y2DRd9IVRYf8UhOO58vhCRmGxaYXM/Hcr7nYz/1Wic9fkRJS6IsH5?= =?us-ascii?Q?hqt72l1yhgA1x4Z5ycTxx2oDh4ZJs/Pm4m2wZLSPhbkHJcDcpkXhsSNU6srM?= =?us-ascii?Q?7qoq0u3Pux0byxDu+iRi6cjaJHqvhXhrT5Pen4ZR89thv9oFU6ylU3kl3cVv?= =?us-ascii?Q?jvvsqP/IX8pnRXl/QDYODZdh10KhXFPILFah1iNGTvbHhSRvZXyhe134Uxet?= =?us-ascii?Q?dBAqY+NN4a1YRX5XNKGI5eqFJX9c0WTls5HderQ3jipc1/Pv+WGtsh9uxlOh?= =?us-ascii?Q?rw/3Ayhza18Nx2UWxSUceIHZ2izOVlBXuY16ZxYg?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 57562158-a7a7-4102-5e09-08db11051631 X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4711.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2023 16:36:14.8993 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QwEazc3rR2vYem21m/5q2G5h2MqCbOm/RMhY6p6DeqAu1xAT5/uR3ysStT3pQv5cMO8Nb5r2+EqB6lXcHwP7eQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB7497 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: permerror client-ip=2a01:111:f400:7eab::615; envelope-from=Mathis.Marion@silabs.com; helo=NAM11-CO1-obe.outbound.protection.outlook.com X-Spam_score_int: 8 X-Spam_score: 0.8 X-Spam_bar: / X-Spam_report: (0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FORGED_SPF_HELO=1, MIME_BASE64_TEXT=1.741, SPF_HELO_PASS=-0.001, T_SPF_PERMERROR=0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @silabs.onmicrosoft.com) X-ZM-MESSAGEID: 1676651839766100003 Content-Type: text/plain; charset="utf-8" From: Mathis Marion Added conversions for: - IFLA_MTU - IFLA_TXQLEN - IFLA_AF_SPEC AF_INET6 IFLA_INET6_ADDR_GEN_MODE These relate to the libnl functions rtnl_link_set_mtu, rtnl_link_set_txqlen, and rtnl_link_inet6_set_addr_gen_mode. Signed-off-by: Mathis Marion --- linux-user/fd-trans.c | 64 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/linux-user/fd-trans.c b/linux-user/fd-trans.c index 146aaaafaa..aa398098ec 100644 --- a/linux-user/fd-trans.c +++ b/linux-user/fd-trans.c @@ -1284,6 +1284,49 @@ static inline abi_long host_to_target_nlmsg_route(st= ruct nlmsghdr *nlh, return host_to_target_for_each_nlmsg(nlh, len, host_to_target_data_rou= te); } =20 +static abi_long target_to_host_for_each_nlattr(struct nlattr *nlattr, + size_t len, void *context, + abi_long (*target_to_host_n= lattr) + (struct nlattr *)) +{ + unsigned short aligned_nla_len; + abi_long ret; + + while (len > sizeof(struct nlattr)) { + if (tswap16(nlattr->nla_len) < sizeof(struct rtattr) || + tswap16(nlattr->nla_len) > len) { + break; + } + nlattr->nla_len =3D tswap16(nlattr->nla_len); + nlattr->nla_type =3D tswap16(nlattr->nla_type); + ret =3D target_to_host_nlattr(nlattr); + if (ret < 0) { + return ret; + } + + aligned_nla_len =3D NLA_ALIGN(nlattr->nla_len); + if (aligned_nla_len >=3D len) { + break; + } + len -=3D aligned_nla_len; + nlattr =3D (struct nlattr *)(((char *)nlattr) + aligned_nla_len); + } + return 0; +} + +static abi_long target_to_host_data_inet6_nlattr(struct nlattr *nlattr) +{ + switch (nlattr->nla_type) { + /* uint8_t */ + case QEMU_IFLA_INET6_ADDR_GEN_MODE: + break; + default: + qemu_log_mask(LOG_UNIMP, "Unknown target AF_INET6 type: %d\n", + nlattr->nla_type); + } + return 0; +} + static abi_long target_to_host_for_each_rtattr(struct rtattr *rtattr, size_t len, abi_long (*target_to_host_r= tattr) @@ -1314,16 +1357,37 @@ static abi_long target_to_host_for_each_rtattr(stru= ct rtattr *rtattr, return 0; } =20 +static abi_long target_to_host_data_spec_nlattr(struct nlattr *nlattr) +{ + switch (nlattr->nla_type) { + case AF_INET6: + return target_to_host_for_each_nlattr(NLA_DATA(nlattr), nlattr->nl= a_len, + NULL, + target_to_host_data_inet6_nl= attr); + default: + qemu_log_mask(LOG_UNIMP, "Unknown target AF_SPEC type: %d\n", + nlattr->nla_type); + break; + } + return 0; +} + static abi_long target_to_host_data_link_rtattr(struct rtattr *rtattr) { uint32_t *u32; =20 switch (rtattr->rta_type) { /* uint32_t */ + case QEMU_IFLA_MTU: + case QEMU_IFLA_TXQLEN: case QEMU_IFLA_EXT_MASK: u32 =3D RTA_DATA(rtattr); *u32 =3D tswap32(*u32); break; + case QEMU_IFLA_AF_SPEC: + return target_to_host_for_each_nlattr(RTA_DATA(rtattr), rtattr->rt= a_len, + NULL, + target_to_host_data_spec_nla= ttr); default: qemu_log_mask(LOG_UNIMP, "Unknown target QEMU_IFLA type: %d\n", rtattr->rta_type); --=20 2.39.1