linux/drivers/net/ethernet/marvell/octeontx2/af/npc.h

/* SPDX-License-Identifier: GPL-2.0 */
/* Marvell RVU Admin Function driver
 *
 * Copyright (C) 2018 Marvell.
 *
 */

#ifndef NPC_H
#define NPC_H

#define NPC_KEX_CHAN_MASK

#define SET_KEX_LD(intf, lid, ltype, ld, cfg)

#define SET_KEX_LDFLAGS(intf, ld, flags, cfg)

enum NPC_LID_E {};

#define NPC_LT_NA

enum npc_kpu_la_ltype {};

enum npc_kpu_lb_ltype {};

/* Don't modify ltypes up to IP6_EXT, otherwise length and checksum of IP
 * headers may not be checked correctly. IPv4 ltypes and IPv6 ltypes must
 * differ only at bit 0 so mask 0xE can be used to detect extended headers.
 */
enum npc_kpu_lc_ltype {};

/* Don't modify Ltypes upto SCTP, otherwise it will
 * effect flow tag calculation and thus RSS.
 */
enum npc_kpu_ld_ltype {};

enum npc_kpu_le_ltype {};

enum npc_kpu_lf_ltype {};

enum npc_kpu_lg_ltype {};

/* Don't modify Ltypes upto SCTP, otherwise it will
 * effect flow tag calculation and thus RSS.
 */
enum npc_kpu_lh_ltype {};

/* NPC port kind defines how the incoming or outgoing packets
 * are processed. NPC accepts packets from up to 64 pkinds.
 * Software assigns pkind for each incoming port such as CGX
 * Ethernet interfaces, LBK interfaces, etc.
 */
#define NPC_UNRESERVED_PKIND_COUNT

enum npc_pkind_type {};

enum npc_interface_type {};

/* list of known and supported fields in packet header and
 * fields present in key structure.
 */
enum key_fields {};

struct npc_kpu_profile_cam {} __packed;

struct npc_kpu_profile_action {} __packed;

struct npc_kpu_profile {};

/* NPC KPU register formats */
struct npc_kpu_cam {};

struct npc_kpu_action0 {};

struct npc_kpu_action1 {};

struct npc_kpu_pkind_cpi_def {};

struct nix_rx_action {};

/* NPC_AF_INTFX_KEX_CFG field masks */
#define NPC_EXACT_NIBBLE_START
#define NPC_EXACT_NIBBLE_END
#define NPC_EXACT_NIBBLE

/* NPC_EXACT_KEX_S nibble definitions for each field */
#define NPC_EXACT_NIBBLE_HIT
#define NPC_EXACT_NIBBLE_OPC
#define NPC_EXACT_NIBBLE_WAY
#define NPC_EXACT_NIBBLE_INDEX

#define NPC_EXACT_RESULT_HIT
#define NPC_EXACT_RESULT_OPC
#define NPC_EXACT_RESULT_WAY
#define NPC_EXACT_RESULT_IDX

/* NPC_AF_INTFX_KEX_CFG field masks */
#define NPC_PARSE_NIBBLE

/* NPC_PARSE_KEX_S nibble definitions for each field */
#define NPC_PARSE_NIBBLE_CHAN
#define NPC_PARSE_NIBBLE_ERRLEV
#define NPC_PARSE_NIBBLE_ERRCODE
#define NPC_PARSE_NIBBLE_L2L3_BCAST
#define NPC_PARSE_NIBBLE_LA_FLAGS
#define NPC_PARSE_NIBBLE_LA_LTYPE
#define NPC_PARSE_NIBBLE_LB_FLAGS
#define NPC_PARSE_NIBBLE_LB_LTYPE
#define NPC_PARSE_NIBBLE_LC_FLAGS
#define NPC_PARSE_NIBBLE_LC_LTYPE
#define NPC_PARSE_NIBBLE_LD_FLAGS
#define NPC_PARSE_NIBBLE_LD_LTYPE
#define NPC_PARSE_NIBBLE_LE_FLAGS
#define NPC_PARSE_NIBBLE_LE_LTYPE
#define NPC_PARSE_NIBBLE_LF_FLAGS
#define NPC_PARSE_NIBBLE_LF_LTYPE
#define NPC_PARSE_NIBBLE_LG_FLAGS
#define NPC_PARSE_NIBBLE_LG_LTYPE
#define NPC_PARSE_NIBBLE_LH_FLAGS
#define NPC_PARSE_NIBBLE_LH_LTYPE

struct nix_tx_action {};

/* NIX Receive Vtag Action Structure */
#define RX_VTAG0_VALID_BIT
#define RX_VTAG0_TYPE_MASK
#define RX_VTAG0_LID_MASK
#define RX_VTAG0_RELPTR_MASK
#define RX_VTAG1_VALID_BIT
#define RX_VTAG1_TYPE_MASK
#define RX_VTAG1_LID_MASK
#define RX_VTAG1_RELPTR_MASK

/* NIX Transmit Vtag Action Structure */
#define TX_VTAG0_DEF_MASK
#define TX_VTAG0_OP_MASK
#define TX_VTAG0_LID_MASK
#define TX_VTAG0_RELPTR_MASK
#define TX_VTAG1_DEF_MASK
#define TX_VTAG1_OP_MASK
#define TX_VTAG1_LID_MASK
#define TX_VTAG1_RELPTR_MASK

/* NPC MCAM reserved entry index per nixlf */
#define NIXLF_UCAST_ENTRY
#define NIXLF_BCAST_ENTRY
#define NIXLF_ALLMULTI_ENTRY
#define NIXLF_PROMISC_ENTRY

struct npc_coalesced_kpu_prfl {};

struct npc_mcam_kex {} __packed;

struct npc_kpu_fwdata {} __packed;

struct npc_lt_def {} __packed;

struct npc_lt_def_ipsec {} __packed;

struct npc_lt_def_apad {} __packed;

struct npc_lt_def_color {} __packed;

struct npc_lt_def_et {} __packed;

struct npc_lt_def_cfg {} __packed;

/* Loadable KPU profile firmware data */
struct npc_kpu_profile_fwdata {} __packed;

struct rvu_npc_mcam_rule {};

#endif /* NPC_H */