libosmogsm  0.9.3.20160317
Osmocom GSM library
l1sap.h
1 #pragma once
2 
3 #include <osmocom/core/prim.h>
4 
6 enum osmo_ph_prim {
7  PRIM_PH_DATA,
8  PRIM_PH_RACH,
9  PRIM_PH_CONN,
10  PRIM_PH_EMPTY_FRAME,
11  PRIM_PH_RTS,
12  PRIM_MPH_INFO,
13  PRIM_TCH,
14  PRIM_TCH_RTS,
15 };
16 
18 enum osmo_mph_info_type {
19  PRIM_INFO_TIME,
20  PRIM_INFO_MEAS,
21  PRIM_INFO_ACTIVATE,
22  PRIM_INFO_DEACTIVATE,
23  PRIM_INFO_MODIFY,
24  PRIM_INFO_ACT_CIPH,
25  PRIM_INFO_DEACT_CIPH,
26 };
27 
29 enum osmo_ph_pres_info_type {
30  PRES_INFO_INVALID = 0,
31  PRES_INFO_HEADER = 1,
32  PRES_INFO_FIRST = 3,
33  PRES_INFO_SECOND = 5,
34  PRES_INFO_BOTH = 7,
35  PRES_INFO_UNKNOWN
36 };
37 
40  uint8_t ra;
41  uint8_t ta;
42  uint8_t tx_power;
44  uint16_t offset;
45 };
46 
49  uint8_t chan_nr;
50  uint8_t ra;
51  uint8_t acc_delay;
52  uint32_t fn;
53 };
54 
56 struct ph_data_param {
57  uint8_t link_id;
58  uint8_t chan_nr;
59  uint32_t fn;
60  int8_t rssi;
61  enum osmo_ph_pres_info_type pdch_presence_info;
62 };
63 
65 struct ph_tch_param {
66  uint8_t chan_nr;
67  uint32_t fn;
68  int8_t rssi;
69 };
70 
73  uint32_t fn;
74 };
75 
78  uint32_t fn;
79 };
80 
83  uint8_t chan_nr;
84  uint16_t ber10k;
85  int16_t ta_offs_qbits;
86  int16_t c_i_cb;
87  uint8_t is_sub:1;
88  uint8_t inv_rssi;
89 };
90 
93  uint8_t chan_nr;
94  uint8_t sacch_only;
95 };
96 
99  uint8_t chan_nr;
100  uint8_t cause;
101 };
102 
105  uint8_t chan_nr;
106  uint8_t downlink;
107  uint8_t uplink;
108 };
109 
112  enum osmo_mph_info_type type;
113  union {
114  struct info_time_ind_param time_ind;
115  struct info_meas_ind_param meas_ind;
116  struct info_act_req_param act_req;
117  struct info_act_cnf_param act_cnf;
118  struct info_ciph_req_param ciph_req;
119  } u;
120 };
121 
124  struct osmo_prim_hdr oph;
125  union {
126  struct ph_data_param data;
127  struct ph_tch_param tch;
128  struct ph_rach_req_param rach_req;
129  struct ph_rach_ind_param rach_ind;
130  struct ph_conn_ind_param conn_ind;
131  struct mph_info_param info;
132  } u;
133 };