blob: 314935159702245163e7a58c942005a2ff1a1f48 [file] [log] [blame]
Harald Welte1cd1e732016-01-08 23:24:23 +01001#include <stdint.h>
2
3enum gprs_mac_mode {
4 NULL_MODE,
5 IDLE_MODE,
6 TRANSFER_MODE,
7};
8
9enum gprs_mac_null_substates {
10 NULL_INACTIVE,
11 NULL_GPRS_51_ACTIVE,
12 NULL_SUSPENDED,
13 NULL_SUSPEND_RESEL,
14 NULL_UPLINK_TBF_ESTAB,
15 NULL_UPLINK_SB_ESTAB,
16 NULL_DOWNLINK_SB_ESTAB,
17 NULL_UPLINK_TBF_ACCESS,
18 NULL_DL_TBF_EST,
19 NULL_DTM_CONNECT_PENDING,
20 NULL_DTM_GTTP_UL_CON,
21 NULL_RESET,
22};
23
24enum gprs_mac_idle_substates {
25 IDLE_PASSIVE,
26 IDLE_UL_PACKET_ACCESS,
27 IDLE_UL_ACCESS_QUEUED,
28 IDLE_UL_ACCESS_REJECT,
29 IDLE_UL_1PHASE_ASS,
30 IDLE_UL_2PHASE_ASS,
31 IDLE_UL_1PHASE_CONT_RES,
32 IDLE_DL_ASS,
33};
34
35enum gprs_mac_transfer_substates {
36 TRANSFER_INACTIVE,
37 TRANSFER_DL,
38 TRANSFER_DL_REASSIGN,
39 TRANSFER_DL_WITH_DYNAMIC_ALLOC,
40 TRANSFER_DL_REASSIGN_DYNAMIC_ALLOC,
41 TRANSFER_UL_DYNAMIC,
42 TRANSFER_UL_DYNAMIC_REALLOC,
43 TRANSFER_UL_DYNAMIC_DL_ASSIGN,
44 TRANSFER_UL_DYNAMIC_REALLOC_DL_ASSIGN,
45 TRANSFER_CONCURRENT_DYNAMIC_TRANSFER,
46 TRANSFER_CONCURRENT_DYNAMIC_DL_REASSIGN,
47 TRANSFER_CONCURRENT_DYNAMIC_REALLOC,
48 TRANSFER_CONCURRENT_DL_REASSIGN_DYNAMIC_REALLOC,
49};
50
51/* LOG_GPRS_MAC_STATE_C */
52struct gprs_mac_state_change {
53 uint8_t mac_mode;
54 uint8_t mac_null_fsm_state;
55 uint8_t mac_idle_fsm_state;
56 uint8_t mac_transfer_fsm_state;
57} __attribute__((packed));
58
59/* LOG_GPRS_MAC_SIGNALLING_MESSAGE_C */
60struct gprs_mac_signalling_msg {
61 uint8_t chan_type;
62 uint8_t msg_type;
63 uint8_t msg_len;
64 uint8_t msg[0];
65} __attribute__((packed));
66
67/* LOG_GPRS_MAC_DL_TBF_ESTABLISH_C */
68struct gprs_mac_dl_tbf_est {
69 uint8_t dl_tfi;
70 uint8_t rlc_mode;
71 uint8_t dl_ts_bmap;
72 uint8_t is_egprs_tbf;
73 uint16_t egprs_win_size;
74 uint8_t egprs_link_qual_mode;
75 uint8_t bep_period2;
76} __attribute__((packed));
77
78/* LOG_GPRS_MAC_UL_TBF_ESTABLISH_C */
79struct gprs_mcc_ul_tbf_est {
80 uint8_t tbf_req_cause;
81 uint8_t acc_granted;
82 uint8_t radio_prio;
83 uint8_t peak_tput;
84 uint8_t ul_tfi;
85 uint8_t rlc_mode;
86 uint8_t ul_ts_bmap;
87
88 uint8_t is_egprs_tbf;
89 uint16_t egprs_win_size;
90 uint8_t resegment;
91 uint8_t bep_period2;
92} __attribute__ ((packed));
93
94/* LOG_EGPRS_MAC_DL_ACKNACK_C */
95struct gprs_mac_dl_acknack {
96 uint8_t is_egprs;
97 uint8_t dl_acknack[0];
98} __attribute__ ((packed));
99
100/* LOG_EGPRS_MAC_UL_ACKNACK_C */
101struct gprs_mac_ul_acknack {
102 uint8_t ul_acknack[0];
103} __attribute__ ((packed));
104
105/* identical for LOG_GPRS_MAC_UL_TBF_RELEASE_C and
106 * LOG_GPRS_MAC_DL_TBF_RELEASE_C */
107struct gprs_mac_tbf_release {
108 uint8_t tfi;
109 uint8_t fail_cause;
110} __attribute__ ((packed));
111
112
113/* EVENT_GPRS_MAC_MSG_RECEIVED / EVENT_GPRS_MAC_MSG_SENT */
114enum gprs_mac_chan_type {
115 PRACH_11BIT_CHANNEL = 0x01,
116 PRACH_8BIT_CHANNEL = 0x02,
117 PACCH_RRBP_CHANNEL = 0x03,
118 UL_PACCH_CHANNEL = 0x04,
119 PCCCH_CHANNEL = 0x81,
120 PBCCH_CHANNEL = 0x82,
121 DL_PACCH_CHANNEL = 0x83,
122};
123
124enum gprs_mac_msg_type {
125 PACKET_CELL_CHANGE_FAILURE = 0x00,
126 PACKET_CONTROL_ACKNOWLEDGE = 0x01,
127 PACKET_DOWNLINK_ACK_NACK = 0x02,
128 PACKET_UPLK_DUMMY_CNTRL_BLK = 0x03,
129 PACKET_MEASUREMENT_REPORT = 0x04,
130 PACKET_RESOURCE_REQUEST = 0x05,
131 PACKET_MOBILE_TBF_STATUS = 0x06,
132 PACKET_PSI_STATUS = 0x07,
133 EGPRS_PACKET_DOWNLINK_ACK_NACK = 0x08,
134 PACKET_PAUSE = 0x09,
135 PACKET_ENHANCED_MEASUREMENT_REPORT = 0x0a,
136 ADDITIONAL_MS_RAC = 0x0b,
137 PACKET_CELL_CHANGE_NOTIFICATION = 0x0c,
138 PACKET_SI_STATUS = 0x0d,
139 PACKET_CS_REQUEST = 0x0e,
140 PACKET_CHANNEL_REQUEST = 0x20,
141};
142
143struct evt_gprs_mac_msg {
144 uint8_t msg_type;
145 uint8_t prot_disc;
146 uint8_t chan_type;
147} __attribute__ ((packed));