NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
doca_pcc_dev_data_structure_le_bf3.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_BF3_H_
16 #define DOCA_PCC_DEV_DATA_STRUCTURE_LE_BF3_H_
17 
18 #include <stdint.h>
19 
20 struct mlnx_cc_ack_nack_cnp_extra_t { /* Little Endian */
21  uint32_t num_coalesced:16; /* number of coalesced events, incremented on each coalesced event */
22  /* access: RW */
23  uint32_t reserved_at_0:16;
24  /* access: RW */
25 /* --------------------------------------------------------- */
26 };
27 
28 struct mlnx_cc_roce_tx_extra_t { /* Little Endian */
29  uint32_t flow_qpn:24; /* flow qp number */
30  /* access: RW */
31  uint32_t reserved_at_0:8;
32  /* access: RW */
33 /* --------------------------------------------------------- */
34 };
35 
36 struct mlnx_cc_roce_tx_cntrs_t { /* Little Endian */
37  uint32_t sent_32bytes:16; /* sent 32 bytes amount, additive increase on each event */
38  /* access: RW */
39  uint32_t sent_pkts:16; /* sent packets amount, additive increase on each event */
40  /* access: RW */
41 /* --------------------------------------------------------- */
42 };
43 
44 struct mlnx_cc_fw_data_t { /* Little Endian */
45  uint32_t data[3]; /* 3 dword fw data */
46  /* access: RW */
47 /* --------------------------------------------------------- */
48 };
49 
50 struct mlnx_cc_rtt_tstamp_t { /* Little Endian */
51  uint32_t req_send_timestamp; /* request send timestamp */
52  /* access: RW */
53  /*----------------------------------------------------------*/
54  uint32_t req_recv_timestamp; /* request receive timestamp */
55  /* access: RW */
56  /*----------------------------------------------------------*/
57  uint32_t resp_send_timestamp; /* response send timestamp */
58  /* access: RW */
59  /*----------------------------------------------------------*/
60  unsigned char reserved_at_60[4];
61  /* access: RW */
62 /* --------------------------------------------------------- */
63 };
64 
65 struct mlnx_cc_ack_nack_cnp_t { /* Little Endian */
66  uint32_t first_timestamp; /* first coalesced event timestamp */
67  /* access: RW */
68  /*----------------------------------------------------------*/
69  uint32_t first_sn; /* first coalesced event serial number */
70  /* access: RW */
71  /*----------------------------------------------------------*/
72  struct mlnx_cc_ack_nack_cnp_extra_t extra; /* extra attributes */
73  /* access: RW */
74  /*----------------------------------------------------------*/
75  unsigned char reserved_at_60[4];
76  /* access: RW */
77 /* --------------------------------------------------------- */
78 };
79 
80 struct mlnx_cc_roce_tx_t { /* Little Endian */
81  uint32_t first_timestamp; /* first coalesced event timestamp */
82  /* access: RW */
83  /*----------------------------------------------------------*/
84  struct mlnx_cc_roce_tx_cntrs_t cntrs; /* tx counters */
85  /* access: RW */
86  /*----------------------------------------------------------*/
88  /* access: RW */
89  /*----------------------------------------------------------*/
90  unsigned char reserved_at_60[4];
91  /* access: RW */
92 /* --------------------------------------------------------- */
93 };
94 
95 union mlnx_cc_event_spec_attr_t { /* Little Endian */
96  struct mlnx_cc_roce_tx_t roce_tx; /* tx attributes */
97  /* access: RW */
98  /*----------------------------------------------------------*/
99  struct mlnx_cc_ack_nack_cnp_t ack_nack_cnp; /* ack/nack/cnp attributes */
100  /* access: RW */
101  /*----------------------------------------------------------*/
102  struct mlnx_cc_rtt_tstamp_t rtt_tstamp; /* rtt timestamp */
103  /* access: RW */
104  /*----------------------------------------------------------*/
105  struct mlnx_cc_fw_data_t fw_data; /* fw data */
106  /* access: RW */
107  /*----------------------------------------------------------*/
108  unsigned char reserved_at_0[16];
109  /* access: RW */
110 /* --------------------------------------------------------- */
111 };
112 
113 struct mlnx_cc_event_general_attr_t { /* Little Endian */
114  uint32_t ev_type:8; /* event type */
115  /* access: RW */
116  uint32_t ev_subtype:8; /* event subtype */
117  /* access: RW */
118  uint32_t port_num:8; /* port id */
119  /* access: RW */
120  uint32_t flags:8; /* event flags */
121  /* access: RW */
122 /* --------------------------------------------------------- */
123 };
124 
125 struct mlnx_cc_algo_ctxt_t { /* Little Endian */
126  uint32_t data[12]; /* 12 dword algorithm context */
127  /* access: RW */
128 /* --------------------------------------------------------- */
129 };
130 
131 struct val_t { /* Little Endian */
132  uint32_t val; /* uint32_t value */
133  /* access: RW */
134 /* --------------------------------------------------------- */
135 };
136 
137 struct mlnx_cc_event_t { /* Little Endian */
138  unsigned char reserved_at_0[12];
139  /* access: RW */
140  /*----------------------------------------------------------*/
141  struct mlnx_cc_event_general_attr_t ev_attr; /* event general attributes */
142  /* access: RW */
143  /*----------------------------------------------------------*/
144  uint32_t flow_tag; /* unique flow id */
145  /* access: RW */
146  /*----------------------------------------------------------*/
147  uint32_t sn; /* serial number */
148  /* access: RW */
149  /*----------------------------------------------------------*/
150  uint32_t timestamp; /* event timestamp */
151  /* access: RW */
152  /*----------------------------------------------------------*/
153  union mlnx_cc_event_spec_attr_t ev_spec_attr; /* attributes which are different for different events */
154  /* access: RW */
155 /* --------------------------------------------------------- */
156 };
157 
158 struct mlnx_cc_attr_t { /* Little Endian */
159  uint32_t algo_slot:4; /* algorithm type defined in API.h, 15 - DCQCN */
160  /* access: RW */
161  uint32_t overload:1; /* overload flag */
162  /* access: RW */
163  uint32_t reserved_at_0:27;
164  /* access: RW */
165 /* --------------------------------------------------------- */
166 };
167 
168 union union_mlnx_cc_ack_nack_cnp_extra_t { /* Little Endian */
169  struct val_t val; /* entire value */
170  /* access: RW */
171  /*----------------------------------------------------------*/
172  struct mlnx_cc_ack_nack_cnp_extra_t mlnx_cc_ack_nack_cnp_extra; /* attributes for ack/nack/cnp */
173  /* access: RW */
174  /*----------------------------------------------------------*/
175  unsigned char reserved_at_0[4];
176  /* access: RW */
177 /* --------------------------------------------------------- */
178 };
179 
180 union union_mlnx_cc_roce_tx_cntrs_t { /* Little Endian */
181  struct val_t val; /* entire value */
182  /* access: RW */
183  /*----------------------------------------------------------*/
184  struct mlnx_cc_roce_tx_cntrs_t mlnx_cc_roce_tx_cntrs; /* tx counters */
185  /* access: RW */
186  /*----------------------------------------------------------*/
187  unsigned char reserved_at_0[4];
188  /* access: RW */
189 /* --------------------------------------------------------- */
190 };
191 
192 union union_mlnx_cc_event_general_attr_t { /* Little Endian */
193  struct val_t val; /* entire value */
194  /* access: RW */
195  /*----------------------------------------------------------*/
196  struct mlnx_cc_event_general_attr_t mlnx_cc_event_general_attr; /* event general attributes */
197  /* access: RW */
198  /*----------------------------------------------------------*/
199  unsigned char reserved_at_0[4];
200  /* access: RW */
201 /* --------------------------------------------------------- */
202 };
203 
204 #endif /* DOCA_PCC_DEV_DATA_STRUCTURE_LE_BF3_H_ */
struct mlnx_cc_ack_nack_cnp_extra_t extra
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_roce_tx_extra_t extra
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_roce_tx_cntrs_t mlnx_cc_roce_tx_cntrs