linux/drivers/net/ethernet/microchip/vcap/vcap_api.h

/* SPDX-License-Identifier: BSD-3-Clause */
/* Copyright (C) 2022 Microchip Technology Inc. and its subsidiaries.
 * Microchip VCAP API
 */

#ifndef __VCAP_API__
#define __VCAP_API__

#include <linux/types.h>
#include <linux/list.h>
#include <linux/netdevice.h>

/* Use the generated API model */
#include "vcap_ag_api.h"

#define VCAP_CID_LOOKUP_SIZE
#define VCAP_CID_INGRESS_L0
#define VCAP_CID_INGRESS_L1
#define VCAP_CID_INGRESS_L2
#define VCAP_CID_INGRESS_L3
#define VCAP_CID_INGRESS_L4
#define VCAP_CID_INGRESS_L5

#define VCAP_CID_PREROUTING_IPV6
#define VCAP_CID_PREROUTING

#define VCAP_CID_INGRESS_STAGE2_L0
#define VCAP_CID_INGRESS_STAGE2_L1
#define VCAP_CID_INGRESS_STAGE2_L2
#define VCAP_CID_INGRESS_STAGE2_L3

#define VCAP_CID_EGRESS_L0
#define VCAP_CID_EGRESS_L1

#define VCAP_CID_EGRESS_STAGE2_L0
#define VCAP_CID_EGRESS_STAGE2_L1

/* Known users of the VCAP API */
enum vcap_user {};

/* VCAP information used for displaying data */
struct vcap_statistics {};

/* VCAP key/action field type, position and width */
struct vcap_field {};

/* VCAP keyset or actionset type and width */
struct vcap_set {};

/* VCAP typegroup position and bitvalue */
struct vcap_typegroup {};

/* VCAP model data */
struct vcap_info {};

enum vcap_field_type {};

/* VCAP rule data towards the VCAP cache */
struct vcap_cache_data {};

/* Selects which part of the rule must be updated */
enum vcap_selection {};

/* Commands towards the VCAP cache */
enum vcap_command {};

enum vcap_rule_error {};

/* Administration of each VCAP instance */
struct vcap_admin {};

/* Client supplied VCAP rule data */
struct vcap_rule {};

/* List of keysets */
struct vcap_keyset_list {};

/* List of actionsets */
struct vcap_actionset_list {};

/* Client output printf-like function with destination */
struct vcap_output_print {};

/* Client supplied VCAP callback operations */
struct vcap_operations {};

/* VCAP API Client control interface */
struct vcap_control {};

#endif /* __VCAP_API__ */