From patchwork Sat Oct 7 01:34:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 132362 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 564E3426D6; Sat, 7 Oct 2023 03:35:13 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0D066402CB; Sat, 7 Oct 2023 03:35:06 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2117.outbound.protection.outlook.com [40.107.94.117]) by mails.dpdk.org (Postfix) with ESMTP id A3500402A7 for ; Sat, 7 Oct 2023 03:35:03 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TiVh/pc4kBcwPEE7a7IHCLecuuvBOuywaGAUhenpNE9aG6BIVJn/o1PPVA8TxtAw7a0T/28YFdP2hM9t26KeA2jdWlpJt1P7hvOcYpsbcc/FYU0ZP5RUKb4s/Mrajc/CoJRS7gpwUZDdRFRp/6hlPTCymHY3EIw9p5QNA57R8vKG+4pmHufb6yyJdDxiT+y2MRkr/veLazH9pbJHtfpNV7DNpDXiv4Uisnp8p8CAR8Gjb2hRNPlD+DnpUOfGfwTbYflWQ5ylcbzy0f2fjXD8utMDoYRULOWfnVb3kcblyLrQXQO5gILNlY1f3OYZul/nIp9s0sCUAVJkAotkGa3hvA== 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=VmMQX1GouZR8x912n78gq/0eSZt7STQOa9dXC6u7gYY=; b=XelkCXWqhmoQQjH4Yb6vVS3/Afc8iLj3omdWTs9XC5lvpJsgRsBAAWZ3Re5M0SiLQ9XfCHCB0A3+8s86AVXMqo/OiTHm0l+yXGaZNyZmaYJVH+NQwiKoNaJ6lDe8jxNiiW3pGnhO/TU/zvHAyPxSwH+tDQnITKvtfzTC4p8veKqAAnW0Q8xqfmspLvIXm9YNCBG5YDnAnkMjxMl8NIJvRCNQpkr8iyCv2lQ4Mfoxss49kULANxjAhR1Yv/koIrE+m5HkfQuDE89S3WUz5bZSlU9zOCI+enXzKNRiBZyEM3UaEirOP1yy6vgOpjc+5oyTe18SYl9kOWHGyCa/xYF83Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VmMQX1GouZR8x912n78gq/0eSZt7STQOa9dXC6u7gYY=; b=mo+WFu2U5eUX9HgKK3p9HDaDTNMlHZAiVC3ldqPanQ0UNu2dOMvEY6JQ0TDIyriYvcI6v9vrNsmXTVB3cgMI8SC4A9dfGF0fIw7b+Gol1V78qRAsUO1dLwB8onU0BJwE/ULUkuJmWZlLjjpcfh7SwOEzN0zfz7xVmSHF9Uaht/4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by BY3PR13MB4913.namprd13.prod.outlook.com (2603:10b6:a03:364::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.37; Sat, 7 Oct 2023 01:35:02 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::28c0:63e2:ecd1:9314]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::28c0:63e2:ecd1:9314%4]) with mapi id 15.20.6813.027; Sat, 7 Oct 2023 01:35:02 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Long Wu , James Hershaw , Chaoyong He Subject: [PATCH v2 1/8] ethdev: add member notification for bonding port Date: Sat, 7 Oct 2023 09:34:33 +0800 Message-Id: <20231007013440.1309422-2-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231007013440.1309422-1-chaoyong.he@corigine.com> References: <20231005024012.1279810-1-chaoyong.he@corigine.com> <20231007013440.1309422-1-chaoyong.he@corigine.com> X-ClientProxiedBy: PH8PR20CA0008.namprd20.prod.outlook.com (2603:10b6:510:23c::18) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY3PR13MB4913:EE_ X-MS-Office365-Filtering-Correlation-Id: 6b50f759-5cbf-4a88-0e0f-08dbc6d5a024 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9lo8bd4tUZhDIwJJSVArlMadTptJck+gbbKzeNH7/tHXcIcF8zybqzwT3pfjqQArTHgWHwVZT+uNcdOlAN/MJ3dPJM5OinI7XAXZoMlZI89IwQkgV9lIIVCuvH9m5jFj1tWD9Ei/Cr6EC6zzOQsMSQr5k3tOAKbF29XC1pJMkSBqHpNe9ZKT4ckgNfg+OcKX+QEag0xPShpRLSRAL8k0PDhUJUVy200hwEWcmljs0Xxcc0lGznRm4W+kuHhGaeCCBDQa5jMWxHWS8LSCSjp6aza6NZ5FzdEBxDJBiQNQZ4gODlf+0LN0XpeOZ+pcsM2NEm76vDfB6RGHNAQbkMd6hOjGGZFrWKx/OYY2STkCyaJv7VqUhTJhCVSEd7VEICTCUcoc4yFDR3jvXf2Rnt0PNz+wYpE7eLErx0eZvuaFDJwdIevAKbyZ98yJiy2TuTXxKh+ef9G8PsvlprsTdk91+z2nxylAOiFdAOMRs5zXcm4s8Zwyk+cWCvcMsLgnOqdMAyK9rLEGXnF0Id+B6uLQIzYOHeq4TvXAkSkPw03mIrcdPIRDmRgOHr/d/zugMUONl4HlX5QpB3m5qBrlPf127Uhg1kvcSwMJE/2q3D2N7RJNT7w1/CMiJJaNsGqqs7fOEjSkrwxojwkNp9/9rsJQzGp3R5R36gcQtzvM2QJivig= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(396003)(366004)(376002)(346002)(39830400003)(230922051799003)(186009)(451199024)(1800799009)(64100799003)(30864003)(15650500001)(2906002)(44832011)(8676002)(8936002)(5660300002)(4326008)(54906003)(41300700001)(66946007)(316002)(6916009)(2616005)(66556008)(66476007)(6666004)(26005)(36756003)(52116002)(107886003)(1076003)(6512007)(6506007)(86362001)(38350700002)(478600001)(38100700002)(83380400001)(6486002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: eeYdCkgIPDvwuRv2IFJa7nLDkduDZt1CinaCCFsFSwLm09Rqj9qnlXSPAOubS04Ueag5trssPgkwBA3wavBqXmdKKsOi9MWp1HTeOTZkNKsnnhoEOYFUn3XYdabfyCg+anjuFP5UvSXgUc8IGnpsNUqka3dMvtcqnhSuRV49Ai2UCCzmzdEoUoB78RQ9Dtd0KLD5gKo9nCl7OEZnZNhESAbHdbGVbfK3utDySpH5L9pantEnKN7bZa17nbzWnyORMkwAkS2rPrfQCGL7BgfSxQjMBCWC09Ab072bVCxVqsiNkdQ/lLfwtsFq633QEM6yCfchtH9i6CucolfqVYzws+5tg1n6smsrLr5wuo9pmZ6GLdBorcCD0o9E9f5gnbesBCGBSzTHIRqNmTLN6Ycixl0LKSwzVsumJGHBpea5ZZkzWR/CR0p4qwtf9rVKnjLeF7CLDJZMUxdfGkzkwPupk7RUvpxhq2AwSBgFTVHG9GLjWPKglpi6LpeJIVGGUPeFnYAwB/2HFe7NYufn51sI4xioRCGAu1/EWr+zIsE8E213vmC/6mx2H3Qk+7k6ZgFWqBFkF6jcTco0CagLiCtgw0AMaDEkMSjEFx15GJh6RjZSVVYYdDNfvY6nexnlxZAgELm2e/RpMrM/jSIyWMDcB5yo24q4uJ/XpMYE0Ox7OiIsRT+sCwTF8gasB0jAkWXfWyc9083uJCGDlEyW16VsWpACUsJpTf+hGtODbUjzZXFgvVX6jkGh1aEw+XAXI1Q7hMoCzNpj8fWgsJu2q6ppxzUhAmdML3PJEtLZff/bD0IIBAUqPVXuk/Gf8sNVRd04rK2LXh2Fl9aCjTsJ3WeuTKVGwYeVI3+POmDVatkiHukeLEm5KYoBWJ+KQUckKkWwc0SpmE4yKPj4a3EoKzh2sNxAEAmnBqJWDSTefykAKldi6lsDDxvyYS/So7RDYw5lPjHeVubWFSrcx5zQ/l6NNHJNzX0/3IDTRTIyUWcFGQKeNjNBpOSnptqaEW7eAOp1sgtburiQfPHcBWXOvu64SxPTX5qPJ+rv8nUFdi0x8ExEcxqICSdCEyqnZc1nMIrAWmKQPqx6xa5crRtruUU/gOHexVf753e0QQ9GDgpe0y3PZOMlBWfz23ZpZdMPivEzAfNwJbPn/BXdJ/MQe18K5/gBZYDZXI9MMs0x5Jf+enGSZne9i3ZTMwP3sYBvZo0VP/h/Bw0KXfD2R04IgWythYizq6bQXSiJA8kFZ6B7MrUttFWGy11riG13HiZxH9umcNhlOxTCuUQzYwHKEKRjkbCHceENIWljOqGo8w81sypwg/ugDVx0d2K/pfklN3re9UM0ipLWABOR57yndg7CLmTqawM50YZ89h1Fj7jWGJVhVkntTwSvVyXW1bHs94wGvh3Wrq6ec1yi4jpEJaI/fsPLwDzMTZCB5MA2jeCp0BQCMzdZ49ivkmjN4InyVQTaLyGiy85dqFySkMXLsa1PEU46rEvIhQZt2ozztzMaSxHsuwU55dY2Ft4ao/41B3M67uAhI1IS/FMBENgSuyenxoJTdOnl3fwhVH5mWS24u4DXTT4fktRR1WSPk0cIZxZzI0Td37hJPYOUkvWa+ku1fA== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6b50f759-5cbf-4a88-0e0f-08dbc6d5a024 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2023 01:35:02.3482 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OLMhST7H/TVWUC/8tJ3y+O2Pwi3U5AVZwFQDUU/45lGGjm+mYwRdw8CB55F7DwFiuJiAqI9cZ4PYsPopmLsOpDbfvK0vK1uY/XaDqrrh9EM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY3PR13MB4913 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Long Wu Bonding PMD does not let member ports know the bonding port's information, like how many member ports the bonding port has, what mode the bonding port is in and so on. Add the notification interface for bonding port to let member port know it is added to a bonding port and what the bonding port's configuration is. If so the member ports have chance to achieve its bond-flow-offlod or other private bonding functions. Signed-off-by: Long Wu Reviewed-by: James Hershaw Reviewed-by: Chaoyong He --- drivers/net/bonding/eth_bond_private.h | 2 + drivers/net/bonding/rte_eth_bond.h | 46 ++++++++++++++++ drivers/net/bonding/rte_eth_bond_api.c | 73 ++++++++++++++++++++++++++ drivers/net/bonding/rte_eth_bond_pmd.c | 27 ++++++++-- drivers/net/bonding/version.map | 3 ++ lib/ethdev/ethdev_driver.h | 18 +++++++ 6 files changed, 166 insertions(+), 3 deletions(-) diff --git a/drivers/net/bonding/eth_bond_private.h b/drivers/net/bonding/eth_bond_private.h index e688894210..1344f8c002 100644 --- a/drivers/net/bonding/eth_bond_private.h +++ b/drivers/net/bonding/eth_bond_private.h @@ -186,6 +186,8 @@ struct bond_dev_private { void *vlan_filter_bmpmem; /* enabled vlan filter bitmap */ struct rte_bitmap *vlan_filter_bmp; + + bool notify_member; /**< Enable member notification of bonding port. */ }; extern const struct eth_dev_ops default_dev_ops; diff --git a/drivers/net/bonding/rte_eth_bond.h b/drivers/net/bonding/rte_eth_bond.h index f10165f2c6..737beca446 100644 --- a/drivers/net/bonding/rte_eth_bond.h +++ b/drivers/net/bonding/rte_eth_bond.h @@ -351,6 +351,52 @@ rte_eth_bond_link_up_prop_delay_set(uint16_t bonding_port_id, int rte_eth_bond_link_up_prop_delay_get(uint16_t bonding_port_id); +/** + * Set the flag of whether bonding port notifies member ports. + * + * @param bonding_port_id + * Port ID of bonding device. + * @param notify_member + * Flag of whether bonding port notifies member ports. + * + * @return + * 0 on success, negative value otherwise. + */ +__rte_experimental +int +rte_eth_bond_notify_member_flag_set(uint16_t bonding_port_id, bool notify_member); + +/** + * Get the flag of whether bonding port notifies member ports. + * + * @param bonding_port_id + * Port ID of bonding device. + * @param notify_member + * Flag of whether bonding port notifies member ports. + * + * @return + * 0 on success, negative value otherwise. + */ +__rte_experimental +int +rte_eth_bond_notify_member_flag_get(uint16_t bonding_port_id, bool *notify_member); + +/** + * Notify the member ports of bonding port's information. + * + * This interface is called in the following functions: + * - bond_ethdev_lsc_event_callback() + * - bond_ethdev_configure() + * + * @param bonding_port_id + * Port ID of bonding device. + * + * @return + * 0 on success, negative value otherwise. + */ +__rte_experimental +int +rte_eth_bond_notify_members(uint16_t bonding_port_id); #ifdef __cplusplus } diff --git a/drivers/net/bonding/rte_eth_bond_api.c b/drivers/net/bonding/rte_eth_bond_api.c index 99e496556a..48c1d050fd 100644 --- a/drivers/net/bonding/rte_eth_bond_api.c +++ b/drivers/net/bonding/rte_eth_bond_api.c @@ -627,6 +627,17 @@ __eth_bond_member_add_lock_free(uint16_t bonding_port_id, uint16_t member_port_i member_vlan_filter_set(bonding_port_id, member_port_id); + if (internals->notify_member && + *member_eth_dev->dev_ops->bond_notify_member != NULL) { + ret = member_eth_dev->dev_ops->bond_notify_member(member_eth_dev, + bonding_eth_dev); + if (ret < 0) { + RTE_BOND_LOG(ERR, "Add member (port %u) notify failed!", + member_port_id); + return -1; + } + } + return 0; } @@ -733,6 +744,10 @@ __eth_bond_member_remove_lock_free(uint16_t bonding_port_id, member_eth_dev = &rte_eth_devices[member_port_id]; member_remove(internals, member_eth_dev); member_eth_dev->data->dev_flags &= (~RTE_ETH_DEV_BONDING_MEMBER); + if (internals->notify_member && + *member_eth_dev->dev_ops->bond_notify_member != NULL) + member_eth_dev->dev_ops->bond_notify_member(member_eth_dev, + bonding_eth_dev); /* first member in the active list will be the primary by default, * otherwise use first device in list */ @@ -1098,3 +1113,61 @@ rte_eth_bond_link_up_prop_delay_get(uint16_t bonding_port_id) return internals->link_up_delay_ms; } + +int +rte_eth_bond_notify_member_flag_set(uint16_t bonding_port_id, bool notify_member) +{ + struct bond_dev_private *internals; + + if (valid_bonding_port_id(bonding_port_id) != 0) + return -EINVAL; + + internals = rte_eth_devices[bonding_port_id].data->dev_private; + + internals->notify_member = notify_member; + + return 0; +} + +int +rte_eth_bond_notify_member_flag_get(uint16_t bonding_port_id, bool *notify_member) +{ + struct bond_dev_private *internals; + + if (valid_bonding_port_id(bonding_port_id) != 0) + return -EINVAL; + + internals = rte_eth_devices[bonding_port_id].data->dev_private; + + *notify_member = internals->notify_member; + + return 0; +} + +int +rte_eth_bond_notify_members(uint16_t bonding_port_id) +{ + uint32_t i; + uint16_t member_port_id; + struct rte_eth_dev *bond_dev; + struct bond_dev_private *internals; + struct rte_eth_dev *member_dev[RTE_MAX_ETHPORTS]; + + if (valid_bonding_port_id(bonding_port_id) != 0) + return -EINVAL; + + bond_dev = &rte_eth_devices[bonding_port_id]; + internals = bond_dev->data->dev_private; + + for (i = 0; i < internals->member_count; i++) { + member_port_id = internals->members[i].port_id; + member_dev[i] = &rte_eth_devices[member_port_id]; + if (*member_dev[i]->dev_ops->bond_notify_member == NULL) + return -ENOTSUP; + } + + for (i = 0; i < internals->member_count; i++) + member_dev[i]->dev_ops->bond_notify_member(member_dev[i], bond_dev); + + return 0; +} diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index 122b1187fd..b99b8b8938 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -2968,11 +2968,13 @@ bond_ethdev_lsc_event_callback(uint16_t port_id, enum rte_eth_event_type type, int valid_member = 0; uint16_t active_pos, member_idx; uint16_t i; + uint16_t bonding_port_id; if (type != RTE_ETH_EVENT_INTR_LSC || param == NULL) return rc; - bonding_eth_dev = &rte_eth_devices[*(uint16_t *)param]; + bonding_port_id = *(uint16_t *)param; + bonding_eth_dev = &rte_eth_devices[bonding_port_id]; if (check_for_bonding_ethdev(bonding_eth_dev)) return rc; @@ -3044,8 +3046,10 @@ bond_ethdev_lsc_event_callback(uint16_t port_id, enum rte_eth_event_type type, * using it. */ if (internals->user_defined_primary_port && - internals->primary_port == port_id) + internals->primary_port == port_id) { bond_ethdev_primary_set(internals, port_id); + rte_eth_bond_notify_members(bonding_port_id); + } } else { if (active_pos == internals->active_member_count) goto link_update; @@ -3064,6 +3068,7 @@ bond_ethdev_lsc_event_callback(uint16_t port_id, enum rte_eth_event_type type, internals->active_members[0]); else internals->current_primary_port = internals->primary_port; + rte_eth_bond_notify_members(bonding_port_id); mac_address_members_update(bonding_eth_dev); bond_ethdev_promiscuous_update(bonding_eth_dev); bond_ethdev_allmulticast_update(bonding_eth_dev); @@ -3362,6 +3367,7 @@ dump_basic(const struct rte_eth_dev *dev, FILE *f) struct bond_dev_private instant_priv; const struct bond_dev_private *internals = &instant_priv; int mode, i; + bool notify_member; /* Obtain a instance of dev_private to prevent data from being modified. */ memcpy(&instant_priv, dev->data->dev_private, sizeof(struct bond_dev_private)); @@ -3431,6 +3437,13 @@ dump_basic(const struct rte_eth_dev *dev, FILE *f) fprintf(f, "\tUser Defined Primary: [%u]\n", internals->primary_port); if (internals->member_count > 0) fprintf(f, "\tCurrent Primary: [%u]\n", internals->current_primary_port); + + if (rte_eth_bond_notify_member_flag_get(internals->port_id, ¬ify_member) == 0) + fprintf(f, "\tNotify Member Ports Flag: %s\n", + notify_member ? "enable" : "disable"); + else + fprintf(f, "\tFailed to get notify member ports flag for bonding port %d\n", + internals->port_id); } static void @@ -3983,8 +3996,12 @@ bond_ethdev_configure(struct rte_eth_dev *dev) * if no kvlist, it means that this bonding device has been created * through the bonding api. */ - if (!kvlist || internals->kvargs_processing_is_done) + if (!kvlist || internals->kvargs_processing_is_done) { + if (internals->notify_member && rte_eth_bond_notify_members(port_id) != 0) + RTE_BOND_LOG(ERR, "Notify member ports failed"); + return 0; + } internals->kvargs_processing_is_done = true; @@ -4222,6 +4239,10 @@ bond_ethdev_configure(struct rte_eth_dev *dev) return -1; } } + + if (internals->notify_member && rte_eth_bond_notify_members(port_id) != 0) + RTE_BOND_LOG(ERR, "Notify member ports failed"); + return 0; } diff --git a/drivers/net/bonding/version.map b/drivers/net/bonding/version.map index 09ee21c55f..3bd5e8ad11 100644 --- a/drivers/net/bonding/version.map +++ b/drivers/net/bonding/version.map @@ -35,4 +35,7 @@ EXPERIMENTAL { rte_eth_bond_member_add; rte_eth_bond_member_remove; rte_eth_bond_members_get; + rte_eth_bond_notify_member_flag_get; + rte_eth_bond_notify_member_flag_set; + rte_eth_bond_notify_members; }; diff --git a/lib/ethdev/ethdev_driver.h b/lib/ethdev/ethdev_driver.h index deb23ada18..f626f971e5 100644 --- a/lib/ethdev/ethdev_driver.h +++ b/lib/ethdev/ethdev_driver.h @@ -1216,6 +1216,21 @@ typedef int (*eth_count_aggr_ports_t)(struct rte_eth_dev *dev); typedef int (*eth_map_aggr_tx_affinity_t)(struct rte_eth_dev *dev, uint16_t tx_queue_id, uint8_t affinity); +/** + * @internal + * Bonding port notifies the member ports. + * + * @param dev + * Member port (ethdev) handle. + * @param bonding_dev + * Bonding port (ethdev) handle. + * + * @return + * Negative on error, 0 on success. + */ +typedef int (*eth_bond_notify_member)(struct rte_eth_dev *dev, + struct rte_eth_dev *bonding_dev); + /** * @internal A structure containing the functions exported by an Ethernet driver. */ @@ -1455,6 +1470,9 @@ struct eth_dev_ops { eth_count_aggr_ports_t count_aggr_ports; /** Map a Tx queue with an aggregated port of the DPDK port */ eth_map_aggr_tx_affinity_t map_aggr_tx_affinity; + + /** Notify the member port of bonding port information */ + eth_bond_notify_member bond_notify_member; }; /** From patchwork Sat Oct 7 01:34:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 132363 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A4629426D6; Sat, 7 Oct 2023 03:35:22 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2B2CC4064C; Sat, 7 Oct 2023 03:35:09 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2118.outbound.protection.outlook.com [40.107.94.118]) by mails.dpdk.org (Postfix) with ESMTP id 49A6A402E7 for ; Sat, 7 Oct 2023 03:35:06 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QdD4Lcat6guB5UUgVjIPTK8JN5eLYLP4QfszQF07PKxDpr6DQTfVl7x49lII1zHobltdziBeBSlIe/DShdmO5EdA9HyfhKqaYSVLbu28OXv6ASuo6r0h9K2xPuGrb8n6dHzKIzp/OSJxB+9KrgRewE7Dg3llUDBy+ymejKrjKPO/jb+Hn6cysWE61Ptnb9DqWnAfyWo+UNTKzV6Ju3hoUs/RCcLn+uzB14N5XW3IGcTBySRR/TpII01L2GYepTxjHkXrpkNWrgj8P5jXRqz02CGQfxqGKD8TrbhVqUjXl6E/UMkBZaX72jcAd8fMxSXv8EvzafKtrNFqHJOa+178Hg== 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=IfqR6DGSQd7qEcvBIdqE3D4xBmxRaU6y9JGuHqBER6U=; b=EcUO07Pdt2TPY0gPzlQMmT+V8jNNMum3E8hByt2lK/F36NHiDTCN60AwXJef/Q5MPlN9aIAOD9x3fMq1fxakyuIjUSzUatD7wmlvWkhEjuTLTaw/MtZumELBoCRUOUo0Xh39hokO9rx1i8GT9a0JxFc9X5vuitC64c+xsA6BJpaaVK86TJ3Av+SOYh6u7vlUgbEs7wOVuPP69Bh0eBYEDqIxqFQAuPitt2fyq8/ET4imXZRJeBrMjhMfL9yMoxFabJKMPqpukbTaBOEXFkjVzYt5cot3nHB4YCJySC2mW/3h/cWwQGKlxeo2eobwtW8I++3xMvBzHgr+St+0rd8wIw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IfqR6DGSQd7qEcvBIdqE3D4xBmxRaU6y9JGuHqBER6U=; b=QF6OQL+YyvvwbQ4YJGuzNxge5POMaVNvzpt/p1jrNFDLE8lT5Xaaj8nTJ89ShGdqQtL5Lb0b7+azLuyja0vNDeed05JIxBJcIYT/DrJAMspwFJh5bwkUJgoBjYum/tdIPnNdjH99eKXKJhbXgZS7eSVEMGCEqapRdLNRB6KEAlI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by BY3PR13MB4913.namprd13.prod.outlook.com (2603:10b6:a03:364::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.37; Sat, 7 Oct 2023 01:35:04 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::28c0:63e2:ecd1:9314]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::28c0:63e2:ecd1:9314%4]) with mapi id 15.20.6813.027; Sat, 7 Oct 2023 01:35:04 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Long Wu , James Hershaw , Chaoyong He Subject: [PATCH v2 2/8] ethdev: add API to get hardware creation of bonding port Date: Sat, 7 Oct 2023 09:34:34 +0800 Message-Id: <20231007013440.1309422-3-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231007013440.1309422-1-chaoyong.he@corigine.com> References: <20231005024012.1279810-1-chaoyong.he@corigine.com> <20231007013440.1309422-1-chaoyong.he@corigine.com> X-ClientProxiedBy: PH8PR20CA0008.namprd20.prod.outlook.com (2603:10b6:510:23c::18) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY3PR13MB4913:EE_ X-MS-Office365-Filtering-Correlation-Id: 898f7123-71ea-4861-b1be-08dbc6d5a17d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HkwD3qTKaPkRnaJ84gNkZhn7eRcbfos2rlbkow1rWlq4iiU/tRO6c413u1ypQo/FYiJOT7Nagn6q1lbrFAOXKUUV9le54YPSv9Jr6x4jpSWs2iAki7BFxmrHyfU30FUkNGy6hzLJz8nszmzaXoGCEIkMM45kbCZpDVHODvcv6Q5W78gHs164XeAzCBtSbLC20ClVIBRrE/JsdkH0NlZzc6tale8oNNQO1vazlpNz+Wu8XM0ySE+Spk081KyAr/1Ntpi+ybOdgs17rsKugaws0BfSGoAD3k+SDS/hiPJcqaNEnvQW9Nw2dwYzh2eiZld3NCBHh2LXIvIDSW0LNd92GTY3lawZSxP3XQy2JuOsyO93cQPO5CH7fvrfEk6M4Z9UHHv4UH8pyrPe9FW9i9lRBC1W6ncOnNZcleKvC0695QxDCA9NypQYK5tCsIsclexy8aZ1n3hcE6rB9MniFkaSLNqU1uFWL4+gwdYue8Xa9HGmvNFQ8iMoe8rdcSHm40Kikura+Pyli04gb089V4Bpfg9qspiDdMG7h3ZaJ9F5pD0ly0LxTZCtI9cUzOi5U7OrfADabdF4pJrOdXlYRIMuInZOgbT0bShM8JJEZA2nOmcSRQl02TMc0xIda55+1I1AOgYgabfDmmI29ZcKROzqYECIhUxp+XK6FPYSud0kAtk= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(396003)(366004)(376002)(346002)(39830400003)(230922051799003)(186009)(451199024)(1800799009)(64100799003)(2906002)(44832011)(8676002)(8936002)(5660300002)(4326008)(54906003)(41300700001)(66946007)(316002)(6916009)(2616005)(66556008)(66476007)(6666004)(26005)(36756003)(52116002)(107886003)(1076003)(6512007)(6506007)(86362001)(38350700002)(478600001)(38100700002)(83380400001)(6486002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +t1l9NK0WV8a0SDjdF+1Ct0BbxudML8iFPnWHkpoa6e+9bwegkuGsPbkWdeFcexvYtzsMx6yCBJ98oLCUl1Qsxha+yqg2N9G81cSJWk0yGzrLmx1WRqAb/Opf//o0wSCy9dpnqkTmpzgeDrDcxhj1e+sphq6Ti+oBEMlNAyqhkzHeCCf718A1ZzNQFyxWYHiKWEeysAqdBMh9qgU7a3Jc9AsA+o3B9vmHncIVE2xffvVCBz2L+Dbx4HGv5XX9YLaUWMezU0nmUKg16vb8Vi7S6ZzldeZaI5JDZJ1Ok465GQZapAf1v75F6lmlABHAgYirHTLISlKF5TuD9aVeXDKF5E0pxYlDS24TCrTWYbHQH2wyQl9Cpl2VYDgWLPFp9L2DnypVNyZ/ejfa3G/icT5V5OI0/VH9dn+EjIpt7SSDExy1qc/oZ+C6tCYKC3XzwVWOPkuGbA5L0HTdC7SnnP8E4LvBg/WD574ZR0D/o22mIGRXiS948R+VZ94diPJzC2PxdpDkbCnLq1LT8gF0aYBkPX6eWgQS5Fn3kaXOzbbqdfeB5PGrDcwlekETpSVj8imeFmqJF0k60DF3RGqasZWMTabCfGiFW600ywaFVR9GdPez1C/iKqZAxhZCkv7rWNeXT2lsCyCF5Q20MGyZDogd7/3daMzedyZFcOHWDq0C5T1f01y/LWF4HEK6imbDeHg2gItydSd1ylUR6NDsKJ9QROj0QO6OdJk2oMGXNS1hABdc/750fzfIj2KM29om2TVbWpvd9qdu5E+mgL2+Gsmvxioh0keXFPuMERRKChCmWhU1wQyQqDAMshLETUUaT3dv3VugMciHCHTzwsM5i3eyHV82IN9RccVopgvtYRhdUOYy82fDronMt0N57FxxyNltklMizAoKv7RWAeeQKhXLvcK6ZtJ7o9gOt9q1LAEVMrVnH92a4qCICuPtFdhN3nZhdEzxFThXaCs7QCIRNQ3yn5dQ8db0uMQsuq2ow0+4s/PGMotip0iyFY0BbhJoAroRTfWKMqw6iXHmaL6QMDKO0KQcqJ73Mbh4d9CwdaJwchmYcd2s0w/Stf6+MyU3gYenVQjCcxrnHvZWTuY5pql3TUp7cOyaXwI2nd2YJb6FiCCQQnvxGrf8Y38G6Yp+qV7A2NCXVJyf3wpRKdoG2RtafAU8/z1rlnOTHrbU88fLVVrhT3mvg+W9tPbZgWqpshjA9ZKzd0fqhE+nvpknm25EOSI064zTfGj9fI35KTJ2JFz8GpZpMBjibwAkboW6ShE+yKmUK783BZAnJ1xjFg5bXmBoGsKoupvFI+mdBdbSRyWIXJvYgWmGsBGH4n8erHSASd5YZW0CAUI9He8T6BRyThM8YXJqvcgklb0aHqdV+KYMoyNq+3RJ4rXcH09nCyUjBxElunpRgvCa6bSSZZEq3PuSobmMRiHwoJx0QQWixKo6ZEx4eyDOQPLT72PYvUkM+5j/r4Phrq9aKyOJs7IqixdkyZ6MaMcu5FR/KbE6aji3fXsHP3MJQVFyTt6nyp/aQp7yeh7K9R6SY5CXo9Xha/pNvMJWB566mh3FrDAYJ7PB/qSpxkJaCvL2241hJngIZeCyC5A3XP69iBkVgfwoA== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 898f7123-71ea-4861-b1be-08dbc6d5a17d X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2023 01:35:04.5815 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hfuEiPDVEdAxTt0EFobAud2Eh5CROH3yaDtQH4x9Vid0DA4ZBSzEht6qgMISdvhFdpj3n+Et6PyjhEuVM8qzL8qA5BeHEu+pjnoSdj+2/to= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY3PR13MB4913 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Long Wu After bonding port notification, member port hardware may create the bonding port. We want to get the result of creatition, so we add this API to do the getting action. Signed-off-by: Long Wu Reviewed-by: James Hershaw Reviewed-by: Chaoyong He --- drivers/net/bonding/rte_eth_bond.h | 15 ++++++++++++++ drivers/net/bonding/rte_eth_bond_api.c | 28 ++++++++++++++++++++++++++ drivers/net/bonding/version.map | 1 + lib/ethdev/ethdev_driver.h | 20 ++++++++++++++++++ 4 files changed, 64 insertions(+) diff --git a/drivers/net/bonding/rte_eth_bond.h b/drivers/net/bonding/rte_eth_bond.h index 737beca446..6be5e46deb 100644 --- a/drivers/net/bonding/rte_eth_bond.h +++ b/drivers/net/bonding/rte_eth_bond.h @@ -398,6 +398,21 @@ __rte_experimental int rte_eth_bond_notify_members(uint16_t bonding_port_id); +/** + * Get the status of specified bonding port created by member port hardware. + * + * @param bonding_port_id + * Port ID of bonding device. + * @param member_port_id + * Port ID of member device. + * + * @return + * 0 on success, negative value otherwise. + */ +__rte_experimental +int +rte_eth_bond_hw_create_get(uint16_t bonding_port_id, uint16_t member_port_id); + #ifdef __cplusplus } #endif diff --git a/drivers/net/bonding/rte_eth_bond_api.c b/drivers/net/bonding/rte_eth_bond_api.c index 48c1d050fd..0be580b19b 100644 --- a/drivers/net/bonding/rte_eth_bond_api.c +++ b/drivers/net/bonding/rte_eth_bond_api.c @@ -1171,3 +1171,31 @@ rte_eth_bond_notify_members(uint16_t bonding_port_id) return 0; } + +int +rte_eth_bond_hw_create_get(uint16_t bonding_port_id, uint16_t member_port_id) +{ + uint32_t i; + struct rte_eth_dev *bonding_dev; + struct rte_eth_dev *member_dev; + struct bond_dev_private *internals; + + if (valid_bonding_port_id(bonding_port_id) != 0) + return -EINVAL; + + bonding_dev = &rte_eth_devices[bonding_port_id]; + internals = bonding_dev->data->dev_private; + for (i = 0; i < internals->member_count; i++) { + if (internals->members[i].port_id == member_port_id) + break; + } + + if (i == internals->member_count) + return -EINVAL; + + member_dev = &rte_eth_devices[member_port_id]; + if (*member_dev->dev_ops->bond_hw_create_get == NULL) + return -ENOTSUP; + + return member_dev->dev_ops->bond_hw_create_get(member_dev, bonding_dev); +} diff --git a/drivers/net/bonding/version.map b/drivers/net/bonding/version.map index 3bd5e8ad11..3cfff51269 100644 --- a/drivers/net/bonding/version.map +++ b/drivers/net/bonding/version.map @@ -32,6 +32,7 @@ EXPERIMENTAL { global: rte_eth_bond_8023ad_member_info; rte_eth_bond_active_members_get; + rte_eth_bond_hw_create_get; rte_eth_bond_member_add; rte_eth_bond_member_remove; rte_eth_bond_members_get; diff --git a/lib/ethdev/ethdev_driver.h b/lib/ethdev/ethdev_driver.h index f626f971e5..18ff5db969 100644 --- a/lib/ethdev/ethdev_driver.h +++ b/lib/ethdev/ethdev_driver.h @@ -1231,6 +1231,21 @@ typedef int (*eth_map_aggr_tx_affinity_t)(struct rte_eth_dev *dev, uint16_t tx_q typedef int (*eth_bond_notify_member)(struct rte_eth_dev *dev, struct rte_eth_dev *bonding_dev); +/** + * @internal + * Get the status of specified bonding port created by member port hardware. + * + * @param dev + * Member port (ethdev) handle. + * @param bonding_dev + * Bonding port (ethdev) handle. + * + * @return + * Negative on error, 0 on success. + */ +typedef int (*eth_bond_hw_create_get)(struct rte_eth_dev *dev, + struct rte_eth_dev *bonding_dev); + /** * @internal A structure containing the functions exported by an Ethernet driver. */ @@ -1473,6 +1488,11 @@ struct eth_dev_ops { /** Notify the member port of bonding port information */ eth_bond_notify_member bond_notify_member; + /** + * Get the status of whether bonding port is successfully created by + * the member port hardware. + */ + eth_bond_hw_create_get bond_hw_create_get; }; /** From patchwork Sat Oct 7 01:34:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 132364 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 37B91426D6; Sat, 7 Oct 2023 03:35:34 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 002C4406B8; Sat, 7 Oct 2023 03:35:10 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2113.outbound.protection.outlook.com [40.107.94.113]) by mails.dpdk.org (Postfix) with ESMTP id 6C5F640693 for ; Sat, 7 Oct 2023 03:35:09 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=duOiQo0y/xmtm0ByMLz67knG6UG6onVfAgZP9+i6FT1MnUIRBGznZAlVbFFvtJaZuuKuWKAxfsHSo++TMk4FV3Cq7PB4CkmeCdpCWpKBvN8VRFEj/yHdVYff0YZwBrJf2f3GjtnHYWBvXcrc5tlXnnwkQH6cEcuEyBxJ42bCwcszczo1tiF+qQLZ0PWzb/3iqCecqQC7rHQ8XJojoucNixqfyLwB08brEXQnR2nptGZiSULx55JKMByAvZLaqIg9D7h3TAlbcYqLICNY4e3WyNU+FCCZ4yoZpbkIvKT77R1hRo3f4V9s7FhGtu91yrFO4A72+o+4YIo+LedJ8urImw== 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=RLv62KYSeTJdWLfvUn3SGfp8vzepnddlcNxrnblvZlA=; b=ABrZ74XN8XV3yC8u1KjrKzktShMkdWZqSHhEmmf2/TdSvp1VY938mEKtGRrxGaBQ622j/0Q7a24e2LA83ep4ZCJhuGtyxL+fKcE8JJaOoXrD/WqRuut9JX1dQSVE4uRLCSXigqhQOoHaLGIC3zStFFo4fbA1y/oaNimrHNPo51dab36CC+IVvhKMVjTr0qYjm9TirskDPWi+5VLVNTiYr+nr3HXxAm+FLvyPtrkJSuQ3TGkTbQ87kJmiMOvD0CHUkl6lZSCzJDr8oFzKiYXkl0GHfsdpM7eKZEB712b6DNHMqyXw7Gbp/4/fjbtXEI115qN7W/Wl6LcOnHcn73J6Mg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RLv62KYSeTJdWLfvUn3SGfp8vzepnddlcNxrnblvZlA=; b=Ok5Erc6AUkUaRi+Dn7dL48TjnSoOsIe7duz9CZ5uUZF4cWL1plHqkT70rwiyjxXxeCRloAg73ABAWI7QHYQpCtzMBL6wWgwl51ggId6ptexjQXQU9lv/1Oup2g94O2yi1KUoZ/Z3ycs9MCgLPCeoCmMxPgBZ2rGgYk6tXyCiEj4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by BY3PR13MB4913.namprd13.prod.outlook.com (2603:10b6:a03:364::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.37; Sat, 7 Oct 2023 01:35:07 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::28c0:63e2:ecd1:9314]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::28c0:63e2:ecd1:9314%4]) with mapi id 15.20.6813.027; Sat, 7 Oct 2023 01:35:07 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Long Wu , James Hershaw , Chaoyong He Subject: [PATCH v2 3/8] net/bonding: modify interface comment format Date: Sat, 7 Oct 2023 09:34:35 +0800 Message-Id: <20231007013440.1309422-4-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231007013440.1309422-1-chaoyong.he@corigine.com> References: <20231005024012.1279810-1-chaoyong.he@corigine.com> <20231007013440.1309422-1-chaoyong.he@corigine.com> X-ClientProxiedBy: PH8PR20CA0008.namprd20.prod.outlook.com (2603:10b6:510:23c::18) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY3PR13MB4913:EE_ X-MS-Office365-Filtering-Correlation-Id: 0c038727-f49f-4d96-b782-08dbc6d5a2d9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AvgdzUuQcE1GsM2mSAFGGYyiSnjodatQ047jt1Ote2Hzy194pE28cOjmEHPlq4y8ON8zMFEueusGye5qKl40WrUugbc9YpYw9h5rgCpSAjI43dZZgl/Rj7f9pqw13wEJlWRQ/sqM0zmqZkg/5itZvvVLrVcAstRDrlCdtJF/zt01YLtlIHcCh//JVaPsBaB7UpYMvhlqJbNB1aZJ5SNYV8TIQOu/0x1q8bKJWZ72ucyJL5piHZV16W+UT+vTv7CuUj9gZdNq72MCzF13TTS1AnPD6CDtxNPfRbJHgnYGRPHTScZLF52Yqj5vwqofdMLsLxiJE1iTtPOQlCVMOMhlMsPHMcWqR9i8hwe9XI5CuZsmF8ikaGI0WuAbI63LokLMwWyjQYnGiQg998dJnB2bylS8YKB3shCUwXzkDJ8KCLZ+75qU15xb2EqGeuq6NEMPBRIQ65yUZOlTgxW4BQryr4u2USmaHQH8bjZIQaAqA27395hoNiV4dH2sXG7eQ9SiySrgqUYdi+v6s94mVjEfyivkKr34qm1qKwHS9brW3WfcISm1lmfo45goPKgofuZNvV8uEzZ3ZvT5DXSDT94vVsopAcad6/JeVLU3kd1zQnj5Bt35+qN9O05T/w7VutmXagHoegGmufKLLRPzX48w2mcYLPYKV4xn8Fe/erF7drM= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(396003)(366004)(376002)(346002)(39830400003)(230922051799003)(186009)(451199024)(1800799009)(64100799003)(30864003)(2906002)(44832011)(8676002)(8936002)(5660300002)(4326008)(54906003)(41300700001)(66946007)(316002)(6916009)(2616005)(66556008)(66476007)(6666004)(26005)(36756003)(52116002)(107886003)(1076003)(6512007)(6506007)(86362001)(38350700002)(478600001)(38100700002)(83380400001)(6486002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: GQk6dDTR899oABLGG0sj65a/RIkWJSuoPamjbmdDndH65jWxnJlO2BXfQFBy/JHCj4sWIUzWPKOGG5aTuIYlpg0truIqZFXByWLtt1zjNa7EeUZ04dTyDqpeCeMG+cgCdMxihlImKLfjRvRcg5+tTXxS9yhMUbgHVlGzydJEY4QE4Z8RSWIibngkW5ClergsNwkpXqrC/o14KQe/ckHTECG4H1qM/Y6F8ZmUEWmBfKYfOPX2DdaACpfAudz8svHN8h+sdlvv/Xeack0t38DwG0YZdMzNjvSik91q2/zhelsiCPmFDnkNrE7DFUAZKygudfgM+5YgLcdLMDsdPJVBXrZsVG0MlwhKj51trgEDCNeoYv1dg79kqvg50RzY6ImdvAuktg4tQgbZ55WEk+XvW4I1WgQ7qXV1pyhlUIrlBut4UAhTbQsFfQIQHh3IKptv+WhEqnDQi+JPgWbRccYcm2pA3wjRLAQi8k4OXUk8vlUC1buQIyAsRJbvNwbTsfyre5NjoParHr645QA4x/L1wSFsBZIVZeyWoWtmssvpsZYGzwNY1pUn0zBPNoLwbZpy8GgdUrRJOkZcoCjZNOTlp+D9v0K1/h+89qw5mKURDaRPxNXwJ3TRHLflEP6SVcYavY6l0zAfryiVIYInR6/+uz97NYpuT8m+dzU+MUldXeQESU5uST2Lc8LxfXE6HZ1pbaghYP7lowswJuG+0ifV8hZhiZH3D+VpRIgQEd2M6mcgYnJmEXh8klDkBgZ9bWO/YA+yNlk6vO+nWyFV5fy9ePJmocBG6XGJ/q6LD2J7O/o/da+piNUPCkD3w/8y3Q2KtTRz4cm853cQS7QGxdryvCQn89eKVh5AxchdLVKRHrB25T/vJ2qzDlFGFY7brFvh3sraTnEUs+sAP/QGrw3lRJGR+DLGjkBV2mQvqbtn0pTsssxVFT7e3dBCrryCRjwFF0w4jw4ARHzoeIcY2DDHCIH+WfYWQvMCwjGAsmjI5wMAUDKrLYhQ+3Ox0kZd7qn6B7OISIwezujCyVOB5nrzrSWiaQo5deGqATXSYiU+UqMO0b5GTzKp0r1mZEMdvGSZY5cMndnMPG+aW7nNKKNQdNB+Hh8RTCl+I/NH9dzI4nmgfyhf0WbVbk/i+ViDCTm8yHXXR4UilEDRDhU6O9IKRYyDFLvtVyWaotqucu2/LhdnEhUaznp8CaFGPpSHmQCwW2t6/QZDNfEeRDa8MhnrnMe5tnfokRMW+cYz3Sa6n/NeJSjLmB2YHMiNmK8oTU0hWNzeWcPa8UcLoAOLHM9CG7WW3v11fQvyGYfU35EjUX5vG+N+bcfpKoTMMLdwTHYhIkbmlb0jimW05E9VKLPHGsb850moSIYUZhtGrvFn9hwsCMleuaE0m6LHfai7SwnnTNb2yF4/G8SrvoDYpeynH6DUEKiJ/zAOD190Omt3+ANAks5mFnBu36cFrmeTk5rXLkN1cYilBeX1ellTbgDfsoGuspIeFsGbHBz9u6AXAKZOXd3kPFR/CZvivAUsNTBksYLe+M1WyCJgV2yzXOWrIFt6h6spctcvUYiejY48VjJ94EFLocnqKK3m7Sw7tAETnHLaHSBjdAZjoNVGV01XOg== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0c038727-f49f-4d96-b782-08dbc6d5a2d9 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2023 01:35:07.1004 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: X7Uwi7uhpwp2xUkGKUEOHONncE6QoXdsIRyElDRlSQABT4Xll5kDHiJrvdx+zZVZC6beiv7ItXOuS6tXNKe1PykgPNlR444tvfXXgunzj3Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY3PR13MB4913 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Long Wu Most of the previous interface comment format does not meet the current standards and were not uniform. Modify them to meet current standards. Signed-off-by: Long Wu Reviewed-by: James Hershaw Reviewed-by: Chaoyong He --- drivers/net/bonding/eth_bond_8023ad_private.h | 52 +++--- drivers/net/bonding/rte_eth_bond.h | 150 +++++++++++------- drivers/net/bonding/rte_eth_bond_8023ad.h | 76 ++++++--- drivers/net/bonding/rte_eth_bond_alb.h | 34 ++-- 4 files changed, 199 insertions(+), 113 deletions(-) diff --git a/drivers/net/bonding/eth_bond_8023ad_private.h b/drivers/net/bonding/eth_bond_8023ad_private.h index ab7d15f81a..29ee8700c3 100644 --- a/drivers/net/bonding/eth_bond_8023ad_private.h +++ b/drivers/net/bonding/eth_bond_8023ad_private.h @@ -196,10 +196,13 @@ struct bond_dev_private; * * Set mode 4 configuration of bonding interface. * - * @pre Bonding interface must be stopped. + * @pre + * Bonding interface must be stopped. * - * @param dev Bonding interface - * @param conf new configuration. If NULL set default configuration. + * @param dev + * Bonding interface + * @param conf + * new configuration. If NULL set default configuration. */ void bond_mode_8023ad_setup(struct rte_eth_dev *dev, @@ -210,9 +213,11 @@ bond_mode_8023ad_setup(struct rte_eth_dev *dev, * * Enables 802.1AX mode and all active members on bonding interface. * - * @param dev Bonding interface + * @param dev + * Bonding interface + * * @return - * 0 on success, negative value otherwise. + * 0 on success, negative value otherwise. */ int bond_mode_8023ad_enable(struct rte_eth_dev *dev); @@ -222,7 +227,8 @@ bond_mode_8023ad_enable(struct rte_eth_dev *dev); * * Disables 802.1AX mode of the bonding interface and members. * - * @param dev Bonding interface + * @param dev + * Bonding interface * @return * 0 on success, negative value otherwise. */ @@ -232,7 +238,8 @@ int bond_mode_8023ad_disable(struct rte_eth_dev *dev); * @internal * * Starts 802.3AX state machines management logic. - * @param dev Bonding interface + * @param dev + * Bonding interface * @return * 0 if machines was started, 1 if machines was already running, * negative value otherwise. @@ -244,7 +251,8 @@ bond_mode_8023ad_start(struct rte_eth_dev *dev); * @internal * * Stops 802.3AX state machines management logic. - * @param dev Bonding interface + * @param dev + * Bonding interface * @return * 0 if this call stopped state machines, -ENOENT if alarm was not set. */ @@ -255,9 +263,12 @@ bond_mode_8023ad_stop(struct rte_eth_dev *dev); * @internal * * Passes given slow packet to state machines management logic. - * @param internals Bonding device private data. - * @param member_id Member port id. - * @param slot_pkt Slow packet. + * @param internals + * Bonding device private data. + * @param member_id + * Member port id. + * @param slot_pkt + * Slow packet. */ void bond_mode_8023ad_handle_slow_pkt(struct bond_dev_private *internals, @@ -268,11 +279,13 @@ bond_mode_8023ad_handle_slow_pkt(struct bond_dev_private *internals, * * Appends given member used member * - * @param dev Bonding interface. - * @param port_id Member port ID to be added + * @param dev + * Bonding interface. + * @param port_id + * Member port ID to be added * * @return - * 0 on success, negative value otherwise. + * 0 on success, negative value otherwise. */ void bond_mode_8023ad_activate_member(struct rte_eth_dev *dev, uint16_t port_id); @@ -282,18 +295,21 @@ bond_mode_8023ad_activate_member(struct rte_eth_dev *dev, uint16_t port_id); * * Denitializes and removes given member from 802.1AX mode. * - * @param dev Bonding interface. - * @param member_num Position of member in active_members array + * @param dev + * Bonding interface. + * @param member_num + * Position of member in active_members array * * @return - * 0 on success, negative value otherwise. + * 0 on success, negative value otherwise. */ int bond_mode_8023ad_deactivate_member(struct rte_eth_dev *dev, uint16_t member_pos); /** * Updates state when MAC was changed on bonding device or one of its members. - * @param bond_dev Bonding device + * @param bond_dev + * Bonding device */ void bond_mode_8023ad_mac_address_update(struct rte_eth_dev *bond_dev); diff --git a/drivers/net/bonding/rte_eth_bond.h b/drivers/net/bonding/rte_eth_bond.h index 6be5e46deb..28aa341d2f 100644 --- a/drivers/net/bonding/rte_eth_bond.h +++ b/drivers/net/bonding/rte_eth_bond.h @@ -95,12 +95,15 @@ extern "C" { /** * Create a bonding rte_eth_dev device * - * @param name Name of new link bonding device. - * @param mode Mode to initialize bonding device in. - * @param socket_id Socket Id on which to allocate eth_dev resources. + * @param name + * Name of new link bonding device. + * @param mode + * Mode to initialize bonding device in. + * @param socket_id + * Socket Id on which to allocate eth_dev resources. * * @return - * Port Id of created rte_eth_dev on success, negative value otherwise + * Port Id of created rte_eth_dev on success, negative value otherwise */ int rte_eth_bond_create(const char *name, uint8_t mode, uint8_t socket_id); @@ -108,10 +111,11 @@ rte_eth_bond_create(const char *name, uint8_t mode, uint8_t socket_id); /** * Free a bonding rte_eth_dev device * - * @param name Name of the link bonding device. + * @param name + * Name of the link bonding device. * * @return - * 0 on success, negative value otherwise + * 0 on success, negative value otherwise */ int rte_eth_bond_free(const char *name); @@ -119,11 +123,13 @@ rte_eth_bond_free(const char *name); /** * Add a rte_eth_dev device as a member to the bonding device * - * @param bonding_port_id Port ID of bonding device. - * @param member_port_id Port ID of member device. + * @param bonding_port_id + * Port ID of bonding device. + * @param member_port_id + * Port ID of member device. * * @return - * 0 on success, negative value otherwise + * 0 on success, negative value otherwise */ __rte_experimental int @@ -132,11 +138,13 @@ rte_eth_bond_member_add(uint16_t bonding_port_id, uint16_t member_port_id); /** * Remove a member rte_eth_dev device from the bonding device * - * @param bonding_port_id Port ID of bonding device. - * @param member_port_id Port ID of member device. + * @param bonding_port_id + * Port ID of bonding device. + * @param member_port_id + * Port ID of member device. * * @return - * 0 on success, negative value otherwise + * 0 on success, negative value otherwise */ __rte_experimental int @@ -145,11 +153,13 @@ rte_eth_bond_member_remove(uint16_t bonding_port_id, uint16_t member_port_id); /** * Set link bonding mode of bonding device * - * @param bonding_port_id Port ID of bonding device. - * @param mode Bonding mode to set + * @param bonding_port_id + * Port ID of bonding device. + * @param mode + * Bonding mode to set * * @return - * 0 on success, negative value otherwise + * 0 on success, negative value otherwise */ int rte_eth_bond_mode_set(uint16_t bonding_port_id, uint8_t mode); @@ -157,10 +167,11 @@ rte_eth_bond_mode_set(uint16_t bonding_port_id, uint8_t mode); /** * Get link bonding mode of bonding device * - * @param bonding_port_id Port ID of bonding device. + * @param bonding_port_id + * Port ID of bonding device. * * @return - * link bonding mode on success, negative value otherwise + * link bonding mode on success, negative value otherwise */ int rte_eth_bond_mode_get(uint16_t bonding_port_id); @@ -168,11 +179,13 @@ rte_eth_bond_mode_get(uint16_t bonding_port_id); /** * Set member rte_eth_dev as primary member of bonding device * - * @param bonding_port_id Port ID of bonding device. - * @param member_port_id Port ID of member device. + * @param bonding_port_id + * Port ID of bonding device. + * @param member_port_id + * Port ID of member device. * * @return - * 0 on success, negative value otherwise + * 0 on success, negative value otherwise */ int rte_eth_bond_primary_set(uint16_t bonding_port_id, uint16_t member_port_id); @@ -180,10 +193,11 @@ rte_eth_bond_primary_set(uint16_t bonding_port_id, uint16_t member_port_id); /** * Get primary member of bonding device * - * @param bonding_port_id Port ID of bonding device. + * @param bonding_port_id + * Port ID of bonding device. * * @return - * Port Id of primary member on success, -1 on failure + * Port Id of primary member on success, -1 on failure */ int rte_eth_bond_primary_get(uint16_t bonding_port_id); @@ -191,13 +205,16 @@ rte_eth_bond_primary_get(uint16_t bonding_port_id); /** * Populate an array with list of the members port id's of the bonding device * - * @param bonding_port_id Port ID of bonding eth_dev to interrogate - * @param members Array to be populated with the current active members - * @param len Length of members array + * @param bonding_port_id + * Port ID of bonding eth_dev to interrogate + * @param members + * Array to be populated with the current active members + * @param len + * Length of members array * * @return - * Number of members associated with bonding device on success, - * negative value otherwise + * Number of members associated with bonding device on success, + * negative value otherwise */ __rte_experimental int @@ -208,13 +225,16 @@ rte_eth_bond_members_get(uint16_t bonding_port_id, uint16_t members[], * Populate an array with list of the active members port id's of the bonding * device. * - * @param bonding_port_id Port ID of bonding eth_dev to interrogate - * @param members Array to be populated with the current active members - * @param len Length of members array + * @param bonding_port_id + * Port ID of bonding eth_dev to interrogate + * @param members + * Array to be populated with the current active members + * @param len + * Length of members array * * @return - * Number of active members associated with bonding device on success, - * negative value otherwise + * Number of active members associated with bonding device on success, + * negative value otherwise */ __rte_experimental int @@ -224,12 +244,13 @@ rte_eth_bond_active_members_get(uint16_t bonding_port_id, uint16_t members[], /** * Set explicit MAC address to use on bonding device and it's members. * - * @param bonding_port_id Port ID of bonding device. - * @param mac_addr MAC Address to use on bonding device overriding - * members MAC addresses + * @param bonding_port_id + * Port ID of bonding device. + * @param mac_addr + * MAC Address to use on bonding device overriding members MAC addresses * * @return - * 0 on success, negative value otherwise + * 0 on success, negative value otherwise */ int rte_eth_bond_mac_address_set(uint16_t bonding_port_id, @@ -239,10 +260,11 @@ rte_eth_bond_mac_address_set(uint16_t bonding_port_id, * Reset bonding device to use MAC from primary member on bonding device and it's * members. * - * @param bonding_port_id Port ID of bonding device. + * @param bonding_port_id + * Port ID of bonding device. * * @return - * 0 on success, negative value otherwise + * 0 on success, negative value otherwise */ int rte_eth_bond_mac_address_reset(uint16_t bonding_port_id); @@ -252,11 +274,13 @@ rte_eth_bond_mac_address_reset(uint16_t bonding_port_id); * balance mode, this parameter is otherwise ignored in other modes of * operation. * - * @param bonding_port_id Port ID of bonding device. - * @param policy Balance mode transmission policy. + * @param bonding_port_id + * Port ID of bonding device. + * @param policy + * Balance mode transmission policy. * * @return - * 0 on success, negative value otherwise. + * 0 on success, negative value otherwise. */ int rte_eth_bond_xmit_policy_set(uint16_t bonding_port_id, uint8_t policy); @@ -264,10 +288,11 @@ rte_eth_bond_xmit_policy_set(uint16_t bonding_port_id, uint8_t policy); /** * Get the transmit policy set on bonding device for balance mode operation * - * @param bonding_port_id Port ID of bonding device. + * @param bonding_port_id + * Port ID of bonding device. * * @return - * Balance transmit policy on success, negative value otherwise. + * Balance transmit policy on success, negative value otherwise. */ int rte_eth_bond_xmit_policy_get(uint16_t bonding_port_id); @@ -276,11 +301,13 @@ rte_eth_bond_xmit_policy_get(uint16_t bonding_port_id); * Set the link monitoring frequency (in ms) for monitoring the link status of * member devices * - * @param bonding_port_id Port ID of bonding device. - * @param internal_ms Monitoring interval in milliseconds + * @param bonding_port_id + * Port ID of bonding device. + * @param internal_ms + * Monitoring interval in milliseconds * * @return - * 0 on success, negative value otherwise. + * 0 on success, negative value otherwise. */ int @@ -290,10 +317,11 @@ rte_eth_bond_link_monitoring_set(uint16_t bonding_port_id, uint32_t internal_ms) * Get the current link monitoring frequency (in ms) for monitoring of the link * status of member devices * - * @param bonding_port_id Port ID of bonding device. + * @param bonding_port_id + * Port ID of bonding device. * * @return - * Monitoring interval on success, negative value otherwise. + * Monitoring interval on success, negative value otherwise. */ int rte_eth_bond_link_monitoring_get(uint16_t bonding_port_id); @@ -303,11 +331,13 @@ rte_eth_bond_link_monitoring_get(uint16_t bonding_port_id); * Set the period in milliseconds for delaying the disabling of a bonding link * when the link down status has been detected * - * @param bonding_port_id Port ID of bonding device. - * @param delay_ms Delay period in milliseconds. + * @param bonding_port_id + * Port ID of bonding device. + * @param delay_ms + * Delay period in milliseconds. * * @return - * 0 on success, negative value otherwise. + * 0 on success, negative value otherwise. */ int rte_eth_bond_link_down_prop_delay_set(uint16_t bonding_port_id, @@ -317,10 +347,11 @@ rte_eth_bond_link_down_prop_delay_set(uint16_t bonding_port_id, * Get the period in milliseconds set for delaying the disabling of a bonding * link when the link down status has been detected * - * @param bonding_port_id Port ID of bonding device. + * @param bonding_port_id + * Port ID of bonding device. * * @return - * Delay period on success, negative value otherwise. + * Delay period on success, negative value otherwise. */ int rte_eth_bond_link_down_prop_delay_get(uint16_t bonding_port_id); @@ -329,11 +360,13 @@ rte_eth_bond_link_down_prop_delay_get(uint16_t bonding_port_id); * Set the period in milliseconds for delaying the enabling of a bonding link * when the link up status has been detected * - * @param bonding_port_id Port ID of bonding device. - * @param delay_ms Delay period in milliseconds. + * @param bonding_port_id + * Port ID of bonding device. + * @param delay_ms + * Delay period in milliseconds. * * @return - * 0 on success, negative value otherwise. + * 0 on success, negative value otherwise. */ int rte_eth_bond_link_up_prop_delay_set(uint16_t bonding_port_id, @@ -343,10 +376,11 @@ rte_eth_bond_link_up_prop_delay_set(uint16_t bonding_port_id, * Get the period in milliseconds set for delaying the enabling of a bonding * link when the link up status has been detected * - * @param bonding_port_id Port ID of bonding device. + * @param bonding_port_id + * Port ID of bonding device. * * @return - * Delay period on success, negative value otherwise. + * Delay period on success, negative value otherwise. */ int rte_eth_bond_link_up_prop_delay_get(uint16_t bonding_port_id); diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.h b/drivers/net/bonding/rte_eth_bond_8023ad.h index 4c280c7565..4936d7fc0c 100644 --- a/drivers/net/bonding/rte_eth_bond_8023ad.h +++ b/drivers/net/bonding/rte_eth_bond_8023ad.h @@ -155,8 +155,10 @@ struct rte_eth_bond_8023ad_member_info { * * Function returns current configuration of 802.3AX mode. * - * @param port_id Bonding device id - * @param conf Pointer to timeout structure. + * @param port_id + * Bonding device id + * @param conf + * Pointer to timeout structure. * * @return * 0 - if ok @@ -171,8 +173,10 @@ rte_eth_bond_8023ad_conf_get(uint16_t port_id, * * Function set new configuration of 802.3AX mode. * - * @param port_id Bonding device id - * @param conf Configuration, if NULL set default configuration. + * @param port_id + * Bonding device id + * @param conf + * Configuration, if NULL set default configuration. * @return * 0 - if ok * -EINVAL if configuration is invalid. @@ -186,8 +190,10 @@ rte_eth_bond_8023ad_setup(uint16_t port_id, * * Function returns current state of given member device. * - * @param member_id Port id of valid member. - * @param conf buffer for configuration + * @param member_id + * Port id of valid member. + * @param conf + * buffer for configuration * @return * 0 - if ok * -EINVAL if conf is NULL or member id is invalid (not a member of given @@ -201,9 +207,12 @@ rte_eth_bond_8023ad_member_info(uint16_t port_id, uint16_t member_id, /** * Configure a member port to start collecting. * - * @param port_id Bonding device id - * @param member_id Port id of valid member. - * @param enabled Non-zero when collection enabled. + * @param port_id + * Bonding device id + * @param member_id + * Port id of valid member. + * @param enabled + * Non-zero when collection enabled. * @return * 0 - if ok * -EINVAL if member is not valid. @@ -215,8 +224,10 @@ rte_eth_bond_8023ad_ext_collect(uint16_t port_id, uint16_t member_id, /** * Get COLLECTING flag from member port actor state. * - * @param port_id Bonding device id - * @param member_id Port id of valid member. + * @param port_id + * Bonding device id + * @param member_id + * Port id of valid member. * @return * 0 - if not set * 1 - if set @@ -228,9 +239,12 @@ rte_eth_bond_8023ad_ext_collect_get(uint16_t port_id, uint16_t member_id); /** * Configure a member port to start distributing. * - * @param port_id Bonding device id - * @param member_id Port id of valid member. - * @param enabled Non-zero when distribution enabled. + * @param port_id + * Bonding device id + * @param member_id + * Port id of valid member. + * @param enabled + * Non-zero when distribution enabled. * @return * 0 - if ok * -EINVAL if member is not valid. @@ -242,8 +256,10 @@ rte_eth_bond_8023ad_ext_distrib(uint16_t port_id, uint16_t member_id, /** * Get DISTRIBUTING flag from member port actor state. * - * @param port_id Bonding device id - * @param member_id Port id of valid member. + * @param port_id + * Bonding device id + * @param member_id + * Port id of valid member. * @return * 0 - if not set * 1 - if set @@ -256,9 +272,12 @@ rte_eth_bond_8023ad_ext_distrib_get(uint16_t port_id, uint16_t member_id); * LACPDU transmit path for external 802.3ad state machine. Caller retains * ownership of the packet on failure. * - * @param port_id Bonding device id - * @param member_id Port ID of valid member device. - * @param lacp_pkt mbuf containing LACPDU. + * @param port_id + * Bonding device id + * @param member_id + * Port ID of valid member device. + * @param lacp_pkt + * mbuf containing LACPDU. * * @return * 0 on success, negative value otherwise. @@ -284,7 +303,8 @@ rte_eth_bond_8023ad_ext_slowtx(uint16_t port_id, uint16_t member_id, * * Bonding port must be stopped to change this configuration. * - * @param port_id Bonding device id + * @param port_id + * Bonding device id * * @return * 0 on success, negative value otherwise. @@ -299,9 +319,11 @@ rte_eth_bond_8023ad_dedicated_queues_enable(uint16_t port_id); * * Bonding port must be stopped to change this configuration. * - * @see rte_eth_bond_8023ad_slow_pkt_hw_filter_enable + * @see + * rte_eth_bond_8023ad_slow_pkt_hw_filter_enable * - * @param port_id Bonding device id + * @param port_id + * Bonding device id * @return * 0 on success, negative value otherwise. * @@ -309,9 +331,11 @@ rte_eth_bond_8023ad_dedicated_queues_enable(uint16_t port_id); int rte_eth_bond_8023ad_dedicated_queues_disable(uint16_t port_id); -/* +/** * Get aggregator mode for 8023ad - * @param port_id Bonding device id + * + * @param port_id + * Bonding device id * * @return * aggregator mode on success, negative value otherwise @@ -321,7 +345,9 @@ rte_eth_bond_8023ad_agg_selection_get(uint16_t port_id); /** * Set aggregator mode for 8023ad - * @param port_id Bonding device id + * @param port_id + * Bonding device id + * * @return * 0 on success, negative value otherwise */ diff --git a/drivers/net/bonding/rte_eth_bond_alb.h b/drivers/net/bonding/rte_eth_bond_alb.h index f51c355d36..3cf0d87750 100644 --- a/drivers/net/bonding/rte_eth_bond_alb.h +++ b/drivers/net/bonding/rte_eth_bond_alb.h @@ -63,9 +63,12 @@ bond_mode_alb_enable(struct rte_eth_dev *bond_dev); * forwarded to application without changes. If it is ARP reply, client table * is updated. * - * @param eth_h ETH header of received packet. - * @param offset Vlan header offset. - * @param internals Bonding data. + * @param eth_h + * ETH header of received packet. + * @param offset + * Vlan header offset. + * @param internals + * Bonding data. */ void bond_mode_alb_arp_recv(struct rte_ether_hdr *eth_h, uint16_t offset, @@ -77,12 +80,15 @@ bond_mode_alb_arp_recv(struct rte_ether_hdr *eth_h, uint16_t offset, * If it is ARP Reply, it is send on member stored in client table for that * connection. On Reply function also updates data in client table. * - * @param eth_h ETH header of transmitted packet. - * @param offset Vlan header offset. - * @param internals Bonding data. + * @param eth_h + * ETH header of transmitted packet. + * @param offset + * Vlan header offset. + * @param internals + * Bonding data. * * @return - * Index of member on which packet should be sent. + * Index of member on which packet should be sent. */ uint16_t bond_mode_alb_arp_xmit(struct rte_ether_hdr *eth_h, uint16_t offset, @@ -91,12 +97,15 @@ bond_mode_alb_arp_xmit(struct rte_ether_hdr *eth_h, uint16_t offset, /** * Function fills packet with ARP data from client_info. * - * @param client_info Data of client to which packet is sent. - * @param pkt Pointer to packet which is sent. - * @param internals Bonding data. + * @param client_info + * Data of client to which packet is sent. + * @param pkt + * Pointer to packet which is sent. + * @param internals + * Bonding data. * * @return - * Index of member on which packet should be sent. + * Index of member on which packet should be sent. */ uint16_t bond_mode_alb_arp_upd(struct client_data *client_info, @@ -105,7 +114,8 @@ bond_mode_alb_arp_upd(struct client_data *client_info, /** * Function updates member indexes of active connections. * - * @param bond_dev Pointer to bonding device struct. + * @param bond_dev + * Pointer to bonding device struct. */ void bond_mode_alb_client_list_upd(struct rte_eth_dev *bond_dev); From patchwork Sat Oct 7 01:34:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 132365 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 550F8426D6; Sat, 7 Oct 2023 03:35:43 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 50F1B402F2; Sat, 7 Oct 2023 03:35:13 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2091.outbound.protection.outlook.com [40.107.94.91]) by mails.dpdk.org (Postfix) with ESMTP id 6AB2A406FF for ; Sat, 7 Oct 2023 03:35:11 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mp9zn9XXvwf+z2Dc9luUFXkBj2VR0B+rZRD6YMABIKSGg/Qr/lJRQrwAFbzbBsqbx8xFoT7H6kF0AAb8ADEZVflNvqe686o16DF50uJ+IeDEoFG9L5rArmLAWL4j2wQhnN6I4ERtzEw4v9UKBhd/xFm5GoJqPbgo4Pd6aJ3Y4juQo2kL5sR0fn78D4D4KMzjQmZPN24xYAqnGFp7urzEuUacp0fD1kaUq9uLbx3sav8v8actuldiN3JE5vBGwcOA/u7d6pUwvW+fz6nhVOe2ivxOjJVH2LMB1CMSoZJ8iMxVxqR1Bdrfy90gnKdc8/2C+imznONcKJF8h4mgPnAGGg== 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=jfUFje1UTKAJOptVGmvPeyrtValsBYex9J7ZD9S3J4g=; b=I6wnVoB9yJ/3mkvkAtDLeJbzKvoTYYy1njMDLicJu6P/3wLspAmyU6UomcytSXSM753hXT7Chk14ZAP8rpTLelLuF1qJdH9iwFUV8ZQ1pdJywUDQ+d/nNy9F1nFfgJ2OkmfhbUsv1IjxsEOpEAgnf2P1+L09swA16cqvjByYJxiqoI8Eoi0HYW0Vt/Se5cRPJ+nHFr7kbG1EvkNpTd1/o5V2dYs0JEpysKFbcyB39XbK4T742ayJyQdU9bATEMS44AM4U06n/ZBprc8yYgir2hlDOT56be0QY13N8g72d9U7uyxZBUyUbH4t0SQch5w+tMUM8P4uJEmzFFgbNqXilA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jfUFje1UTKAJOptVGmvPeyrtValsBYex9J7ZD9S3J4g=; b=u/PYHSWZc1KGrYYT3gozZvSWTOENuFtZTiE9nLuF6MDjlMc2K6HJ2rZmOX9XWJaDFS3tQRBW7CkRlJAsPQi9qUId45eIPIC0kSxTzHa5gA38qJ8Jf1wiVu2IcUo4OdqbkCu41hRljAOamvQBbgtbt0aHJ+M9XukOs1t/+aRLaHM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by BY3PR13MB4913.namprd13.prod.outlook.com (2603:10b6:a03:364::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.37; Sat, 7 Oct 2023 01:35:09 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::28c0:63e2:ecd1:9314]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::28c0:63e2:ecd1:9314%4]) with mapi id 15.20.6813.027; Sat, 7 Oct 2023 01:35:09 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Long Wu , James Hershaw , Chaoyong He Subject: [PATCH v2 4/8] net/bonding: add bonding port arguments Date: Sat, 7 Oct 2023 09:34:36 +0800 Message-Id: <20231007013440.1309422-5-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231007013440.1309422-1-chaoyong.he@corigine.com> References: <20231005024012.1279810-1-chaoyong.he@corigine.com> <20231007013440.1309422-1-chaoyong.he@corigine.com> X-ClientProxiedBy: PH8PR20CA0008.namprd20.prod.outlook.com (2603:10b6:510:23c::18) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY3PR13MB4913:EE_ X-MS-Office365-Filtering-Correlation-Id: cacfced9-8142-4bcd-1caf-08dbc6d5a457 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4RnSYCDh/61pP8MucuEbFiCzMe366c0HN9bnZo51tmEIzoSOQIXa1BnmxguWSnChAbWPSeQOnuP0PXeZoicAG04az7+Q866GICGXh9BUZEu+hTu2lnvBfwq8T90pPCZFcELBNq+pW0CBBNEodZbw0lxI0z9zpG8aRhr8vvcAljKIMUB0rNHCBXZv/LoxbyqSuNxSQ38jpCHmWOBX7kN+W4qfqsDUXu+8+2dL9exZwRjsNr1BxTp/Lvk/kYEcr7j9sKPOQ6PVbG9WFMWg3Pr3jS0kMTA/IouNSQ9tjnS6kW3xU2Oyuk1J8AEEqa74vLxcvtDn5qOGY5pMPAO2i+JPmadTUWRGRHjyT7soiom2DXRsz21U+Sujtu3GZBcgH9xOBkm4bK4xTzBzyNFBuJWoWHgceC0+fuXIsv6MELaSuJtVxZBMCegCmoFGc44gVXPynhYrDra8Dw1AQ4j39wXM0Mafpp2muoJ39CaBtbkbhfshV1hz4BkdlsfyR9uBI4tf6kDpNjNjcqyuRgwTVQfluavyL+uQl29n5MFzMOK0qYYMvChND3IKznAvhPPoBVPy0i43Vfv+p5W5HFu3RXAyRpov0mviiQi4oxb/4sps8t+h6ak9Zh9x74jZEWFmiQJp9aDyAhIsRGYe6vLSL8NScdKj+zfXNSd+xrq0Ny5VNzY= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(396003)(366004)(376002)(346002)(39830400003)(230922051799003)(186009)(451199024)(1800799009)(64100799003)(2906002)(44832011)(8676002)(8936002)(5660300002)(4326008)(54906003)(41300700001)(66946007)(316002)(6916009)(2616005)(66556008)(66476007)(6666004)(26005)(36756003)(52116002)(107886003)(1076003)(6512007)(6506007)(86362001)(38350700002)(478600001)(38100700002)(83380400001)(6486002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: dKevDt5DA3llqfeCtbMeWMY99qe56QoKM+Al2NMW5gP92KKsSQXs8W0VvzvEtaVxixJDziEYufm44byKYXAhvSf8prblkALdN50Z3eHqYquJKBkujtDHCahSBplLo6YJ3ySgd9eGhmIQe9HWpRM+oeismuButB6klo20l9aku6btRVZASPgc85giig5YMo5DdiISR913EvomWUzqynNdme3WaLIR73tfaGEQo7IxIguUeg2dunH8K+n2GNsh8arunLgqZ2P//NRuXuTBvr2RO7L3aMUbozyMy4WUNkUoUcVl9/4i6h7iqc+ePplYWd5z3AeN/ZYkrdCYWAQR8mqlI5ClWCms98FvcLdiBjqwYkIO9aYdwJYH+WkLmBGe4CqOGaC5sVBCiUSgXFy8011T5ugIwU0W83m06FscPBvCoQ78uGSthgG5W8PhdTyE3UwilLha6YQtTraM6k/kl/sYYho0ALMo48tGzspVG0Il07sk42akX+ldLzZrvGkXilknW9fEEHA9eDN76PvtopJTKIVfiBTSnyIpWoUSOHVru5GARRMTdU9zt4b/lsS2GzhHLjEiSxnQdhGg7faT5pRg2e/Pt/pjbFnz/4vMc8VzhovWUBkIB4cCwoJ738knFHCwTFo39sZMABhYK4C8ig4dLouUae6Xc6+0Qu373Dzha/Gt1SeZNN/nUR1kSMolexXYwo4cQ66qcw7kglMElkhv6WHO+tZPVBY9Hxgz68TzElMzErdgyW7tUULR3AnYc3saADx74+DLNc0TG4lvClOpcoM6Ow9Fl8e+cV6PNuPEr32AZ27N3LrsMSvLmOXs1ClOKZOeoiby9aBNwkml6gIkeuZjUqJ7COOglAFwqyNMvQjkTmVyt2Ps0lNZLN2MGI7eUdy0eYImz1qsKrav9D9GFELkw1eUiutAYd1gOLVGfPaXJ6biLm6iRCo1h0j1ujKl+jY6AoXga+oID/wP4uN8FodrylRMSHk7kqKSYg9B9JNm1pkvqqdHbkw7o71YHS829lxHi9nelOF1djLF5ezSYlOUJlzU+bXncVQ1iqc6lJzqQ45EXfkt85j4Z49dxHKK14yLpM4kswnKSTv7DypWw5AmTufW6n6hl19s/RBfC1AgfyVv8EwQeXd0MLiiSSrikBpEfBSlbI68xMY+Pk09nAzBQ7TQgUE5EVB1Hb7ISD68exbYkU8NfaC6mUF+/mGMhPM/CG6u5aJD8RKIMbxGkbOa4aEF9UK8EwlUVjtxEjPQk9sFnu/kTUH1/VEtLtHgIVvRaUUQjDNd5GM9Eg1JGxtpRG+tlNK/rHdYXCGQukD4ULdcRc1JTxSGI86SlQpiHg+p8BiM54S+5NZTrh9L5Sc4AeWqaxvdiItLf4kwgUN5AykuivNpCQqBKcKouFwFXUpb7Ls2o1yNxILolNM4T/Vduvy6lq/A4Qmau0K7lt8fy68dCvSU4o2R87OdTLp6bh6m3ClKo5CDgVibCbB5do1hDvgVe02FV9JBuRmNiwbof9okNB7obkfCraVspRbIpPrV82YVpLVofB/8xMfWsUsCnnBJvAphG0L2N2eKZy1T7EjfHpjSICe+6WIUyeQxnD6qTagf5I/3ctBv/NuvfA== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: cacfced9-8142-4bcd-1caf-08dbc6d5a457 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2023 01:35:09.3724 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IXez5rsHzoJmndOMG8jkk1icHGDmI1n/J7K84FhzOsVltwOKJ6RBF3twu5pT/V5yYDfe+jcWfV7YthyuAK07Qo1oo1h4LDx1aoQXSWIgTco= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY3PR13MB4913 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Long Wu Include the following new arguments for bonding ports: - "notify_member" to enable/disable member notification. - "dedicated_queue" to enable/disable dedicated queue. Add these two arguments in initial argument. Signed-off-by: Long Wu Reviewed-by: James Hershaw Reviewed-by: Chaoyong He --- drivers/net/bonding/eth_bond_private.h | 10 ++++ drivers/net/bonding/rte_eth_bond.h | 14 ++++++ drivers/net/bonding/rte_eth_bond_api.c | 14 ++++++ drivers/net/bonding/rte_eth_bond_args.c | 44 ++++++++++++++++++ drivers/net/bonding/rte_eth_bond_pmd.c | 61 ++++++++++++++++++++++++- 5 files changed, 142 insertions(+), 1 deletion(-) diff --git a/drivers/net/bonding/eth_bond_private.h b/drivers/net/bonding/eth_bond_private.h index 1344f8c002..b217d98c31 100644 --- a/drivers/net/bonding/eth_bond_private.h +++ b/drivers/net/bonding/eth_bond_private.h @@ -28,6 +28,8 @@ #define PMD_BOND_LSC_POLL_PERIOD_KVARG ("lsc_poll_period_ms") #define PMD_BOND_LINK_UP_PROP_DELAY_KVARG ("up_delay") #define PMD_BOND_LINK_DOWN_PROP_DELAY_KVARG ("down_delay") +#define PMD_BOND_NOTIFY_MEMBER_KVARG ("notify_member") +#define PMD_BOND_DEDICATED_QUEUE_KVARG ("dedicated_queue") #define PMD_BOND_XMIT_POLICY_LAYER2_KVARG ("l2") #define PMD_BOND_XMIT_POLICY_LAYER23_KVARG ("l23") @@ -320,6 +322,14 @@ int bond_ethdev_parse_time_ms_kvarg(const char *key, const char *value, void *extra_args); +int +bond_ethdev_parse_notify_member_kvarg(const char *key __rte_unused, + const char *value, void *extra_args); + +int +bond_ethdev_parse_dedicated_queue_kvarg(const char *key __rte_unused, + const char *value, void *extra_args); + void bond_tlb_disable(struct bond_dev_private *internals); diff --git a/drivers/net/bonding/rte_eth_bond.h b/drivers/net/bonding/rte_eth_bond.h index 28aa341d2f..3f427b6bab 100644 --- a/drivers/net/bonding/rte_eth_bond.h +++ b/drivers/net/bonding/rte_eth_bond.h @@ -385,6 +385,20 @@ rte_eth_bond_link_up_prop_delay_set(uint16_t bonding_port_id, int rte_eth_bond_link_up_prop_delay_get(uint16_t bonding_port_id); +/** + * Set the flag that whether bonding device enable dedicated queue. + * + * @param bonding_port_id + * Port ID of bonding device. + * @param queue_flag + * The flag of enable bond dedicated queue + * + * @return + * 0 on success, negative value otherwise. + */ +int +rte_eth_bond_dedicated_queue_flag_set(uint16_t bonding_port_id, bool queue_flag); + /** * Set the flag of whether bonding port notifies member ports. * diff --git a/drivers/net/bonding/rte_eth_bond_api.c b/drivers/net/bonding/rte_eth_bond_api.c index 0be580b19b..a042f05a4c 100644 --- a/drivers/net/bonding/rte_eth_bond_api.c +++ b/drivers/net/bonding/rte_eth_bond_api.c @@ -1114,6 +1114,20 @@ rte_eth_bond_link_up_prop_delay_get(uint16_t bonding_port_id) return internals->link_up_delay_ms; } +int +rte_eth_bond_dedicated_queue_flag_set(uint16_t bonding_port_id, bool queue_flag) +{ + struct bond_dev_private *internals; + + if (valid_bonding_port_id(bonding_port_id) != 0) + return -1; + + internals = rte_eth_devices[bonding_port_id].data->dev_private; + internals->mode4.dedicated_queues.enabled = queue_flag; + + return 0; +} + int rte_eth_bond_notify_member_flag_set(uint16_t bonding_port_id, bool notify_member) { diff --git a/drivers/net/bonding/rte_eth_bond_args.c b/drivers/net/bonding/rte_eth_bond_args.c index bdec5d61d4..8a3e4656ef 100644 --- a/drivers/net/bonding/rte_eth_bond_args.c +++ b/drivers/net/bonding/rte_eth_bond_args.c @@ -20,6 +20,8 @@ const char *pmd_bond_init_valid_arguments[] = { PMD_BOND_MAC_ADDR_KVARG, PMD_BOND_AGG_MODE_KVARG, RTE_DEVARGS_KEY_DRIVER, + PMD_BOND_NOTIFY_MEMBER_KVARG, + PMD_BOND_DEDICATED_QUEUE_KVARG, NULL }; @@ -297,3 +299,45 @@ bond_ethdev_parse_time_ms_kvarg(const char *key __rte_unused, return 0; } + +int +bond_ethdev_parse_notify_member_kvarg(const char *key __rte_unused, + const char *value, void *extra_args) +{ + bool *notify_member; + + if (value == NULL || extra_args == NULL) + return -1; + + notify_member = extra_args; + + if (strcmp("enable", value) == 0) + *notify_member = true; + else if (strcmp("disable", value) == 0) + *notify_member = false; + else + return -1; + + return 0; +} + +int +bond_ethdev_parse_dedicated_queue_kvarg(const char *key __rte_unused, + const char *value, void *extra_args) +{ + bool *dedicated_queue; + + if (value == NULL || extra_args == NULL) + return -1; + + dedicated_queue = extra_args; + + if (strcmp("enable", value) == 0) + *dedicated_queue = true; + else if (strcmp("disable", value) == 0) + *dedicated_queue = false; + else + return -1; + + return 0; +} diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index b99b8b8938..1ebeb270c8 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -4227,6 +4227,63 @@ bond_ethdev_configure(struct rte_eth_dev *dev) return -1; } + /* Parse/set notify member flag */ + arg_count = rte_kvargs_count(kvlist, PMD_BOND_NOTIFY_MEMBER_KVARG); + if (arg_count == 1) { + bool notify_member; + if (rte_kvargs_process(kvlist, + PMD_BOND_NOTIFY_MEMBER_KVARG, + &bond_ethdev_parse_notify_member_kvarg, + ¬ify_member) < 0) { + RTE_BOND_LOG(ERR, + "Invalid notify member value specified" + " for bonding device %s", name); + return -1; + } + + if (rte_eth_bond_notify_member_flag_set(port_id, notify_member) != 0) { + RTE_BOND_LOG(ERR, + "Failed to set notify member (%u) on" + " bonding device %s", notify_member, name); + return -1; + } + } else if (arg_count > 1) { + RTE_BOND_LOG(ERR, + "notify member flag can be specified only once" + " for bonding device %s", name); + return -1; + } + + /* Parse/set dedicated queue flag */ + arg_count = rte_kvargs_count(kvlist, PMD_BOND_DEDICATED_QUEUE_KVARG); + if (arg_count == 1) { + bool dedicated_queue; + if (rte_kvargs_process(kvlist, + PMD_BOND_DEDICATED_QUEUE_KVARG, + &bond_ethdev_parse_dedicated_queue_kvarg, + &dedicated_queue) < 0) { + RTE_BOND_LOG(ERR, + "Invalid dedicated queue flag specified" + " for bonding device %s", name); + return -1; + } + + if (internals->mode == BONDING_MODE_8023AD) { + if (rte_eth_bond_dedicated_queue_flag_set(port_id, dedicated_queue) != 0) { + RTE_BOND_LOG(ERR, + "Failed to enable/disable dedicated" + " queue flag on bonding device %s", + name); + return -1; + } + } + } else if (arg_count > 1) { + RTE_BOND_LOG(ERR, + "dedicated queue flag can be specified only once" + " for bonding device %s", name); + return -1; + } + /* configure members so we can pass mtu setting */ for (i = 0; i < internals->member_count; i++) { struct rte_eth_dev *member_ethdev = @@ -4264,7 +4321,9 @@ RTE_PMD_REGISTER_PARAM_STRING(net_bonding, "mac= " "lsc_poll_period_ms= " "up_delay= " - "down_delay="); + "down_delay=" + "notify_member=[enable | disable] " + "dedicated_queue=[enable | disable] "); /* We can't use RTE_LOG_REGISTER_DEFAULT because of the forced name for * this library, see meson.build. From patchwork Sat Oct 7 01:34:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 132366 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8441E426D6; Sat, 7 Oct 2023 03:35:54 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0B04D40A6D; Sat, 7 Oct 2023 03:35:21 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2124.outbound.protection.outlook.com [40.107.94.124]) by mails.dpdk.org (Postfix) with ESMTP id 67BC7406B7 for ; Sat, 7 Oct 2023 03:35:20 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G3LsoRYt6H/NUgTpvGvpfqE/+jGUei1mUxckYvmQYZvu1jVxiFggcEF5PCe+zkP/b1Ij8g9apX7NmvsZ3Jj0bNSUiwFpYY0V7VzzcnSPdJ1yK5qK+yvqYrtJg/56E8y+TzT3c7NOFWicm+NI4oOwklbCqQQohZTKQK6aQaMpFSlCa4YT+EQYEAKnFtN1uhMQqqteCXKjYBYCqAlj6wqUok4YUp78rgx+ReU6qqPeTz6e//HUg/YQYU/aW7nrgAbFCWvwJD+9HBLtV5HLu4bjIvQzBFua1zyygP5bS1aerlaca1RfGVlSh8OJyvOF1dwomXhY4K4mtdm72IPBD4pmzQ== 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=hl1SKumr1OOZk4L8LdQN1aMK7JBu1nskMfmPPhr9NpU=; b=Ku8eJ0VcFXxn58DdCL+Fc0+dORAUmGQnslTPTVpPdSriS5Nd09E1X1EYyJ5fsoNJCSS/aKEeFGAyiWuS0Qm/FnjCTs48tVFZmMuQk7GCQye1WmoQlf+umVdsxgjfItXclYgiQ+gBlxZfXsOVgo30vFS5gMfuV+yHf8v/dLEieagkyUJp1aGc8P5IpPIAe/WL9nDWqkRnuuEdYxtp7EnDcDNvBPik1nED5eXZ1KCCUfAZcvdSPbd0AWZpNQ1kUPkupNHa+cXufXtR8gGsjjOlwG1+w9PCCQI/Z9v0axcmwINTJQo8OBh6h1DQSh9DsANWaZwTyMYjhkG4w3V4l4QMHA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hl1SKumr1OOZk4L8LdQN1aMK7JBu1nskMfmPPhr9NpU=; b=ujNNL4WfKKK0hmepHwR1XSUwJaCcOc1ftH0t8JESoMV7YKYyoGxMiCfMsl4DvysTyLiczIUYRCk8j0VNKHjiBZrS8ZVCYoP0Ylsdi6y33wAxXwp3ilMVUVoKvsFA4BkRTi5OwsKWje9MaY28V7Dhr9YFNoyVi5+x6ktUmteDjNg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by BY3PR13MB4913.namprd13.prod.outlook.com (2603:10b6:a03:364::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.37; Sat, 7 Oct 2023 01:35:11 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::28c0:63e2:ecd1:9314]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::28c0:63e2:ecd1:9314%4]) with mapi id 15.20.6813.027; Sat, 7 Oct 2023 01:35:11 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Long Wu , James Hershaw , Chaoyong He Subject: [PATCH v2 5/8] net/bonding: support add port by data name Date: Sat, 7 Oct 2023 09:34:37 +0800 Message-Id: <20231007013440.1309422-6-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231007013440.1309422-1-chaoyong.he@corigine.com> References: <20231005024012.1279810-1-chaoyong.he@corigine.com> <20231007013440.1309422-1-chaoyong.he@corigine.com> X-ClientProxiedBy: PH8PR20CA0008.namprd20.prod.outlook.com (2603:10b6:510:23c::18) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY3PR13MB4913:EE_ X-MS-Office365-Filtering-Correlation-Id: 8f29f205-8188-4d85-226f-08dbc6d5a5b3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JD35UmB0/6XnadUW41wv9woa9/50jFDtUwFM2PVZHkAveN+gpk8/B5ElZsOiAAD858/NtsyH6C+Q3ysFb4gLXMtpr5BkKaZ8PBJA/QXIkJB9/qenEmTNJ/+CKcyc7IwI13/CP16pJBM+EPoluCgpkDATFus6sWh5KLb4MlTAcBDj+Ed70S3bPTJ/GPg3QjPr7em6gzKB64roADWidTJP7HjYzC9rbFf557kBicBdKxqimTgAZ0l7M1MB91QK9/1om3g8SPh9bEe9CM8vsMCwlDk4zjR5lW9c4UDSBohVi5gduR1JufCmhr0H+R59ucwQ5tDcu6lxgoI/LkLUcTylVPlfHV9E4WG2oscsPciYqlpHX1U+05MlgEvm02OcVrjlhLTBySLBYMzwmohGkv+yJOl/olgxHUXsECBp3DMYKRaS8VP/kbtOnF++2BtYXyDTNJcnV3UtePaUV9xfVM3NIlpkUB4ztP0Ouqo5ejFMIbfnYd941ZB6Psa9B/NO/wXzPIBDBAgHpEGJtSlYT9fIBg8lZxnP28FG8x0LPK4xkL/I5+BeUW137jWci2OfnbckRvmkuoatQguCsYqOjr2evfv18V+oIQT8ne3TSlbclPe1FI0CujEf6WsGcA0lViF8b3UHFBsU9wbrBH5WilRwAV28PPaLuJr97t4ObfKNU5k= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(396003)(366004)(376002)(346002)(39830400003)(230922051799003)(186009)(451199024)(1800799009)(64100799003)(2906002)(44832011)(8676002)(8936002)(5660300002)(4326008)(54906003)(41300700001)(66946007)(316002)(6916009)(2616005)(66556008)(66476007)(6666004)(26005)(36756003)(52116002)(107886003)(1076003)(6512007)(6506007)(86362001)(38350700002)(478600001)(38100700002)(6486002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 0jdSffDrRcXmgc/8w6Nav+UT7aDYRVQpCsH2EeZVXmC/M4tOq0iRPDdm84gQzrPOlPqcSw6N7r8RPo/bOPJGh6BAlMerEvHZUzwqO4caRtFdlTN8GGTvIGTMWDKmBE3Cz9YO/lWBg2uX5gx8su61BNnp4Ux31/3MQsDpivob0qPtb9c6LyIR87OHVIdJsvixuJRhRYkJPd/fcbrpkI0Xq6vLzhSmr+KKGH9ZTJHQ1ZhGej084Eh+g8o0wAyn3Trn1ORm0COQ4uqz4XPGv8M6u8DpbLK7pMQUGBewx9ZKpgncSYKw0seNY2V+2Xd9e5HKxYHcNH0BOrJdx9VL/bGcB99o5C8LAz4qSP2G1I8RHiweRip6gPmVQ1LCt+KNZvz3YbxeygMQW4hZhVDrnpaRA1GH01MxbgwVBtqGk/5iZsdBj5Tbzt8WJce60p/ze7t9vFNiK8//954xr2C98wFnsv1VMZ56fUx/qt6zn/r+3vmzHz/JwR3M2A4btfSMaK9bquL7dAdkOs5r3O9EtB46v4wUeQCajfrGY6KhqN6X2T4YID2QmWLoJFy0W32JUMBSNqccLJ6p+6XDqzlBpC/PsLMwktuC1guqiotgFyC0+ZWHwTLCunoBKhCX55L13HFUWtU9atTBaiAY+4or5AdEmIRDabdCkrbKPxKUcldtc9MViiGkjmTr5uJVVL0TaOSYBSMa7JPo21N9mhrMQ1qJU3Bn+qfbUmXaNvRA51dwakDYKMrBxOmTMcoy8W15TEOkaKgDyQzKPgIW+ZE2cXfmGS8gfcFr/T1i9lH4T8aKc9xMn3+wfDW8LkFCUJz3/D7tp7CIVJf3e8x29OKUmxokLnCzaWSzaCVoEPPoqxKojR1VQg1WHVJ0tsvI2pjpSDNtfO5dZnZc1Nqy4LT7V6Ge0+gmaHOoFCDRCCuGXgtCyO2ourdkDHb0o9jxFXxJDOG1IHyCV++wA7ucz9fgtiypVjAV+OGErN89XkkrC2zjEKs4AkXmDXkd7IAU62Hpx2ZX2KsBeWf1dfsHDkp90tEM4bqNTKME562APXoC93jXRkKAAlI9sACX7fwDUdPbseo36SH6GfLR8GAaxy5NUx5AhrbncpFVv1410vImLWIVsjxIYAaA5rSq2aF6dyKxnA64MDWjFW0Cn2WWwuTCYbBn10BGHDtmQ/nWKYYIAGw+SGqGGNLbxd5YLp9x0Xsv4n01DID1Li3lInA4QChViVkUxLAeIHRs07GuY4pe74qw5BrIDtrjrTAi5a+kestRGShbAmtbatvvZ0NEfwFiHZyQOU8/4FPCm4YcvMTt7gV+nrs1VNpyalohu+fYaYscqGi6hnCaWy1B7aHQGRXNKUnnc4YMlTLFx4KSep8Z80b9mqMqio1ZQKrBzhkXUYiDETGvOO+gI9s0WvdhSmMk+Mp4amDMv4quCEqxXsJhdFDQFgl3sxcthHoDpZL1DwfmZ6I2wgaGEy16uPL6SuDvonRjXAj6Qb25fCi2EUXuaA5BZazXLntQQEVY7fiDkVDi8PUIoEZS5b6asF4BYMAz0Z5EbgV9XF0Pm4ko52nN/vh9T+NIkMV0WFa1REuZMbH5YOwOUnJJfAKKQs7gmuMJoIStjw== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8f29f205-8188-4d85-226f-08dbc6d5a5b3 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2023 01:35:11.8766 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lKL0N5EYbEX5ojcTkuMs2YL3jL+iwg2kM/F2cQhRAE4StbUqJvqjlj/CDK7WPAVnuIRiTF+Iz2N+LmBwLlDTfinf2VB/SMbpfNAC8Lgt3LI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY3PR13MB4913 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Long Wu Several ports may share the same PCI address, like nfp representor. So we cannot add this type of ports to bonding port by "--vdev" argument in dpdk-testpmd. But the port's data name is unique between them, we include an option to add such ports to the bonding port. After adding this feature, we can create a bonding port that member port is this type of port by "--vdev" in dpdk-testpmd start command. For example: dpdk-testpmd -l 2-10 -s 0x8 -a ca:00.0,representor=[0-2] --vdev 'net_bonding0,member=flower_repr_p0,member=flower_repr_p1, mode=4,socket_id=1,xmit_policy=l34' -- -i Note: 1. "ca:00.0" is nfp 4000 card. 2. "flower_repr_p0" and "flower_repr_p1" are nfp phy representor's data name. Signed-off-by: Long Wu Reviewed-by: James Hershaw Reviewed-by: Chaoyong He --- drivers/net/bonding/rte_eth_bond_args.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/bonding/rte_eth_bond_args.c b/drivers/net/bonding/rte_eth_bond_args.c index 8a3e4656ef..b320eb3038 100644 --- a/drivers/net/bonding/rte_eth_bond_args.c +++ b/drivers/net/bonding/rte_eth_bond_args.c @@ -70,6 +70,9 @@ find_port_id_by_dev_name(const char *name) if (strcmp(rte_eth_devices[i].device->name, name) == 0) return i; + + if (strcmp(rte_eth_devices[i].data->name, name) == 0) + return i; } return -1; } From patchwork Sat Oct 7 01:34:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 132367 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id DA80A426D6; Sat, 7 Oct 2023 03:36:01 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4527A40A6B; Sat, 7 Oct 2023 03:35:22 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2124.outbound.protection.outlook.com [40.107.94.124]) by mails.dpdk.org (Postfix) with ESMTP id C21CB40A6B for ; Sat, 7 Oct 2023 03:35:20 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VY4J67j64e1+bcKdAmuY7JsXAXagzQcxzvqwDj6WNRe6s6B9b0h41tjrSUX7jvNylFlNTb7avBdZSWpBTYnx7/opsBWPQ01/P90MTBImOfjxOqIFeW4emIe+twooYem0tJViKoFGp/CpSwoNkFlxBHRiivDpD/vnafUTRr4U/ylW2/HKqlvI9Kd+LMEtLEdAu7ZE8482FdImm8tYVRvjEv/nhBGwoApJDhiDE/ICYairDbKW1O8bJqzNEyGOexyj5WeHIolXOMjfPpbKfrjCO0iYseHPy2VfzghE3Ed9ZANY4H08BojhN1P9nmkFj/RQvLLdFlPt3m8v4bU2aCoPfw== 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=oUHWaxPPv4xuODUtUsdOF28+ohpNtXodYWyHao/i1gI=; b=fUqrluZDOMvOQliGEHKtYs/d2V8cXkSQMuDGXfBTvD3fa5F2Hk/Bhgq9+bGbB7MrG9/Z238CEH+NZ+tID55c34Gd8CWq2wY3mnrRZyJCMV8Be9/q8E5uZ7ZlvtgnEIA70F7wj6t1F1lJ2/prHaZRye0fZTlJqImZxUrdyNZl0LcpuxrNwmGnVAwWMNitjehMEQ4ENiBIcz1bZosxvVS4j33FVAK5f58idTgpvYEzwWJeg5V/A0FrmtvsTKaAYHQaxGJAQvgkeOlaplI+m7DCOof834UzdQXt+js70ParrA6PO7QQ9MmohYhArIPdyVGgVrOGQSwFlXIxFiyIbRV4rA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oUHWaxPPv4xuODUtUsdOF28+ohpNtXodYWyHao/i1gI=; b=blMLymvi4yPGSNN6vFGSsltt0udFsZIbdKLIYkrU1Wgqp4HMaMDVcf6dzHN/OG09nwC46AQ2+RgDkI8JtL22C6Iw/zWkSsgydqJyf4NEfYilFWwK/O8dVbwj+gxy43Hlp37sPjsiokJym6M+4rn9MgujCejE7Pe+/DE+JtyeZkI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by BY3PR13MB4913.namprd13.prod.outlook.com (2603:10b6:a03:364::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.37; Sat, 7 Oct 2023 01:35:14 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::28c0:63e2:ecd1:9314]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::28c0:63e2:ecd1:9314%4]) with mapi id 15.20.6813.027; Sat, 7 Oct 2023 01:35:14 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Long Wu , James Hershaw , Chaoyong He Subject: [PATCH v2 6/8] net/bonding: create new rte flow header file Date: Sat, 7 Oct 2023 09:34:38 +0800 Message-Id: <20231007013440.1309422-7-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231007013440.1309422-1-chaoyong.he@corigine.com> References: <20231005024012.1279810-1-chaoyong.he@corigine.com> <20231007013440.1309422-1-chaoyong.he@corigine.com> X-ClientProxiedBy: PH8PR20CA0008.namprd20.prod.outlook.com (2603:10b6:510:23c::18) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY3PR13MB4913:EE_ X-MS-Office365-Filtering-Correlation-Id: 9ef9030a-945d-434e-2553-08dbc6d5a72e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QXco44ZSAfA8RkFEP8L/66dUMNnK/pmCWMatP2GOCEuRDd/q6hUOB49koZttd46aTpgcDrt2dqXiU4Hs/mArP9inYNFx5o10s7LLBNjDhjT/Yh451iyXoo7Q3sr2D1IdUXdvLeBLuV8zpaOpLS481Ywp3SLR6zYJfY3+CvMStn3giI4dZ1ac4X1MaRYiT0KxbVJRQEsLnnYikkVuAAsAOnIqAHAQ0mHIxqMlgaR/y6+JKk4PCDnv4uVtPEWZQD+6fxtBLIWG7N+dB1TvYITK0iASg2AF5zsn1EfiWZK/WNnDFRbCnZ/OcdbGVQuQI+iBnjcsRqmPdRnDd9eQ60Acw2ftLfcRuN0eL0rZDLvK/tOg6liRrROsjG3Vcc9swy5vgpZ2rJ+aGudgIGEOd6sQ7X/QC3tKZpcSwYDDsVenL6zqSJMJpEvbEr852ucMtctJkVADi/vzRNB5vZ1X03EDF1Z0MdAM1mPoUnj9ZBcvdUBPVYrq/uvZLKito9vxIO9DWZw7N6CYP/7KDsZnI8tp1xaG85kITpf/WwZGp08Yizy4fJkm/j/cmPIA9IiQV5klRTOSwBKBO4WWJyJUe1nd9aNpGM4qj2lqbkOhBdqh4j6TaqFdOrJx+ob8zyIDq00xrhlYVEKczEeTWB8s3ad05pjB8AHRMngrLu5uYkf2C+Y= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(396003)(366004)(376002)(346002)(39830400003)(230922051799003)(186009)(451199024)(1800799009)(64100799003)(2906002)(44832011)(8676002)(8936002)(5660300002)(4326008)(54906003)(41300700001)(66946007)(316002)(6916009)(2616005)(66556008)(66476007)(6666004)(26005)(36756003)(52116002)(107886003)(1076003)(6512007)(6506007)(86362001)(38350700002)(478600001)(38100700002)(83380400001)(6486002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 0L1L4BHYxggLYKR5IEgYpkgsl1V+rQuW7tezIpNDwjLtZVvCXWjJZ/5SH6vRI+ErMiUjFQ414sVDwQDhr5nkAvl0cDOjNqXkt7nokJJ+kdglDH0D9T5De1Lv9gdC5zXxQTmsagCPjhyR3h63baTVzx3+H/NEYumDINTjQgo6TnQrrKolX4pjpz6lWJioXYCvd9WvWHAi9OvsDkve50fccKRKZFYpx5mYguesVwNsQyTUMLcmLhnP+ZOX1jf8/Kc9RsQouj4pHTgR51uiawrddapHvIQb8H5kcgd12W3zPIj1vyPNu1vI1eWcqLXdpopCrNny/zC9a03jBBJI6gkD6G3ff1OLAPMJc0ic27IawiQF+3r8qli7IChamy9CswDMnGLF0/xHRrwggPNtj/llTYC0ni1+Dp226KS+dN/QO1ie8p2NrF7d3YBfcZy6xkyLC09Nio4SAu+TF979Jw6gREZdECLH80NgGzT7XNk+bmkBcPg5vL0kETIG+nTerSXZ3jt0U5gBbVFKuqgrrMF1HhxdpzoRPTOiYgdfEOAF6STfAFxaMsbSuxwiiI3SqkuMgXbtrSE/TN+seuzvgx1eQxOXucSc+QNnzy6ZrqK//vwrI3zxUpW2uYIFJb5cbNWqsKYoETalDVm5ApHsRZzsx9UZRLfEFV8QahVA7SJQbDumjpR3Mq8GofCp0E9N1VLl/XCzirTmPqQ+pnA8K2gDYvBW4ShWEBtaozEq/8T/ksZ89gjhcKa7MhxwLs9l5fuqnBwS+LTJLGTUoqQQMe3qbv4BOWu9vuxX7oW1CNRh6fOCchd/Nmm4xW6Q2ZmFCPkDQBxIu9a/nUabjOLPD3BzuBwU/WAMx6wi6XA2v2AxVIUz4WGaejNMPWvmpCjP4ozrLk7ZfMA9Bx19b02kYIAx+QdIFzLA8PtbH6zDGPJp3hA0+HcNNBcCiUXMFDUIa2jA7IR6MsUC/OgpE6RMD3n9BUTLVvHKr1fTFMVZ6Hzm3DkT8WOjlJo/sbVrdS/2hkbfINX25OVhThnrqP0/yVv0dp8NFQvXVpXRd0/wCND9UqUb9bdVVtn5Rgw0gDJ73BSJZLRqu0VfI0PeLgJzYLPc1wZQBV+gcvlLPxrbRO7JxqF3fNFDyzBC0Bew0Ohsx+GtNEmWD1E0mQK26KNWt4C7EYoQqfCPp6f068vo2bBhBf5mRYmr42Udjy1qfDRtzlaQdK00cNgqbeZsfYebgIwkS5BGyLv+27E3IVFP8BoMpMx5CElxAmuN0Mz/1+JuEkxw9iFA9Xg9jQgO27ClTj+nnvoXsdVbK4qK4LZvqy+3voZr7kQpHCja+yvDarM/s3XiJVr4Ceoj70QvGHk9Jbu2dfofoiBihHqGZRWTRYZL5FoU+XU5DyL/yvN7265nqnVo797sBY8u5bnwT0vvhEVtnp0bz9iTctvFrCYJj93YNB6iPhMjBGF6gbFQrTGcM99OJZs++FfldyyYCqASlsIYwV2HgB85eWMZR7HO1sf18TaOzRyJu6ovuyvy1+BYNue+jL6lxC2zEYJLk3xV7D/xLjBhkzaU3Dgfp4vJYB+DM1MWxbwTGE6tCOE8V70cX0eo5ZbdzTV8/nynGcfkfzZ7zg== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ef9030a-945d-434e-2553-08dbc6d5a72e X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2023 01:35:14.1671 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: KE3SS60hP8lnDe6tGNO9XX0uaEogDZQ+RiWxKhi7ueQ0uNc82eBKDeeyJoTeCuWu23sBi7MnRG2Mnu5YLNGQucLpRaYYMpPQhBhBPWZxv1s= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY3PR13MB4913 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Long Wu Move the flow code to a new head file to make flow related code more clean and make the code architecture more reasonable in the future. There is no functional change, just moving verbatim code around. Signed-off-by: Long Wu Reviewed-by: James Hershaw Reviewed-by: Chaoyong He --- drivers/net/bonding/eth_bond_private.h | 13 ------------- drivers/net/bonding/rte_eth_bond_api.c | 1 + drivers/net/bonding/rte_eth_bond_flow.c | 1 + drivers/net/bonding/rte_eth_bond_flow.h | 22 ++++++++++++++++++++++ drivers/net/bonding/rte_eth_bond_pmd.c | 1 + 5 files changed, 25 insertions(+), 13 deletions(-) create mode 100644 drivers/net/bonding/rte_eth_bond_flow.h diff --git a/drivers/net/bonding/eth_bond_private.h b/drivers/net/bonding/eth_bond_private.h index b217d98c31..aaab521eb9 100644 --- a/drivers/net/bonding/eth_bond_private.h +++ b/drivers/net/bonding/eth_bond_private.h @@ -9,10 +9,8 @@ #include #include -#include #include #include -#include #include "rte_eth_bond.h" #include "eth_bond_8023ad_private.h" @@ -47,8 +45,6 @@ extern const char *pmd_bond_init_valid_arguments[]; extern struct rte_vdev_driver pmd_bond_drv; -extern const struct rte_flow_ops bond_flow_ops; - /** Port Queue Mapping Structure */ struct bond_rx_queue { uint16_t queue_id; @@ -94,15 +90,6 @@ struct bond_member_details { uint16_t reta_size; }; -struct rte_flow { - TAILQ_ENTRY(rte_flow) next; - /* Members flows */ - struct rte_flow *flows[RTE_MAX_ETHPORTS]; - /* Flow description for synchronization */ - struct rte_flow_conv_rule rule; - uint8_t rule_data[]; -}; - typedef void (*burst_xmit_hash_t)(struct rte_mbuf **buf, uint16_t nb_pkts, uint16_t member_count, uint16_t *members); diff --git a/drivers/net/bonding/rte_eth_bond_api.c b/drivers/net/bonding/rte_eth_bond_api.c index a042f05a4c..0113dfdc16 100644 --- a/drivers/net/bonding/rte_eth_bond_api.c +++ b/drivers/net/bonding/rte_eth_bond_api.c @@ -12,6 +12,7 @@ #include #include "rte_eth_bond.h" +#include "rte_eth_bond_flow.h" #include "eth_bond_private.h" #include "eth_bond_8023ad_private.h" diff --git a/drivers/net/bonding/rte_eth_bond_flow.c b/drivers/net/bonding/rte_eth_bond_flow.c index 71a91675f7..e6c7ce5362 100644 --- a/drivers/net/bonding/rte_eth_bond_flow.c +++ b/drivers/net/bonding/rte_eth_bond_flow.c @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause * Copyright 2018 Mellanox Technologies, Ltd */ +#include "rte_eth_bond_flow.h" #include #include diff --git a/drivers/net/bonding/rte_eth_bond_flow.h b/drivers/net/bonding/rte_eth_bond_flow.h new file mode 100644 index 0000000000..7394e0e2e1 --- /dev/null +++ b/drivers/net/bonding/rte_eth_bond_flow.h @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright (c) 2023 Corigine, Inc. + */ + +#ifndef _RTE_ETH_BOND_FLOW_H_ +#define _RTE_ETH_BOND_FLOW_H_ + +#include +#include + +extern const struct rte_flow_ops bond_flow_ops; + +struct rte_flow { + TAILQ_ENTRY(rte_flow) next; + struct rte_flow *flows[RTE_MAX_ETHPORTS]; + /**< Member ports flows */ + struct rte_flow_conv_rule rule; + /**< Flow description for synchronization */ + uint8_t rule_data[]; +}; + +#endif /* _RTE_ETH_BOND_FLOW_H_ */ diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index 1ebeb270c8..630afc3740 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -21,6 +21,7 @@ #include #include "rte_eth_bond.h" +#include "rte_eth_bond_flow.h" #include "eth_bond_private.h" #include "eth_bond_8023ad_private.h" From patchwork Sat Oct 7 01:34:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 132368 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 54BDF426D6; Sat, 7 Oct 2023 03:36:10 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C957A40A77; Sat, 7 Oct 2023 03:35:23 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2124.outbound.protection.outlook.com [40.107.94.124]) by mails.dpdk.org (Postfix) with ESMTP id 5A08340A72 for ; Sat, 7 Oct 2023 03:35:21 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GGrMDrzGGbNR+wILEarNQlEoIrqcm01dD5eAZC/sgIMlO/jxfhUVP0OKo3vsTwg1J1z9lc4SE5kI1TJQBwZ8KI++bOoN3SsZg729aXkngl9zPhX6GP9MGk7DQ9lGJP0kIJsojS1MPpCwcjDlU7zfpz80y0Qkg8taR7zmWNI8hmcanoudFc/BzlbZ9IlQm9GWlBN6mFV5bu9NOOnC8hvGSXnVWz7cMzUiiB/hKML+fNVre1+PwfLB4Rf6RloNubRv4zGYlyV952dmye/j9v2fC54hIFrd1M9O6++RB6K/pTpggBEJ+LLj0SHOkh1QIE6o5GCsTf11Snrz3o87IOQ3EA== 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=8GvFanOm7WZCkd6JspOO5TncKo6KwCNNjTpeUIISPDA=; b=C/JpGEN5iK7e+tWx7o8znx0vosZHiouGKTDhwymJ83exOg7kV2gmUL6UprLs2BlvmbAbGTJ2LTlYovMU9w48se7yCSbo9wzMpadvG2aYTtDpusALH4GrrUXmPjoJb8QoGtg6d8I0Ql0UrBL3jGoef+LJ67OHOPfBIi1TFn8vWqAtF1Or+4dYDY0UJKm/RLIjuW7G5fusWwW5QL5lgaSTiUCVawy57uJQM0mDQOUeqUNJ24WIGJHWxRfeiO6AtHTMq6o0ZTYMRKK2MEH9pOWQtgDvIz61SCpLK+r8B2ouuryOM+s5Y8otIJqqpKXjLGBX9ApZwpv4rq8MjO+NBCDJVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8GvFanOm7WZCkd6JspOO5TncKo6KwCNNjTpeUIISPDA=; b=Sld/WnXawLzp/4C5nQS3JCtX5MOnMe+jfZ/0YdiM6UNmbDnvxDdardjkPW56PEPY7ujI0usWWbNHjwg6Y8B3uJVTftuiGt+r7Nr6q08pzL0QTNKCa8t2xiF/ayAAqWfW/SZ44p00Fzw/HKpKakSXLxXFsaDukMSd2cKWUF7ocRQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by BY3PR13MB4913.namprd13.prod.outlook.com (2603:10b6:a03:364::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.37; Sat, 7 Oct 2023 01:35:17 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::28c0:63e2:ecd1:9314]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::28c0:63e2:ecd1:9314%4]) with mapi id 15.20.6813.027; Sat, 7 Oct 2023 01:35:17 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Long Wu , James Hershaw , Chaoyong He Subject: [PATCH v2 7/8] net/bonding: support checking valid bonding port ID Date: Sat, 7 Oct 2023 09:34:39 +0800 Message-Id: <20231007013440.1309422-8-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231007013440.1309422-1-chaoyong.he@corigine.com> References: <20231005024012.1279810-1-chaoyong.he@corigine.com> <20231007013440.1309422-1-chaoyong.he@corigine.com> X-ClientProxiedBy: PH8PR20CA0008.namprd20.prod.outlook.com (2603:10b6:510:23c::18) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY3PR13MB4913:EE_ X-MS-Office365-Filtering-Correlation-Id: 63c56fd4-dbc1-47fc-b40f-08dbc6d5a893 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: aIRS+7kaH1j+DqNMl34MEOAnQ0C3FtJ6TuOm8p2AVEiGcyUQa/sN0cmoKKuKz1yFMM1vKm3EcfrxWnXhfJZ3fKJfrA1iui/FXvpzS40JQOLDVLjJDc9mNWrUapmzzxptBgGTtuD7VAi6joHHWw8jctcs7yWpLJiOdWgEA5AqmEWZQlX13q5gJ4+F9cdn9T5VucfSLe4lI8Q7aINaqhcbucTaX28L7JUcSkGlFFyvVDY+TQ/CDY4NMtJ7ksoLGPFU/fhRjWGwnQ2aAIjVQVLcMO6WiTKpd2DBCH7lk8ZBKrrNoUwZ6kg7Qst1A7ReoS6Q5iOjbi+yRuKlt5st86SbumNKaSoR2+V/U2p4GC0Cpj6I8BjpJZnoxTFTKsAcHo5Adtl6KgTde+hJqqVj+z/FTtMhAYhbMmBLdto1JpyRY+leZFAD7m08Der0U3Yazo9DDedGWUJ+4lk30AumRl/zTIheUiNfEho4eIp43F9LwLB3UEJh6jKUtNZPNYKDhVB14WkPRmPsLKtXWR9SsEZZur31osOG2nPtBBFs6LIh3eSmEzxcBUGfp7bedhwCduf4lEWEZoHT587aZ/DO06z6ooCqCS8/8ckTx4IRhbNKbHhhNc3Ptl8bjU5XAMAM1ohbhCfGaXp2HnIPDyiropfhvw/5bVsS/nO73TA6KLgjwWQ= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(396003)(366004)(376002)(346002)(39830400003)(230922051799003)(186009)(451199024)(1800799009)(64100799003)(2906002)(44832011)(8676002)(8936002)(5660300002)(4326008)(54906003)(41300700001)(66946007)(316002)(6916009)(2616005)(66556008)(66476007)(6666004)(26005)(36756003)(52116002)(107886003)(1076003)(6512007)(6506007)(86362001)(38350700002)(478600001)(38100700002)(6486002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: NbELe7BEIqJ/WqP+56Osr6lVuTCmxe1XdnU9TIl9KoGfRUlolGEVDoTdLx3qcRRQNx+t3YfuJsKQrEWUctbyG/t3E7Xq6OubIchL9SzIuObVq2hAGDHWMaTpWLD0OlWVWMW87A17Z65Z87waxuoRU37z/jEoUn54NXxIYrxEsviwxpWzZQHL6yKL3qAZretkBURHCRwKh684NT5h8J+08/nE0JlGhMuevGdulOCBJGNs55meW9RhEZBoB7xVBMbAEJ9VdBLw7i0lAgOXhlmIuGu2egY2FmN+0D1focRYx+2UMQIq7Gl6Q3vBLOQozlK7DUCDCEPHM8Ca8qYSu4pFQ3OW6weLzQf8gF/iUvVpiTNBsucmnEaq6ryesr+3eIrqMFQMSwCsmQrGACPOzKZDH5dh14XdJF9ZvE649Fmf0l2ZvVs93WhuO3pzL6TAWC3Wg711HCUHGSdPeU2nC9jSJoDNUBZnrRV7a/kqT5Rm0Prt5PIf17qwWjCimlfGi/WyrXCLyfE5uTv/ovI5Z6+knw713fI3Be6/j6WUhlKkphKq2jHIS0FmJk1AX7N7dhmdi5x6jdd06awwigkUc00xoTWmf5/A67F06oUxo+gipWuU4A5RO8QAoeZn25tOtoKkCn4ND9h/acrUoLtNIRws3Zbueak2vTv1P4KseLNUItsp8PIbJ1UAkygUCnDagsAd/nFPOZOzmUeZWyeswKcfSHgbUeq1VOt++yl0SmGl/o85bL8pdUS72Az4Vr8qLmafCB7oKlBU5KJkUd1MrG5fC3KQwlEokmizmwbnwRs+eAk0LNcC9MhO1sRUnkrJssjkLBM/kgTh0HplIaI8O/lRF41Iku6BlA5nBKvJwVs7xyKKTUCkbqFLI53xJa9v6LdBQXlGX6yD3onIaqX9DqK+oxJk4BoSbk+fLmnyKscdnIbBMf59hjbcKo0Oc0xuiAKUoidJw7RkMnMBUcIl57p7rIgyrt0aJM4hRiLr4YaSdppfjz80ZTpRq0lVEyN9y30aI4KO0+6YwguDBUgvGO+3aYeNZZEmkb74Dh1SOG5hfkn2U+DCkqwUhxsoBUU0prKLfLp2uQq9o6+JH9kMfeQ6D5tUZyd5LI55VCkJgje5UrtxmaWtr0aDq7uOBtxg1emLGZqrWbOnrQ31i9PyRFg/qzxq4tEzgRPl33f849jskkqCZ0pDNA9yk1Uzj8OcuB93abOP/aaBDze1rxdjDGgz159/D7f3S7Y7Kz+Uvu5azWKn7rF6ZGd3O/GeWaCCeHuiJpsrs7CxgAffJ2cb5N452cJ8eb40cV7ECfRkbENloN++P9aFFsq4gXiXFEqXoXYORNrwtoWzg/vLX7UwZ5OUaYVvEG+INEzjPAfqD9j1k78+qds9/vd1KtOMS0WgNL/U1JzzO+3kGZdt9LRTAgFRcrTVzdSeQysYQxndg/pxRHamZzwA1F1EOghAs03NP+5+vWMEkaxfuzXF+MujfyJ2WvK5ThLL2bbJ0A+ji+RjA/ABrPNKnRTYc+iFP7nA8e2X3FybsYTJ83eAgKq53N9PJd1+OkAK/2KulLumr5e5iS4e02im+C5+bFFBrbK76B6FnBCqZdvgClGJWSHJrn3A6Q== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 63c56fd4-dbc1-47fc-b40f-08dbc6d5a893 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2023 01:35:17.0416 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vhXetnrEhZ9oINLxnWdB+u84+gu1Fb5nWQO8HOv08qssGOSi5dloa/vqFaZsbjD/PjG/BvGTQUkKDzEiBVu+lkTQs0DUA/hCedQC6ctTHNQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY3PR13MB4913 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Long Wu Add API to support checking if the port id is a bonding port id. Signed-off-by: Long Wu Reviewed-by: James Hershaw Reviewed-by: Chaoyong He --- drivers/net/bonding/rte_eth_bond.h | 13 +++++++++++++ drivers/net/bonding/rte_eth_bond_api.c | 7 +++++++ drivers/net/bonding/version.map | 1 + 3 files changed, 21 insertions(+) diff --git a/drivers/net/bonding/rte_eth_bond.h b/drivers/net/bonding/rte_eth_bond.h index 3f427b6bab..e8152a155f 100644 --- a/drivers/net/bonding/rte_eth_bond.h +++ b/drivers/net/bonding/rte_eth_bond.h @@ -461,6 +461,19 @@ __rte_experimental int rte_eth_bond_hw_create_get(uint16_t bonding_port_id, uint16_t member_port_id); +/** + * Check whether bonding port id is valid. + * + * @param bonding_port_id + * Port ID of bonding device. + * + * @return + * 0 on success, negative value otherwise. + */ +__rte_experimental +int +rte_eth_bond_valid_bonding_port_id(uint16_t bonding_port_id); + #ifdef __cplusplus } #endif diff --git a/drivers/net/bonding/rte_eth_bond_api.c b/drivers/net/bonding/rte_eth_bond_api.c index 0113dfdc16..80d71529cc 100644 --- a/drivers/net/bonding/rte_eth_bond_api.c +++ b/drivers/net/bonding/rte_eth_bond_api.c @@ -1214,3 +1214,10 @@ rte_eth_bond_hw_create_get(uint16_t bonding_port_id, uint16_t member_port_id) return member_dev->dev_ops->bond_hw_create_get(member_dev, bonding_dev); } + + +int +rte_eth_bond_valid_bonding_port_id(uint16_t port_id) +{ + return valid_bonding_port_id(port_id); +} diff --git a/drivers/net/bonding/version.map b/drivers/net/bonding/version.map index 3cfff51269..bf5e50521e 100644 --- a/drivers/net/bonding/version.map +++ b/drivers/net/bonding/version.map @@ -39,4 +39,5 @@ EXPERIMENTAL { rte_eth_bond_notify_member_flag_get; rte_eth_bond_notify_member_flag_set; rte_eth_bond_notify_members; + rte_eth_bond_valid_bonding_port_id; }; From patchwork Sat Oct 7 01:34:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 132369 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B3F00426D6; Sat, 7 Oct 2023 03:36:20 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AD76740DC9; Sat, 7 Oct 2023 03:35:25 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2124.outbound.protection.outlook.com [40.107.94.124]) by mails.dpdk.org (Postfix) with ESMTP id B10BE40A6B for ; Sat, 7 Oct 2023 03:35:21 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M9nLlNIrhiSrX/3rx3t2sQgaEzLwnaD1YjBp8T5J9aVY9Rsu6DsLlqh74kjC9DN3WdS+m4ZaQ+RPy7ifxHwi9J1Nus0euSh14G934Ym6i6A35GHyS78Dks1ItOsYaezc7EdqkyUyuTB04qDC/Egg13t2lROrg7HkPhJVx3I8zfQCMgZOBwfIcusXzRrBXHNXLqc3zhb+53/gSGyaVom6/b2+kwgMj91tngc0vwUbpbSWyit3Z/wlEVQnA/kxbZbqIKRCcbvEv6LJLBT+Vt4G+/XsxISBIgUDEp90jUx1bnGlOY9RsmBGgpMhIAq7ZiolxfLysjDHUM7y9UcmaGELdg== 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=r2uSKdjD8aUYDsFnQ6gOb3ZDt2NvVI3Te+OojzDVCUo=; b=ArPBBbyPlmr4P/oJEsYHSf+6uv7WbpQVNJyps4FoGd4V4s8r/5PPipxYv5yObl28niL3tso0k2pEihS6J+LIThqYC8gsyZjl8IGD8GIvTfYIzwM2Xz2NEK39K/ZOnbMKNK0tVTznTYc2eakzDvecM+ASRWBTx96Tk6uLlie+Cb/iO4uRNmKu7BbRA4aCQoZngAKphdYQksEwK9Bcpzy0zl8E+Q5oz4QKQCiwMsuVAKrluCJojr9o88nyDDZIJqZ1r03CRXSebPjx85ZbdYF8bTuZKNVp7Y9RV4U9lxPbip1/BDHQGi5yFQzPGXcmMGHH8h3O73+/RPu2SWaQLa4Ymw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=r2uSKdjD8aUYDsFnQ6gOb3ZDt2NvVI3Te+OojzDVCUo=; b=v5A/nzYysb1Xd+w399hQUU1cefFnGSoncNBoDRmsYlH9oIdxVq9bWAkHyIltb1cDrM+BnAdirg2DvwIf3zGEW4DxCPcPCD8Kvyn5FTV+iKlmWy4wpIODZM8XV3sd/YrT416od/gYLcE/gDgUInBeCPyYGr1s4TQv841pKjLhnMk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by BY3PR13MB4913.namprd13.prod.outlook.com (2603:10b6:a03:364::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.37; Sat, 7 Oct 2023 01:35:19 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::28c0:63e2:ecd1:9314]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::28c0:63e2:ecd1:9314%4]) with mapi id 15.20.6813.027; Sat, 7 Oct 2023 01:35:19 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Long Wu , James Hershaw , Chaoyong He Subject: [PATCH v2 8/8] net/bonding: add commands for bonding port notification Date: Sat, 7 Oct 2023 09:34:40 +0800 Message-Id: <20231007013440.1309422-9-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231007013440.1309422-1-chaoyong.he@corigine.com> References: <20231005024012.1279810-1-chaoyong.he@corigine.com> <20231007013440.1309422-1-chaoyong.he@corigine.com> X-ClientProxiedBy: PH8PR20CA0008.namprd20.prod.outlook.com (2603:10b6:510:23c::18) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY3PR13MB4913:EE_ X-MS-Office365-Filtering-Correlation-Id: d35b5a54-2954-4599-d4ac-08dbc6d5aa72 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SNac08oDvjplaEKKlCkAFCRvCUKcWxl/PEpi+pshOG5sByAAut4BQ2vuF9IR7zgOmwMT9cknHbpcy18PMtly2Vzug2EBF9Sr32Ze5DygbsdOFdFYKu28qdcJWTAcRkRSfhx9cRulf3KbMVaVrtvWnKoqIW3IZscb7GuIbRQ78F2CDEJQBcm3g6mrj/7tvPnosomNxJLm4ddPnBUzmPJ+vNSo734E62fozvGLQptT5wDLJ9qBwTc0aojNFhOII+XOZkuCa7lNTyTig7Mc/6LxK5L2o6FkqUdXgnbUrKY9kI5t5qwPwq3kAkTZiX1MMHQLLqJVJfVzGs65AQftb+R/mCmfvvtN7giZ+AG5WohvX25ZKMeaJyavPRKrr9Ezay2y4jedIZs6t2sKI1sb03tUBYg51Iv7BMdiV5EQ6ezbZhz5+SZq9weDlSyRRIte53oBbb0SaTXc25m/fCUCfVT/rKAJFArzPgmJhYPu+LzBC6qwk8VnyhtDQhKqN37+D6Xi07GafJ7ONNmeGxsmfPZBZy+henGsa6AkGg+IK05bTm7Znbrkh+hx0AXBfVAZOnQOTlCjp+1+P8oQIKbahGN+CMNcnLNDMVy8hMB/aPDOJZaa+H96o6xr7A4QXou3xaSc+XfLC41J4ludjOZZ46onlRcCpOS/RFGzPBmAP6hIPig= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(396003)(366004)(376002)(346002)(39830400003)(230922051799003)(186009)(451199024)(1800799009)(64100799003)(15650500001)(2906002)(44832011)(8676002)(8936002)(5660300002)(4326008)(54906003)(41300700001)(66946007)(316002)(6916009)(2616005)(66556008)(66476007)(6666004)(26005)(36756003)(52116002)(107886003)(1076003)(6512007)(6506007)(86362001)(38350700002)(478600001)(38100700002)(83380400001)(6486002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DMpM5kZa6/UJFg+/uiBbl86H5In/Nz9FWXO2l9lOWQPoSpIOEC/OU6I0/f74gjaUCUB2ZXaIs4KawlDwnfXcA2WyjV1o9HE0gQphGWZATb5lkY7H8HHma8PEWrrUvGgP0Pc/lun9dkRixb6TioQc1gwHFhtjGzIcfO/LIWVPrXCGlWlCy77DqpwfYoYyG41HarSnmZBfn/XoPlbz00eAW4UH8B0Q54S1NW1maMpsAMRFM03r1Vl4gPZcjSru5pBYUNU30R1QvBQfWCnPSUTf7KbYWRhtwDO9F1LUf0IPQFmFn7DPw6hisJOovdg5YEI17zMQJSgJZu1HwUnL6LK7Rt4noWiQUec7C9y+z1JRRY4VJ+iUyYJwMlZ6BIZxK9pBSTxqxKJaYkY6PKM+Wx+2XNyPpufzoFCL8k6f8HXBk0ojsvRV0mSIGDEC9C/TGkuTO+ASx3+0TsIIidU35kaTmbJAI0+vW2nuUBIjDJBDDhDrlXnohV35eZHKMSwLiPtjZ8I3gs794Abj1kTSzwvHtpO6VdeKJzh2hgkgA7qw5lm/l1bNmgWZXXeLOe8R6enGDMJHWyCAxdvaVTIahEoRcyDkyPDIkl8bpp0IEcjkajlPCphFwmS82FtBC7tNhOn2Zd89f0bbPT7P7ywNrGkJ+udr9F7HIjntBo/yC4Ni8v5frf4ccmbfnLYfHF4Y5091H6O8f4+/A/vbW/bmI7brqVSO3fCjrAU3IFTzgdjzGPjHGT26J1vd25DeybhFTvK1JNgGMQlrYfujiinaFC6sxlOXlHL/E9e10TjXt0JyxdLDnp+xPSPBIDnsi7o5G01mfzMLcsjaTqVqYVgQspYSI0wVLf6vM8Q4AfHBRVtNH54ZNaiHgOMP66B6DSA+VwRPAUTKbacFyM7Df3NxVSXEnVn5f1zvDpwbbQ6aziq0FVPu6tBZnFKU8TnJ8vzuVfdNqvahHWN3VuRpS2AjK+7+vEyZzjXxmETVzK19/utkJjVutxiym3NqXTXnRHoc01szLlEkGstDnpkHJqA5dhwic3UgAu0SmQhYPz8PPqP68MK4q6VZ2YJgY2N2hoXLAcv4WVlU408F8NuMV4uLPVXCJwNxsEhcYwHF97GH3tWI/KRO74r20z5wrXFgLbS3OLwf62i3x+uIesSKUjmXtCOnjPOoH1NNDMogMKXf6VwCnqWHUD92J7mCtuHja1mGTWOkIx3LT+o7iJiYxtfZHTCGJUr8IV5lK5uB65fMGNmfe2nMpTkAn/WN5zKMZiOAfZtoHwHhmxj9gGSse95XGQGIvvA6Hrp/ME8cq5dVJ5sGSLrXtGcR+AxSuUe788VCumrpIiN4EndHgCa5bWN8IqdAJLjrq8E+RX9/+Rm3Wsb3rwuwiHwU2/Xl42kESQi/IhSFvIp+VkcfR0VHnb6JlDc5M13XJX1vRfOJj9r6IF8LwIiwvn0X2cmYCe4iq7ZRgrHxk+09SoKsuLnoq4OpRcT82Xv6WhaeQc2Ex6p25mgNmXMrL7D63Rv1NorbeN4MmhmdhvtqCBqHb+U0yr0z7sGugCrYwLnqtt6KnfyPyuKViMG52Z7SUO4E6OGh8pS5ip3vtLNs3ccgNVNJlW/oM077gQ== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: d35b5a54-2954-4599-d4ac-08dbc6d5aa72 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2023 01:35:19.6272 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mMRQcI+urXowCn2fnaDuQav/xoPLQfwYq3UPzObB+76nbg0zZdDOh9RhyjmON5yC1RZ2CY3pxdtLCVhfQnsol5YuqC0Kq5T6J8mc2B+HO54= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY3PR13MB4913 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Long Wu Add some commands to support bonding port notification in dpdk-testpmd. 1. We can enable the notification by command: "set bonding notify_member (port_id) (enable|disable)" 2. If member port hardware try to create the bonding port after notification we can get the status by command: "get bonding member hardware create (member_port_id) (bonding_port_id)" Signed-off-by: Long Wu Reviewed-by: James Hershaw Reviewed-by: Chaoyong He --- .../link_bonding_poll_mode_drv_lib.rst | 19 +++ drivers/net/bonding/bonding_testpmd.c | 128 ++++++++++++++++++ 2 files changed, 147 insertions(+) diff --git a/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst b/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst index 60717a3587..9f6443ebd8 100644 --- a/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst +++ b/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst @@ -637,3 +637,22 @@ in balance mode with a transmission policy of layer 2+3:: Members (3): [1 3 4] Active Members (3): [1 3 4] Primary: [3] + +set bonding notify_member +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Set the notify member flag of bonding port:: + + testpmd> set bonding notify_member (port_id) (enable|disable) + +This command just set the flag of notification. +If we enable it, bonding PMD will notify member ports when its some +configurations changed. So member ports can do some private things, maybe hardware +bonding creation and etc. + +get bonding member hardware create +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Get the status of member port hardware creating the bonding port:: + + testpmd> get bonding member hardware create (member_port_id) (bonding_port_id) diff --git a/drivers/net/bonding/bonding_testpmd.c b/drivers/net/bonding/bonding_testpmd.c index 8fcd6cadd0..da7d9cc58f 100644 --- a/drivers/net/bonding/bonding_testpmd.c +++ b/drivers/net/bonding/bonding_testpmd.c @@ -692,6 +692,124 @@ static cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = { } }; +struct cmd_set_bonding_notify_member_result { + cmdline_fixed_string_t set; + cmdline_fixed_string_t bonding; + cmdline_fixed_string_t notify_member; + uint16_t port_num; + cmdline_fixed_string_t mode; +}; + +static void +cmd_set_bonding_notify_member_parsed(void *parsed_result, + __rte_unused struct cmdline *cl, __rte_unused void *data) +{ + struct cmd_set_bonding_notify_member_result *res = parsed_result; + bool notify_member = false; + + if (strcmp(res->notify_member, "enable") == 0) + notify_member = true; + else if (strcmp(res->notify_member, "disable") == 0) + notify_member = false; + + rte_eth_bond_notify_member_flag_set(res->port_num, notify_member); +} + +static cmdline_parse_token_string_t cmd_set_bonding_notify_member_set = + TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_notify_member_result, + set, "set"); +static cmdline_parse_token_string_t cmd_set_bonding_notify_member_bonding = + TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_notify_member_result, + bonding, "bonding"); +static cmdline_parse_token_string_t cmd_set_bonding_notify_member = + TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_notify_member_result, + notify_member, "notify_member"); +static cmdline_parse_token_num_t cmd_set_bonding_notify_member_portnum = + TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_notify_member_result, + port_num, RTE_UINT16); +static cmdline_parse_token_string_t cmd_set_bonding_notify_member_mode_string = + TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_notify_member_result, + mode, "enable#disable"); + +static cmdline_parse_inst_t cmd_set_bonding_notify_member_ports = { + .f = cmd_set_bonding_notify_member_parsed, + .data = NULL, + .help_str = "set bonding notify_member (port_id) (enable|disable)", + .tokens = { + (void *)&cmd_set_bonding_notify_member_set, + (void *)&cmd_set_bonding_notify_member_bonding, + (void *)&cmd_set_bonding_notify_member, + (void *)&cmd_set_bonding_notify_member_portnum, + (void *)&cmd_set_bonding_notify_member_mode_string, + NULL + } +}; + +struct cmd_get_bonding_member_hw_create_result { + cmdline_fixed_string_t get; + cmdline_fixed_string_t bonding; + cmdline_fixed_string_t member; + cmdline_fixed_string_t hardware; + cmdline_fixed_string_t create; + uint16_t member_port_id; + uint16_t bonding_port_id; +}; + +static void +cmd_get_bonding_member_hw_create_parsed(void *parsed_result, + __rte_unused struct cmdline *cl, __rte_unused void *data) +{ + struct cmd_get_bonding_member_hw_create_result *res = parsed_result; + int ret; + + ret = rte_eth_bond_hw_create_get(res->bonding_port_id, res->member_port_id); + if (ret == 0) + printf("Member port %u hardware creates bonding port %u successfully\n", + res->member_port_id, res->bonding_port_id); + else + printf("Failed to get status of member port %u hardware creating" + " bonding port %u, %d\n", + res->member_port_id, res->bonding_port_id, ret); +} + +static cmdline_parse_token_string_t cmd_get_bonding_member_hw_create_get = + TOKEN_STRING_INITIALIZER(struct cmd_get_bonding_member_hw_create_result, + get, "get"); +static cmdline_parse_token_string_t cmd_get_bonding_member_hw_create_bonding = + TOKEN_STRING_INITIALIZER(struct cmd_get_bonding_member_hw_create_result, + bonding, "bonding"); +static cmdline_parse_token_string_t cmd_get_bonding_member_hw_create_member = + TOKEN_STRING_INITIALIZER(struct cmd_get_bonding_member_hw_create_result, + member, "member"); +static cmdline_parse_token_string_t cmd_get_bonding_member_hw_create_hardware = + TOKEN_STRING_INITIALIZER(struct cmd_get_bonding_member_hw_create_result, + create, "hardware"); +static cmdline_parse_token_string_t cmd_get_bonding_member_hw_create_create = + TOKEN_STRING_INITIALIZER(struct cmd_get_bonding_member_hw_create_result, + create, "create"); +static cmdline_parse_token_num_t cmd_get_bonding_member_hw_create_memberportid = + TOKEN_NUM_INITIALIZER(struct cmd_get_bonding_member_hw_create_result, + member_port_id, RTE_UINT16); +static cmdline_parse_token_num_t cmd_get_bonding_member_hw_create_bondingportid = + TOKEN_NUM_INITIALIZER(struct cmd_get_bonding_member_hw_create_result, + bonding_port_id, RTE_UINT16); + +static cmdline_parse_inst_t cmd_get_member_hw_create_bonding = { + .f = cmd_get_bonding_member_hw_create_parsed, + .data = NULL, + .help_str = "get bonding member hardware create (member_port_id) (bonding_port_id)", + .tokens = { + (void *)&cmd_get_bonding_member_hw_create_get, + (void *)&cmd_get_bonding_member_hw_create_bonding, + (void *)&cmd_get_bonding_member_hw_create_member, + (void *)&cmd_get_bonding_member_hw_create_hardware, + (void *)&cmd_get_bonding_member_hw_create_create, + (void *)&cmd_get_bonding_member_hw_create_memberportid, + (void *)&cmd_get_bonding_member_hw_create_bondingportid, + NULL + } +}; + static struct testpmd_driver_commands bonding_cmds = { .commands = { { @@ -749,6 +867,16 @@ static struct testpmd_driver_commands bonding_cmds = { "set bonding mode IEEE802.3AD aggregator policy (port_id) (agg_name)\n" " Set Aggregation mode for IEEE802.3AD (mode 4)\n", }, + { + &cmd_set_bonding_notify_member_ports, + "set bonding notify_member (port_id) (enable|disable)\n" + " Enable/disable the notify member flag of bonding port\n", + }, + { + &cmd_get_member_hw_create_bonding, + "get bonding member hardware create (member_port_id) (bonding_port_id)\n" + " Get the status of member port hardware creating the bonding port\n", + }, { NULL, NULL }, }, };