DPDK 21.11.9
rte_ecpri.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright 2020 Mellanox Technologies, Ltd
3 */
4
5#ifndef _RTE_ECPRI_H_
6#define _RTE_ECPRI_H_
7
17#include <stdint.h>
18#include <rte_byteorder.h>
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24/*
25 * eCPRI Protocol Revision 1.0, 1.1, 1.2, 2.0: 0001b
26 * Other values are reserved for future
27 */
28#define RTE_ECPRI_REV_UP_TO_20 1
29
30/*
31 * eCPRI message types in specifications
32 * IWF* types will only be supported from rev.2
33 * 12-63: Reserved for future revision
34 * 64-255: Vendor Specific
35 */
36#define RTE_ECPRI_MSG_TYPE_IQ_DATA 0
37#define RTE_ECPRI_MSG_TYPE_BIT_SEQ 1
38#define RTE_ECPRI_MSG_TYPE_RTC_CTRL 2
39#define RTE_ECPRI_MSG_TYPE_GEN_DATA 3
40#define RTE_ECPRI_MSG_TYPE_RM_ACC 4
41#define RTE_ECPRI_MSG_TYPE_DLY_MSR 5
42#define RTE_ECPRI_MSG_TYPE_RMT_RST 6
43#define RTE_ECPRI_MSG_TYPE_EVT_IND 7
44#define RTE_ECPRI_MSG_TYPE_IWF_UP 8
45#define RTE_ECPRI_MSG_TYPE_IWF_OPT 9
46#define RTE_ECPRI_MSG_TYPE_IWF_MAP 10
47#define RTE_ECPRI_MSG_TYPE_IWF_DCTRL 11
48
49/*
50 * Event Type of Message Type #7: Event Indication
51 * 0x00: Fault(s) Indication
52 * 0x01: Fault(s) Indication Acknowledge
53 * 0x02: Notification(s) Indication
54 * 0x03: Synchronization Request
55 * 0x04: Synchronization Acknowledge
56 * 0x05: Synchronization End Indication
57 * 0x06...0xFF: Reserved
58 */
59#define RTE_ECPRI_EVT_IND_FAULT_IND 0x00
60#define RTE_ECPRI_EVT_IND_FAULT_ACK 0x01
61#define RTE_ECPRI_EVT_IND_NTFY_IND 0x02
62#define RTE_ECPRI_EVT_IND_SYNC_REQ 0x03
63#define RTE_ECPRI_EVT_IND_SYNC_ACK 0x04
64#define RTE_ECPRI_EVT_IND_SYNC_END 0x05
65
71 union {
73 struct {
74#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
75 uint32_t size:16;
76 uint32_t type:8;
77 uint32_t c:1;
78 uint32_t res:3;
79 uint32_t revision:4;
80#elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
81 uint32_t revision:4;
82 uint32_t res:3;
83 uint32_t c:1;
84 uint32_t type:8;
85 uint32_t size:16;
86#endif
87 };
88 };
89};
90
97};
98
105};
106
113};
114
121};
122
128#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
129 uint32_t ele_id:16;
130 uint32_t rr:4;
131 uint32_t rw:4;
132 uint32_t rma_id:8;
133#elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
134 uint32_t rma_id:8;
135 uint32_t rw:4;
136 uint32_t rr:4;
137 uint32_t ele_id:16;
138#endif
139 uint8_t addr[6];
141};
142
147 uint8_t msr_id;
148 uint8_t act_type;
149};
150
156 uint8_t rst_op;
157};
158
163 uint8_t evt_id;
164 uint8_t evt_type;
165 uint8_t seq;
166 uint8_t number;
167};
168
174 struct rte_ecpri_common_hdr common;
175 union {
176 struct rte_ecpri_msg_iq_data type0;
177 struct rte_ecpri_msg_bit_seq type1;
178 struct rte_ecpri_msg_rtc_ctrl type2;
179 struct rte_ecpri_msg_gen_data type3;
180 struct rte_ecpri_msg_rm_access type4;
181 struct rte_ecpri_msg_delay_measure type5;
182 struct rte_ecpri_msg_remote_reset type6;
183 struct rte_ecpri_msg_event_ind type7;
184 rte_be32_t dummy[3];
185 };
186};
187
188#ifdef __cplusplus
189}
190#endif
191
192#endif /* _RTE_ECPRI_H_ */
uint32_t rte_be32_t
uint16_t rte_be16_t
#define RTE_STD_C11
Definition: rte_common.h:42
rte_be32_t u32
Definition: rte_ecpri.h:72
rte_be16_t pc_id
Definition: rte_ecpri.h:95
rte_be16_t seq_id
Definition: rte_ecpri.h:96