Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  mod_hdr.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
/* Copyright (c) 2020 Mellanox Technologies */

#ifndef __MLX5E_EN_MOD_HDR_H__
#define __MLX5E_EN_MOD_HDR_H__

#include <linux/hashtable.h>
#include <linux/mlx5/fs.h>

#define MLX5_MH_ACT_SZ MLX5_UN_SZ_BYTES(set_add_copy_action_in_auto)

struct mlx5e_mod_hdr_handle;

struct mlx5e_tc_mod_hdr_acts {
 int num_actions;
 int max_actions;
 bool is_static;
 void *actions;
};

#define DECLARE_MOD_HDR_ACTS_ACTIONS(name, len) \
 u8 name[len][MLX5_MH_ACT_SZ] = {}

#define DECLARE_MOD_HDR_ACTS(name, acts_arr) \
 struct mlx5e_tc_mod_hdr_acts name = { \
  .max_actions = ARRAY_SIZE(acts_arr), \
  .is_static = true, \
  .actions = acts_arr, \
 }

char *mlx5e_mod_hdr_alloc(struct mlx5_core_dev *mdev, int namespace,
     struct mlx5e_tc_mod_hdr_acts *mod_hdr_acts);
void mlx5e_mod_hdr_dealloc(struct mlx5e_tc_mod_hdr_acts *mod_hdr_acts);
char *mlx5e_mod_hdr_get_item(struct mlx5e_tc_mod_hdr_acts *mod_hdr_acts, int pos);

struct mlx5e_mod_hdr_handle *
mlx5e_mod_hdr_attach(struct mlx5_core_dev *mdev,
       struct mod_hdr_tbl *tbl,
       enum mlx5_flow_namespace_type namespace,
       struct mlx5e_tc_mod_hdr_acts *mod_hdr_acts);
void mlx5e_mod_hdr_detach(struct mlx5_core_dev *mdev,
     struct mod_hdr_tbl *tbl,
     struct mlx5e_mod_hdr_handle *mh);
struct mlx5_modify_hdr *mlx5e_mod_hdr_get(struct mlx5e_mod_hdr_handle *mh);

void mlx5e_mod_hdr_tbl_init(struct mod_hdr_tbl *tbl);
void mlx5e_mod_hdr_tbl_destroy(struct mod_hdr_tbl *tbl);

static inline int mlx5e_mod_hdr_max_actions(struct mlx5_core_dev *mdev, int namespace)
{
 if (namespace == MLX5_FLOW_NAMESPACE_FDB) /* FDB offloading */
  return MLX5_CAP_ESW_FLOWTABLE_FDB(mdev, max_modify_header_actions);
 else /* namespace is MLX5_FLOW_NAMESPACE_KERNEL - NIC offloading */
  return MLX5_CAP_FLOWTABLE_NIC_RX(mdev, max_modify_header_actions);
}

#endif /* __MLX5E_EN_MOD_HDR_H__ */

Messung V0.5
C=98 H=92 G=94

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© 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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge