Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/drivers/net/ethernet/mellanox/mlx5/core/lib/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  aso.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
/* Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved. */

#ifndef __MLX5_LIB_ASO_H__
#define __MLX5_LIB_ASO_H__

#include <linux/mlx5/qp.h>
#include "mlx5_core.h"

#define MLX5_ASO_WQEBBS \
 (DIV_ROUND_UP(sizeof(struct mlx5_aso_wqe), MLX5_SEND_WQE_BB))
#define MLX5_ASO_WQEBBS_DATA \
 (DIV_ROUND_UP(sizeof(struct mlx5_aso_wqe_data), MLX5_SEND_WQE_BB))
#define ASO_CTRL_READ_EN BIT(0)
#define MLX5_WQE_CTRL_WQE_OPC_MOD_SHIFT 24
#define MLX5_MACSEC_ASO_DS_CNT (DIV_ROUND_UP(sizeof(struct mlx5_aso_wqe), MLX5_SEND_WQE_DS))

#define ASO_CTRL_READ_EN BIT(0)
struct mlx5_wqe_aso_ctrl_seg {
 __be32  va_h;
 __be32  va_l; /* include read_enable */
 __be32  l_key;
 u8      data_mask_mode;
 u8      condition_1_0_operand;
 u8      condition_1_0_offset;
 u8      data_offset_condition_operand;
 __be32  condition_0_data;
 __be32  condition_0_mask;
 __be32  condition_1_data;
 __be32  condition_1_mask;
 __be64  bitwise_data;
 __be64  data_mask;
};

struct mlx5_wqe_aso_data_seg {
 __be32  bytewise_data[16];
};

struct mlx5_aso_wqe {
 struct mlx5_wqe_ctrl_seg      ctrl;
 struct mlx5_wqe_aso_ctrl_seg  aso_ctrl;
};

struct mlx5_aso_wqe_data {
 struct mlx5_wqe_ctrl_seg      ctrl;
 struct mlx5_wqe_aso_ctrl_seg  aso_ctrl;
 struct mlx5_wqe_aso_data_seg  aso_data;
};

enum {
 MLX5_ASO_LOGICAL_AND,
 MLX5_ASO_LOGICAL_OR,
};

enum {
 MLX5_ASO_ALWAYS_FALSE,
 MLX5_ASO_ALWAYS_TRUE,
 MLX5_ASO_EQUAL,
 MLX5_ASO_NOT_EQUAL,
 MLX5_ASO_GREATER_OR_EQUAL,
 MLX5_ASO_LESSER_OR_EQUAL,
 MLX5_ASO_LESSER,
 MLX5_ASO_GREATER,
 MLX5_ASO_CYCLIC_GREATER,
 MLX5_ASO_CYCLIC_LESSER,
};

enum {
 MLX5_ASO_DATA_MASK_MODE_BITWISE_64BIT,
 MLX5_ASO_DATA_MASK_MODE_BYTEWISE_64BYTE,
 MLX5_ASO_DATA_MASK_MODE_CALCULATED_64BYTE,
};

enum {
 MLX5_ACCESS_ASO_OPC_MOD_IPSEC = 0x0,
 MLX5_ACCESS_ASO_OPC_MOD_FLOW_METER = 0x2,
 MLX5_ACCESS_ASO_OPC_MOD_MACSEC = 0x5,
};

struct mlx5_aso;

struct mlx5_aso_wqe *mlx5_aso_get_wqe(struct mlx5_aso *aso);
void mlx5_aso_build_wqe(struct mlx5_aso *aso, u8 ds_cnt,
   struct mlx5_aso_wqe *aso_wqe,
   u32 obj_id, u32 opc_mode);
void mlx5_aso_post_wqe(struct mlx5_aso *aso, bool with_data,
         struct mlx5_wqe_ctrl_seg *doorbell_cseg);
int mlx5_aso_poll_cq(struct mlx5_aso *aso, bool with_data);

struct mlx5_aso *mlx5_aso_create(struct mlx5_core_dev *mdev, u32 pdn);
void mlx5_aso_destroy(struct mlx5_aso *aso);
#endif /* __MLX5_LIB_ASO_H__ */

Messung V0.5
C=97 H=90 G=93

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.