NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
doca_pcc_dev_data_structure_le_cx8.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES, ALL RIGHTS RESERVED.
3  *
4  * This software product is a proprietary product of NVIDIA CORPORATION &
5  * AFFILIATES (the "Company") and all right, title, and interest in and to the
6  * software product, including all associated intellectual property rights, are
7  * and shall remain exclusively with the Company.
8  *
9  * This software product is governed by the End User License Agreement
10  * provided with the software product.
11  *
12  */
13 
14 
15 #ifndef DOCA_PCC_DEV_DATA_STRUCTURE_LE_CX8_H_
16 #define DOCA_PCC_DEV_DATA_STRUCTURE_LE_CX8_H_
17 
18 #include <stdint.h>
19 
20 struct mlnx_cc_rtt_spec_data3_t { /* Little Endian */
21  uint32_t version:4; /* version */
22  /* access: RW */
23  uint32_t np_rx_port_counter:28; /* np rx port byte counter */
24  /* access: RW */
25 /* --------------------------------------------------------- */
26 };
27 
28 struct mlnx_cc_rtt_spec_data2_t { /* Little Endian */
29  uint32_t reserved_at_1c:4;
30  /* access: RW */
31  uint32_t resp_send_timestamp:28; /* response send timestamp */
32  /* access: RW */
33 /* --------------------------------------------------------- */
34 };
35 
36 struct mlnx_cc_rtt_spec_data1_t { /* Little Endian */
37  uint32_t port_type:4; /* port_type */
38  /* access: RW */
39  uint32_t req_recv_timestamp:28; /* request receive timestamp */
40  /* access: RW */
41 /* --------------------------------------------------------- */
42 };
43 
44 struct mlnx_cc_rtt_spec_data0_t { /* Little Endian */
45  uint32_t reserved_at_1e:2;
46  /* access: RW */
47  uint32_t send_plane:2; /* send_plane */
48  /* access: RW */
49  uint32_t req_send_timestamp:28; /* request send timestamp */
50  /* access: RW */
51 /* --------------------------------------------------------- */
52 };
53 
54 struct mlnx_cc_ack_nack_cnp_extra_t { /* Little Endian */
55  uint32_t num_coalesced:16; /* number of coalesced events, incremented on each coalesced event */
56  /* access: RW */
57  uint32_t reserved_at_0:16;
58  /* access: RW */
59 /* --------------------------------------------------------- */
60 };
61 
62 struct mlnx_cc_roce_tx_cntrs_t { /* Little Endian */
63  uint32_t sent_32bytes:16; /* sent 32 bytes amount, additive increase on each event */
64  /* access: RW */
65  uint32_t sent_pkts:16; /* sent packets amount, additive increase on each event */
66  /* access: RW */
67 /* --------------------------------------------------------- */
68 };
69 
70 struct mlnx_cc_fw_data_t { /* Little Endian */
71  uint32_t data[3]; /* 3 dword fw data */
72  /* access: RW */
73 /* --------------------------------------------------------- */
74 };
75 
76 struct mlnx_cc_rtt_tstamp_t { /* Little Endian */
77  struct mlnx_cc_rtt_spec_data0_t data0; /* rtt event data */
78  /* access: RW */
79  /*----------------------------------------------------------*/
80  struct mlnx_cc_rtt_spec_data1_t data1; /* rtt event data */
81  /* access: RW */
82  /*----------------------------------------------------------*/
83  struct mlnx_cc_rtt_spec_data2_t data2; /* rtt event data */
84  /* access: RW */
85  /*----------------------------------------------------------*/
86  struct mlnx_cc_rtt_spec_data3_t data3; /* rtt event data */
87  /* access: RW */
88 /* --------------------------------------------------------- */
89 };
90 
91 struct mlnx_cc_ack_nack_cnp_t { /* Little Endian */
92  uint32_t first_timestamp; /* first coalesced event timestamp */
93  /* access: RW */
94  /*----------------------------------------------------------*/
95  uint32_t first_sn; /* first coalesced event serial number */
96  /* access: RW */
97  /*----------------------------------------------------------*/
98  struct mlnx_cc_ack_nack_cnp_extra_t extra; /* extra attributes */
99  /* access: RW */
100  /*----------------------------------------------------------*/
101  unsigned char reserved_at_60[4];
102  /* access: RW */
103 /* --------------------------------------------------------- */
104 };
105 
106 struct mlnx_cc_roce_tx_t { /* Little Endian */
107  uint32_t first_timestamp; /* first coalesced event timestamp */
108  /* access: RW */
109  /*----------------------------------------------------------*/
110  struct mlnx_cc_roce_tx_cntrs_t cntrs; /* tx counters */
111  /* access: RW */
112  /*----------------------------------------------------------*/
113  unsigned char reserved_at_40[8];
114  /* access: RW */
115 /* --------------------------------------------------------- */
116 };
117 
118 union mlnx_cc_event_spec_attr_t { /* Little Endian */
119  struct mlnx_cc_roce_tx_t roce_tx; /* tx attributes */
120  /* access: RW */
121  /*----------------------------------------------------------*/
122  struct mlnx_cc_ack_nack_cnp_t ack_nack_cnp; /* ack/nack/cnp attributes */
123  /* access: RW */
124  /*----------------------------------------------------------*/
125  struct mlnx_cc_rtt_tstamp_t rtt_tstamp; /* rtt timestamp */
126  /* access: RW */
127  /*----------------------------------------------------------*/
128  struct mlnx_cc_fw_data_t fw_data; /* fw data */
129  /* access: RW */
130  /*----------------------------------------------------------*/
131  unsigned char reserved_at_0[16];
132  /* access: RW */
133 /* --------------------------------------------------------- */
134 };
135 
136 struct mlnx_cc_event_general_attr_t { /* Little Endian */
137  uint32_t ev_type:8; /* event type */
138  /* access: RW */
139  uint32_t ev_subtype:8; /* event subtype */
140  /* access: RW */
141  uint32_t port_num:4; /* port id */
142  /* access: RW */
143  uint32_t plane_num:4; /* plane num */
144  /* access: RW */
145  uint32_t flags:8; /* event flags */
146  /* access: RW */
147 /* --------------------------------------------------------- */
148 };
149 
150 struct mlnx_cc_event_general_dword2_t { /* Little Endian */
151  uint32_t flow_qpn:24; /* flow qp number */
152  /* access: RW */
153  uint32_t ttl_hoplimit:8; /* TTL/hop limit */
154  /* access: RW */
155 /* --------------------------------------------------------- */
156 };
157 
158 struct mlnx_cc_algo_ctxt_t { /* Little Endian */
159  uint32_t data[12]; /* 12 dword algorithm context */
160  /* access: RW */
161 /* --------------------------------------------------------- */
162 };
163 
164 struct val_t { /* Little Endian */
165  uint32_t val; /* uint32_t value */
166  /* access: RW */
167 /* --------------------------------------------------------- */
168 };
169 
170 struct mlnx_cc_event_t { /* Little Endian */
171  unsigned char reserved_at_0[8];
172  /* access: RW */
173  /*----------------------------------------------------------*/
174  struct mlnx_cc_event_general_dword2_t ev_dword2; /* flow qpn, TTL/hoplimit */
175  /* access: RW */
176  /*----------------------------------------------------------*/
177  struct mlnx_cc_event_general_attr_t ev_attr; /* event general attributes */
178  /* access: RW */
179  /*----------------------------------------------------------*/
180  uint32_t flow_tag; /* unique flow id */
181  /* access: RW */
182  /*----------------------------------------------------------*/
183  uint32_t sn; /* serial number */
184  /* access: RW */
185  /*----------------------------------------------------------*/
186  uint32_t timestamp; /* event timestamp */
187  /* access: RW */
188  /*----------------------------------------------------------*/
189  union mlnx_cc_event_spec_attr_t ev_spec_attr; /* attributes which are different for different events */
190  /* access: RW */
191 /* --------------------------------------------------------- */
192 };
193 
194 union union_mlnx_cc_event_general_dword2_t { /* Little Endian */
195  struct val_t val; /* entire value */
196  /* access: RW */
197  /*----------------------------------------------------------*/
199  /* access: RW */
200  /*----------------------------------------------------------*/
201  unsigned char reserved_at_0[4];
202  /* access: RW */
203 /* --------------------------------------------------------- */
204 };
205 
206 struct mlnx_cc_attr_t { /* Little Endian */
207  uint32_t algo_slot:4; /* algorithm type defined in API.h, 15 - DCQCN */
208  /* access: RW */
209  uint32_t overload:1; /* overload flag */
210  /* access: RW */
211  uint32_t reserved_at_0:27;
212  /* access: RW */
213 /* --------------------------------------------------------- */
214 };
215 
216 union union_mlnx_cc_ack_nack_cnp_extra_t { /* Little Endian */
217  struct val_t val; /* entire value */
218  /* access: RW */
219  /*----------------------------------------------------------*/
220  struct mlnx_cc_ack_nack_cnp_extra_t mlnx_cc_ack_nack_cnp_extra; /* attributes for ack/nack/cnp */
221  /* access: RW */
222  /*----------------------------------------------------------*/
223  unsigned char reserved_at_0[4];
224  /* access: RW */
225 /* --------------------------------------------------------- */
226 };
227 
228 union union_mlnx_cc_roce_tx_cntrs_t { /* Little Endian */
229  struct val_t val; /* entire value */
230  /* access: RW */
231  /*----------------------------------------------------------*/
232  struct mlnx_cc_roce_tx_cntrs_t mlnx_cc_roce_tx_cntrs; /* tx counters */
233  /* access: RW */
234  /*----------------------------------------------------------*/
235  unsigned char reserved_at_0[4];
236  /* access: RW */
237 /* --------------------------------------------------------- */
238 };
239 
240 union union_mlnx_cc_event_general_attr_t { /* Little Endian */
241  struct val_t val; /* entire value */
242  /* access: RW */
243  /*----------------------------------------------------------*/
244  struct mlnx_cc_event_general_attr_t mlnx_cc_event_general_attr; /* event general attributes */
245  /* access: RW */
246  /*----------------------------------------------------------*/
247  unsigned char reserved_at_0[4];
248  /* access: RW */
249 /* --------------------------------------------------------- */
250 };
251 
252 #endif /* DOCA_PCC_DEV_DATA_STRUCTURE_LE_CX8_H_ */
struct mlnx_cc_ack_nack_cnp_extra_t extra
struct mlnx_cc_event_general_dword2_t ev_dword2
struct mlnx_cc_event_general_attr_t ev_attr
union mlnx_cc_event_spec_attr_t ev_spec_attr
struct mlnx_cc_roce_tx_cntrs_t cntrs
struct mlnx_cc_rtt_spec_data0_t data0
struct mlnx_cc_rtt_spec_data3_t data3
struct mlnx_cc_rtt_spec_data1_t data1
struct mlnx_cc_rtt_spec_data2_t data2
struct mlnx_cc_ack_nack_cnp_t ack_nack_cnp
struct mlnx_cc_ack_nack_cnp_extra_t mlnx_cc_ack_nack_cnp_extra
struct mlnx_cc_event_general_attr_t mlnx_cc_event_general_attr
struct mlnx_cc_event_general_dword2_t mlnx_cc_event_general_dword2
struct mlnx_cc_roce_tx_cntrs_t mlnx_cc_roce_tx_cntrs