MCPcopy Create free account
hub / github.com/F-Stack/f-stack / mlx5_flow_get_reg_id

Function mlx5_flow_get_reg_id

dpdk/drivers/net/mlx5/mlx5_flow.c:1325–1451  ·  view source on GitHub ↗

* Translate tag ID to register. * * @param[in] dev * Pointer to the Ethernet device structure. * @param[in] feature * The feature that request the register. * @param[in] id * The request register ID. * @param[out] error * Error description in case of any. * * @return * The request register on success, a negative errno * value otherwise and rte_errno is set. */

Source from the content-addressed store, hash-verified

1323 * value otherwise and rte_errno is set.
1324 */
1325int
1326mlx5_flow_get_reg_id(struct rte_eth_dev *dev,
1327 enum mlx5_feature_name feature,
1328 uint32_t id,
1329 struct rte_flow_error *error)
1330{
1331 struct mlx5_priv *priv = dev->data->dev_private;
1332 struct mlx5_sh_config *config = &priv->sh->config;
1333 struct mlx5_dev_registers *reg = &priv->sh->registers;
1334 enum modify_reg start_reg;
1335 bool skip_mtr_reg = false;
1336
1337 switch (feature) {
1338 case MLX5_HAIRPIN_RX:
1339 return REG_B;
1340 case MLX5_HAIRPIN_TX:
1341 return REG_A;
1342 case MLX5_METADATA_RX:
1343 switch (config->dv_xmeta_en) {
1344 case MLX5_XMETA_MODE_LEGACY:
1345 return REG_B;
1346 case MLX5_XMETA_MODE_META16:
1347 return REG_C_0;
1348 case MLX5_XMETA_MODE_META32:
1349 return REG_C_1;
1350 case MLX5_XMETA_MODE_META32_HWS:
1351 return REG_C_1;
1352 }
1353 break;
1354 case MLX5_METADATA_TX:
1355 if (config->dv_flow_en == 2 && config->dv_xmeta_en == MLX5_XMETA_MODE_META32_HWS) {
1356 return REG_C_1;
1357 } else {
1358 return REG_A;
1359 }
1360 case MLX5_METADATA_FDB:
1361 switch (config->dv_xmeta_en) {
1362 case MLX5_XMETA_MODE_LEGACY:
1363 return REG_NON;
1364 case MLX5_XMETA_MODE_META16:
1365 return REG_C_0;
1366 case MLX5_XMETA_MODE_META32:
1367 return REG_C_1;
1368 case MLX5_XMETA_MODE_META32_HWS:
1369 return REG_C_1;
1370 }
1371 break;
1372 case MLX5_FLOW_MARK:
1373 switch (config->dv_xmeta_en) {
1374 case MLX5_XMETA_MODE_LEGACY:
1375 case MLX5_XMETA_MODE_META32_HWS:
1376 return REG_NON;
1377 case MLX5_XMETA_MODE_META16:
1378 return REG_C_1;
1379 case MLX5_XMETA_MODE_META32:
1380 return REG_C_0;
1381 }
1382 break;

Calls 1

rte_flow_error_setFunction · 0.85

Tested by

no test coverage detected