blob: 545eaef60adf45cc122fa6f86583828856972f3f [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};
29
30enum gprs_rlc_ul_substate {
31 RALS_NULL,
32 RALS_AWAIT_TX_COMPLETE,
33 RALS_CURRENT_PDU_TX_COMPLETED,
34 RALS_COMPLETE,
35};
36
37enum gprs_rlc_dl_state {
38 DS_NULL,
39 DS_RX_ACK,
40 DS_RX_UNACK,
41 DS_RX_ACK_PENDING_RELEASE,
42 DS_RX_UNACK_PENDING_RELEASE,
43 DS_TEST_MODE,
44};
45
46struct gprs_rlc_ul_stats {
47 uint8_t rlc_ul_state;
48 uint8_t rlc_ul_substate;
49 uint32_t ack_tx_pdu_cnt;
50 uint32_t ack_tx_oct_cnt;
51 uint32_t unack_tx_pdu_cnt;
52 uint32_t unack_tx_oct_cnt;
53 uint16_t coding_sch_changes;
54 uint8_t ul_seq_va;
55 uint8_t ul_seq_vs;
56 uint8_t ul_seq_nseg;
57 uint8_t ul_seq_vsf;
58 uint8_t ul_seq_pack_vsf;
59 uint8_t ul_seq_nack_vsf;
60 int8_t ul_n3102;
61 int8_t ul_n3104;
62 uint32_t ul_gen_p_cnt_a;
63 uint32_t ul_gen_p_cnt_b;
64 uint32_t ul_gen_p_cnt_c;
65} __attribute__ ((packed));
66
67/* LOG_GPRS_RLC_DL_STATS_C */
68struct gprs_rlc_dl_stats {
69 uint8_t rlc_dl_state;
70 uint32_t ack_rx_pdu_cnt;
71 uint32_t ack_rx_oct_cnt;
72 uint32_t unack_rx_pdu_cnt;
73 uint32_t unack_pdu_filled_cnt;
74 uint32_t unack_rx_oct_cnt;
75 uint32_t unack_oct_filled_cnt;
76 uint32_t ack_nack_req_cnt;
77 uint8_t dl_seq_vq;
78 uint8_t dl_seq_vr;
79 uint8_t dl_seq_ssn;
80 uint32_t dl_gen_p_cnt_a;
81 uint32_t dl_gen_p_cnt_b;
82 uint32_t dl_gen_p_cnt_c;
83} __attribute__ ((packed));
84
85/* LOG_GPRS_RLC_UL_ACKNACK_PARAMS_VER2_C */
86struct gprs_rlc_ul_acknack_params_v2 {
87 uint8_t ul_tfi;
88 uint8_t fai;
89 uint8_t ssn;
90 uint8_t cs;
91 uint8_t cv;
92 uint8_t va;
93 uint8_t vs;
94 uint8_t si;
95 uint32_t hu32;
96 uint32_t lu32;
97} __attribute__ ((packed));
98
99/* LOG_GPRS_RLC_DL_ACKNACK_PARAMS_VER2_C */
100struct gprs_rlc_dl_acknack_params_v2 {
101 uint8_t dl_tfi;
102 uint8_t fai;
103 uint8_t ssn;
104 uint8_t vq;
105 uint32_t hu32;
106 uint32_t lu32;
107 uint8_t cs;
108} __attribute__ ((packed));
109
110/* LOG_GPRS_RLC_UL_RELEASE_IND_C + LOG_GPRS_RLC_DL_RELEASE_IND_C */
111struct gprs_rlc_release_ind {
112 uint8_t tfi;
113 uint8_t cause;
114} __attribute__ ((packed));
115
116enum gprs_rlc_hdr_type {
117 GPRS_HEADER_TYPE,
118 EGPRS_HEADER_TYPE_1,
119 EGPRS_HEADER_TYPE_2,
120 EGPRS_HEADER_TYPE_3
121};
122
123/* LOG_EGPRS_RLC_DL_HEADER_C */
124struct gprs_rlc_dl_header {
125 uint8_t type;
126 uint8_t ul_hdr[5];
127 uint8_t crc_status;
128 uint8_t ts;
129 uint32_t fn;
130 uint8_t dl_payload[6];
131} __attribute__ ((packed));
132
133/* LOG_EGPRS_RLC_UL_HEADER_C */
134struct gprs_rlc_ul_header {
135 uint8_t type;
136 uint8_t ul_hdr[6];
137} __attribute__ ((packed));