cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

dcbnl.h (1702B)


      1/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
      2/* Copyright (c) 2020 Mellanox Technologies. */
      3
      4#ifndef __MLX5E_DCBNL_H__
      5#define __MLX5E_DCBNL_H__
      6
      7#ifdef CONFIG_MLX5_CORE_EN_DCB
      8
      9#define MLX5E_MAX_PRIORITY (8)
     10
     11struct mlx5e_cee_config {
     12	/* bw pct for priority group */
     13	u8                         pg_bw_pct[CEE_DCBX_MAX_PGS];
     14	u8                         prio_to_pg_map[CEE_DCBX_MAX_PRIO];
     15	bool                       pfc_setting[CEE_DCBX_MAX_PRIO];
     16	bool                       pfc_enable;
     17};
     18
     19struct mlx5e_dcbx {
     20	enum mlx5_dcbx_oper_mode   mode;
     21	struct mlx5e_cee_config    cee_cfg; /* pending configuration */
     22	u8                         dscp_app_cnt;
     23
     24	/* The only setting that cannot be read from FW */
     25	u8                         tc_tsa[IEEE_8021QAZ_MAX_TCS];
     26	u8                         cap;
     27
     28	/* Buffer configuration */
     29	bool                       manual_buffer;
     30	u32                        cable_len;
     31	u32                        xoff;
     32	u16                        port_buff_cell_sz;
     33};
     34
     35#define MLX5E_MAX_DSCP (64)
     36
     37struct mlx5e_dcbx_dp {
     38	u8                         dscp2prio[MLX5E_MAX_DSCP];
     39	u8                         trust_state;
     40};
     41
     42void mlx5e_dcbnl_build_netdev(struct net_device *netdev);
     43void mlx5e_dcbnl_initialize(struct mlx5e_priv *priv);
     44void mlx5e_dcbnl_init_app(struct mlx5e_priv *priv);
     45void mlx5e_dcbnl_delete_app(struct mlx5e_priv *priv);
     46#else
     47static inline void mlx5e_dcbnl_build_netdev(struct net_device *netdev) {}
     48static inline void mlx5e_dcbnl_initialize(struct mlx5e_priv *priv) {}
     49static inline void mlx5e_dcbnl_init_app(struct mlx5e_priv *priv) {}
     50static inline void mlx5e_dcbnl_delete_app(struct mlx5e_priv *priv) {}
     51#endif
     52
     53#endif /* __MLX5E_DCBNL_H__ */