1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /****************************************************************************
3  * Driver for Solarflare network controllers and boards
4  * Copyright 2020 Xilinx, Inc.
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License version 2 as published
8  * by the Free Software Foundation, incorporated herein by reference.
9  */
10 
11 /* Format of counter packets (version 2) from the ef100 Match-Action Engine */
12 
13 #ifndef EFX_MAE_COUNTER_FORMAT_H
14 #define EFX_MAE_COUNTER_FORMAT_H
15 
16 
17 /*------------------------------------------------------------*/
18 /*
19  * ER_RX_SL_PACKETISER_HEADER_WORD(160bit):
20  *
21  */
22 #define ER_RX_SL_PACKETISER_HEADER_WORD_SIZE 20
23 #define ER_RX_SL_PACKETISER_HEADER_WORD_WIDTH 160
24 
25 #define ERF_SC_PACKETISER_HEADER_VERSION_LBN 0
26 #define ERF_SC_PACKETISER_HEADER_VERSION_WIDTH 8
27 #define ERF_SC_PACKETISER_HEADER_VERSION_VALUE 2
28 #define ERF_SC_PACKETISER_HEADER_IDENTIFIER_LBN 8
29 #define ERF_SC_PACKETISER_HEADER_IDENTIFIER_WIDTH 8
30 #define ERF_SC_PACKETISER_HEADER_IDENTIFIER_AR 0
31 #define ERF_SC_PACKETISER_HEADER_IDENTIFIER_CT 1
32 #define ERF_SC_PACKETISER_HEADER_IDENTIFIER_OR 2
33 #define ERF_SC_PACKETISER_HEADER_HEADER_OFFSET_LBN 16
34 #define ERF_SC_PACKETISER_HEADER_HEADER_OFFSET_WIDTH 8
35 #define ERF_SC_PACKETISER_HEADER_HEADER_OFFSET_DEFAULT 0x4
36 #define ERF_SC_PACKETISER_HEADER_PAYLOAD_OFFSET_LBN 24
37 #define ERF_SC_PACKETISER_HEADER_PAYLOAD_OFFSET_WIDTH 8
38 #define ERF_SC_PACKETISER_HEADER_PAYLOAD_OFFSET_DEFAULT 0x14
39 #define ERF_SC_PACKETISER_HEADER_INDEX_LBN 32
40 #define ERF_SC_PACKETISER_HEADER_INDEX_WIDTH 16
41 #define ERF_SC_PACKETISER_HEADER_COUNT_LBN 48
42 #define ERF_SC_PACKETISER_HEADER_COUNT_WIDTH 16
43 #define ERF_SC_PACKETISER_HEADER_RESERVED_0_LBN 64
44 #define ERF_SC_PACKETISER_HEADER_RESERVED_0_WIDTH 32
45 #define ERF_SC_PACKETISER_HEADER_RESERVED_1_LBN 96
46 #define ERF_SC_PACKETISER_HEADER_RESERVED_1_WIDTH 32
47 #define ERF_SC_PACKETISER_HEADER_RESERVED_2_LBN 128
48 #define ERF_SC_PACKETISER_HEADER_RESERVED_2_WIDTH 32
49 
50 
51 /*------------------------------------------------------------*/
52 /*
53  * ER_RX_SL_PACKETISER_PAYLOAD_WORD(128bit):
54  *
55  */
56 #define ER_RX_SL_PACKETISER_PAYLOAD_WORD_SIZE 16
57 #define ER_RX_SL_PACKETISER_PAYLOAD_WORD_WIDTH 128
58 
59 #define ERF_SC_PACKETISER_PAYLOAD_COUNTER_INDEX_LBN 0
60 #define ERF_SC_PACKETISER_PAYLOAD_COUNTER_INDEX_WIDTH 24
61 #define ERF_SC_PACKETISER_PAYLOAD_RESERVED_LBN 24
62 #define ERF_SC_PACKETISER_PAYLOAD_RESERVED_WIDTH 8
63 #define ERF_SC_PACKETISER_PAYLOAD_PACKET_COUNT_OFST 4
64 #define ERF_SC_PACKETISER_PAYLOAD_PACKET_COUNT_SIZE 6
65 #define ERF_SC_PACKETISER_PAYLOAD_PACKET_COUNT_LBN 32
66 #define ERF_SC_PACKETISER_PAYLOAD_PACKET_COUNT_WIDTH 48
67 #define ERF_SC_PACKETISER_PAYLOAD_BYTE_COUNT_OFST 10
68 #define ERF_SC_PACKETISER_PAYLOAD_BYTE_COUNT_SIZE 6
69 #define ERF_SC_PACKETISER_PAYLOAD_BYTE_COUNT_LBN 80
70 #define ERF_SC_PACKETISER_PAYLOAD_BYTE_COUNT_WIDTH 48
71 
72 
73 #endif /* EFX_MAE_COUNTER_FORMAT_H */
74