osmo-ttcn3-hacks/library/HNBLLIF_Templates.ttcn

498 lines
11 KiB
Plaintext

/* Osmocom HNBLL Interface Templates, as per osmo-hnodeb/include/osmocom/hnodeb/hnb_prim.h
* (C) 2021 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de>
* All rights reserved.
* Author: Pau Espin Pedrol <pespin@sysmocom.de>
*
* Released under the terms of GNU General Public License, Version 2 or
* (at your option) any later version.
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
module HNBLLIF_Templates {
import from General_Types all;
import from Osmocom_Types all;
import from HNBLLIF_Types all;
/**********************
* CTL SAPI
**********************/
template (value) HNBLLIF_Message ts_HNBLLIF_CTL_HELLO_REQ(template (value) HNBLLIF_Sapi sapi,
template (value) uint16_t api_version) := {
sapi := HNBLL_IF_SAPI_CTL,
u := {
ctl := {
prim := HNBLL_IF_CTL_MSG_HELLO,
u := {
hello := {
op := HNBLL_IF_OP_REQUEST,
u := {
req := {
sapi := sapi,
api_version := api_version
}
}
}
}
}
}
}
template (present) HNBLLIF_Message tr_HNBLLIF_CTL_HELLO_CNF(template (present) HNBLLIF_Sapi sapi := ?,
template (present) uint32_t api_version := ?) := {
sapi := HNBLL_IF_SAPI_CTL,
u := {
ctl := {
prim := HNBLL_IF_CTL_MSG_HELLO,
u := {
hello := {
op := HNBLL_IF_OP_CONFIRM,
u := {
cnf := {
sapi := sapi,
api_version := api_version
}
}
}
}
}
}
}
/**********************
* IUH SAPI
**********************/
template (present) HNBLLIF_Message tr_HNBLLIF_IUH_CONFIGURE_IND(template (present) uint16_t mcc := ?,
template (present) uint16_t mnc := ?,
template (present) uint16_t cell_identity := ?,
template (present) uint16_t lac := ?,
template (present) uint8_t rac := ?,
template (present) uint16_t sac := ?,
template (present) uint16_t rnc_id := ?) := {
sapi := HNBLL_IF_SAPI_IUH,
u := {
iuh := {
prim := HNBLL_IF_IUH_MSG_CONFIGURE,
u := {
configure := {
op := HNBLL_IF_OP_INDICATION,
u := {
ind := {
mcc := mcc,
mnc := mnc,
cell_identity := cell_identity,
lac := lac,
rac := rac,
reserved := ?,
sac := sac,
rnc_id := rnc_id
}
}
}
}
}
}
}
template (value) HNBLLIF_Message ts_HNBLLIF_IUH_CONN_ESTABLISH_REQ(template (value) uint32_t context_id,
template (value) uint8_t domain,
template (value) uint8_t est_cause,
template (value) octetstring data) := {
sapi := HNBLL_IF_SAPI_IUH,
u := {
iuh := {
prim := HNBLL_IF_IUH_MSG_CONN_ESTABLISH,
u := {
conn_establish := {
op := HNBLL_IF_OP_REQUEST,
u := {
req := {
context_id := context_id,
domain := domain,
est_cause := est_cause,
reserved := 0,
data_len := lengthof(data),
data := data
}
}
}
}
}
}
}
template (present) HNBLLIF_Message tr_HNBLLIF_IUH_CONN_ESTABLISH_CNF(template (present) uint32_t context_id := ?,
template (present) uint8_t domain := ?,
template (present) uint8_t est_cause := ?) := {
sapi := HNBLL_IF_SAPI_IUH,
u := {
iuh := {
prim := HNBLL_IF_IUH_MSG_CONN_ESTABLISH,
u := {
conn_establish := {
op := HNBLL_IF_OP_CONFIRM,
u := {
cnf := {
context_id := context_id,
domain := domain,
est_cause := est_cause
}
}
}
}
}
}
}
template (value) HNBLLIF_Message ts_HNBLLIF_IUH_CONN_RELEASE_REQ(template (value) uint32_t context_id,
template (value) uint8_t domain,
template (value) uint8_t cause_type,
template (value) uint8_t cause,
template (value) octetstring data) := {
sapi := HNBLL_IF_SAPI_IUH,
u := {
iuh := {
prim := HNBLL_IF_IUH_MSG_CONN_RELEASE,
u := {
conn_release := {
op := HNBLL_IF_OP_REQUEST,
u := {
req := {
context_id := context_id,
domain := domain,
spare1 := 0,
cause_type := cause_type,
cause := cause,
data_len := lengthof(data),
data := data
}
}
}
}
}
}
}
template (present) HNBLLIF_Message tr_HNBLLIF_IUH_CONN_DATA_IND(template (present) uint32_t context_id := ?,
template (present) uint8_t domain := ?,
template (present) octetstring data := ?) := {
sapi := HNBLL_IF_SAPI_IUH,
u := {
iuh := {
prim := HNBLL_IF_IUH_MSG_CONN_DATA,
u := {
conn_data := {
op := HNBLL_IF_OP_INDICATION,
u := {
ind := {
context_id := context_id,
domain := domain,
spare1 := ?,
spare2 := ?,
data_len := ?,
data := data
}
}
}
}
}
}
}
template (value) HNBLLIF_Message ts_HNBLLIF_IUH_CONN_DATA_REQ(template (value) uint32_t context_id,
template (value) uint8_t domain,
template (value) octetstring data) := {
sapi := HNBLL_IF_SAPI_IUH,
u := {
iuh := {
prim := HNBLL_IF_IUH_MSG_CONN_DATA,
u := {
conn_data := {
op := HNBLL_IF_OP_REQUEST,
u := {
req := {
context_id := context_id,
domain := domain,
spare1 := 0,
spare2 := 0,
data_len := lengthof(data),
data := data
}
}
}
}
}
}
}
template (present) HNBLLIF_Message tr_HNBLLIF_IUH_UNITDATA_IND(template (present) octetstring data := ?) := {
sapi := HNBLL_IF_SAPI_IUH,
u := {
iuh := {
prim := HNBLL_IF_IUH_MSG_UNITDATA,
u := {
unitdata := {
op := HNBLL_IF_OP_INDICATION,
u := {
ind := {
data_len := ?,
data := data
}
}
}
}
}
}
}
/**********************
* AUDIO SAPI
**********************/
template (value) HNBLLIF_Message ts_HNBLLIF_AUDIO_CONN_ESTABLISH_REQ(template (value) uint32_t context_id,
template (value) uint16_t remote_rtp_port,
template (value) HNBLLIF_AddrType remote_rtp_address_type,
template (value) HNBLLIF_Addr remote_addr) := {
sapi := HNBLL_IF_SAPI_AUDIO,
u := {
audio := {
prim := HNBLL_IF_AUDIO_MSG_CONN_ESTABLISH,
u := {
conn_establish := {
op := HNBLL_IF_OP_REQUEST,
u := {
req := {
context_id := context_id,
remote_rtp_port := remote_rtp_port,
reserved := 0,
remote_rtp_address_type := remote_rtp_address_type,
remote_addr := remote_addr
}
}
}
}
}
}
}
template (present) HNBLLIF_Message tr_HNBLLIF_AUDIO_CONN_ESTABLISH_CNF(template (present) uint32_t context_id := ?,
template (present) uint8_t error_code := ?,
template (present) uint16_t local_rtp_port:= ?,
template (present) HNBLLIF_AddrType local_rtp_address_type := ?,
template (present) HNBLLIF_Addr local_addr := ?) := {
sapi := HNBLL_IF_SAPI_AUDIO,
u := {
audio := {
prim := HNBLL_IF_AUDIO_MSG_CONN_ESTABLISH,
u := {
conn_establish := {
op := HNBLL_IF_OP_CONFIRM,
u := {
cnf := {
context_id := context_id,
local_rtp_port := local_rtp_port,
error_code := error_code,
local_rtp_address_type := local_rtp_address_type,
local_addr := local_addr
}
}
}
}
}
}
}
template (value) HNBLLIF_Message ts_HNBLLIF_AUDIO_CONN_RELEASE_REQ(template (value) uint32_t context_id) := {
sapi := HNBLL_IF_SAPI_AUDIO,
u := {
audio := {
prim := HNBLL_IF_AUDIO_MSG_CONN_RELEASE,
u := {
conn_release := {
op := HNBLL_IF_OP_REQUEST,
u := {
req := {
context_id := context_id
}
}
}
}
}
}
}
template (present) HNBLLIF_Message tr_HNBLLIF_AUDIO_CONN_DATA_IND(template (present) uint32_t context_id := ?,
template (present) octetstring data := ?) := {
sapi := HNBLL_IF_SAPI_AUDIO,
u := {
audio := {
prim := HNBLL_IF_AUDIO_MSG_CONN_DATA,
u := {
conn_data := {
op := HNBLL_IF_OP_INDICATION,
u := {
ind := {
context_id := context_id,
data_len := ?,
data := data
}
}
}
}
}
}
}
template (value) HNBLLIF_Message ts_HNBLLIF_AUDIO_CONN_DATA_REQ(template (value) uint32_t context_id,
template (value) octetstring data) := {
sapi := HNBLL_IF_SAPI_AUDIO,
u := {
audio := {
prim := HNBLL_IF_AUDIO_MSG_CONN_DATA,
u := {
conn_data := {
op := HNBLL_IF_OP_REQUEST,
u := {
req := {
context_id := context_id,
data_len := lengthof(data),
data := data
}
}
}
}
}
}
}
/**********************
* GTP SAPI
**********************/
template (value) HNBLLIF_Message ts_HNBLLIF_GTP_CONN_ESTABLISH_REQ(template (value) uint32_t context_id,
template (value) uint32_t remote_tei,
template (value) HNBLLIF_AddrType remote_gtpu_address_type,
template (value) HNBLLIF_Addr remote_gtpu_addr) := {
sapi := HNBLL_IF_SAPI_GTP,
u := {
gtp := {
prim := HNBLL_IF_GTP_MSG_CONN_ESTABLISH,
u := {
conn_establish := {
op := HNBLL_IF_OP_REQUEST,
u := {
req := {
context_id := context_id,
remote_tei := remote_tei,
reserved := 0,
remote_gtpu_address_type := remote_gtpu_address_type,
remote_gtpu_addr := remote_gtpu_addr
}
}
}
}
}
}
}
template (present) HNBLLIF_Message tr_HNBLLIF_GTP_CONN_ESTABLISH_CNF(template (present) uint32_t context_id := ?,
template (present) uint32_t local_tei := ?,
template (present) uint8_t error_code := ?,
template (present) HNBLLIF_AddrType local_gtpu_address_type := ?,
template (present) HNBLLIF_Addr local_gtpu_addr := ?) := {
sapi := HNBLL_IF_SAPI_GTP,
u := {
gtp := {
prim := HNBLL_IF_GTP_MSG_CONN_ESTABLISH,
u := {
conn_establish := {
op := HNBLL_IF_OP_CONFIRM,
u := {
cnf := {
context_id := context_id,
local_tei := local_tei,
error_code := error_code,
local_gtpu_address_type := local_gtpu_address_type,
local_gtpu_addr := local_gtpu_addr
}
}
}
}
}
}
}
template (value) HNBLLIF_Message ts_HNBLLIF_GTP_CONN_RELEASE_REQ(template (value) uint32_t context_id,
template (value) uint32_t remote_tei) := {
sapi := HNBLL_IF_SAPI_GTP,
u := {
gtp := {
prim := HNBLL_IF_GTP_MSG_CONN_RELEASE,
u := {
conn_release := {
op := HNBLL_IF_OP_REQUEST,
u := {
req := {
context_id := context_id,
remote_tei := remote_tei
}
}
}
}
}
}
}
template (present) HNBLLIF_Message tr_HNBLLIF_GTP_CONN_DATA_IND(template (present) uint32_t context_id := ?,
template (present) uint32_t local_tei := ?,
template (present) octetstring data := ?) := {
sapi := HNBLL_IF_SAPI_GTP,
u := {
gtp := {
prim := HNBLL_IF_GTP_MSG_CONN_DATA,
u := {
conn_data := {
op := HNBLL_IF_OP_INDICATION,
u := {
ind := {
context_id := context_id,
local_tei := local_tei,
data_len := ?,
data := data
}
}
}
}
}
}
}
template (value) HNBLLIF_Message ts_HNBLLIF_GTP_CONN_DATA_REQ(template (value) uint32_t context_id,
template (value) uint32_t remote_tei,
template (value) octetstring data) := {
sapi := HNBLL_IF_SAPI_GTP,
u := {
gtp := {
prim := HNBLL_IF_GTP_MSG_CONN_DATA,
u := {
conn_data := {
op := HNBLL_IF_OP_REQUEST,
u := {
req := {
context_id := context_id,
remote_tei := remote_tei,
data_len := lengthof(data),
data := data
}
}
}
}
}
}
}
} with { encode "RAW" variant "BYTEORDER(first)" };