From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20061.outbound.protection.outlook.com [40.107.2.61]) by dpdk.org (Postfix) with ESMTP id D9FF0BD2E for ; Tue, 5 Jun 2018 02:36:07 +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:X-MS-Exchange-SenderADCheck; bh=XXFEGitHIrgPAANfAyuW2DsoUtQaEe/aXdJ0UWHjs1s=; b=l4dWyrUk70g7bILIwGfSYdNt1Xn/JqbAhUkUjLakbLjIDRhgoFfTDx1lrXKlwZI4BlkEGO/JHjHZGgotfuasJuT89qKOOoGckEDXG82IbDB/qu4KvXfQPRpxiTT0rB0LTgtdLPp+/Xs+QFE2NyWnD8yfSeUjYAHYJjHE68MlfY4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=yskoh@mellanox.com; Received: from mellanox.com (209.116.155.178) by VI1PR0501MB2048.eurprd05.prod.outlook.com (2603:10a6:800:36::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.820.12; Tue, 5 Jun 2018 00:36:05 +0000 From: Yongseok Koh To: yliu@fridaylinux.org Cc: stable@dpdk.org, shahafs@mellanox.com, adrien.mazarguil@6wind.com, nelio.laranjeiro@6wind.com Date: Mon, 4 Jun 2018 17:35:18 -0700 Message-Id: <20180605003518.14227-10-yskoh@mellanox.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180605003518.14227-1-yskoh@mellanox.com> References: <20180605002732.13866-1-yskoh@mellanox.com> <20180605003518.14227-1-yskoh@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Originating-IP: [209.116.155.178] X-ClientProxiedBy: BYAPR07CA0036.namprd07.prod.outlook.com (2603:10b6:a02:bc::49) To VI1PR0501MB2048.eurprd05.prod.outlook.com (2603:10a6:800:36::22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:VI1PR0501MB2048; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2048; 3:Kvmx8819qHf3Pqt2gqE3EpEqCAXQALbWTt81A8frqM94xYJxWDw+zWgQFNDrc7cpAdlN9FpgiWo41tRdpKSlMTlbf3Wp8IJt7GyozxKAYXwokyL6wocmzHrE1XHxkN3eCqV5cAShzEevkI9cEtvy50uaLfYCv2Kavw/1d8PWqPp6t5Cr+d7mqg6Ha4LyxUJK07SJ0YAA4VNUXLIIkxzpsuqNXPZg/X+MSB978ufYvcsxpX5D+E3N8UAeJkEu0r4c; 25:IvytwmKQLBAhvMaruniWpmejCovNtoWWS7preZr5erW5iS2DMWw6hZ0rGUPadW8xuvVhPt/ZATnKSn4zPjBc1NRcVnl+fm+xeifTSwCnBsGEBeShrEqgHArYU9/O/P3tzINOZ0ZcihNfK2AM9I1aJ26781f1J1k6fD7CLVtIjKTIUCWzQ1kIb67bF6HEI3DwtgITfZOXaPMkmlKEHcknASiL0LNuwCjCseoKJ+2MI0F8FAtHmkCDI8hz1WMbj2ZMczjqFfVdfIFxN2HCjs++paL4p1ZHZ1fm3e6O6vUWkzGPS4Ghbf8iG7L+QOA12K0m5xneb9DWAJAd2WR++jIBsw==; 31:61vKrY5Fxe6+Gl9TLDV/LTlBoro2QT49X8BbPjLZmtDJXHrPVDJEMIAPOXIl88kNhQual7HAdFKYxG2fce4/CfEf79QffswutEY6oQiaHL5NWNjOtARgVxOI+Vol4iBBeuVm96bE9uKWlMq0XYskXNy6WNzmMRSWRw8yE+DE7HtoMYJAhnax/W30jMYI1X6QisH5ttoKDnGRannyCWxmGjlNSwc35ygS+7ZC6gL99A8= X-MS-TrafficTypeDiagnostic: VI1PR0501MB2048: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2048; 20:DTFG2rSCJbPTwiEyrZY32r1kHHzMr27vcRY7w/z7Pg44/ZOZMFZdWQoilh7JTjmqcz9T7HEj35fg+o8G6TS/PoRFUZ5p2IBvm4E4noEV4k5IgSnfO7/8I1sU617pu9nXo3TBAz5OrA+769NS5QsGgFfhXiYsbZSoJ4AYPjXt8PybgseCuFy3rIkz4txUuLQwuOdx6i+3PqyT+wsC1leK+dod+KmNjv795ltLz8YAx6Hle+HmqbogKjNWIi7eeepY01q4zWSbz0D2fbg/5UxZAQBfLwHowB9NHjTjGQL29ATTXQ+kR/zimrZicyjN//LF7D5+57pweCTiOoWDrfZ8gbJDePTS60jHp0ypv0UwacOgkepzRvsi9nL4QYIq1enwHra4upEDTHCSDcE/p/+5GjU2/jMZ7XNkpwXoslPuxwA2fOeQ68Jn6fuHVZfT7uSGxTovCbq+y3i73FoZ7akFUm66HH3Euh0Z3qgWgzofaH4bAOcmvdLwot+29r5sB2sd; 4:K3++Wwi+9wQKHcbnW06ULw7flnEDez4noAY/9HIm0UH/m86ZxmI/j586Mnzcp/aAP+zt9Ip399b02Vo1FkiEJ5lmEC6TFYvQUmhg48LxuxVO5wLZHC2rsx6VEnxaXC/HaFwIwOdb8sM5nfv4/pVSeCHaFyIbyVXUQsUVqx0R5EiOzidgc17QRLsXTRHMZIOjjpdHccdUXAtx8fqTjayePtLVSkGBn5O/8Pg8kjuEV3v+8OUoqHF90YTzAnPSmue2njpTvLR2TiOFrdhGsYnpiQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(6072148)(201708071742011)(7699016); SRVR:VI1PR0501MB2048; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0501MB2048; X-Forefront-PRVS: 0694C54398 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(346002)(396003)(376002)(39860400002)(39380400002)(199004)(189003)(3846002)(6666003)(2351001)(1076002)(6116002)(316002)(386003)(59450400001)(26005)(52116002)(186003)(2361001)(23676004)(16526019)(68736007)(7696005)(76176011)(446003)(55016002)(305945005)(956004)(11346002)(476003)(2616005)(486006)(50466002)(21086003)(69596002)(47776003)(53936002)(81156014)(81166006)(8676002)(86362001)(575784001)(106356001)(8936002)(25786009)(50226002)(7736002)(478600001)(4326008)(5660300001)(36756003)(6916009)(97736004)(66066001)(2906002)(2870700001)(105586002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0501MB2048; H:mellanox.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtWSTFQUjA1MDFNQjIwNDg7MjM6YklXTy9tM2FQQWNoUU1ud3ZPdWhiU2t1?= =?utf-8?B?WW5ZUENJc2t5SjJLTVkxRW50NFJ0Wk9Fd05EQzFJYS9ISUtXcHJhRFg0ZE93?= =?utf-8?B?WG40TStqdXMwa25MMTdGL1BtZzIvZWUzaE45NkFWQWZMRnYwS05LaVpKTmFv?= =?utf-8?B?VjliRUV0NWtFS25pUWFxS2ZtYmJpajZBcnIzQ3N1dDZJTTJkRFc4elFEMkpk?= =?utf-8?B?U2R1cHNveTM4WFFLZ0RJQnNsYzljVjJ6TGh5QzZST3RzM0ZPdUNGK0t3RkhT?= =?utf-8?B?SG8vcjNjTXJRSGRKK05UYkw1cHNCU2M3WW9BYm1MU3Z5TFlwOHExY1hSMURD?= =?utf-8?B?NVBZeWpXNnFUTkRGT0cvamhta0xSdjltWDVidStQTlg4YkxRVkh3QjRFamtJ?= =?utf-8?B?VC9BQTUyZm1kUHZVTk5xQWR1LzkwYk5qK0hrMHBHWDdsYzlIeFZTYmJzT1BR?= =?utf-8?B?UEtqdDdyWDIwS3JRUEM4Sjhjek42bEg1VkcrRE5nL3pHbHZyZlY5VHFzNnVE?= =?utf-8?B?NTArd1BMYUQxSnFlTEpIbVlCV0QycXVWVi9OL1A5ZVN5d0NJR1RUVmNSamFM?= =?utf-8?B?RFVyUFJ2aG5YVW1RRVJhNHkwT1ZITnB4VjRVUkxIa01sN0xCaGhSVlV3THY0?= =?utf-8?B?cnA0L2FEV3FZZG9qbFJERTNhRHY2ZDMxOHFJK3B6UlVtc0tkZk9sbGpvQklS?= =?utf-8?B?RFNZWkZtK2ZyMlNJMUxDcEJmSUlVZ1FvTEc0eWFtNWh6NXZJQmhlc09zd2Vp?= =?utf-8?B?YVJZNkJMeHA1UDRwWkRnTndDVnM5MjFTWXd3WE5Bb1pPL0ZIV3ppVXRMR2FS?= =?utf-8?B?TTR6cnpFY2I1WDFBRkVvcmM4MEZRZk1pV0tnQnBqVFBlK2VHN2FDQmY5RE9K?= =?utf-8?B?clFCTE9TaHMxZUtjSG9RZkI4Y3dKNUFsVHdhdDdDUUdDejBsZW94WHk5WDA4?= =?utf-8?B?Ukx4bXNrKzdaYnBmQWxnT1kvalE0ajFMQkZhcU5wR0xsNTdMMTJmUGhMTXBj?= =?utf-8?B?OUhtQlJlQXNFdkg1ajhEbVlDVlRjaFYxeGhTdlltRi9zNVFIVDZoVGNiZzZR?= =?utf-8?B?NHM3ZHJGaW9YZFhUZk9SV3NZa2R5Y0JFSWFaL0RiQks0ZlFDd3ptYlkrNFpF?= =?utf-8?B?S3g0N1Nmc1lNU1pXNktSc1Vuc25UVFpZZGk3Sm1xTStvSmR6UUp5bGRvVFJP?= =?utf-8?B?VEpJajQwUWwzY0xFd0s5S3lDci84K1lGTHBucEpsRW0rTXp2YUxaL2NxaXli?= =?utf-8?B?akN5eS9TcisrWXdCZEJEMFYwWFlpWEg0Wk8xY2dNWC94U3l0T1J1Y0l3dSsz?= =?utf-8?B?ZENlOEw2K1g1c2hvb1hycnhZQkkrbkNlajZzNzJOVjdXTmoydmQrazUzY3dR?= =?utf-8?B?WWJxRzJiZHNyRHNsSlJ1ZEw5Vjl5V2xWMFlWaTJDcDNyS3hrTjRZc09HWDBz?= =?utf-8?B?emE3ejNxcHU1QTM3LzlhOENtNEJYMmNCRTZSbC9hb3ZESDZ5andKWHc0SEpn?= =?utf-8?B?bGxJeTliQU05SXI5WTB1WndBV2Yvd3Y2aWVINzBKWTBhQUVneGxTK21ldThs?= =?utf-8?B?WUc3ZXVEVXppSmtnRm9wTzZLOHVEdzJxMnVkdUVraXZZOS8zUVVZclJDVXZG?= =?utf-8?B?eFU0eFBwSkJmVTJrdVRkRDlTTkoydldZMmRkUUN0aEttak9BTmk5OGRDTStj?= =?utf-8?B?TEdVSFUvZi82RlpSOVNuMzZzQytvd0VQbnhJZm1GMTBMaDRranp3Nmt5Mzlp?= =?utf-8?B?M1l6TW9PY0lzOXBPS2VZME1RPT0=?= X-Microsoft-Antispam-Message-Info: xvSYc7zuvJbsY/SXyPMR5fWh5GgxEF6c4+ZA0WQHBueA5CTw+KAs+3ofYs0cow/QIfB99GpA7hZBd7iw7xyZsFfyJxhNA2324UDeK2kbHu46RJDRejR5AQVYIAuerDGNVq2suUliKxnATuTNqAQCFcaat8rxWBauvJKiblfakmwmtLAZP1nAUuXwwKdHScZc X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2048; 6:980Fs4GdRDYN8i1cI+ALa8u2FRy7/jsCquspms64A61LPFVw62M48o6HNCI0FMJW4ZGNSqIh5p7j/VsUqdmp+NCBSdEc/yCsLMRpdnrqYU7nyElLe9dz6YmnKTSyI4Wz9aqDADn370Ns6K3BJ9E4SLe2um+Zz0OQmH2IUsOoJzS9EYgi8mCBiSkn19UYErJL9PidWEXDJE+eGynf6bB5j1RD+xwcmbjVjzaFnxTisPMp9v85tQcDcN8D4c5dMzmID+VKqmWAOYIDq0qh4QTq395yjfU0mz19JIqdOvfEwGcWsGNXqmD82hvSKRQzfn5RbbUqKHiBfZIHAcMLpxXr9288aNv00wE4gp6xd//X14PeUgR9esvIRE92JLxjqnAB/m7MHUx9vhQrZ/8QfGe9B3yf4JBaQjBiWMDKuDlzCtjWOokXeAC5ntFLnQlInwCdXZG+XEPEUTqqCn+FxSIRxA==; 5:lPblkuqA6gsNqukCeQ+k+a7ToTatHiz5tUvmfuq6I8pmUlcY07Gnm5vUpVUeACOmC7BvVEteUE4ytF6X/d6fx4OlMBo5FwkiBlPc9dVnliW579NA6YRHdrGwu1s8WjHB/ypTj1OXx5gXgxvxvWi1JyUXa5bTjoNdU6Cldmv4sNE=; 24:NhGKXs2DdKVjPsDsC+VcSO1PMFbUJfAcm3dJeQTmQ+bLkPfDGuaa3gWw5ZaH/dUmq6hEX7rQZJzk9vSbVd65vl1lkTilTJqECOt/jjbZc0E= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2048; 7:6MOplULryMCGSxKbdr+Sk7kbdHEEBPZmlM+sLR9u/imOdl3p3TIBeebGpIn9T9NpW2xmMXMW6mXm9DMeC8xrnMFA/T7RpTrY1LQl5r6AP8so/26tEgN7/F3c3aSM123UlqMmfEzky0uLFeiDYUVjS+X1J7Cwo2kMAc5Tpjo0Y4qdvZvjz6msC8pY2Y17YGME59XeuxtK9/XM1zCBC/WX/7Byn+Vfh/TIfkPy/floOnR3SAxuYEGtge2JsHYB/8kA X-MS-Office365-Filtering-Correlation-Id: 7b559f2b-a4ee-405b-1841-08d5ca7c535d X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jun 2018 00:36:05.3033 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7b559f2b-a4ee-405b-1841-08d5ca7c535d X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0501MB2048 Subject: [dpdk-stable] [PATCH v2 19/67] 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: Tue, 05 Jun 2018 00:36:08 -0000 From: NĂ©lio Laranjeiro [ backported from upstream commit 3692c7ec9e97efeefb497cbbdb99aa766a163221 ] Signed-off-by: Nelio Laranjeiro Acked-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5.h | 185 +++++++++++++++++++++++-------------------- drivers/net/mlx5/mlx5_rxtx.h | 154 +++++++++++++++++++---------------- 2 files changed, 187 insertions(+), 152 deletions(-) diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index 2fa0aa274..dc165a8a3 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -220,25 +220,29 @@ 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); void priv_dev_select_tx_function(struct priv *priv, struct rte_eth_dev *dev); @@ -246,86 +250,99 @@ void priv_dev_select_rx_function(struct priv *priv, struct rte_eth_dev *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 */ @@ -336,9 +353,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 28761c299..9d5edeedd 100644 --- a/drivers/net/mlx5/mlx5_rxtx.h +++ b/drivers/net/mlx5/mlx5_rxtx.h @@ -237,93 +237,111 @@ 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, - 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 *); +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, + 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); /* 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 *); +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); /* 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 *); -int priv_check_vec_tx_support(struct priv *); -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); +int priv_check_vec_tx_support(struct priv *priv); +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.11.0