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