From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 758AE45B8E; Mon, 21 Oct 2024 07:50:37 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0451D4028C; Mon, 21 Oct 2024 07:50:37 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2116.outbound.protection.outlook.com [40.107.223.116]) by mails.dpdk.org (Postfix) with ESMTP id 540B94027C for ; Mon, 21 Oct 2024 07:50:35 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=r4F2UHbzs0Ah6L9LHZ0etj2yFhHcv9B8VrTgYwR7N/RTa1SbTbXVxB1EDGeVOzoUVUmT5lEeKrQKkGI+YqxrTHIv7eVDrGv2k+fYYv5MtD8bFrYrRLrS+IlrBh0OMlH0f5Wz2nuhgy2FLqdHv+Fe0R5P8QQej2+hHDa6JsHPNUt9gOybcULI9cmfveyCGWe9deU3F5sxzDJ/+cfP6JKVs21aEHHCsmR+XFdkJiDeAxjh2phWnONz5U9xHJ33P3xBcodOn4MAc9t6PiNFFEJ3h59aePOW+8Kustpk3iRTpbZh2+sgKnoDcbnK5xCwPWptNvnPWuq2ryELj0TBg//TXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=sDnLymB3b0331qGBs7fALP9kLSFv2vkDQikY4T/6IVQ=; b=hsO6KmrrWYswc4wvH9sR8stjTs+Ks5ASxdg/1don36s/kAsTwz+T8VMtMaSDFF7EobY95aEImnbZ/3v2W0iQp4ibGdN1lKjtc7mJw0CA/pm9Cll166byPVpf3UE2rFfo2bj+CxhCBv9bjn7c9SaExdJN2iXKTyirRhrs4hFtku8APeIDtwiH90f2nSWamUzc2C/kX97g5+LHGBvhuVR4rL5sHnibIVyrozYDNTO0e9aQCDMl+I3BO0Bvj285VT1vHj3ycUY5FZekfnhBcZIsdsknkMOPAzRJ88+t9Fh1dmkyB8y1HTekY4VmP3C4wFbrhJUMNq9m0/Jjl9W1KK9fig== 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=sDnLymB3b0331qGBs7fALP9kLSFv2vkDQikY4T/6IVQ=; b=XVLKZnE4i8YT/hoYWGMeUfPdQqLFQXOgcev5ntQXn/AF0r6kXQ7HbzcCgFqwSVEgROGZRGBcS9GrJTRHZcpv3NZmP3MVJQgVfuwRP3+jHe4A0s9ijXZvhx/2mYhQ5n6jqYi5ex6aMMNmrnheHACp0EvPQ5IdbYjN7UrdBuHkT2c= Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by SA0PR13MB4048.namprd13.prod.outlook.com (2603:10b6:806:97::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8069.28; Mon, 21 Oct 2024 05:50:31 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833%5]) with mapi id 15.20.8069.024; Mon, 21 Oct 2024 05:50:31 +0000 From: Chaoyong He To: "vignesh.purushotham.srinivas@ericsson.com" , "chas3@att.com" CC: "humin29@huawei.com" , "dev@dpdk.org" , Long Wu Subject: RE: [PATCH v2] net/bonding: add user callback for bond xmit policy Thread-Topic: [PATCH v2] net/bonding: add user callback for bond xmit policy Thread-Index: AQHbHtsx86DXA5fyoEOy3+DJyOkFprKQkeJw Date: Mon, 21 Oct 2024 05:50:31 +0000 Message-ID: References: <20241015082049.3910138-1-vignesh.purushotham.srinivas@ericsson.com> In-Reply-To: <20241015082049.3910138-1-vignesh.purushotham.srinivas@ericsson.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR13MB5545:EE_|SA0PR13MB4048:EE_ x-ms-office365-filtering-correlation-id: f09cf069-0f05-4357-9b16-08dcf1944635 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700018; x-microsoft-antispam-message-info: =?us-ascii?Q?a2ZGF6Zg97s1MJLUjaNTLpYaXecrPqti2+aNOkRAcf3Rt1m7QtUY2BJh/DoR?= =?us-ascii?Q?Udre6Ve73/yKteHEBkvXNdAKFMwkcsguoLoZmQWlSxeMfRXo1W61bSLfCfnt?= =?us-ascii?Q?Y8URTBFM/+o4ayh/bml4UEIror/YFaguHwnKIN40dA5450nTAmMT0Q7DvQxl?= =?us-ascii?Q?xedz7nKWrq1zmpfcZh712pn7VE1zPBWAtbClbtm7PeBeMmT7CCwf1ho7EMF4?= =?us-ascii?Q?2IzE2n5NKhyPQE3OPhpAuialaCaZNk2ZzlJBo7zsBrXpPAZE/lMAf01NjpQo?= =?us-ascii?Q?Rud6cZkjsiM9uwMMHjJSobRyg46y8udlldGfljjD4aEUcNkb66RhU9BYYp4R?= =?us-ascii?Q?gEqVzmnZ1bG/WeJtOp5zgIuN9OgCTYurxA1G0TLV2XtjVjE1o02uzN2Qh1wh?= =?us-ascii?Q?1qiqje8uOce+zbxvRGOuHcn83OKVNiB4X4xMA3OKTeB9DY95A5QZej+7ElVY?= =?us-ascii?Q?f9HzoFnPmionlKV7V24XLSlPW1L0i6M56q7CbXsWOVav9OtfK6521lYL61qa?= =?us-ascii?Q?Iv7C4DR+C3LT6N03XABnFRDHhE2rgZnuezc5rKeD1QPmG8uordS9VKT+m0+9?= =?us-ascii?Q?OwDQpae0ZJvb2yoTYYgsWnU4gTQj0VEqxby1LjTc6/sshSYabOhUOw7NH0a1?= =?us-ascii?Q?4qUBpOc7oJV8hDcLd/kbu9BIzcwpp+RXOGHLjoXCquKxw0MStFOkOHuzp4Eg?= =?us-ascii?Q?LgCd/xsrSbpgBnDi9rxeoawgKAGrH0jFHh6O2LT2VVNej8ddJWWArEHCUGoV?= =?us-ascii?Q?sp7Zxu4+hNWVLoFCG5K18SRTsoGEBkoD2lc1H9Y7mCb4GU/Ogb7/s78OrHn7?= =?us-ascii?Q?H/2vkZWTc23Ogw7b042aXhJmlYMIeG492XiICmFmIbRPGNR9NEqB0idURSPl?= =?us-ascii?Q?zk6rZAhHKG/7qlkahn3E2R3VOnQ2NTsL0VP/HQhehw3FrkY+27I6E+5jihyu?= =?us-ascii?Q?9gQRMuW0gzSE5jnjGWq0f2qUOWi29q4vv9PZe5swkgTKmDGJDkLJCT7z73vG?= =?us-ascii?Q?ENfTyrJrSf82b5hi7PMKPlt+ZYAWwXg/BvsJwYpscQzqVYw/CvhbBkqBfKGC?= =?us-ascii?Q?Me8tDMhxXTjZNW+88NsWiPF5k3Tp4p3p4TC+M9Ib6Kku+Uf28etViBDfGQ4/?= =?us-ascii?Q?R00QbUlo1RdcCCMbJK0dXTCaBAKJRclCh8sFm08QtzgWp3/80eeiC47hBTUC?= =?us-ascii?Q?kcza7H7VH8iJDU/wRvPl59Ct+2IowbEmTmfyr7ooovJVMXKtU0ywLrRWjBUu?= =?us-ascii?Q?P0Hup5Z5M9bWskISnKo7I19lJETMHLYsSZFCYPP0ZA5rvWHPBOJEr1Ti+kGE?= =?us-ascii?Q?JqYMowFTILPDEIVHUScbXiILhqc8ztogmSQ7RmoW/IxH5jpebzlabSq+ETLo?= =?us-ascii?Q?rj0KHuQ=3D?= 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:(13230040)(366016)(376014)(1800799024)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?deMQfjmp6LEqvPt2sT/5cvgKspk2VwGr3RxOETzrHp44z0D91tpk1y+BQ0h0?= =?us-ascii?Q?HVDG9HcMhQwE95VSIxDW5J81Bdepp8U4t0KAN3855J9XWZBb3ZB3HOdqE/JX?= =?us-ascii?Q?T8rChDm3ZTxEFMKvKfLp2uoS3gRTJRDW3se3qOKtYhVxCLZnl5sObUDGeqd3?= =?us-ascii?Q?WPFZVGfdv44xI3QcnVexMBYgo8PAHzjHiHKwOUANxT28o7xBuUkfPxDGJtzx?= =?us-ascii?Q?XXvPoiUe577C2DFFQoAyVVq5HkaUNHlw2UKQ6c31FbBjHh0nf/W8QKEaN0Rl?= =?us-ascii?Q?X+B8oqO8P+txEVIbO5GyCPTPVGE2VK3a8ORwBG1UuOqOUnArdjY1BA31E75Q?= =?us-ascii?Q?/qoYRoBJTKxwLgQct6NXsqoIYiCSDkhzK2k7tebX+un2vn4KXu4LWcdjSRKX?= =?us-ascii?Q?GZ8JUWDhlhr+TzYIYwf2XVHHVjG3iSMiXpJK8Nq41GR+xQjWx/UMGUtCtCo6?= =?us-ascii?Q?FRAKTOII7mrNjN6VPrffblaFG/kbVNLSlL8Hs5MoU4eMvmVRd3ObPKfsrpeD?= =?us-ascii?Q?E7TC30k5cW+kTf2lJ4ljJ0PPFR0JR0qG37RHkb6qAuT4wCGkm8hmkQuAbvF4?= =?us-ascii?Q?W8KdonCGl6E8KpJXiPMSvMwDv5ZDHfw0FHJVknFIwKjLxGk34a3NHxbZz8DL?= =?us-ascii?Q?cY6xRGAwP7N1oQ/3/U0/9N2OrO6iowaqozFl2A6u70HLuhyHHQ7fC4hWbEyD?= =?us-ascii?Q?Q1L+zkG/1V7zMcoVEMXi+bF09UM2Z11WvmvQZc61Z4B5CtrkI/AcMvaWitl9?= =?us-ascii?Q?ULg2kHl1ChkMOdKd/jgWDIc1Ayznn/aq5xg22vy5QGn/5+YqQwNReoaMwOQE?= =?us-ascii?Q?oc+klXvvHzR8/1wgR5xiZnKKHqP/eUeCzOEkIj++8sp59ogR3TLHADup81kX?= =?us-ascii?Q?I2eNZ/9+dVmAaWAE/6OmSMBVhEB9Tqvl8GxtiVbFP9XwWWGOs3Fv+1sD/a29?= =?us-ascii?Q?SoxIzFuHPSUhoMnrmOHoh7do8Emn4AUlX6znZY43BPvi3Cb5Har6wIY9khPU?= =?us-ascii?Q?TDM6qu5c8eD4EL3KVWFXSR5mDXPK/QnTruuSMQjNhhzQXoiLfwE9hB/OgYMl?= =?us-ascii?Q?aR7FArdcUKFaTYlivURBtx5RY8SKs0SeavW0nodO9OGOVdthpUH4xWLBJyCh?= =?us-ascii?Q?Y7AYd3LuKtu1YMvdUWw4KmWJTJfScI85pWo2yBVvCdO4eq926Y/vxnoBxabV?= =?us-ascii?Q?myNma1BweBg6D30Nb7Z6DJ73bscnbo3dzqbRVZJIPI4IlPtXOqjQwdZBj5cy?= =?us-ascii?Q?rx4bgYhzGOjfdcj28OHBqqApMLyHeqE6zZZUiN5WVXxGHlIbUiWviN5A8OA8?= =?us-ascii?Q?wIJq2Oi5BuJ5tf/10phd8DBuq62dB7fH43rcXwYMch+pZyVv+4YXkJT831AU?= =?us-ascii?Q?VRo8nkeift/kmK62liPfpQaLY/g/sScDnOus+u0T807+wZjfeM1lp14OTkVE?= =?us-ascii?Q?Qpa8IRBAJDVEZKuQDi/4oc9bz2t4B5R9bW+meOz/yz/zVTV5l4l950LTto+u?= =?us-ascii?Q?nsEJo7QlUfduSfFxQFwDsZNUcmO6m83EyX2hW7+O2PV8t6axArEiLanz8hql?= =?us-ascii?Q?XB6pj2YUuBJYhjqBS2P/iPESS6oG7ZvQNmRxldMB?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f09cf069-0f05-4357-9b16-08dcf1944635 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Oct 2024 05:50:31.4826 (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: GsKfFNerl04pqm8NS2i362/R7i7pzc3QpcWVARPD9xUT+Jexm8U5remR4Xbv12DTf3rgZFUee67oui2OACdd5R6i606sb3kW4pmnEKndqYg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR13MB4048 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: Vignesh PS >=20 > Add support to bonding PMD to allow user callback function registration f= or > TX transmit policy. >=20 > Signed-off-by: Vignesh PS > --- > .mailmap | 1 + > drivers/net/bonding/eth_bond_private.h | 6 ++---- > drivers/net/bonding/rte_eth_bond.h | 17 +++++++++++++++++ > drivers/net/bonding/rte_eth_bond_api.c | 15 +++++++++++++++ > drivers/net/bonding/rte_eth_bond_args.c | 2 ++ > drivers/net/bonding/rte_eth_bond_pmd.c | 2 +- > drivers/net/bonding/version.map | 1 + > 7 files changed, 39 insertions(+), 5 deletions(-) >=20 > diff --git a/.mailmap b/.mailmap > index f51b1dda5d..16ebc28a5a 100644 > --- a/.mailmap > +++ b/.mailmap > @@ -1556,6 +1556,7 @@ Viacheslav Ovsiienko > Victor Kaplansky Victor > Raj Vidya Sagar Velumuri > +Vignesh PS > + > Vignesh Sridhar Vijayakumar Muthuvel > Manickam Vijaya Mohan Guvva > diff --git a/drivers/net/bonding/eth_bond_private.h > b/drivers/net/bonding/eth_bond_private.h > index 378bbba4e6..9d4483a972 100644 > --- a/drivers/net/bonding/eth_bond_private.h > +++ b/drivers/net/bonding/eth_bond_private.h > @@ -32,6 +32,7 @@ > #define PMD_BOND_XMIT_POLICY_LAYER2_KVARG ("l2") > #define PMD_BOND_XMIT_POLICY_LAYER23_KVARG ("l23") > #define PMD_BOND_XMIT_POLICY_LAYER34_KVARG ("l34") > +#define PMD_BOND_XMIT_POLICY_USER_KVARG ("user") >=20 > extern int bond_logtype; > #define RTE_LOGTYPE_BOND bond_logtype > @@ -101,9 +102,6 @@ struct rte_flow { > uint8_t rule_data[]; > }; >=20 > -typedef void (*burst_xmit_hash_t)(struct rte_mbuf **buf, uint16_t nb_pkt= s, > - uint16_t member_count, uint16_t *members); > - > /** Link Bonding PMD device private configuration Structure */ struct > bond_dev_private { > uint16_t port_id; /**< Port Id of Bonding Port > */ > @@ -118,7 +116,7 @@ struct bond_dev_private { > /**< Flag for whether primary port is user defined or not */ >=20 > uint8_t balance_xmit_policy; > - /**< Transmit policy - l2 / l23 / l34 for operation in balance mode */ > + /**< Transmit policy - l2 / l23 / l34 / user for operation in balance > +mode */ > burst_xmit_hash_t burst_xmit_hash; > /**< Transmit policy hash function */ >=20 > diff --git a/drivers/net/bonding/rte_eth_bond.h > b/drivers/net/bonding/rte_eth_bond.h > index e59ff8793e..2244b39bb9 100644 > --- a/drivers/net/bonding/rte_eth_bond.h > +++ b/drivers/net/bonding/rte_eth_bond.h > @@ -91,6 +91,11 @@ extern "C" { > /**< Layer 2+3 (Ethernet MAC + IP Addresses) transmit load balancing */ > #define BALANCE_XMIT_POLICY_LAYER34 (2) > /**< Layer 3+4 (IP Addresses + UDP Ports) transmit load balancing */ > +#define BALANCE_XMIT_POLICY_USER (3) > +/**< User callback function to transmit load balancing */ > + > +typedef void (*burst_xmit_hash_t)(struct rte_mbuf **buf, uint16_t nb_pkt= s, > + uint16_t member_count, uint16_t *members); >=20 > /** > * Create a bonding rte_eth_dev device > @@ -351,6 +356,18 @@ 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); >=20 > +/** > + * Register transmit callback function for bonded device to use when it > +is operating in > + * balance mode. The callback is ignored in other modes of operation. > + * > + * @param cb_fn User defined callback function to determine th= e xmit > members > + * > + * @return > + * 0 on success, negative value otherwise. > + */ > +__rte_experimental > +int > +rte_eth_bond_xmit_policy_cb_register(burst_xmit_hash_t cb_fn); >=20 > #ifdef __cplusplus > } > diff --git a/drivers/net/bonding/rte_eth_bond_api.c > b/drivers/net/bonding/rte_eth_bond_api.c > index ffc1322047..351f2c99dc 100644 > --- a/drivers/net/bonding/rte_eth_bond_api.c > +++ b/drivers/net/bonding/rte_eth_bond_api.c > @@ -15,6 +15,8 @@ > #include "eth_bond_private.h" > #include "eth_bond_8023ad_private.h" >=20 > +static burst_xmit_hash_t burst_xmit_user_hash; > + > int > check_for_bonding_ethdev(const struct rte_eth_dev *eth_dev) { @@ -972,6 > +974,13 @@ rte_eth_bond_mac_address_reset(uint16_t bonding_port_id) > return 0; > } >=20 > +int > +rte_eth_bond_xmit_policy_cb_register(burst_xmit_hash_t cb_fn) { > + burst_xmit_user_hash =3D cb_fn; > + return 0; > +} If there are 3 bonding ports, and I want to assign 'user_define_xmit_1()' t= o ponding port 0,=20 and to assign 'user_define_xmit_2()' to ponding port 2, seems will have pro= blem? Maybe we can use an array for the function pointer and add a 'bonding_port_= id' parameter to this register API? > + > int > rte_eth_bond_xmit_policy_set(uint16_t bonding_port_id, uint8_t policy) > { @@ -995,6 +1004,12 @@ rte_eth_bond_xmit_policy_set(uint16_t > bonding_port_id, uint8_t policy) > internals->balance_xmit_policy =3D policy; > internals->burst_xmit_hash =3D burst_xmit_l34_hash; > break; > + case BALANCE_XMIT_POLICY_USER: > + if (burst_xmit_user_hash =3D=3D NULL) > + return -1; > + internals->balance_xmit_policy =3D policy; > + internals->burst_xmit_hash =3D burst_xmit_user_hash; > + break; >=20 > default: > return -1; > diff --git a/drivers/net/bonding/rte_eth_bond_args.c > b/drivers/net/bonding/rte_eth_bond_args.c > index bdec5d61d4..eaa313bf73 100644 > --- a/drivers/net/bonding/rte_eth_bond_args.c > +++ b/drivers/net/bonding/rte_eth_bond_args.c > @@ -261,6 +261,8 @@ > bond_ethdev_parse_balance_xmit_policy_kvarg(const char *key > __rte_unused, > *xmit_policy =3D BALANCE_XMIT_POLICY_LAYER23; > else if (strcmp(PMD_BOND_XMIT_POLICY_LAYER34_KVARG, value) =3D=3D > 0) > *xmit_policy =3D BALANCE_XMIT_POLICY_LAYER34; > + else if (strcmp(PMD_BOND_XMIT_POLICY_USER_KVARG, value) =3D=3D 0) > + *xmit_policy =3D BALANCE_XMIT_POLICY_USER; > else > return -1; >=20 > diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c > b/drivers/net/bonding/rte_eth_bond_pmd.c > index 34131f0e35..9372ddb027 100644 > --- a/drivers/net/bonding/rte_eth_bond_pmd.c > +++ b/drivers/net/bonding/rte_eth_bond_pmd.c > @@ -4251,7 +4251,7 @@ > RTE_PMD_REGISTER_PARAM_STRING(net_bonding, > "member=3D " > "primary=3D " > "mode=3D[0-6] " > - "xmit_policy=3D[l2 | l23 | l34] " > + "xmit_policy=3D[l2 | l23 | l34 | user] " Here maybe we also need modify the 'set bonding balance_xmit_policy ' command of testpmd app? > "agg_mode=3D[count | stable | bandwidth] " > "socket_id=3D " > "mac=3D " > diff --git a/drivers/net/bonding/version.map > b/drivers/net/bonding/version.map index a309469b1f..f407bb0ace 100644 > --- a/drivers/net/bonding/version.map > +++ b/drivers/net/bonding/version.map > @@ -35,4 +35,5 @@ EXPERIMENTAL { > rte_eth_bond_member_add; > rte_eth_bond_member_remove; > rte_eth_bond_members_get; > + rte_eth_bond_xmit_policy_cb_register; > }; > -- > 2.34.1