blob: f330fdf881c59954e9e3d7048cc3f0db7aefe980 [file] [log] [blame]
Pau Espin Pedrola6bbb8c2021-11-24 17:00:03 +01001/* Osmocom HNBLL Interface Templates, as per osmo-hnodeb/include/osmocom/hnodeb/hnb_prim.h
2 * (C) 2021 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de>
3 * All rights reserved.
4 * Author: Pau Espin Pedrol <pespin@sysmocom.de>
5 *
6 * Released under the terms of GNU General Public License, Version 2 or
7 * (at your option) any later version.
8 *
9 * SPDX-License-Identifier: GPL-2.0-or-later
10 */
11
12module HNBLLIF_Templates {
13
14import from General_Types all;
15import from Osmocom_Types all;
16import from HNBLLIF_Types all;
17
18/**********************
19 * CTL SAPI
20 **********************/
21template (value) HNBLLIF_Message ts_HNBLLIF_CTL_HELLO_REQ(template (value) HNBLLIF_Sapi sapi,
22 template (value) uint16_t api_version) := {
23 sapi := HNBLL_IF_SAPI_CTL,
24 u := {
25 ctl := {
26 prim := HNBLL_IF_CTL_MSG_HELLO,
27 u := {
28 hello := {
29 op := HNBLL_IF_OP_REQUEST,
30 u := {
31 req := {
32 sapi := sapi,
33 api_version := api_version
34 }
35 }
36 }
37 }
38 }
39 }
40}
41
42template (present) HNBLLIF_Message tr_HNBLLIF_CTL_HELLO_CNF(template (present) HNBLLIF_Sapi sapi := ?,
43 template (present) uint32_t api_version := ?) := {
44 sapi := HNBLL_IF_SAPI_CTL,
45 u := {
46 ctl := {
47 prim := HNBLL_IF_CTL_MSG_HELLO,
48 u := {
49 hello := {
50 op := HNBLL_IF_OP_CONFIRM,
51 u := {
52 cnf := {
53 sapi := sapi,
54 api_version := api_version
55 }
56 }
57 }
58 }
59 }
60 }
61}
62
63
64/**********************
65 * IUH SAPI
66 **********************/
67
68template (present) HNBLLIF_Message tr_HNBLLIF_IUH_CONFIGURE_IND(template (present) uint16_t mcc := ?,
69 template (present) uint16_t mnc := ?,
70 template (present) uint16_t cell_identity := ?,
71 template (present) uint16_t lac := ?,
72 template (present) uint8_t rac := ?,
73 template (present) uint16_t sac := ?,
74 template (present) uint16_t rnc_id := ?) := {
75 sapi := HNBLL_IF_SAPI_IUH,
76 u := {
77 iuh := {
78 prim := HNBLL_IF_IUH_MSG_CONFIGURE,
79 u := {
80 configure := {
81 op := HNBLL_IF_OP_INDICATION,
82 u := {
83 ind := {
84 mcc := mcc,
85 mnc := mnc,
86 cell_identity := cell_identity,
87 lac := lac,
88 rac := rac,
89 reserved := ?,
90 sac := sac,
91 rnc_id := rnc_id
92 }
93 }
94 }
95 }
96 }
97 }
98}
99
100template (value) HNBLLIF_Message ts_HNBLLIF_IUH_CONN_ESTABLISH_REQ(template (value) uint32_t context_id,
101 template (value) uint8_t domain,
102 template (value) uint8_t est_cause,
103 template (value) octetstring data) := {
104 sapi := HNBLL_IF_SAPI_IUH,
105 u := {
106 iuh := {
107 prim := HNBLL_IF_IUH_MSG_CONN_ESTABLISH,
108 u := {
109 conn_establish := {
110 op := HNBLL_IF_OP_REQUEST,
111 u := {
112 req := {
113 context_id := context_id,
114 domain := domain,
115 est_cause := est_cause,
116 reserved := 0,
117 data_len := lengthof(data),
118 data := data
119 }
120 }
121 }
122 }
123 }
124 }
125}
126
127template (present) HNBLLIF_Message tr_HNBLLIF_IUH_CONN_ESTABLISH_CNF(template (present) uint32_t context_id := ?,
128 template (present) uint8_t domain := ?,
129 template (present) uint8_t est_cause := ?) := {
130 sapi := HNBLL_IF_SAPI_IUH,
131 u := {
132 iuh := {
133 prim := HNBLL_IF_IUH_MSG_CONN_ESTABLISH,
134 u := {
135 conn_establish := {
136 op := HNBLL_IF_OP_CONFIRM,
137 u := {
138 cnf := {
139 context_id := context_id,
140 domain := domain,
141 est_cause := est_cause
142 }
143 }
144 }
145 }
146 }
147 }
148}
149
150template (value) HNBLLIF_Message ts_HNBLLIF_IUH_CONN_RELEASE_REQ(template (value) uint32_t context_id,
151 template (value) uint8_t domain,
152 template (value) uint8_t cause_type,
153 template (value) uint8_t cause,
154 template (value) octetstring data) := {
155 sapi := HNBLL_IF_SAPI_IUH,
156 u := {
157 iuh := {
158 prim := HNBLL_IF_IUH_MSG_CONN_RELEASE,
159 u := {
160 conn_release := {
161 op := HNBLL_IF_OP_REQUEST,
162 u := {
163 req := {
164 context_id := context_id,
165 domain := domain,
166 spare1 := 0,
167 cause_type := cause_type,
168 cause := cause,
169 data_len := lengthof(data),
170 data := data
171 }
172 }
173 }
174 }
175 }
176 }
177}
178
179template (present) HNBLLIF_Message tr_HNBLLIF_IUH_CONN_DATA_IND(template (present) uint32_t context_id := ?,
180 template (present) uint8_t domain := ?,
181 template (present) octetstring data := ?) := {
182 sapi := HNBLL_IF_SAPI_IUH,
183 u := {
184 iuh := {
185 prim := HNBLL_IF_IUH_MSG_CONN_DATA,
186 u := {
187 conn_data := {
188 op := HNBLL_IF_OP_INDICATION,
189 u := {
190 ind := {
191 context_id := context_id,
192 domain := domain,
193 spare1 := ?,
194 spare2 := ?,
195 data_len := ?,
196 data := data
197 }
198 }
199 }
200 }
201 }
202 }
203}
204
205template (value) HNBLLIF_Message ts_HNBLLIF_IUH_CONN_DATA_REQ(template (value) uint32_t context_id,
206 template (value) uint8_t domain,
207 template (value) octetstring data) := {
208 sapi := HNBLL_IF_SAPI_IUH,
209 u := {
210 iuh := {
211 prim := HNBLL_IF_IUH_MSG_CONN_DATA,
212 u := {
213 conn_data := {
214 op := HNBLL_IF_OP_REQUEST,
215 u := {
216 req := {
217 context_id := context_id,
218 domain := domain,
219 spare1 := 0,
220 spare2 := 0,
221 data_len := lengthof(data),
222 data := data
223 }
224 }
225 }
226 }
227 }
228 }
229}
230
231template (present) HNBLLIF_Message tr_HNBLLIF_IUH_UNITDATA_IND(template (present) octetstring data := ?) := {
232 sapi := HNBLL_IF_SAPI_IUH,
233 u := {
234 iuh := {
235 prim := HNBLL_IF_IUH_MSG_UNITDATA,
236 u := {
237 unitdata := {
238 op := HNBLL_IF_OP_INDICATION,
239 u := {
240 ind := {
241 data_len := ?,
242 data := data
243 }
244 }
245 }
246 }
247 }
248 }
249}
250
251} with { encode "RAW" variant "BYTEORDER(first)" };