blob: d577c8d00c0ee3238cabca42e64498c687720b0a [file] [log] [blame]
Harald Welte1cd1e732016-01-08 23:24:23 +01001#include <stdint.h>
2
3/* LOG_GPRS_RLC_UL_ABNRML_RLS_COUNTS_C */
4struct gprs_rlc_ul_abnrml_rls_counts {
5 uint16_t access_reject_cnt;
6 uint16_t arc_retry_cnt;
7 uint16_t arc_wo_retry_cnt;
8 uint16_t arc_sys_info_cnt;
9} __attribute__ ((packed));
10
11/* LOG_GPRS_RLC_UL_EVENT_COUNTS_C */
12struct gprs_rlc_ul_event_counts {
13 uint16_t llc_event_cnt;
14 uint16_t mac_event_cnt;
15 uint16_t pl1_event_cnt;
16 uint16_t tmr_event_cnt;
17} __attribute__ ((packed));
18
19/* LOG_GPRS_RLC_UL_STATS_C */
20enum gprs_rlc_ul_state {
21 US_NULL,
22 US_AWAIT_ASS,
23 US_ACK_XFER,
24 US_GTTP_XFER, // optional
25 US_UNACK_XFER,
26 US_TEST_MODE,
27 US_AWAIT_RECOVERY,
28};
Harald Weltef5d6fee2016-01-13 22:29:10 +010029extern struct value_string gprs_rlc_ul_state_vals[8];
Harald Welte1cd1e732016-01-08 23:24:23 +010030
31enum gprs_rlc_ul_substate {
32 RALS_NULL,
33 RALS_AWAIT_TX_COMPLETE,
34 RALS_CURRENT_PDU_TX_COMPLETED,
35 RALS_COMPLETE,
36};
Harald Weltef5d6fee2016-01-13 22:29:10 +010037extern struct value_string gprs_rlc_ul_substate_vals[5];
Harald Welte1cd1e732016-01-08 23:24:23 +010038
39enum gprs_rlc_dl_state {
40 DS_NULL,
41 DS_RX_ACK,
42 DS_RX_UNACK,
43 DS_RX_ACK_PENDING_RELEASE,
44 DS_RX_UNACK_PENDING_RELEASE,
45 DS_TEST_MODE,
46};
Harald Weltef5d6fee2016-01-13 22:29:10 +010047extern struct value_string gprs_rlc_dl_state_vals[7];
Harald Welte1cd1e732016-01-08 23:24:23 +010048
49struct gprs_rlc_ul_stats {
50 uint8_t rlc_ul_state;
51 uint8_t rlc_ul_substate;
52 uint32_t ack_tx_pdu_cnt;
53 uint32_t ack_tx_oct_cnt;
54 uint32_t unack_tx_pdu_cnt;
55 uint32_t unack_tx_oct_cnt;
56 uint16_t coding_sch_changes;
57 uint8_t ul_seq_va;
58 uint8_t ul_seq_vs;
59 uint8_t ul_seq_nseg;
60 uint8_t ul_seq_vsf;
61 uint8_t ul_seq_pack_vsf;
62 uint8_t ul_seq_nack_vsf;
63 int8_t ul_n3102;
64 int8_t ul_n3104;
65 uint32_t ul_gen_p_cnt_a;
66 uint32_t ul_gen_p_cnt_b;
67 uint32_t ul_gen_p_cnt_c;
68} __attribute__ ((packed));
69
70/* LOG_GPRS_RLC_DL_STATS_C */
71struct gprs_rlc_dl_stats {
72 uint8_t rlc_dl_state;
73 uint32_t ack_rx_pdu_cnt;
74 uint32_t ack_rx_oct_cnt;
75 uint32_t unack_rx_pdu_cnt;
76 uint32_t unack_pdu_filled_cnt;
77 uint32_t unack_rx_oct_cnt;
78 uint32_t unack_oct_filled_cnt;
79 uint32_t ack_nack_req_cnt;
80 uint8_t dl_seq_vq;
81 uint8_t dl_seq_vr;
82 uint8_t dl_seq_ssn;
83 uint32_t dl_gen_p_cnt_a;
84 uint32_t dl_gen_p_cnt_b;
85 uint32_t dl_gen_p_cnt_c;
86} __attribute__ ((packed));
87
88/* LOG_GPRS_RLC_UL_ACKNACK_PARAMS_VER2_C */
89struct gprs_rlc_ul_acknack_params_v2 {
90 uint8_t ul_tfi;
91 uint8_t fai;
92 uint8_t ssn;
93 uint8_t cs;
94 uint8_t cv;
95 uint8_t va;
96 uint8_t vs;
97 uint8_t si;
98 uint32_t hu32;
99 uint32_t lu32;
100} __attribute__ ((packed));
101
102/* LOG_GPRS_RLC_DL_ACKNACK_PARAMS_VER2_C */
103struct gprs_rlc_dl_acknack_params_v2 {
104 uint8_t dl_tfi;
105 uint8_t fai;
106 uint8_t ssn;
107 uint8_t vq;
108 uint32_t hu32;
109 uint32_t lu32;
110 uint8_t cs;
111} __attribute__ ((packed));
112
113/* LOG_GPRS_RLC_UL_RELEASE_IND_C + LOG_GPRS_RLC_DL_RELEASE_IND_C */
114struct gprs_rlc_release_ind {
115 uint8_t tfi;
116 uint8_t cause;
117} __attribute__ ((packed));
118
119enum gprs_rlc_hdr_type {
120 GPRS_HEADER_TYPE,
121 EGPRS_HEADER_TYPE_1,
122 EGPRS_HEADER_TYPE_2,
123 EGPRS_HEADER_TYPE_3
124};
Harald Weltef5d6fee2016-01-13 22:29:10 +0100125extern struct value_string gprs_rlc_hdr_type_vals[5];
126
Harald Welte1cd1e732016-01-08 23:24:23 +0100127
128/* LOG_EGPRS_RLC_DL_HEADER_C */
129struct gprs_rlc_dl_header {
130 uint8_t type;
131 uint8_t ul_hdr[5];
132 uint8_t crc_status;
133 uint8_t ts;
134 uint32_t fn;
135 uint8_t dl_payload[6];
136} __attribute__ ((packed));
137
138/* LOG_EGPRS_RLC_UL_HEADER_C */
139struct gprs_rlc_ul_header {
140 uint8_t type;
141 uint8_t ul_hdr[6];
142} __attribute__ ((packed));