498 lines
11 KiB
Plaintext
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)" };
|