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 | }; |
| 8 | |
| 9 | enum 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 | |
| 24 | enum 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 | |
| 35 | enum 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 */ |
| 52 | struct 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 */ |
| 60 | struct 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 */ |
| 68 | struct 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 */ |
| 79 | struct 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 */ |
| 95 | struct 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 */ |
| 101 | struct 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 */ |
| 107 | struct 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 */ |
| 114 | enum 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 | |
| 124 | enum 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 | |
| 143 | struct evt_gprs_mac_msg { |
| 144 | uint8_t msg_type; |
| 145 | uint8_t prot_disc; |
| 146 | uint8_t chan_type; |
| 147 | } __attribute__ ((packed)); |