From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0051.outbound.protection.outlook.com [104.47.0.51]) by dpdk.org (Postfix) with ESMTP id B87E723A for ; Sun, 6 May 2018 08:06:41 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=i0bFta0L9Q/Zsv2HOx4S8CXg5bhIQx805CMX4HYSVvM=; b=JZP+vZGCJbaENJoCVRtRYG/wCES5SdmpMWhxJZ5koFmyFCvVbuGvROs4rDLd1xpWoJOfLvkUe+VF3I6BbYu7q09Hvs2lpOC3tSegZcaA44jY2db6Vt7oB24r2I6emmCCKuoaD/Xa22CD8k+n68H42lFATJUFyfaL1yPLmtaC2/o= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=shahafs@mellanox.com; Received: from mellanox.com (141.226.120.58) by AM6PR05MB4422.eurprd05.prod.outlook.com (2603:10a6:209:43::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.735.16; Sun, 6 May 2018 06:06:38 +0000 From: Shahaf Shuler To: bluca@debian.org Cc: stable@dpdk.org, nelio.laranjeiro@6wind.com, yskoh@mellanox.com, adrien.mazarguil@6wind.com Date: Sun, 6 May 2018 09:05:36 +0300 Message-Id: <2eabd2fa8cc00802835b46fda8a060924ea01fbf.1525586525.git.shahafs@mellanox.com> X-Mailer: git-send-email 2.12.0 MIME-Version: 1.0 In-Reply-To: References: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Originating-IP: [141.226.120.58] X-ClientProxiedBy: LO2P265CA0008.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:62::20) To AM6PR05MB4422.eurprd05.prod.outlook.com (2603:10a6:209:43::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:AM6PR05MB4422; X-Microsoft-Exchange-Diagnostics: 1; AM6PR05MB4422; 3:Jd5tlGv1Rd3QVSx68FmDXXn58fBPLye/MwCPK5ZKK+LdJPOlWtvYVELGkB9LpMOzrdcKGCkpyBmhLruHNE3rljAMjmTF398cXvxBNUMSCDn+CirU0OMZbNCMiHonmiZ5VKyHZ1S9Gqm8BiSUlH1cYkeQOC8juStjEZ03HpTEs9WEQjAtuxvCAeI8Niyl0XEyqntENfy/iuGi0J9O7Mcc8xNtq7kB5Wb1lYPk+ghid61Vxc2MgPEXGlprW/lw4vMT; 25:M+KVF+vsyGCuU2Xce0Ivk0fpIb0kRxkP6gBaFfEuERB97AW+6scwkVqDSYrTDVyDZQfIi+UhtjoiZybeG3B9IuvK70Kcn+1HVRvSqPpI6tosR6fAUE96uYbXlyFNrz5O7Gf04/2rUs5yydWvXnOhjv5QLaHg1td7xFdr8SRulABFhmtU839HiATzj3QV59msiaCkASB7OHzpmTloiloJHGziv0lNVIS6Ma7XmjyNc19KYoohgTM5mEdQsEWzUGZYZUFvny8GIdnNbBLrybNlUaqgShZv7jH3jTFdUziQKXhh8yDjSNITo62PoXwhz8dWYP83Ytz+TUSlIuIh5z/T+g==; 31:wg+VxKYIwyoaQkGwV3oDRmKQO+NFNfHqt8WNxFXIPj7trcXl6g6YNLMBzHT2IJbTNmotsymmfm75iFlH+tDIz+9n3taSL7gtsvq1pb8iadvCObYcFW3jRyoVQM9a15+XVmnKzpyKcbLzANQxuH1Vj9TWhNK04RRfuGQaobh0ChSW7FYCsREinm09nC7vFQKZ2O8EleynFPzVNz98stbAhoR35mtD436jzNGXiPoh6b4= X-MS-TrafficTypeDiagnostic: AM6PR05MB4422: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; AM6PR05MB4422; 20:xynCfTC+Kk5HxVdxjFjLdlz3WJNNmW1JnASTNtJDfTNVu8mX87dr3vxOrgnaIL8Ob5xL3grdrp/mq0RZm5xZL8dcaOtdtvnRxf7ja7k8VIa1Eyh+rgJo5tQooUUZYe7m+lAIDHzU15fmMoKOFUwZXeLCj8cS2X3RY9tesvDrOuCP75w4Cb2xYLisObZrjPcfNCZvehCqdUJWZIQrWWzBn6mX84d2/i3PJVPv0H0FyTGzvcDgtpew6PmRhneTqBDgGjc2h+R77pJkOMYf4R0V1L/5ZQ4BHQzEKDbFY0F+IhGD8B+c8iwG1oo0+GW/RomLXWWDFXF9odV3KpGc7ICnNcErWy6Tgu6HvQgphuu9qk2mF0LjTfYny6vjaLNCyM6KSSM7fs8Yy7vgvBMwjaGEKCoz2TUC32+/7c0SmkLro+SEvPSi2vXI7myiI+ZTewDmgJbCEFn04j4tFrFF8x6IeWyiUFxixELY9JwYFq66FCZTVh6Sg9VtWtnRxB56GBxF; 4:7KA1AbUP9g/oZPrQCyjeX8WJ3OF20IArwqtpEU20ukGwL1ZpR17dZbOVveci7hMPk2vk6ra/+6YIHbMrWUBNkw+NRyLgPPvvBUCZSFS4earhjg9rLU5x4RdoUyyeXac9PA+GRNnAwZct2iq3TQ/K7kO0gsBzZeHhXVlFeH6B3cyPiXdIoOwb5ryyT9V9rSIz8nK9G4ARVr9loYtB7oiAlTDsrgcKBalzzidQVgO5Zk8cwpqOBxtdJQ/HQO6VOVWuwQPYRUslzD86MKxpJJZfhA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3002001)(3231254)(944501410)(52105095)(93006095)(93001095)(6055026)(6041310)(20161123564045)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(6072148)(201708071742011); SRVR:AM6PR05MB4422; BCL:0; PCL:0; RULEID:; SRVR:AM6PR05MB4422; X-Forefront-PRVS: 06640999CA X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(376002)(39380400002)(396003)(346002)(39860400002)(189003)(199004)(105586002)(8676002)(8936002)(316002)(2351001)(53936002)(86362001)(575784001)(2361001)(6116002)(3846002)(106356001)(118296001)(66066001)(36756003)(47776003)(81156014)(55016002)(2906002)(2870700001)(50226002)(4326008)(68736007)(305945005)(7736002)(81166006)(50466002)(25786009)(486006)(5660300001)(476003)(2616005)(69596002)(16526019)(26005)(59450400001)(386003)(97736004)(956004)(186003)(478600001)(7696005)(52116002)(23676004)(6916009)(21086003)(446003)(11346002)(76176011); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR05MB4422; H:mellanox.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTZQUjA1TUI0NDIyOzIzOkFhNHg3YVVWc0owTHlpVWlmRjlpc1RJZk42?= =?utf-8?B?ZVNnYUFGWXI1MGVmemRmb3QzbVhnQXRJTVpoSkVHellWT3k2dmpkTTF2NmRK?= =?utf-8?B?bThsTmVEYllMQUdKYklpdXhMRHA1NUpYeE5RRE1xbll2RVNvdUFtQU5qVlRv?= =?utf-8?B?ZUQwdnZTRlRyOUV0M3ZtL09xNlRyTXdTZzVoc0pZeFJMNk95VU4xclRscjdT?= =?utf-8?B?Q0ZGanpudHYxdnVxeFh3eE5mRjlFN0ZneGpGbkxDVUR2ZTE2bEg2NnZsTk5H?= =?utf-8?B?bVVxNUdaVjV2TGRLb04vOHlxZ0VZY29EUytvYUhSRG5nOWhqVFptY2pjam55?= =?utf-8?B?Nk1sRUpyb20xMWdoM1BqYlhTVkdEYVpFM0ZZbmU5Rm5seVgxZ1I3Y0k4ajYr?= =?utf-8?B?WmhtRUVFaGVicld1ZzlXUUNYV1Q5N0h2b3NTbUJjb05kaTd2WXJTVXBLWXQr?= =?utf-8?B?T0liL2tjeEs0RGhnQjcvc3hRa3BMeWRNWFlNdEQ2UkU4Y2hDWC8xOXplNzM2?= =?utf-8?B?VVkrUTYwOTNnM2h2VjB1WThIVlFGbmZ5VmJ0U2d6RE0xWjNOOStCQXdraXZ5?= =?utf-8?B?ZDJmUElob280OUtEVGpOTFVxMEhxMEd4eHdPblp4czRqb3p0ek1XRDVmMkRq?= =?utf-8?B?RThTMTk0c2J6YjNLekRSbFFYaVZyaTJRdnE3NlcwaGkzMUhhaTZyK1BadEor?= =?utf-8?B?S0RXeFllUTlBbHdiMTZ0RktBZTVjL0tVb3RQY1NQdWUzaGFjcGJqOXlVOS96?= =?utf-8?B?Ujh1RU9uS2FXYVRmNTBxa3NrZzJKWGJHUFVnKzJwL0FhVlUwbWUxdk9HU3Bk?= =?utf-8?B?QXM5NmN3NGVHWlo5bHk5dEZSYnpVckFUVy9lanJGeEpHWHhUWTVEN0RURWRk?= =?utf-8?B?RVh4c1dVQ1p2U0x6N0xFUXJ4eG56Rk1wcjNBYWdvVkVjNkVWZkRvbHVGb3ZD?= =?utf-8?B?VTFKOTBmN0pzU0ZTWE8zNnVNMnZLOUlWbndneDM4bGJBVHlJbzNIcUJBcnVa?= =?utf-8?B?NldZTzZmQWVIU3VvSjJaZUdJWVpyL2RlNXVCdE8zbmNIVGw1cDUrOUxRY2RH?= =?utf-8?B?b3F0NGN5TmVoTGVOSXBySTZiRXRodEF1OUx5WFo2eTE5OGkwd0s4S3JLby9Z?= =?utf-8?B?RGhJV044OEJaTFNLMmhOcmEyb3hlYTRFM1p3ZlE5TmdOMVlzV1gzRDBDbS83?= =?utf-8?B?T1JFVzByRFVoNDFGcU5TZEpZNzE0emFxd1R1ZE5oTHVCdEVneENmUUk5MU9k?= =?utf-8?B?VWZld0UvaVVqM0gxQUtHbnBvN1B0YjJBNW9iZWVWcTBPVWVnSFFhVzhsTEFP?= =?utf-8?B?eEFVc005RmF1dHp0WEZNV1RwYTQ0TUJmQVhRNmRDRkdpM1pDRnd1YWlGb0sr?= =?utf-8?B?bEIrNXE5WHZaTVVpeEtpdzBXWm95cHdyd1NvNDMxZExBNXdYamFHbTJ3N1Jw?= =?utf-8?B?VDNKcW1GQ2hjMFVkYVBQNGlrdk0xMkhZSEhCdzE0Y3VJWWFGWTVuRVNaTFRX?= =?utf-8?B?RmJEU3htQy9icTVhU21mSFFraXN4WGQvbmhJQTVmazEzMXhHcGFDR1JsYkwz?= =?utf-8?B?Q1hiTHRDdDZNQTU1VmZ1UTFwaWd1MjlRVmh4anNWNUZIcnNhWXpOQ3NOYmxk?= =?utf-8?B?Ry9WVUl4K1Q3UUxIbzVNc2lsa0tzaDQvLzZpZVg3eFF1dmNTVENXWUtJVC9p?= =?utf-8?Q?LhSibLn5oyfn4vWIV/NVeJNAOkR3vXfc7yuMoSP?= X-Microsoft-Antispam-Message-Info: v0uZQt+1+i0W1HPMdtgkskBX0Xszqto8P58YyXYjuHTSs8ZwyQ5b3Enq00hhP29L8euiDaHWA9FaZyAzZxlixmLqE75JLzmPFl2nwIuIuxkvKvtofA42f6Rj01iiIyZH09rz8s2lc6E1sx5qNC6M3lu87WNw68g7U8B9jpkUEKhRubuRhS6lQXXsHwfGHEAU X-Microsoft-Exchange-Diagnostics: 1; AM6PR05MB4422; 6:RM2eZ3mgm8LwVsz5Z6fl6v4uDSyDJ7JAgTt64/BZl7YGRnkvp9kQCI12gkRK/LWBA86aWHYW+LidrQuOlgZ3J1308AmQ02P8CQfFVGhb1rETdCo6jG8bRmpZpNAEhUVjUbSda4ZnoaiDWFcDnjKtrOWitiIXH1LiDA9tUufJCTG1RWoEGcAOyxeGhbMvhKzdtP60W++y7fC22ZKPUAoalp+u962Y9lXWnVCpUrvxxOSULzh2qdVWpzMKX48dzdICBpkKwbp5iFpEsSUOBO7YPjivCfBPfo5Ny52cc+oRs6WgJRbBMeD4PjHjnh3723tmVvtAbNrG6FpbzRIReMKD4lL5k+iCeGqmIODTKn+vLM1xGpy4fQ0POSZbZzM/nPB/15C5c7vM2nPcf4/7nxwM2wPb5BmX22iXU/NpOKd3kzSCTjSlm4X6Uje7uBocqvVigiBaQ6PCLVE6CmDHFMs9SA==; 5:PRtGG/2R+ARR2OrNqS/YTYnUtImZHpd0+Ao8UBsluP6hpAndLckn4DBrMgBhpmzIhXlTBRLnsmslcYGWCmqNv26jhMnCS/gZKQ1Gv4yymLj4XGUuRNQYlhn/JIi/Bk2DVbwgKnTX1n/YoGMIK5s36XTrt7N79kQ0FkIeDkzxz88=; 24:sc4j8uX+YKKG+7O5ILvI5ZojEa7PwW91ioNz97GUNB8VzfyFKk7WVGcrXTRMteq0HCUEJpzOvX1VuRJvphJnE86ZvBDlpkWJgPS3aublbQU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM6PR05MB4422; 7:xNyc/KnUIZnc/SQ5rAkX/sNRnjCqcL69UB9ysx6MmW763NVEqg0Ho/1Dvg94tjUoUvKNU4HZ5MqBHHVeAhN8MKlbJjYRQmBWL2o/hcih2bMCxra4zquRAh2iFTvbDtxkkeV9lNTipQTt8Q+BI5qd4dVTkaWp7oW+67ucLVkf3GqCsLZV58ovNy4cl2wXzuaARGgpgGVxKOblehzCzB7W348GMGJwwsHNwQuuiouM3QU5BKtcnFj5qWCG2OhcuMs0 X-MS-Office365-Filtering-Correlation-Id: 0c8db059-eb35-4374-26a2-08d5b3178825 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2018 06:06:38.7236 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0c8db059-eb35-4374-26a2-08d5b3178825 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR05MB4422 Subject: [dpdk-stable] [PATCH 07/33] net/mlx5: name parameters in function prototypes X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 06:06:42 -0000 From: NĂ©lio Laranjeiro [ upstream commit 3692c7ec9e97efeefb497cbbdb99aa766a163221 ] Signed-off-by: Nelio Laranjeiro Acked-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5.h | 191 +++++++++++++++++++++----------------- drivers/net/mlx5/mlx5_rxtx.h | 162 ++++++++++++++++++-------------- 2 files changed, 195 insertions(+), 158 deletions(-) diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index 5e90d99cc0..b65962df9e 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -206,113 +206,132 @@ int mlx5_getenv_int(const char *); struct priv *mlx5_get_priv(struct rte_eth_dev *dev); int mlx5_is_secondary(void); -int priv_get_ifname(const struct priv *, char (*)[IF_NAMESIZE]); -int priv_ifreq(const struct priv *, int req, struct ifreq *); -int priv_get_mtu(struct priv *, uint16_t *); -int priv_set_flags(struct priv *, unsigned int, unsigned int); -int mlx5_dev_configure(struct rte_eth_dev *); -void mlx5_dev_infos_get(struct rte_eth_dev *, struct rte_eth_dev_info *); +int priv_get_ifname(const struct priv *priv, char (*ifname)[IF_NAMESIZE]); +int priv_ifreq(const struct priv *priv, int req, struct ifreq *ifr); +int priv_get_mtu(struct priv *priv, uint16_t *mtu); +int priv_set_flags(struct priv *priv, unsigned int keep, unsigned int flags); +int mlx5_dev_configure(struct rte_eth_dev *dev); +void mlx5_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info); const uint32_t *mlx5_dev_supported_ptypes_get(struct rte_eth_dev *dev); -int priv_link_update(struct priv *, int); -int priv_force_link_status_change(struct priv *, int); -int mlx5_link_update(struct rte_eth_dev *, int); -int mlx5_dev_set_mtu(struct rte_eth_dev *, uint16_t); -int mlx5_dev_get_flow_ctrl(struct rte_eth_dev *, struct rte_eth_fc_conf *); -int mlx5_dev_set_flow_ctrl(struct rte_eth_dev *, struct rte_eth_fc_conf *); -int mlx5_ibv_device_to_pci_addr(const struct ibv_device *, - struct rte_pci_addr *); -void mlx5_dev_link_status_handler(void *); -void mlx5_dev_interrupt_handler(void *); -void priv_dev_interrupt_handler_uninstall(struct priv *, struct rte_eth_dev *); -void priv_dev_interrupt_handler_install(struct priv *, struct rte_eth_dev *); +int priv_link_update(struct priv *priv, int wait_to_complete); +int priv_force_link_status_change(struct priv *priv, int status); +int mlx5_link_update(struct rte_eth_dev *dev, int wait_to_complete); +int mlx5_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu); +int mlx5_dev_get_flow_ctrl(struct rte_eth_dev *dev, + struct rte_eth_fc_conf *fc_conf); +int mlx5_dev_set_flow_ctrl(struct rte_eth_dev *dev, + struct rte_eth_fc_conf *fc_conf); +int mlx5_ibv_device_to_pci_addr(const struct ibv_device *device, + struct rte_pci_addr *pci_addr); +void mlx5_dev_link_status_handler(void *arg); +void mlx5_dev_interrupt_handler(void *cb_arg); +void priv_dev_interrupt_handler_uninstall(struct priv *priv, + struct rte_eth_dev *dev); +void priv_dev_interrupt_handler_install(struct priv *priv, + struct rte_eth_dev *dev); int mlx5_set_link_down(struct rte_eth_dev *dev); int mlx5_set_link_up(struct rte_eth_dev *dev); +eth_tx_burst_t priv_select_tx_function(struct priv *priv, + struct rte_eth_dev *dev); +eth_rx_burst_t priv_select_rx_function(struct priv *priv, + struct rte_eth_dev *dev); int mlx5_is_removed(struct rte_eth_dev *dev); -eth_tx_burst_t priv_select_tx_function(struct priv *, struct rte_eth_dev *); -eth_rx_burst_t priv_select_rx_function(struct priv *, struct rte_eth_dev *); /* mlx5_mac.c */ -int priv_get_mac(struct priv *, uint8_t (*)[ETHER_ADDR_LEN]); -void mlx5_mac_addr_remove(struct rte_eth_dev *, uint32_t); -int mlx5_mac_addr_add(struct rte_eth_dev *, struct ether_addr *, uint32_t, - uint32_t); -void mlx5_mac_addr_set(struct rte_eth_dev *, struct ether_addr *); +int priv_get_mac(struct priv *priv, uint8_t (*mac)[ETHER_ADDR_LEN]); +void mlx5_mac_addr_remove(struct rte_eth_dev *dev, uint32_t index); +int mlx5_mac_addr_add(struct rte_eth_dev *dev, struct ether_addr *mac, + uint32_t index, uint32_t vmdq); +void mlx5_mac_addr_set(struct rte_eth_dev *dev, struct ether_addr *mac_addr); /* mlx5_rss.c */ -int mlx5_rss_hash_update(struct rte_eth_dev *, struct rte_eth_rss_conf *); -int mlx5_rss_hash_conf_get(struct rte_eth_dev *, struct rte_eth_rss_conf *); -int priv_rss_reta_index_resize(struct priv *, unsigned int); -int mlx5_dev_rss_reta_query(struct rte_eth_dev *, - struct rte_eth_rss_reta_entry64 *, uint16_t); -int mlx5_dev_rss_reta_update(struct rte_eth_dev *, - struct rte_eth_rss_reta_entry64 *, uint16_t); +int mlx5_rss_hash_update(struct rte_eth_dev *dev, + struct rte_eth_rss_conf *rss_conf); +int mlx5_rss_hash_conf_get(struct rte_eth_dev *dev, + struct rte_eth_rss_conf *rss_conf); +int priv_rss_reta_index_resize(struct priv *priv, unsigned int reta_size); +int mlx5_dev_rss_reta_query(struct rte_eth_dev *dev, + struct rte_eth_rss_reta_entry64 *reta_conf, + uint16_t reta_size); +int mlx5_dev_rss_reta_update(struct rte_eth_dev *dev, + struct rte_eth_rss_reta_entry64 *reta_conf, + uint16_t reta_size); /* mlx5_rxmode.c */ -void mlx5_promiscuous_enable(struct rte_eth_dev *); -void mlx5_promiscuous_disable(struct rte_eth_dev *); -void mlx5_allmulticast_enable(struct rte_eth_dev *); -void mlx5_allmulticast_disable(struct rte_eth_dev *); +void mlx5_promiscuous_enable(struct rte_eth_dev *dev); +void mlx5_promiscuous_disable(struct rte_eth_dev *dev); +void mlx5_allmulticast_enable(struct rte_eth_dev *dev); +void mlx5_allmulticast_disable(struct rte_eth_dev *dev); /* mlx5_stats.c */ -void priv_xstats_init(struct priv *); -int mlx5_stats_get(struct rte_eth_dev *, struct rte_eth_stats *); -void mlx5_stats_reset(struct rte_eth_dev *); -int mlx5_xstats_get(struct rte_eth_dev *, - struct rte_eth_xstat *, unsigned int); -void mlx5_xstats_reset(struct rte_eth_dev *); -int mlx5_xstats_get_names(struct rte_eth_dev *, - struct rte_eth_xstat_name *, unsigned int); +void priv_xstats_init(struct priv *priv); +int mlx5_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats); +void mlx5_stats_reset(struct rte_eth_dev *dev); +int mlx5_xstats_get(struct rte_eth_dev *dev, + struct rte_eth_xstat *stats, unsigned int n); +void mlx5_xstats_reset(struct rte_eth_dev *dev); +int mlx5_xstats_get_names(struct rte_eth_dev *dev, + struct rte_eth_xstat_name *xstats_names, + unsigned int n); /* mlx5_vlan.c */ -int mlx5_vlan_filter_set(struct rte_eth_dev *, uint16_t, int); -int mlx5_vlan_offload_set(struct rte_eth_dev *, int); -void mlx5_vlan_strip_queue_set(struct rte_eth_dev *, uint16_t, int); +int mlx5_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on); +void mlx5_vlan_strip_queue_set(struct rte_eth_dev *dev, uint16_t queue, int on); +int mlx5_vlan_offload_set(struct rte_eth_dev *dev, int mask); /* mlx5_trigger.c */ -int mlx5_dev_start(struct rte_eth_dev *); -void mlx5_dev_stop(struct rte_eth_dev *); -int priv_dev_traffic_enable(struct priv *, struct rte_eth_dev *); -int priv_dev_traffic_disable(struct priv *, struct rte_eth_dev *); -int priv_dev_traffic_restart(struct priv *, struct rte_eth_dev *); -int mlx5_traffic_restart(struct rte_eth_dev *); +int mlx5_dev_start(struct rte_eth_dev *dev); +void mlx5_dev_stop(struct rte_eth_dev *dev); +int priv_dev_traffic_enable(struct priv *priv, struct rte_eth_dev *dev); +int priv_dev_traffic_disable(struct priv *priv, struct rte_eth_dev *dev); +int priv_dev_traffic_restart(struct priv *priv, struct rte_eth_dev *dev); +int mlx5_traffic_restart(struct rte_eth_dev *dev); /* mlx5_flow.c */ -int mlx5_dev_filter_ctrl(struct rte_eth_dev *, enum rte_filter_type, - enum rte_filter_op, void *); -int mlx5_flow_validate(struct rte_eth_dev *, const struct rte_flow_attr *, - const struct rte_flow_item [], - const struct rte_flow_action [], - struct rte_flow_error *); -struct rte_flow *mlx5_flow_create(struct rte_eth_dev *, - const struct rte_flow_attr *, - const struct rte_flow_item [], - const struct rte_flow_action [], - struct rte_flow_error *); -int mlx5_flow_destroy(struct rte_eth_dev *, struct rte_flow *, - struct rte_flow_error *); -void priv_flow_flush(struct priv *, struct mlx5_flows *); -int mlx5_flow_flush(struct rte_eth_dev *, struct rte_flow_error *); -int mlx5_flow_query(struct rte_eth_dev *, struct rte_flow *, - enum rte_flow_action_type, void *, - struct rte_flow_error *); -int mlx5_flow_isolate(struct rte_eth_dev *, int, struct rte_flow_error *); -int priv_flow_start(struct priv *, struct mlx5_flows *); -void priv_flow_stop(struct priv *, struct mlx5_flows *); -int priv_flow_verify(struct priv *); -int mlx5_ctrl_flow_vlan(struct rte_eth_dev *, struct rte_flow_item_eth *, - struct rte_flow_item_eth *, struct rte_flow_item_vlan *, - struct rte_flow_item_vlan *); -int mlx5_ctrl_flow(struct rte_eth_dev *, struct rte_flow_item_eth *, - struct rte_flow_item_eth *); -int priv_flow_create_drop_queue(struct priv *); -void priv_flow_delete_drop_queue(struct priv *); +int mlx5_flow_validate(struct rte_eth_dev *dev, + const struct rte_flow_attr *attr, + const struct rte_flow_item items[], + const struct rte_flow_action actions[], + struct rte_flow_error *error); +void priv_flow_flush(struct priv *priv, struct mlx5_flows *list); +int priv_flow_create_drop_queue(struct priv *priv); +void priv_flow_stop(struct priv *priv, struct mlx5_flows *list); +int priv_flow_start(struct priv *priv, struct mlx5_flows *list); +int priv_flow_verify(struct priv *priv); +int priv_flow_create_drop_queue(struct priv *priv); +void priv_flow_delete_drop_queue(struct priv *priv); +int mlx5_ctrl_flow_vlan(struct rte_eth_dev *dev, + struct rte_flow_item_eth *eth_spec, + struct rte_flow_item_eth *eth_mask, + struct rte_flow_item_vlan *vlan_spec, + struct rte_flow_item_vlan *vlan_mask); +int mlx5_ctrl_flow(struct rte_eth_dev *dev, + struct rte_flow_item_eth *eth_spec, + struct rte_flow_item_eth *eth_mask); +struct rte_flow *mlx5_flow_create(struct rte_eth_dev *dev, + const struct rte_flow_attr *attr, + const struct rte_flow_item items[], + const struct rte_flow_action actions[], + struct rte_flow_error *error); +int mlx5_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow, + struct rte_flow_error *error); +int mlx5_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error); +int mlx5_flow_query(struct rte_eth_dev *dev, struct rte_flow *flow, + enum rte_flow_action_type action, void *data, + struct rte_flow_error *error); +int mlx5_flow_isolate(struct rte_eth_dev *dev, int enable, + struct rte_flow_error *error); +int mlx5_dev_filter_ctrl(struct rte_eth_dev *dev, + enum rte_filter_type filter_type, + enum rte_filter_op filter_op, + void *arg); /* mlx5_socket.c */ @@ -323,9 +342,9 @@ int priv_socket_connect(struct priv *priv); /* mlx5_mr.c */ -struct mlx5_mr *priv_mr_new(struct priv *, struct rte_mempool *); -struct mlx5_mr *priv_mr_get(struct priv *, struct rte_mempool *); -int priv_mr_release(struct priv *, struct mlx5_mr *); -int priv_mr_verify(struct priv *); +struct mlx5_mr *priv_mr_new(struct priv *priv, struct rte_mempool *mp); +struct mlx5_mr *priv_mr_get(struct priv *priv, struct rte_mempool *mp); +int priv_mr_release(struct priv *priv, struct mlx5_mr *mr); +int priv_mr_verify(struct priv *priv); #endif /* RTE_PMD_MLX5_H_ */ diff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h index d7e890558e..d0ec9a2146 100644 --- a/drivers/net/mlx5/mlx5_rxtx.h +++ b/drivers/net/mlx5/mlx5_rxtx.h @@ -210,97 +210,115 @@ struct mlx5_txq_ctrl { extern uint8_t rss_hash_default_key[]; extern const size_t rss_hash_default_key_len; -void mlx5_rxq_cleanup(struct mlx5_rxq_ctrl *); -int mlx5_rx_queue_setup(struct rte_eth_dev *, uint16_t, uint16_t, unsigned int, - const struct rte_eth_rxconf *, struct rte_mempool *); -void mlx5_rx_queue_release(void *); +void mlx5_rxq_cleanup(struct mlx5_rxq_ctrl *rxq_ctrl); +int mlx5_rx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc, + unsigned int socket, const struct rte_eth_rxconf *conf, + struct rte_mempool *mp); +void mlx5_rx_queue_release(void *dpdk_rxq); int priv_rx_intr_vec_enable(struct priv *priv); void priv_rx_intr_vec_disable(struct priv *priv); int mlx5_rx_intr_enable(struct rte_eth_dev *dev, uint16_t rx_queue_id); int mlx5_rx_intr_disable(struct rte_eth_dev *dev, uint16_t rx_queue_id); -struct mlx5_rxq_ibv *mlx5_priv_rxq_ibv_new(struct priv *, uint16_t); -struct mlx5_rxq_ibv *mlx5_priv_rxq_ibv_get(struct priv *, uint16_t); -int mlx5_priv_rxq_ibv_release(struct priv *, struct mlx5_rxq_ibv *); -int mlx5_priv_rxq_ibv_releasable(struct priv *, struct mlx5_rxq_ibv *); -int mlx5_priv_rxq_ibv_verify(struct priv *); -struct mlx5_rxq_ctrl *mlx5_priv_rxq_new(struct priv *, uint16_t, - uint16_t, unsigned int, - const struct rte_eth_rxconf *, - struct rte_mempool *); -struct mlx5_rxq_ctrl *mlx5_priv_rxq_get(struct priv *, uint16_t); -int mlx5_priv_rxq_release(struct priv *, uint16_t); -int mlx5_priv_rxq_releasable(struct priv *, uint16_t); -int mlx5_priv_rxq_verify(struct priv *); -int rxq_alloc_elts(struct mlx5_rxq_ctrl *); -struct mlx5_ind_table_ibv *mlx5_priv_ind_table_ibv_new(struct priv *, - uint16_t [], - uint16_t); -struct mlx5_ind_table_ibv *mlx5_priv_ind_table_ibv_get(struct priv *, - uint16_t [], - uint16_t); -int mlx5_priv_ind_table_ibv_release(struct priv *, struct mlx5_ind_table_ibv *); -int mlx5_priv_ind_table_ibv_verify(struct priv *); -struct mlx5_hrxq *mlx5_priv_hrxq_new(struct priv *, uint8_t *, uint8_t, - uint64_t, uint16_t [], uint16_t); -struct mlx5_hrxq *mlx5_priv_hrxq_get(struct priv *, uint8_t *, uint8_t, - uint64_t, uint16_t [], uint16_t); -int mlx5_priv_hrxq_release(struct priv *, struct mlx5_hrxq *); -int mlx5_priv_hrxq_ibv_verify(struct priv *); -uint64_t mlx5_priv_get_rx_port_offloads(struct priv *); -uint64_t mlx5_priv_get_rx_queue_offloads(struct priv *); +struct mlx5_rxq_ibv *mlx5_priv_rxq_ibv_new(struct priv *priv, uint16_t idx); +struct mlx5_rxq_ibv *mlx5_priv_rxq_ibv_get(struct priv *priv, uint16_t idx); +int mlx5_priv_rxq_ibv_release(struct priv *priv, struct mlx5_rxq_ibv *rxq_ibv); +int mlx5_priv_rxq_ibv_releasable(struct priv *priv, + struct mlx5_rxq_ibv *rxq_ibv); +int mlx5_priv_rxq_ibv_verify(struct priv *priv); +struct mlx5_rxq_ctrl *mlx5_priv_rxq_new(struct priv *priv, uint16_t idx, + uint16_t desc, + unsigned int socket, + const struct rte_eth_rxconf *conf, + struct rte_mempool *mp); +struct mlx5_rxq_ctrl *mlx5_priv_rxq_get(struct priv *priv, uint16_t idx); +int mlx5_priv_rxq_release(struct priv *priv, uint16_t idx); +int mlx5_priv_rxq_releasable(struct priv *priv, uint16_t idx); +int mlx5_priv_rxq_verify(struct priv *priv); +int rxq_alloc_elts(struct mlx5_rxq_ctrl *rxq_ctrl); +struct mlx5_ind_table_ibv *mlx5_priv_ind_table_ibv_new(struct priv *priv, + uint16_t queues[], + uint16_t queues_n); +struct mlx5_ind_table_ibv *mlx5_priv_ind_table_ibv_get(struct priv *priv, + uint16_t queues[], + uint16_t queues_n); +int mlx5_priv_ind_table_ibv_release(struct priv *priv, + struct mlx5_ind_table_ibv *ind_tbl); +int mlx5_priv_ind_table_ibv_verify(struct priv *priv); +struct mlx5_hrxq *mlx5_priv_hrxq_new(struct priv *priv, uint8_t *rss_key, + uint8_t rss_key_len, uint64_t hash_fields, + uint16_t queues[], uint16_t queues_n); +struct mlx5_hrxq *mlx5_priv_hrxq_get(struct priv *priv, uint8_t *rss_key, + uint8_t rss_key_len, uint64_t hash_fields, + uint16_t queues[], uint16_t queues_n); +int mlx5_priv_hrxq_release(struct priv *priv, struct mlx5_hrxq *hrxq); +int mlx5_priv_hrxq_ibv_verify(struct priv *priv); +uint64_t mlx5_priv_get_rx_port_offloads(struct priv *priv); +uint64_t mlx5_priv_get_rx_queue_offloads(struct priv *priv); /* mlx5_txq.c */ -int mlx5_tx_queue_setup(struct rte_eth_dev *, uint16_t, uint16_t, unsigned int, - const struct rte_eth_txconf *); -void mlx5_tx_queue_release(void *); +int mlx5_tx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc, + unsigned int socket, const struct rte_eth_txconf *conf); +void mlx5_tx_queue_release(void *dpdk_txq); int priv_tx_uar_remap(struct priv *priv, int fd); -struct mlx5_txq_ibv *mlx5_priv_txq_ibv_new(struct priv *, uint16_t); -struct mlx5_txq_ibv *mlx5_priv_txq_ibv_get(struct priv *, uint16_t); -int mlx5_priv_txq_ibv_release(struct priv *, struct mlx5_txq_ibv *); -int mlx5_priv_txq_ibv_releasable(struct priv *, struct mlx5_txq_ibv *); -int mlx5_priv_txq_ibv_verify(struct priv *); -struct mlx5_txq_ctrl *mlx5_priv_txq_new(struct priv *, uint16_t, - uint16_t, unsigned int, - const struct rte_eth_txconf *); -struct mlx5_txq_ctrl *mlx5_priv_txq_get(struct priv *, uint16_t); -int mlx5_priv_txq_release(struct priv *, uint16_t); -int mlx5_priv_txq_releasable(struct priv *, uint16_t); -int mlx5_priv_txq_verify(struct priv *); -void txq_alloc_elts(struct mlx5_txq_ctrl *); -uint64_t mlx5_priv_get_tx_port_offloads(struct priv *); +struct mlx5_txq_ibv *mlx5_priv_txq_ibv_new(struct priv *priv, uint16_t idx); +struct mlx5_txq_ibv *mlx5_priv_txq_ibv_get(struct priv *priv, uint16_t idx); +int mlx5_priv_txq_ibv_release(struct priv *priv, struct mlx5_txq_ibv *txq_ibv); +int mlx5_priv_txq_ibv_releasable(struct priv *priv, + struct mlx5_txq_ibv *txq_ibv); +int mlx5_priv_txq_ibv_verify(struct priv *priv); +struct mlx5_txq_ctrl *mlx5_priv_txq_new(struct priv *priv, uint16_t idx, + uint16_t desc, unsigned int socket, + const struct rte_eth_txconf *conf); +struct mlx5_txq_ctrl *mlx5_priv_txq_get(struct priv *priv, uint16_t idx); +int mlx5_priv_txq_release(struct priv *priv, uint16_t idx); +int mlx5_priv_txq_releasable(struct priv *priv, uint16_t idx); +int mlx5_priv_txq_verify(struct priv *priv); +void txq_alloc_elts(struct mlx5_txq_ctrl *txq_ctrl); +uint64_t mlx5_priv_get_tx_port_offloads(struct priv *priv); /* mlx5_rxtx.c */ extern uint32_t mlx5_ptype_table[]; void mlx5_set_ptype_table(void); -uint16_t mlx5_tx_burst(void *, struct rte_mbuf **, uint16_t); -uint16_t mlx5_tx_burst_mpw(void *, struct rte_mbuf **, uint16_t); -uint16_t mlx5_tx_burst_mpw_inline(void *, struct rte_mbuf **, uint16_t); -uint16_t mlx5_tx_burst_empw(void *, struct rte_mbuf **, uint16_t); -uint16_t mlx5_rx_burst(void *, struct rte_mbuf **, uint16_t); -uint16_t removed_tx_burst(void *, struct rte_mbuf **, uint16_t); -uint16_t removed_rx_burst(void *, struct rte_mbuf **, uint16_t); -int mlx5_rx_descriptor_status(void *, uint16_t); -int mlx5_tx_descriptor_status(void *, uint16_t); +uint16_t mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, + uint16_t pkts_n); +uint16_t mlx5_tx_burst_mpw(void *dpdk_txq, struct rte_mbuf **pkts, + uint16_t pkts_n); +uint16_t mlx5_tx_burst_mpw_inline(void *dpdk_txq, struct rte_mbuf **pkts, + uint16_t pkts_n); +uint16_t mlx5_tx_burst_empw(void *dpdk_txq, struct rte_mbuf **pkts, + uint16_t pkts_n); +uint16_t mlx5_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n); +uint16_t removed_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, + uint16_t pkts_n); +uint16_t removed_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, + uint16_t pkts_n); +int mlx5_rx_descriptor_status(void *rx_queue, uint16_t offset); +int mlx5_tx_descriptor_status(void *tx_queue, uint16_t offset); /* Vectorized version of mlx5_rxtx.c */ -int priv_check_raw_vec_tx_support(struct priv *, struct rte_eth_dev *); -int priv_check_vec_tx_support(struct priv *, struct rte_eth_dev *); -int rxq_check_vec_support(struct mlx5_rxq_data *); -int priv_check_vec_rx_support(struct priv *); -uint16_t mlx5_tx_burst_raw_vec(void *, struct rte_mbuf **, uint16_t); -uint16_t mlx5_tx_burst_vec(void *, struct rte_mbuf **, uint16_t); -uint16_t mlx5_rx_burst_vec(void *, struct rte_mbuf **, uint16_t); + +int priv_check_raw_vec_tx_support(struct priv *priv, struct rte_eth_dev *dev); +int priv_check_vec_tx_support(struct priv *priv, struct rte_eth_dev *dev); +int rxq_check_vec_support(struct mlx5_rxq_data *rxq); +int priv_check_vec_rx_support(struct priv *priv); +uint16_t mlx5_tx_burst_raw_vec(void *dpdk_txq, struct rte_mbuf **pkts, + uint16_t pkts_n); +uint16_t mlx5_tx_burst_vec(void *dpdk_txq, struct rte_mbuf **pkts, + uint16_t pkts_n); +uint16_t mlx5_rx_burst_vec(void *dpdk_rxq, struct rte_mbuf **pkts, + uint16_t pkts_n); /* mlx5_mr.c */ -void mlx5_mp2mr_iter(struct rte_mempool *, void *); -struct mlx5_mr *priv_txq_mp2mr_reg(struct priv *priv, struct mlx5_txq_data *, - struct rte_mempool *, unsigned int); -struct mlx5_mr *mlx5_txq_mp2mr_reg(struct mlx5_txq_data *, struct rte_mempool *, - unsigned int); +void mlx5_mp2mr_iter(struct rte_mempool *mp, void *arg); +struct mlx5_mr *priv_txq_mp2mr_reg(struct priv *priv, struct mlx5_txq_data *txq, + struct rte_mempool *mp, unsigned int idx); +struct mlx5_mr *mlx5_txq_mp2mr_reg(struct mlx5_txq_data *txq, + struct rte_mempool *mp, + unsigned int idx); #ifndef NDEBUG /** -- 2.12.0