srsLTE/lib/include/srslte/asn1/liblte_s1ap.h

8875 lines
467 KiB
C

/*
* Copyright 2013-2019 Software Radio Systems Limited
*
* This file is part of srsLTE.
*
* srsLTE is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version.
*
* srsLTE is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* A copy of the GNU Affero General Public License can be found in
* the LICENSE file in the top-level directory of this distribution
* and at http://www.gnu.org/licenses/.
*
*/
#ifndef SRSLTE_LIBLTE_S1AP_H
#define SRSLTE_LIBLTE_S1AP_H
/*******************************************************************************
/* Warnings/Todos
********************************************************************************/
// Extensions are not yet handled correctly
// Dynamic Sequence Of types have max 32 elements to reduce memory footprint
// Container Lists are not yet handled correctly e.g. E-RAB-IE-ContainerList
/*******************************************************************************
/* INCLUDES
********************************************************************************/
#include "liblte_common.h"
/*******************************************************************************
LOGGING
*******************************************************************************/
typedef void (*log_handler_t)(void* ctx, char* str);
void liblte_log_register_handler(void* ctx, log_handler_t handler);
/*******************************************************************************
/* MAX defines
********************************************************************************/
#define LIBLTE_S1AP_MAXPRIVATEIES 65535
#define LIBLTE_S1AP_MAXPROTOCOLIES 65535
#define LIBLTE_S1AP_MAXNOOFE_RABS 256
#define LIBLTE_S1AP_MAXNOOFTACS 256
#define LIBLTE_S1AP_MAXNOOFBPLMNS 6
#define LIBLTE_S1AP_MAXNOOFEPLMNS 15
#define LIBLTE_S1AP_MAXNOOFFORBLACS 4096
#define LIBLTE_S1AP_MAXNOOFINDIVIDUALS1CONNECTIONSTORESET 256
#define LIBLTE_S1AP_MAXNOOFTAIFORWARNING 65535
#define LIBLTE_S1AP_MAXNOOFEMERGENCYAREAID 65535
#define LIBLTE_S1AP_MAXNOOFCELLINEAI 65535
#define LIBLTE_S1AP_MAXNOOFENBX2EXTTLAS 16
#define LIBLTE_S1AP_MAXNOOFRATS 8
#define LIBLTE_S1AP_MAXNOOFMMECS 256
#define LIBLTE_S1AP_MAXNOOFTAFORMDT 8
#define LIBLTE_S1AP_MAXNOOFCELLSFORRESTART 256
#define LIBLTE_S1AP_MAXNOOFRESTARTEMERGENCYAREAIDS 256
#define LIBLTE_S1AP_MAXNOOFCSGS 256
#define LIBLTE_S1AP_MAXNOOFERRORS 256
#define LIBLTE_S1AP_MAXNOOFEPLMNSPLUSONE 16
#define LIBLTE_S1AP_MAXNOOFCELLS 16
#define LIBLTE_S1AP_MAXNOOFCELLINTAI 65535
#define LIBLTE_S1AP_MAXNOOFENBX2GTPTLAS 16
#define LIBLTE_S1AP_MAXNOOFCELLIDFORMDT 32
#define LIBLTE_S1AP_MAXNOOFRESTARTTAIS 2048
#define LIBLTE_S1AP_MAXPROTOCOLEXTENSIONS 65535
#define LIBLTE_S1AP_MAXNOOFPLMNSPERMME 32
#define LIBLTE_S1AP_MAXNOOFCELLID 65535
#define LIBLTE_S1AP_MAXNOOFGROUPIDS 65535
#define LIBLTE_S1AP_MAXNOOFTAIS 256
#define LIBLTE_S1AP_MAXNOOFENBX2TLAS 2
#define LIBLTE_S1AP_MAXNOOFMDTPLMNS 16
#define LIBLTE_S1AP_MAXNOOFFORBTACS 4096
/*******************************************************************************
/* Elementary Procedures
********************************************************************************/
typedef enum {
LIBLTE_S1AP_PROC_ID_HANDOVERPREPARATION = 0,
LIBLTE_S1AP_PROC_ID_HANDOVERRESOURCEALLOCATION = 1,
LIBLTE_S1AP_PROC_ID_HANDOVERNOTIFICATION = 2,
LIBLTE_S1AP_PROC_ID_PATHSWITCHREQUEST = 3,
LIBLTE_S1AP_PROC_ID_HANDOVERCANCEL = 4,
LIBLTE_S1AP_PROC_ID_E_RABSETUP = 5,
LIBLTE_S1AP_PROC_ID_E_RABMODIFY = 6,
LIBLTE_S1AP_PROC_ID_E_RABRELEASE = 7,
LIBLTE_S1AP_PROC_ID_E_RABRELEASEINDICATION = 8,
LIBLTE_S1AP_PROC_ID_INITIALCONTEXTSETUP = 9,
LIBLTE_S1AP_PROC_ID_PAGING = 10,
LIBLTE_S1AP_PROC_ID_DOWNLINKNASTRANSPORT = 11,
LIBLTE_S1AP_PROC_ID_INITIALUEMESSAGE = 12,
LIBLTE_S1AP_PROC_ID_UPLINKNASTRANSPORT = 13,
LIBLTE_S1AP_PROC_ID_RESET = 14,
LIBLTE_S1AP_PROC_ID_ERRORINDICATION = 15,
LIBLTE_S1AP_PROC_ID_NASNONDELIVERYINDICATION = 16,
LIBLTE_S1AP_PROC_ID_S1SETUP = 17,
LIBLTE_S1AP_PROC_ID_UECONTEXTRELEASEREQUEST = 18,
LIBLTE_S1AP_PROC_ID_DOWNLINKS1CDMA2000TUNNELING = 19,
LIBLTE_S1AP_PROC_ID_UPLINKS1CDMA2000TUNNELING = 20,
LIBLTE_S1AP_PROC_ID_UECONTEXTMODIFICATION = 21,
LIBLTE_S1AP_PROC_ID_UECAPABILITYINFOINDICATION = 22,
LIBLTE_S1AP_PROC_ID_UECONTEXTRELEASE = 23,
LIBLTE_S1AP_PROC_ID_ENBSTATUSTRANSFER = 24,
LIBLTE_S1AP_PROC_ID_MMESTATUSTRANSFER = 25,
LIBLTE_S1AP_PROC_ID_DEACTIVATETRACE = 26,
LIBLTE_S1AP_PROC_ID_TRACESTART = 27,
LIBLTE_S1AP_PROC_ID_TRACEFAILUREINDICATION = 28,
LIBLTE_S1AP_PROC_ID_ENBCONFIGURATIONUPDATE = 29,
LIBLTE_S1AP_PROC_ID_MMECONFIGURATIONUPDATE = 30,
LIBLTE_S1AP_PROC_ID_LOCATIONREPORTINGCONTROL = 31,
LIBLTE_S1AP_PROC_ID_LOCATIONREPORTINGFAILUREINDICATION = 32,
LIBLTE_S1AP_PROC_ID_LOCATIONREPORT = 33,
LIBLTE_S1AP_PROC_ID_OVERLOADSTART = 34,
LIBLTE_S1AP_PROC_ID_OVERLOADSTOP = 35,
LIBLTE_S1AP_PROC_ID_WRITEREPLACEWARNING = 36,
LIBLTE_S1AP_PROC_ID_ENBDIRECTINFORMATIONTRANSFER = 37,
LIBLTE_S1AP_PROC_ID_MMEDIRECTINFORMATIONTRANSFER = 38,
LIBLTE_S1AP_PROC_ID_PRIVATEMESSAGE = 39,
LIBLTE_S1AP_PROC_ID_ENBCONFIGURATIONTRANSFER = 40,
LIBLTE_S1AP_PROC_ID_MMECONFIGURATIONTRANSFER = 41,
LIBLTE_S1AP_PROC_ID_CELLTRAFFICTRACE = 42,
LIBLTE_S1AP_PROC_ID_KILL = 43,
LIBLTE_S1AP_PROC_ID_DOWNLINKUEASSOCIATEDLPPATRANSPORT = 44,
LIBLTE_S1AP_PROC_ID_UPLINKUEASSOCIATEDLPPATRANSPORT = 45,
LIBLTE_S1AP_PROC_ID_DOWNLINKNONUEASSOCIATEDLPPATRANSPORT = 46,
LIBLTE_S1AP_PROC_ID_UPLINKNONUEASSOCIATEDLPPATRANSPORT = 47,
LIBLTE_S1AP_PROC_ID_UERADIOCAPABILITYMATCH = 48,
LIBLTE_S1AP_PROC_ID_PWSRESTARTINDICATION = 49,
LIBLTE_S1AP_PROC_N_ITEMS,
} LIBLTE_S1AP_PROC_ENUM;
static const char liblte_s1ap_proc_text[LIBLTE_S1AP_PROC_N_ITEMS][64] = {
"id-HandoverPreparation",
"id-HandoverResourceAllocation",
"id-HandoverNotification",
"id-PathSwitchRequest",
"id-HandoverCancel",
"id-E-RABSetup",
"id-E-RABModify",
"id-E-RABRelease",
"id-E-RABReleaseIndication",
"id-InitialContextSetup",
"id-Paging",
"id-downlinkNASTransport",
"id-initialUEMessage",
"id-uplinkNASTransport",
"id-Reset",
"id-ErrorIndication",
"id-NASNonDeliveryIndication",
"id-S1Setup",
"id-UEContextReleaseRequest",
"id-DownlinkS1cdma2000tunneling",
"id-UplinkS1cdma2000tunneling",
"id-UEContextModification",
"id-UECapabilityInfoIndication",
"id-UEContextRelease",
"id-eNBStatusTransfer",
"id-MMEStatusTransfer",
"id-DeactivateTrace",
"id-TraceStart",
"id-TraceFailureIndication",
"id-ENBConfigurationUpdate",
"id-MMEConfigurationUpdate",
"id-LocationReportingControl",
"id-LocationReportingFailureIndication",
"id-LocationReport",
"id-OverloadStart",
"id-OverloadStop",
"id-WriteReplaceWarning",
"id-eNBDirectInformationTransfer",
"id-MMEDirectInformationTransfer",
"id-PrivateMessage",
"id-eNBConfigurationTransfer",
"id-MMEConfigurationTransfer",
"id-CellTrafficTrace",
"id-Kill",
"id-downlinkUEAssociatedLPPaTransport",
"id-uplinkUEAssociatedLPPaTransport",
"id-downlinkNonUEAssociatedLPPaTransport",
"id-uplinkNonUEAssociatedLPPaTransport",
"id-UERadioCapabilityMatch",
"id-PWSRestartIndication",
};
/*******************************************************************************
/* ProtocolIE Ids
********************************************************************************/
typedef enum {
LIBLTE_S1AP_IE_ID_MME_UE_S1AP_ID = 0,
LIBLTE_S1AP_IE_ID_HANDOVERTYPE = 1,
LIBLTE_S1AP_IE_ID_CAUSE = 2,
LIBLTE_S1AP_IE_ID_SOURCEID = 3,
LIBLTE_S1AP_IE_ID_TARGETID = 4,
LIBLTE_S1AP_IE_ID_SPARE5 = 5,
LIBLTE_S1AP_IE_ID_SPARE6 = 6,
LIBLTE_S1AP_IE_ID_SPARE7 = 7,
LIBLTE_S1AP_IE_ID_ENB_UE_S1AP_ID = 8,
LIBLTE_S1AP_IE_ID_SPARE9 = 9,
LIBLTE_S1AP_IE_ID_SPARE10 = 10,
LIBLTE_S1AP_IE_ID_SPARE11 = 11,
LIBLTE_S1AP_IE_ID_E_RABSUBJECTTODATAFORWARDINGLIST = 12,
LIBLTE_S1AP_IE_ID_E_RABTORELEASELISTHOCMD = 13,
LIBLTE_S1AP_IE_ID_E_RABDATAFORWARDINGITEM = 14,
LIBLTE_S1AP_IE_ID_E_RABRELEASEITEMBEARERRELCOMP = 15,
LIBLTE_S1AP_IE_ID_E_RABTOBESETUPLISTBEARERSUREQ = 16,
LIBLTE_S1AP_IE_ID_E_RABTOBESETUPITEMBEARERSUREQ = 17,
LIBLTE_S1AP_IE_ID_E_RABADMITTEDLIST = 18,
LIBLTE_S1AP_IE_ID_E_RABFAILEDTOSETUPLISTHOREQACK = 19,
LIBLTE_S1AP_IE_ID_E_RABADMITTEDITEM = 20,
LIBLTE_S1AP_IE_ID_E_RABFAILEDTOSETUPITEMHOREQACK = 21,
LIBLTE_S1AP_IE_ID_E_RABTOBESWITCHEDDLLIST = 22,
LIBLTE_S1AP_IE_ID_E_RABTOBESWITCHEDDLITEM = 23,
LIBLTE_S1AP_IE_ID_E_RABTOBESETUPLISTCTXTSUREQ = 24,
LIBLTE_S1AP_IE_ID_TRACEACTIVATION = 25,
LIBLTE_S1AP_IE_ID_NAS_PDU = 26,
LIBLTE_S1AP_IE_ID_E_RABTOBESETUPITEMHOREQ = 27,
LIBLTE_S1AP_IE_ID_E_RABSETUPLISTBEARERSURES = 28,
LIBLTE_S1AP_IE_ID_E_RABFAILEDTOSETUPLISTBEARERSURES = 29,
LIBLTE_S1AP_IE_ID_E_RABTOBEMODIFIEDLISTBEARERMODREQ = 30,
LIBLTE_S1AP_IE_ID_E_RABMODIFYLISTBEARERMODRES = 31,
LIBLTE_S1AP_IE_ID_E_RABFAILEDTOMODIFYLIST = 32,
LIBLTE_S1AP_IE_ID_E_RABTOBERELEASEDLIST = 33,
LIBLTE_S1AP_IE_ID_E_RABFAILEDTORELEASELIST = 34,
LIBLTE_S1AP_IE_ID_E_RABITEM = 35,
LIBLTE_S1AP_IE_ID_E_RABTOBEMODIFIEDITEMBEARERMODREQ = 36,
LIBLTE_S1AP_IE_ID_E_RABMODIFYITEMBEARERMODRES = 37,
LIBLTE_S1AP_IE_ID_E_RABRELEASEITEM = 38,
LIBLTE_S1AP_IE_ID_E_RABSETUPITEMBEARERSURES = 39,
LIBLTE_S1AP_IE_ID_SECURITYCONTEXT = 40,
LIBLTE_S1AP_IE_ID_HANDOVERRESTRICTIONLIST = 41,
LIBLTE_S1AP_IE_ID_SPARE42 = 42,
LIBLTE_S1AP_IE_ID_UEPAGINGID = 43,
LIBLTE_S1AP_IE_ID_PAGINGDRX = 44,
LIBLTE_S1AP_IE_ID_SPARE45 = 45,
LIBLTE_S1AP_IE_ID_TAILIST = 46,
LIBLTE_S1AP_IE_ID_TAIITEM = 47,
LIBLTE_S1AP_IE_ID_E_RABFAILEDTOSETUPLISTCTXTSURES = 48,
LIBLTE_S1AP_IE_ID_E_RABRELEASEITEMHOCMD = 49,
LIBLTE_S1AP_IE_ID_E_RABSETUPITEMCTXTSURES = 50,
LIBLTE_S1AP_IE_ID_E_RABSETUPLISTCTXTSURES = 51,
LIBLTE_S1AP_IE_ID_E_RABTOBESETUPITEMCTXTSUREQ = 52,
LIBLTE_S1AP_IE_ID_E_RABTOBESETUPLISTHOREQ = 53,
LIBLTE_S1AP_IE_ID_SPARE54 = 54,
LIBLTE_S1AP_IE_ID_GERANTOLTEHOINFORMATIONRES = 55,
LIBLTE_S1AP_IE_ID_SPARE56 = 56,
LIBLTE_S1AP_IE_ID_UTRANTOLTEHOINFORMATIONRES = 57,
LIBLTE_S1AP_IE_ID_CRITICALITYDIAGNOSTICS = 58,
LIBLTE_S1AP_IE_ID_GLOBAL_ENB_ID = 59,
LIBLTE_S1AP_IE_ID_ENBNAME = 60,
LIBLTE_S1AP_IE_ID_MMENAME = 61,
LIBLTE_S1AP_IE_ID_SPARE62 = 62,
LIBLTE_S1AP_IE_ID_SERVEDPLMNS = 63,
LIBLTE_S1AP_IE_ID_SUPPORTEDTAS = 64,
LIBLTE_S1AP_IE_ID_TIMETOWAIT = 65,
LIBLTE_S1AP_IE_ID_UEAGGREGATEMAXIMUMBITRATE = 66,
LIBLTE_S1AP_IE_ID_TAI = 67,
LIBLTE_S1AP_IE_ID_SPARE68 = 68,
LIBLTE_S1AP_IE_ID_E_RABRELEASELISTBEARERRELCOMP = 69,
LIBLTE_S1AP_IE_ID_CDMA2000PDU = 70,
LIBLTE_S1AP_IE_ID_CDMA2000RATTYPE = 71,
LIBLTE_S1AP_IE_ID_CDMA2000SECTORID = 72,
LIBLTE_S1AP_IE_ID_SECURITYKEY = 73,
LIBLTE_S1AP_IE_ID_UERADIOCAPABILITY = 74,
LIBLTE_S1AP_IE_ID_GUMMEI_ID = 75,
LIBLTE_S1AP_IE_ID_SPARE76 = 76,
LIBLTE_S1AP_IE_ID_SPARE77 = 77,
LIBLTE_S1AP_IE_ID_E_RABINFORMATIONLISTITEM = 78,
LIBLTE_S1AP_IE_ID_DIRECT_FORWARDING_PATH_AVAILABILITY = 79,
LIBLTE_S1AP_IE_ID_UEIDENTITYINDEXVALUE = 80,
LIBLTE_S1AP_IE_ID_SPARE81 = 81,
LIBLTE_S1AP_IE_ID_SPARE82 = 82,
LIBLTE_S1AP_IE_ID_CDMA2000HOSTATUS = 83,
LIBLTE_S1AP_IE_ID_CDMA2000HOREQUIREDINDICATION = 84,
LIBLTE_S1AP_IE_ID_SPARE85 = 85,
LIBLTE_S1AP_IE_ID_E_UTRAN_TRACE_ID = 86,
LIBLTE_S1AP_IE_ID_RELATIVEMMECAPACITY = 87,
LIBLTE_S1AP_IE_ID_SOURCEMME_UE_S1AP_ID = 88,
LIBLTE_S1AP_IE_ID_BEARERS_SUBJECTTOSTATUSTRANSFER_ITEM = 89,
LIBLTE_S1AP_IE_ID_ENB_STATUSTRANSFER_TRANSPARENTCONTAINER = 90,
LIBLTE_S1AP_IE_ID_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEM = 91,
LIBLTE_S1AP_IE_ID_RESETTYPE = 92,
LIBLTE_S1AP_IE_ID_UE_ASSOCIATEDLOGICALS1_CONNECTIONLISTRESACK = 93,
LIBLTE_S1AP_IE_ID_E_RABTOBESWITCHEDULITEM = 94,
LIBLTE_S1AP_IE_ID_E_RABTOBESWITCHEDULLIST = 95,
LIBLTE_S1AP_IE_ID_S_TMSI = 96,
LIBLTE_S1AP_IE_ID_CDMA2000ONEXRAND = 97,
LIBLTE_S1AP_IE_ID_REQUESTTYPE = 98,
LIBLTE_S1AP_IE_ID_UE_S1AP_IDS = 99,
LIBLTE_S1AP_IE_ID_EUTRAN_CGI = 100,
LIBLTE_S1AP_IE_ID_OVERLOADRESPONSE = 101,
LIBLTE_S1AP_IE_ID_CDMA2000ONEXSRVCCINFO = 102,
LIBLTE_S1AP_IE_ID_E_RABFAILEDTOBERELEASEDLIST = 103,
LIBLTE_S1AP_IE_ID_SOURCE_TOTARGET_TRANSPARENTCONTAINER = 104,
LIBLTE_S1AP_IE_ID_SERVEDGUMMEIS = 105,
LIBLTE_S1AP_IE_ID_SUBSCRIBERPROFILEIDFORRFP = 106,
LIBLTE_S1AP_IE_ID_UESECURITYCAPABILITIES = 107,
LIBLTE_S1AP_IE_ID_CSFALLBACKINDICATOR = 108,
LIBLTE_S1AP_IE_ID_CNDOMAIN = 109,
LIBLTE_S1AP_IE_ID_E_RABRELEASEDLIST = 110,
LIBLTE_S1AP_IE_ID_MESSAGEIDENTIFIER = 111,
LIBLTE_S1AP_IE_ID_SERIALNUMBER = 112,
LIBLTE_S1AP_IE_ID_WARNINGAREALIST = 113,
LIBLTE_S1AP_IE_ID_REPETITIONPERIOD = 114,
LIBLTE_S1AP_IE_ID_NUMBEROFBROADCASTREQUEST = 115,
LIBLTE_S1AP_IE_ID_WARNINGTYPE = 116,
LIBLTE_S1AP_IE_ID_WARNINGSECURITYINFO = 117,
LIBLTE_S1AP_IE_ID_DATACODINGSCHEME = 118,
LIBLTE_S1AP_IE_ID_WARNINGMESSAGECONTENTS = 119,
LIBLTE_S1AP_IE_ID_BROADCASTCOMPLETEDAREALIST = 120,
LIBLTE_S1AP_IE_ID_INTER_SYSTEMINFORMATIONTRANSFERTYPEEDT = 121,
LIBLTE_S1AP_IE_ID_INTER_SYSTEMINFORMATIONTRANSFERTYPEMDT = 122,
LIBLTE_S1AP_IE_ID_TARGET_TOSOURCE_TRANSPARENTCONTAINER = 123,
LIBLTE_S1AP_IE_ID_SRVCCOPERATIONPOSSIBLE = 124,
LIBLTE_S1AP_IE_ID_SRVCCHOINDICATION = 125,
LIBLTE_S1AP_IE_ID_NAS_DOWNLINKCOUNT = 126,
LIBLTE_S1AP_IE_ID_CSG_ID = 127,
LIBLTE_S1AP_IE_ID_CSG_IDLIST = 128,
LIBLTE_S1AP_IE_ID_SONCONFIGURATIONTRANSFERECT = 129,
LIBLTE_S1AP_IE_ID_SONCONFIGURATIONTRANSFERMCT = 130,
LIBLTE_S1AP_IE_ID_TRACECOLLECTIONENTITYIPADDRESS = 131,
LIBLTE_S1AP_IE_ID_MSCLASSMARK2 = 132,
LIBLTE_S1AP_IE_ID_MSCLASSMARK3 = 133,
LIBLTE_S1AP_IE_ID_RRC_ESTABLISHMENT_CAUSE = 134,
LIBLTE_S1AP_IE_ID_NASSECURITYPARAMETERSFROME_UTRAN = 135,
LIBLTE_S1AP_IE_ID_NASSECURITYPARAMETERSTOE_UTRAN = 136,
LIBLTE_S1AP_IE_ID_DEFAULTPAGINGDRX = 137,
LIBLTE_S1AP_IE_ID_SOURCE_TOTARGET_TRANSPARENTCONTAINER_SECONDARY = 138,
LIBLTE_S1AP_IE_ID_TARGET_TOSOURCE_TRANSPARENTCONTAINER_SECONDARY = 139,
LIBLTE_S1AP_IE_ID_EUTRANROUNDTRIPDELAYESTIMATIONINFO = 140,
LIBLTE_S1AP_IE_ID_BROADCASTCANCELLEDAREALIST = 141,
LIBLTE_S1AP_IE_ID_CONCURRENTWARNINGMESSAGEINDICATOR = 142,
LIBLTE_S1AP_IE_ID_DATA_FORWARDING_NOT_POSSIBLE = 143,
LIBLTE_S1AP_IE_ID_EXTENDEDREPETITIONPERIOD = 144,
LIBLTE_S1AP_IE_ID_CELLACCESSMODE = 145,
LIBLTE_S1AP_IE_ID_CSGMEMBERSHIPSTATUS = 146,
LIBLTE_S1AP_IE_ID_LPPA_PDU = 147,
LIBLTE_S1AP_IE_ID_ROUTING_ID = 148,
LIBLTE_S1AP_IE_ID_TIME_SYNCHRONIZATION_INFO = 149,
LIBLTE_S1AP_IE_ID_PS_SERVICENOTAVAILABLE = 150,
LIBLTE_S1AP_IE_ID_PAGINGPRIORITY = 151,
LIBLTE_S1AP_IE_ID_X2TNLCONFIGURATIONINFO = 152,
LIBLTE_S1AP_IE_ID_ENBX2EXTENDEDTRANSPORTLAYERADDRESSES = 153,
LIBLTE_S1AP_IE_ID_GUMMEILIST = 154,
LIBLTE_S1AP_IE_ID_GW_TRANSPORTLAYERADDRESS = 155,
LIBLTE_S1AP_IE_ID_CORRELATION_ID = 156,
LIBLTE_S1AP_IE_ID_SOURCEMME_GUMMEI = 157,
LIBLTE_S1AP_IE_ID_MME_UE_S1AP_ID_2 = 158,
LIBLTE_S1AP_IE_ID_REGISTEREDLAI = 159,
LIBLTE_S1AP_IE_ID_RELAYNODE_INDICATOR = 160,
LIBLTE_S1AP_IE_ID_TRAFFICLOADREDUCTIONINDICATION = 161,
LIBLTE_S1AP_IE_ID_MDTCONFIGURATION = 162,
LIBLTE_S1AP_IE_ID_MMERELAYSUPPORTINDICATOR = 163,
LIBLTE_S1AP_IE_ID_GWCONTEXTRELEASEINDICATION = 164,
LIBLTE_S1AP_IE_ID_MANAGEMENTBASEDMDTALLOWED = 165,
LIBLTE_S1AP_IE_ID_PRIVACYINDICATOR = 166,
LIBLTE_S1AP_IE_ID_TIME_UE_STAYEDINCELL_ENHANCEDGRANULARITY = 167,
LIBLTE_S1AP_IE_ID_HO_CAUSE = 168,
LIBLTE_S1AP_IE_ID_VOICESUPPORTMATCHINDICATOR = 169,
LIBLTE_S1AP_IE_ID_GUMMEITYPE = 170,
LIBLTE_S1AP_IE_ID_M3CONFIGURATION = 171,
LIBLTE_S1AP_IE_ID_M4CONFIGURATION = 172,
LIBLTE_S1AP_IE_ID_M5CONFIGURATION = 173,
LIBLTE_S1AP_IE_ID_MDT_LOCATION_INFO = 174,
LIBLTE_S1AP_IE_ID_MOBILITYINFORMATION = 175,
LIBLTE_S1AP_IE_ID_TUNNEL_INFORMATION_FOR_BBF = 176,
LIBLTE_S1AP_IE_ID_MANAGEMENTBASEDMDTPLMNLIST = 177,
LIBLTE_S1AP_IE_ID_SIGNALLINGBASEDMDTPLMNLIST = 178,
LIBLTE_S1AP_IE_ID_ULCOUNTVALUEEXTENDED = 179,
LIBLTE_S1AP_IE_ID_DLCOUNTVALUEEXTENDED = 180,
LIBLTE_S1AP_IE_ID_RECEIVESTATUSOFULPDCPSDUSEXTENDED = 181,
LIBLTE_S1AP_IE_ID_ECGILISTFORRESTART = 182,
LIBLTE_S1AP_IE_ID_SIPTO_CORRELATION_ID = 183,
LIBLTE_S1AP_IE_ID_SIPTO_L_GW_TRANSPORTLAYERADDRESS = 184,
LIBLTE_S1AP_IE_ID_TRANSPORTINFORMATION = 185,
LIBLTE_S1AP_IE_ID_LHN_ID = 186,
LIBLTE_S1AP_IE_ID_ADDITIONALCSFALLBACKINDICATOR = 187,
LIBLTE_S1AP_IE_ID_TAILISTFORRESTART = 188,
LIBLTE_S1AP_IE_ID_USERLOCATIONINFORMATION = 189,
LIBLTE_S1AP_IE_ID_EMERGENCYAREAIDLISTFORRESTART = 190,
LIBLTE_S1AP_IE_ID_KILLALLWARNINGMESSAGES = 191,
LIBLTE_S1AP_IE_N_ITEMS,
} LIBLTE_S1AP_IE_ENUM;
static const char liblte_s1ap_ie_text[LIBLTE_S1AP_IE_N_ITEMS][64] = {
"id-MME-UE-S1AP-ID",
"id-HandoverType",
"id-Cause",
"id-SourceID",
"id-TargetID",
"id-spare5",
"id-spare6",
"id-spare7",
"id-eNB-UE-S1AP-ID",
"id-spare9",
"id-spare10",
"id-spare11",
"id-E-RABSubjecttoDataForwardingList",
"id-E-RABtoReleaseListHOCmd",
"id-E-RABDataForwardingItem",
"id-E-RABReleaseItemBearerRelComp",
"id-E-RABToBeSetupListBearerSUReq",
"id-E-RABToBeSetupItemBearerSUReq",
"id-E-RABAdmittedList",
"id-E-RABFailedToSetupListHOReqAck",
"id-E-RABAdmittedItem",
"id-E-RABFailedtoSetupItemHOReqAck",
"id-E-RABToBeSwitchedDLList",
"id-E-RABToBeSwitchedDLItem",
"id-E-RABToBeSetupListCtxtSUReq",
"id-TraceActivation",
"id-NAS-PDU",
"id-E-RABToBeSetupItemHOReq",
"id-E-RABSetupListBearerSURes",
"id-E-RABFailedToSetupListBearerSURes",
"id-E-RABToBeModifiedListBearerModReq",
"id-E-RABModifyListBearerModRes",
"id-E-RABFailedToModifyList",
"id-E-RABToBeReleasedList",
"id-E-RABFailedToReleaseList",
"id-E-RABItem",
"id-E-RABToBeModifiedItemBearerModReq",
"id-E-RABModifyItemBearerModRes",
"id-E-RABReleaseItem",
"id-E-RABSetupItemBearerSURes",
"id-SecurityContext",
"id-HandoverRestrictionList",
"id-spare42",
"id-UEPagingID",
"id-pagingDRX",
"id-spare45",
"id-TAIList",
"id-TAIItem",
"id-E-RABFailedToSetupListCtxtSURes",
"id-E-RABReleaseItemHOCmd",
"id-E-RABSetupItemCtxtSURes",
"id-E-RABSetupListCtxtSURes",
"id-E-RABToBeSetupItemCtxtSUReq",
"id-E-RABToBeSetupListHOReq",
"id-spare54",
"id-GERANtoLTEHOInformationRes",
"id-spare56",
"id-UTRANtoLTEHOInformationRes",
"id-CriticalityDiagnostics",
"id-Global-ENB-ID",
"id-eNBname",
"id-MMEname",
"id-spare62",
"id-ServedPLMNs",
"id-SupportedTAs",
"id-TimeToWait",
"id-uEaggregateMaximumBitrate",
"id-TAI",
"id-spare68",
"id-E-RABReleaseListBearerRelComp",
"id-cdma2000PDU",
"id-cdma2000RATType",
"id-cdma2000SectorID",
"id-SecurityKey",
"id-UERadioCapability",
"id-GUMMEI-ID",
"id-spare76",
"id-spare77",
"id-E-RABInformationListItem",
"id-Direct-Forwarding-Path-Availability",
"id-UEIdentityIndexValue",
"id-spare81",
"id-spare82",
"id-cdma2000HOStatus",
"id-cdma2000HORequiredIndication",
"id-spare85",
"id-E-UTRAN-Trace-ID",
"id-RelativeMMECapacity",
"id-SourceMME-UE-S1AP-ID",
"id-Bearers-SubjectToStatusTransfer-Item",
"id-eNB-StatusTransfer-TransparentContainer",
"id-UE-associatedLogicalS1-ConnectionItem",
"id-ResetType",
"id-UE-associatedLogicalS1-ConnectionListResAck",
"id-E-RABToBeSwitchedULItem",
"id-E-RABToBeSwitchedULList",
"id-S-TMSI",
"id-cdma2000OneXRAND",
"id-RequestType",
"id-UE-S1AP-IDs",
"id-EUTRAN-CGI",
"id-OverloadResponse",
"id-cdma2000OneXSRVCCInfo",
"id-E-RABFailedToBeReleasedList",
"id-Source-ToTarget-TransparentContainer",
"id-ServedGUMMEIs",
"id-SubscriberProfileIDforRFP",
"id-UESecurityCapabilities",
"id-CSFallbackIndicator",
"id-CNDomain",
"id-E-RABReleasedList",
"id-MessageIdentifier",
"id-SerialNumber",
"id-WarningAreaList",
"id-RepetitionPeriod",
"id-NumberofBroadcastRequest",
"id-WarningType",
"id-WarningSecurityInfo",
"id-DataCodingScheme",
"id-WarningMessageContents",
"id-BroadcastCompletedAreaList",
"id-Inter-SystemInformationTransferTypeEDT",
"id-Inter-SystemInformationTransferTypeMDT",
"id-Target-ToSource-TransparentContainer",
"id-SRVCCOperationPossible",
"id-SRVCCHOIndication",
"id-NAS-DownlinkCount",
"id-CSG-Id",
"id-CSG-IdList",
"id-SONConfigurationTransferECT",
"id-SONConfigurationTransferMCT",
"id-TraceCollectionEntityIPAddress",
"id-MSClassmark2",
"id-MSClassmark3",
"id-RRC-Establishment-Cause",
"id-NASSecurityParametersfromE-UTRAN",
"id-NASSecurityParameterstoE-UTRAN",
"id-DefaultPagingDRX",
"id-Source-ToTarget-TransparentContainer-Secondary",
"id-Target-ToSource-TransparentContainer-Secondary",
"id-EUTRANRoundTripDelayEstimationInfo",
"id-BroadcastCancelledAreaList",
"id-ConcurrentWarningMessageIndicator",
"id-Data-Forwarding-Not-Possible",
"id-ExtendedRepetitionPeriod",
"id-CellAccessMode",
"id-CSGMembershipStatus",
"id-LPPa-PDU",
"id-Routing-ID",
"id-Time-Synchronization-Info",
"id-PS-ServiceNotAvailable",
"id-PagingPriority",
"id-x2TNLConfigurationInfo",
"id-eNBX2ExtendedTransportLayerAddresses",
"id-GUMMEIList",
"id-GW-TransportLayerAddress",
"id-Correlation-ID",
"id-SourceMME-GUMMEI",
"id-MME-UE-S1AP-ID-2",
"id-RegisteredLAI",
"id-RelayNode-Indicator",
"id-TrafficLoadReductionIndication",
"id-MDTConfiguration",
"id-MMERelaySupportIndicator",
"id-GWContextReleaseIndication",
"id-ManagementBasedMDTAllowed",
"id-PrivacyIndicator",
"id-Time-UE-StayedInCell-EnhancedGranularity",
"id-HO-Cause",
"id-VoiceSupportMatchIndicator",
"id-GUMMEIType",
"id-M3Configuration",
"id-M4Configuration",
"id-M5Configuration",
"id-MDT-Location-Info",
"id-MobilityInformation",
"id-Tunnel-Information-for-BBF",
"id-ManagementBasedMDTPLMNList",
"id-SignallingBasedMDTPLMNList",
"id-ULCOUNTValueExtended",
"id-DLCOUNTValueExtended",
"id-ReceiveStatusOfULPDCPSDUsExtended",
"id-ECGIListForRestart",
"id-SIPTO-Correlation-ID",
"id-SIPTO-L-GW-TransportLayerAddress",
"id-TransportInformation",
"id-LHN-ID",
"id-AdditionalCSFallbackIndicator",
"id-TAIListForRestart",
"id-UserLocationInformation",
"id-EmergencyAreaIDListForRestart",
"id-KillAllWarningMessages",
};
/*******************************************************************************
/* ProtocolIE Criticality ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_CRITICALITY_REJECT,
LIBLTE_S1AP_CRITICALITY_IGNORE,
LIBLTE_S1AP_CRITICALITY_NOTIFY,
LIBLTE_S1AP_CRITICALITY_N_ITEMS,
} LIBLTE_S1AP_CRITICALITY_ENUM;
static const char liblte_s1ap_criticality_text[LIBLTE_S1AP_CRITICALITY_N_ITEMS][80] = {
"reject",
"ignore",
"notify",
};
LIBLTE_ERROR_ENUM liblte_s1ap_pack_criticality(LIBLTE_S1AP_CRITICALITY_ENUM* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_criticality(uint8_t** ptr, LIBLTE_S1AP_CRITICALITY_ENUM* ie);
/*******************************************************************************
/* ProtocolIE local INTEGER
********************************************************************************/
typedef struct {
uint16_t local;
} LIBLTE_S1AP_LOCAL_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_local(LIBLTE_S1AP_LOCAL_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_local(uint8_t** ptr, LIBLTE_S1AP_LOCAL_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE PrivateIE_ID CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_PRIVATEIE_ID_CHOICE_LOCAL,
LIBLTE_S1AP_PRIVATEIE_ID_CHOICE_GLOBAL,
LIBLTE_S1AP_PRIVATEIE_ID_CHOICE_N_ITEMS,
} LIBLTE_S1AP_PRIVATEIE_ID_CHOICE_ENUM;
static const char liblte_s1ap_privateie_id_choice_text[LIBLTE_S1AP_PRIVATEIE_ID_CHOICE_N_ITEMS][50] = {
"local",
"global",
};
typedef union {
LIBLTE_S1AP_LOCAL_STRUCT local;
LIBLTE_ASN1_OID_STRUCT global;
} LIBLTE_S1AP_PRIVATEIE_ID_CHOICE_UNION;
typedef struct {
LIBLTE_S1AP_PRIVATEIE_ID_CHOICE_UNION choice;
LIBLTE_S1AP_PRIVATEIE_ID_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_PRIVATEIE_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_privateie_id(LIBLTE_S1AP_PRIVATEIE_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_privateie_id(uint8_t** ptr, LIBLTE_S1AP_PRIVATEIE_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ProtocolExtensionID INTEGER
********************************************************************************/
typedef struct {
uint16_t ProtocolExtensionID;
} LIBLTE_S1AP_PROTOCOLEXTENSIONID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_protocolextensionid(LIBLTE_S1AP_PROTOCOLEXTENSIONID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_protocolextensionid(uint8_t** ptr, LIBLTE_S1AP_PROTOCOLEXTENSIONID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TriggeringMessage ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_TRIGGERINGMESSAGE_INITIATING_MESSAGE,
LIBLTE_S1AP_TRIGGERINGMESSAGE_SUCCESSFUL_OUTCOME,
LIBLTE_S1AP_TRIGGERINGMESSAGE_UNSUCCESSFULL_OUTCOME,
LIBLTE_S1AP_TRIGGERINGMESSAGE_N_ITEMS,
} LIBLTE_S1AP_TRIGGERINGMESSAGE_ENUM;
static const char liblte_s1ap_triggeringmessage_text[LIBLTE_S1AP_TRIGGERINGMESSAGE_N_ITEMS][80] = {
"initiating-message",
"successful-outcome",
"unsuccessfull-outcome",
};
LIBLTE_ERROR_ENUM liblte_s1ap_pack_triggeringmessage(LIBLTE_S1AP_TRIGGERINGMESSAGE_ENUM* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_triggeringmessage(uint8_t** ptr, LIBLTE_S1AP_TRIGGERINGMESSAGE_ENUM* ie);
/*******************************************************************************
/* ProtocolIE Presence ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_PRESENCE_OPTIONAL,
LIBLTE_S1AP_PRESENCE_CONDITIONAL,
LIBLTE_S1AP_PRESENCE_MANDATORY,
LIBLTE_S1AP_PRESENCE_N_ITEMS,
} LIBLTE_S1AP_PRESENCE_ENUM;
static const char liblte_s1ap_presence_text[LIBLTE_S1AP_PRESENCE_N_ITEMS][80] = {
"optional",
"conditional",
"mandatory",
};
LIBLTE_ERROR_ENUM liblte_s1ap_pack_presence(LIBLTE_S1AP_PRESENCE_ENUM* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_presence(uint8_t** ptr, LIBLTE_S1AP_PRESENCE_ENUM* ie);
/*******************************************************************************
/* ProtocolIE ProtocolIE_ID INTEGER
********************************************************************************/
typedef struct {
uint16_t ProtocolIE_ID;
} LIBLTE_S1AP_PROTOCOLIE_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_protocolie_id(LIBLTE_S1AP_PROTOCOLIE_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_protocolie_id(uint8_t** ptr, LIBLTE_S1AP_PROTOCOLIE_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ProcedureCode INTEGER
********************************************************************************/
typedef struct {
uint8_t ProcedureCode;
} LIBLTE_S1AP_PROCEDURECODE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_procedurecode(LIBLTE_S1AP_PROCEDURECODE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_procedurecode(uint8_t** ptr, LIBLTE_S1AP_PROCEDURECODE_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ProtocolIE_Field SEQUENCE
********************************************************************************/
typedef struct {
LIBLTE_S1AP_PROTOCOLIE_ID_STRUCT id;
LIBLTE_S1AP_CRITICALITY_ENUM criticality;
LIBLTE_ASN1_OPEN_TYPE_STRUCT value;
} LIBLTE_S1AP_PROTOCOLIE_FIELD_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_protocolie_field(LIBLTE_S1AP_PROTOCOLIE_FIELD_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_protocolie_field(uint8_t** ptr, LIBLTE_S1AP_PROTOCOLIE_FIELD_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ProtocolExtensionField SEQUENCE
********************************************************************************/
typedef struct {
LIBLTE_S1AP_PROTOCOLEXTENSIONID_STRUCT id;
LIBLTE_S1AP_CRITICALITY_ENUM criticality;
LIBLTE_ASN1_OPEN_TYPE_STRUCT extensionValue;
} LIBLTE_S1AP_PROTOCOLEXTENSIONFIELD_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_protocolextensionfield(LIBLTE_S1AP_PROTOCOLEXTENSIONFIELD_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_protocolextensionfield(uint8_t** ptr,
LIBLTE_S1AP_PROTOCOLEXTENSIONFIELD_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ProtocolIE_FieldPair SEQUENCE
********************************************************************************/
typedef struct {
LIBLTE_S1AP_PROTOCOLIE_ID_STRUCT id;
LIBLTE_S1AP_CRITICALITY_ENUM firstCriticality;
LIBLTE_ASN1_OPEN_TYPE_STRUCT firstValue;
LIBLTE_S1AP_CRITICALITY_ENUM secondCriticality;
LIBLTE_ASN1_OPEN_TYPE_STRUCT secondValue;
} LIBLTE_S1AP_PROTOCOLIE_FIELDPAIR_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_protocolie_fieldpair(LIBLTE_S1AP_PROTOCOLIE_FIELDPAIR_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_protocolie_fieldpair(uint8_t** ptr, LIBLTE_S1AP_PROTOCOLIE_FIELDPAIR_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ProtocolExtensionContainer DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_PROTOCOLEXTENSIONFIELD_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_protocolextensioncontainer(LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_protocolextensioncontainer(uint8_t** ptr,
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ProtocolIE_ContainerPair DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:0, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_PROTOCOLIE_FIELDPAIR_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_PROTOCOLIE_CONTAINERPAIR_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_protocolie_containerpair(LIBLTE_S1AP_PROTOCOLIE_CONTAINERPAIR_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_protocolie_containerpair(uint8_t** ptr,
LIBLTE_S1AP_PROTOCOLIE_CONTAINERPAIR_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ProtocolIE_ContainerPairList DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:None, ub:None
typedef struct {
uint32_t len;
LIBLTE_S1AP_PROTOCOLIE_CONTAINERPAIR_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_PROTOCOLIE_CONTAINERPAIRLIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_protocolie_containerpairlist(LIBLTE_S1AP_PROTOCOLIE_CONTAINERPAIRLIST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_protocolie_containerpairlist(uint8_t** ptr,
LIBLTE_S1AP_PROTOCOLIE_CONTAINERPAIRLIST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE PrivateIE_Field SEQUENCE
********************************************************************************/
typedef struct {
LIBLTE_S1AP_PRIVATEIE_ID_STRUCT id;
LIBLTE_S1AP_CRITICALITY_ENUM criticality;
LIBLTE_ASN1_OPEN_TYPE_STRUCT value;
} LIBLTE_S1AP_PRIVATEIE_FIELD_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_privateie_field(LIBLTE_S1AP_PRIVATEIE_FIELD_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_privateie_field(uint8_t** ptr, LIBLTE_S1AP_PRIVATEIE_FIELD_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ProtocolIE_SingleContainer SEQUENCE
********************************************************************************/
typedef struct {
LIBLTE_S1AP_PROTOCOLIE_ID_STRUCT id;
LIBLTE_S1AP_CRITICALITY_ENUM criticality;
LIBLTE_ASN1_OPEN_TYPE_STRUCT value;
} LIBLTE_S1AP_PROTOCOLIE_SINGLECONTAINER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_protocolie_singlecontainer(LIBLTE_S1AP_PROTOCOLIE_SINGLECONTAINER_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_protocolie_singlecontainer(uint8_t** ptr,
LIBLTE_S1AP_PROTOCOLIE_SINGLECONTAINER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE PrivateIE_Container DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_PRIVATEIE_FIELD_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_PRIVATEIE_CONTAINER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_privateie_container(LIBLTE_S1AP_PRIVATEIE_CONTAINER_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_privateie_container(uint8_t** ptr, LIBLTE_S1AP_PRIVATEIE_CONTAINER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE BitRate INTEGER
********************************************************************************/
typedef struct {
uint32_t BitRate;
} LIBLTE_S1AP_BITRATE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_bitrate(LIBLTE_S1AP_BITRATE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_bitrate(uint8_t** ptr, LIBLTE_S1AP_BITRATE_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CauseMisc ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_CAUSEMISC_CONTROL_PROCESSING_OVERLOAD,
LIBLTE_S1AP_CAUSEMISC_NOT_ENOUGH_USER_PLANE_PROCESSING_RESOURCES,
LIBLTE_S1AP_CAUSEMISC_HARDWARE_FAILURE,
LIBLTE_S1AP_CAUSEMISC_OM_INTERVENTION,
LIBLTE_S1AP_CAUSEMISC_UNSPECIFIED,
LIBLTE_S1AP_CAUSEMISC_UNKNOWN_PLMN,
LIBLTE_S1AP_CAUSEMISC_N_ITEMS,
} LIBLTE_S1AP_CAUSEMISC_ENUM;
static const char liblte_s1ap_causemisc_text[LIBLTE_S1AP_CAUSEMISC_N_ITEMS][80] = {
"control-processing-overload",
"not-enough-user-plane-processing-resources",
"hardware-failure",
"om-intervention",
"unspecified",
"unknown-PLMN",
};
typedef struct {
bool ext;
LIBLTE_S1AP_CAUSEMISC_ENUM e;
} LIBLTE_S1AP_CAUSEMISC_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_causemisc(LIBLTE_S1AP_CAUSEMISC_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_causemisc(uint8_t** ptr, LIBLTE_S1AP_CAUSEMISC_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE CauseRadioNetwork ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_CAUSERADIONETWORK_UNSPECIFIED,
LIBLTE_S1AP_CAUSERADIONETWORK_TX2RELOCOVERALL_EXPIRY,
LIBLTE_S1AP_CAUSERADIONETWORK_SUCCESSFUL_HANDOVER,
LIBLTE_S1AP_CAUSERADIONETWORK_RELEASE_DUE_TO_EUTRAN_GENERATED_REASON,
LIBLTE_S1AP_CAUSERADIONETWORK_HANDOVER_CANCELLED,
LIBLTE_S1AP_CAUSERADIONETWORK_PARTIAL_HANDOVER,
LIBLTE_S1AP_CAUSERADIONETWORK_HO_FAILURE_IN_TARGET_EPC_ENB_OR_TARGET_SYSTEM,
LIBLTE_S1AP_CAUSERADIONETWORK_HO_TARGET_NOT_ALLOWED,
LIBLTE_S1AP_CAUSERADIONETWORK_TS1RELOCOVERALL_EXPIRY,
LIBLTE_S1AP_CAUSERADIONETWORK_TS1RELOCPREP_EXPIRY,
LIBLTE_S1AP_CAUSERADIONETWORK_CELL_NOT_AVAILABLE,
LIBLTE_S1AP_CAUSERADIONETWORK_UNKNOWN_TARGETID,
LIBLTE_S1AP_CAUSERADIONETWORK_NO_RADIO_RESOURCES_AVAILABLE_IN_TARGET_CELL,
LIBLTE_S1AP_CAUSERADIONETWORK_UNKNOWN_MME_UE_S1AP_ID,
LIBLTE_S1AP_CAUSERADIONETWORK_UNKNOWN_ENB_UE_S1AP_ID,
LIBLTE_S1AP_CAUSERADIONETWORK_UNKNOWN_PAIR_UE_S1AP_ID,
LIBLTE_S1AP_CAUSERADIONETWORK_HANDOVER_DESIRABLE_FOR_RADIO_REASON,
LIBLTE_S1AP_CAUSERADIONETWORK_TIME_CRITICAL_HANDOVER,
LIBLTE_S1AP_CAUSERADIONETWORK_RESOURCE_OPTIMISATION_HANDOVER,
LIBLTE_S1AP_CAUSERADIONETWORK_REDUCE_LOAD_IN_SERVING_CELL,
LIBLTE_S1AP_CAUSERADIONETWORK_USER_INACTIVITY,
LIBLTE_S1AP_CAUSERADIONETWORK_RADIO_CONNECTION_WITH_UE_LOST,
LIBLTE_S1AP_CAUSERADIONETWORK_LOAD_BALANCING_TAU_REQUIRED,
LIBLTE_S1AP_CAUSERADIONETWORK_CS_FALLBACK_TRIGGERED,
LIBLTE_S1AP_CAUSERADIONETWORK_UE_NOT_AVAILABLE_FOR_PS_SERVICE,
LIBLTE_S1AP_CAUSERADIONETWORK_RADIO_RESOURCES_NOT_AVAILABLE,
LIBLTE_S1AP_CAUSERADIONETWORK_FAILURE_IN_RADIO_INTERFACE_PROCEDURE,
LIBLTE_S1AP_CAUSERADIONETWORK_INVALID_QOS_COMBINATION,
LIBLTE_S1AP_CAUSERADIONETWORK_INTERRAT_REDIRECTION,
LIBLTE_S1AP_CAUSERADIONETWORK_INTERACTION_WITH_OTHER_PROCEDURE,
LIBLTE_S1AP_CAUSERADIONETWORK_UNKNOWN_E_RAB_ID,
LIBLTE_S1AP_CAUSERADIONETWORK_MULTIPLE_E_RAB_ID_INSTANCES,
LIBLTE_S1AP_CAUSERADIONETWORK_ENCRYPTION_AND_OR_INTEGRITY_PROTECTION_ALGORITHMS_NOT_SUPPORTED,
LIBLTE_S1AP_CAUSERADIONETWORK_S1_INTRA_SYSTEM_HANDOVER_TRIGGERED,
LIBLTE_S1AP_CAUSERADIONETWORK_S1_INTER_SYSTEM_HANDOVER_TRIGGERED,
LIBLTE_S1AP_CAUSERADIONETWORK_X2_HANDOVER_TRIGGERED,
LIBLTE_S1AP_CAUSERADIONETWORK_REDIRECTION_TOWARDS_1XRTT,
LIBLTE_S1AP_CAUSERADIONETWORK_NOT_SUPPORTED_QCI_VALUE,
LIBLTE_S1AP_CAUSERADIONETWORK_INVALID_CSG_ID,
LIBLTE_S1AP_CAUSERADIONETWORK_N_ITEMS,
} LIBLTE_S1AP_CAUSERADIONETWORK_ENUM;
static const char liblte_s1ap_causeradionetwork_text[LIBLTE_S1AP_CAUSERADIONETWORK_N_ITEMS][80] = {
"unspecified",
"tx2relocoverall-expiry",
"successful-handover",
"release-due-to-eutran-generated-reason",
"handover-cancelled",
"partial-handover",
"ho-failure-in-target-EPC-eNB-or-target-system",
"ho-target-not-allowed",
"tS1relocoverall-expiry",
"tS1relocprep-expiry",
"cell-not-available",
"unknown-targetID",
"no-radio-resources-available-in-target-cell",
"unknown-mme-ue-s1ap-id",
"unknown-enb-ue-s1ap-id",
"unknown-pair-ue-s1ap-id",
"handover-desirable-for-radio-reason",
"time-critical-handover",
"resource-optimisation-handover",
"reduce-load-in-serving-cell",
"user-inactivity",
"radio-connection-with-ue-lost",
"load-balancing-tau-required",
"cs-fallback-triggered",
"ue-not-available-for-ps-service",
"radio-resources-not-available",
"failure-in-radio-interface-procedure",
"invalid-qos-combination",
"interrat-redirection",
"interaction-with-other-procedure",
"unknown-E-RAB-ID",
"multiple-E-RAB-ID-instances",
"encryption-and-or-integrity-protection-algorithms-not-supported",
"s1-intra-system-handover-triggered",
"s1-inter-system-handover-triggered",
"x2-handover-triggered",
"redirection-towards-1xRTT",
"not-supported-QCI-value",
"invalid-CSG-Id",
};
typedef struct {
bool ext;
LIBLTE_S1AP_CAUSERADIONETWORK_ENUM e;
} LIBLTE_S1AP_CAUSERADIONETWORK_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_causeradionetwork(LIBLTE_S1AP_CAUSERADIONETWORK_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_causeradionetwork(uint8_t** ptr, LIBLTE_S1AP_CAUSERADIONETWORK_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE CauseNas ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_CAUSENAS_NORMAL_RELEASE,
LIBLTE_S1AP_CAUSENAS_AUTHENTICATION_FAILURE,
LIBLTE_S1AP_CAUSENAS_DETACH,
LIBLTE_S1AP_CAUSENAS_UNSPECIFIED,
LIBLTE_S1AP_CAUSENAS_CSG_SUBSCRIPTION_EXPIRY,
LIBLTE_S1AP_CAUSENAS_N_ITEMS,
} LIBLTE_S1AP_CAUSENAS_ENUM;
static const char liblte_s1ap_causenas_text[LIBLTE_S1AP_CAUSENAS_N_ITEMS][80] = {
"normal-release",
"authentication-failure",
"detach",
"unspecified",
"csg-subscription-expiry",
};
typedef struct {
bool ext;
LIBLTE_S1AP_CAUSENAS_ENUM e;
} LIBLTE_S1AP_CAUSENAS_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_causenas(LIBLTE_S1AP_CAUSENAS_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_causenas(uint8_t** ptr, LIBLTE_S1AP_CAUSENAS_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE CellIdentity STATIC BIT STRING
********************************************************************************/
#define LIBLTE_S1AP_CELLIDENTITY_BIT_STRING_LEN 28
typedef struct {
uint8_t buffer[28];
} LIBLTE_S1AP_CELLIDENTITY_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cellidentity(LIBLTE_S1AP_CELLIDENTITY_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cellidentity(uint8_t** ptr, LIBLTE_S1AP_CELLIDENTITY_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Cdma2000PDU DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_CDMA2000PDU_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cdma2000pdu(LIBLTE_S1AP_CDMA2000PDU_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cdma2000pdu(uint8_t** ptr, LIBLTE_S1AP_CDMA2000PDU_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Cdma2000SectorID DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_CDMA2000SECTORID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cdma2000sectorid(LIBLTE_S1AP_CDMA2000SECTORID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cdma2000sectorid(uint8_t** ptr, LIBLTE_S1AP_CDMA2000SECTORID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Cdma2000HORequiredIndication ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_CDMA2000HOREQUIREDINDICATION_TRUE,
LIBLTE_S1AP_CDMA2000HOREQUIREDINDICATION_N_ITEMS,
} LIBLTE_S1AP_CDMA2000HOREQUIREDINDICATION_ENUM;
static const char liblte_s1ap_cdma2000horequiredindication_text[LIBLTE_S1AP_CDMA2000HOREQUIREDINDICATION_N_ITEMS][80] =
{
"true",
};
typedef struct {
bool ext;
LIBLTE_S1AP_CDMA2000HOREQUIREDINDICATION_ENUM e;
} LIBLTE_S1AP_CDMA2000HOREQUIREDINDICATION_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cdma2000horequiredindication(LIBLTE_S1AP_CDMA2000HOREQUIREDINDICATION_ENUM_EXT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_cdma2000horequiredindication(uint8_t** ptr, LIBLTE_S1AP_CDMA2000HOREQUIREDINDICATION_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE Cdma2000OneXMSI DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_CDMA2000ONEXMSI_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cdma2000onexmsi(LIBLTE_S1AP_CDMA2000ONEXMSI_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cdma2000onexmsi(uint8_t** ptr, LIBLTE_S1AP_CDMA2000ONEXMSI_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Cdma2000OneXRAND DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_CDMA2000ONEXRAND_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cdma2000onexrand(LIBLTE_S1AP_CDMA2000ONEXRAND_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cdma2000onexrand(uint8_t** ptr, LIBLTE_S1AP_CDMA2000ONEXRAND_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CNDomain ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_CNDOMAIN_PS,
LIBLTE_S1AP_CNDOMAIN_CS,
LIBLTE_S1AP_CNDOMAIN_N_ITEMS,
} LIBLTE_S1AP_CNDOMAIN_ENUM;
static const char liblte_s1ap_cndomain_text[LIBLTE_S1AP_CNDOMAIN_N_ITEMS][80] = {
"ps",
"cs",
};
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cndomain(LIBLTE_S1AP_CNDOMAIN_ENUM* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cndomain(uint8_t** ptr, LIBLTE_S1AP_CNDOMAIN_ENUM* ie);
/*******************************************************************************
/* ProtocolIE Correlation_ID STATIC OCTET STRING
********************************************************************************/
#define LIBLTE_S1AP_CORRELATION_ID_OCTET_STRING_LEN 4
typedef struct {
uint8_t buffer[4];
} LIBLTE_S1AP_CORRELATION_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_correlation_id(LIBLTE_S1AP_CORRELATION_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_correlation_id(uint8_t** ptr, LIBLTE_S1AP_CORRELATION_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE AdditionalCSFallbackIndicator ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_ADDITIONALCSFALLBACKINDICATOR_NO_RESTRICTION,
LIBLTE_S1AP_ADDITIONALCSFALLBACKINDICATOR_RESTRICTION,
LIBLTE_S1AP_ADDITIONALCSFALLBACKINDICATOR_N_ITEMS,
} LIBLTE_S1AP_ADDITIONALCSFALLBACKINDICATOR_ENUM;
static const char liblte_s1ap_additionalcsfallbackindicator_text[LIBLTE_S1AP_ADDITIONALCSFALLBACKINDICATOR_N_ITEMS]
[80] = {
"no-restriction",
"restriction",
};
typedef struct {
bool ext;
LIBLTE_S1AP_ADDITIONALCSFALLBACKINDICATOR_ENUM e;
} LIBLTE_S1AP_ADDITIONALCSFALLBACKINDICATOR_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_additionalcsfallbackindicator(LIBLTE_S1AP_ADDITIONALCSFALLBACKINDICATOR_ENUM_EXT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_additionalcsfallbackindicator(uint8_t** ptr, LIBLTE_S1AP_ADDITIONALCSFALLBACKINDICATOR_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE DL_Forwarding ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_DL_FORWARDING_DL_FORWARDING_PROPOSED,
LIBLTE_S1AP_DL_FORWARDING_N_ITEMS,
} LIBLTE_S1AP_DL_FORWARDING_ENUM;
static const char liblte_s1ap_dl_forwarding_text[LIBLTE_S1AP_DL_FORWARDING_N_ITEMS][80] = {
"dL-Forwarding-proposed",
};
typedef struct {
bool ext;
LIBLTE_S1AP_DL_FORWARDING_ENUM e;
} LIBLTE_S1AP_DL_FORWARDING_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_dl_forwarding(LIBLTE_S1AP_DL_FORWARDING_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_dl_forwarding(uint8_t** ptr, LIBLTE_S1AP_DL_FORWARDING_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE Data_Forwarding_Not_Possible ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_DATA_FORWARDING_NOT_POSSIBLE_DATA_FORWARDING_NOT_POSSIBLE,
LIBLTE_S1AP_DATA_FORWARDING_NOT_POSSIBLE_N_ITEMS,
} LIBLTE_S1AP_DATA_FORWARDING_NOT_POSSIBLE_ENUM;
static const char liblte_s1ap_data_forwarding_not_possible_text[LIBLTE_S1AP_DATA_FORWARDING_NOT_POSSIBLE_N_ITEMS][80] =
{
"data-Forwarding-not-Possible",
};
typedef struct {
bool ext;
LIBLTE_S1AP_DATA_FORWARDING_NOT_POSSIBLE_ENUM e;
} LIBLTE_S1AP_DATA_FORWARDING_NOT_POSSIBLE_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_data_forwarding_not_possible(LIBLTE_S1AP_DATA_FORWARDING_NOT_POSSIBLE_ENUM_EXT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_data_forwarding_not_possible(uint8_t** ptr, LIBLTE_S1AP_DATA_FORWARDING_NOT_POSSIBLE_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE EmergencyAreaID STATIC OCTET STRING
********************************************************************************/
#define LIBLTE_S1AP_EMERGENCYAREAID_OCTET_STRING_LEN 3
typedef struct {
uint8_t buffer[3];
} LIBLTE_S1AP_EMERGENCYAREAID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_emergencyareaid(LIBLTE_S1AP_EMERGENCYAREAID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_emergencyareaid(uint8_t** ptr, LIBLTE_S1AP_EMERGENCYAREAID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE macroENB_ID STATIC BIT STRING
********************************************************************************/
#define LIBLTE_S1AP_MACROENB_ID_BIT_STRING_LEN 20
typedef struct {
uint8_t buffer[20];
} LIBLTE_S1AP_MACROENB_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_macroenb_id(LIBLTE_S1AP_MACROENB_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_macroenb_id(uint8_t** ptr, LIBLTE_S1AP_MACROENB_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE homeENB_ID STATIC BIT STRING
********************************************************************************/
#define LIBLTE_S1AP_HOMEENB_ID_BIT_STRING_LEN 28
typedef struct {
uint8_t buffer[28];
} LIBLTE_S1AP_HOMEENB_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_homeenb_id(LIBLTE_S1AP_HOMEENB_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_homeenb_id(uint8_t** ptr, LIBLTE_S1AP_HOMEENB_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ENB_ID CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_ENB_ID_CHOICE_MACROENB_ID,
LIBLTE_S1AP_ENB_ID_CHOICE_HOMEENB_ID,
LIBLTE_S1AP_ENB_ID_CHOICE_N_ITEMS,
} LIBLTE_S1AP_ENB_ID_CHOICE_ENUM;
static const char liblte_s1ap_enb_id_choice_text[LIBLTE_S1AP_ENB_ID_CHOICE_N_ITEMS][50] = {
"macroENB_ID",
"homeENB_ID",
};
typedef union {
LIBLTE_S1AP_MACROENB_ID_STRUCT macroENB_ID;
LIBLTE_S1AP_HOMEENB_ID_STRUCT homeENB_ID;
} LIBLTE_S1AP_ENB_ID_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_ENB_ID_CHOICE_UNION choice;
LIBLTE_S1AP_ENB_ID_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_ENB_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_enb_id(LIBLTE_S1AP_ENB_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_enb_id(uint8_t** ptr, LIBLTE_S1AP_ENB_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ENBname PrintableString
********************************************************************************/
typedef struct {
bool ext;
uint32_t n_octets;
uint8_t buffer[150];
} LIBLTE_S1AP_ENBNAME_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_enbname(LIBLTE_S1AP_ENBNAME_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_enbname(uint8_t** ptr, LIBLTE_S1AP_ENBNAME_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE EncryptionAlgorithms STATIC BIT STRING
********************************************************************************/
#define LIBLTE_S1AP_ENCRYPTIONALGORITHMS_BIT_STRING_LEN 16
typedef struct {
bool ext;
uint8_t buffer[16];
} LIBLTE_S1AP_ENCRYPTIONALGORITHMS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_encryptionalgorithms(LIBLTE_S1AP_ENCRYPTIONALGORITHMS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_encryptionalgorithms(uint8_t** ptr, LIBLTE_S1AP_ENCRYPTIONALGORITHMS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE EventType ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_EVENTTYPE_DIRECT,
LIBLTE_S1AP_EVENTTYPE_CHANGE_OF_SERVE_CELL,
LIBLTE_S1AP_EVENTTYPE_STOP_CHANGE_OF_SERVE_CELL,
LIBLTE_S1AP_EVENTTYPE_N_ITEMS,
} LIBLTE_S1AP_EVENTTYPE_ENUM;
static const char liblte_s1ap_eventtype_text[LIBLTE_S1AP_EVENTTYPE_N_ITEMS][80] = {
"direct",
"change-of-serve-cell",
"stop-change-of-serve-cell",
};
typedef struct {
bool ext;
LIBLTE_S1AP_EVENTTYPE_ENUM e;
} LIBLTE_S1AP_EVENTTYPE_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_eventtype(LIBLTE_S1AP_EVENTTYPE_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_eventtype(uint8_t** ptr, LIBLTE_S1AP_EVENTTYPE_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE ExtendedRNC_ID INTEGER
********************************************************************************/
typedef struct {
uint16_t ExtendedRNC_ID;
} LIBLTE_S1AP_EXTENDEDRNC_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_extendedrnc_id(LIBLTE_S1AP_EXTENDEDRNC_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_extendedrnc_id(uint8_t** ptr, LIBLTE_S1AP_EXTENDEDRNC_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ForbiddenInterRATs ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_FORBIDDENINTERRATS_ALL,
LIBLTE_S1AP_FORBIDDENINTERRATS_GERAN,
LIBLTE_S1AP_FORBIDDENINTERRATS_UTRAN,
LIBLTE_S1AP_FORBIDDENINTERRATS_CDMA2000,
LIBLTE_S1AP_FORBIDDENINTERRATS_GERANANDUTRAN,
LIBLTE_S1AP_FORBIDDENINTERRATS_CDMA2000ANDUTRAN,
LIBLTE_S1AP_FORBIDDENINTERRATS_N_ITEMS,
} LIBLTE_S1AP_FORBIDDENINTERRATS_ENUM;
static const char liblte_s1ap_forbiddeninterrats_text[LIBLTE_S1AP_FORBIDDENINTERRATS_N_ITEMS][80] = {
"all",
"geran",
"utran",
"cdma2000",
"geranandutran",
"cdma2000andutran",
};
typedef struct {
bool ext;
LIBLTE_S1AP_FORBIDDENINTERRATS_ENUM e;
} LIBLTE_S1AP_FORBIDDENINTERRATS_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_forbiddeninterrats(LIBLTE_S1AP_FORBIDDENINTERRATS_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_forbiddeninterrats(uint8_t** ptr, LIBLTE_S1AP_FORBIDDENINTERRATS_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE GWContextReleaseIndication ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_GWCONTEXTRELEASEINDICATION_TRUE,
LIBLTE_S1AP_GWCONTEXTRELEASEINDICATION_N_ITEMS,
} LIBLTE_S1AP_GWCONTEXTRELEASEINDICATION_ENUM;
static const char liblte_s1ap_gwcontextreleaseindication_text[LIBLTE_S1AP_GWCONTEXTRELEASEINDICATION_N_ITEMS][80] = {
"true",
};
typedef struct {
bool ext;
LIBLTE_S1AP_GWCONTEXTRELEASEINDICATION_ENUM e;
} LIBLTE_S1AP_GWCONTEXTRELEASEINDICATION_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_gwcontextreleaseindication(LIBLTE_S1AP_GWCONTEXTRELEASEINDICATION_ENUM_EXT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_gwcontextreleaseindication(uint8_t** ptr,
LIBLTE_S1AP_GWCONTEXTRELEASEINDICATION_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE HFN INTEGER
********************************************************************************/
typedef struct {
uint32_t HFN;
} LIBLTE_S1AP_HFN_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_hfn(LIBLTE_S1AP_HFN_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_hfn(uint8_t** ptr, LIBLTE_S1AP_HFN_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE IMSI DYNAMIC OCTET STRING
********************************************************************************/
// lb:3, ub:8
typedef struct {
uint32_t n_octets;
uint8_t buffer[8];
} LIBLTE_S1AP_IMSI_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_imsi(LIBLTE_S1AP_IMSI_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_imsi(uint8_t** ptr, LIBLTE_S1AP_IMSI_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE InterfacesToTrace STATIC BIT STRING
********************************************************************************/
#define LIBLTE_S1AP_INTERFACESTOTRACE_BIT_STRING_LEN 8
typedef struct {
uint8_t buffer[8];
} LIBLTE_S1AP_INTERFACESTOTRACE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_interfacestotrace(LIBLTE_S1AP_INTERFACESTOTRACE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_interfacestotrace(uint8_t** ptr, LIBLTE_S1AP_INTERFACESTOTRACE_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE LAC STATIC OCTET STRING
********************************************************************************/
#define LIBLTE_S1AP_LAC_OCTET_STRING_LEN 2
typedef struct {
uint8_t buffer[2];
} LIBLTE_S1AP_LAC_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_lac(LIBLTE_S1AP_LAC_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_lac(uint8_t** ptr, LIBLTE_S1AP_LAC_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE LastVisitedUTRANCellInformation DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_LASTVISITEDUTRANCELLINFORMATION_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_lastvisitedutrancellinformation(LIBLTE_S1AP_LASTVISITEDUTRANCELLINFORMATION_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_lastvisitedutrancellinformation(uint8_t** ptr,
LIBLTE_S1AP_LASTVISITEDUTRANCELLINFORMATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE L3_Information DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_L3_INFORMATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_l3_information(LIBLTE_S1AP_L3_INFORMATION_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_l3_information(uint8_t** ptr, LIBLTE_S1AP_L3_INFORMATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE LHN_ID DYNAMIC OCTET STRING
********************************************************************************/
// lb:32, ub:256
typedef struct {
uint32_t n_octets;
uint8_t buffer[256];
} LIBLTE_S1AP_LHN_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_lhn_id(LIBLTE_S1AP_LHN_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_lhn_id(uint8_t** ptr, LIBLTE_S1AP_LHN_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE LoggingDuration ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_LOGGINGDURATION_M10,
LIBLTE_S1AP_LOGGINGDURATION_M20,
LIBLTE_S1AP_LOGGINGDURATION_M40,
LIBLTE_S1AP_LOGGINGDURATION_M60,
LIBLTE_S1AP_LOGGINGDURATION_M90,
LIBLTE_S1AP_LOGGINGDURATION_M120,
LIBLTE_S1AP_LOGGINGDURATION_N_ITEMS,
} LIBLTE_S1AP_LOGGINGDURATION_ENUM;
static const char liblte_s1ap_loggingduration_text[LIBLTE_S1AP_LOGGINGDURATION_N_ITEMS][80] = {
"m10",
"m20",
"m40",
"m60",
"m90",
"m120",
};
LIBLTE_ERROR_ENUM liblte_s1ap_pack_loggingduration(LIBLTE_S1AP_LOGGINGDURATION_ENUM* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_loggingduration(uint8_t** ptr, LIBLTE_S1AP_LOGGINGDURATION_ENUM* ie);
/*******************************************************************************
/* ProtocolIE MDT_Activation ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_MDT_ACTIVATION_IMMEDIATE_MDT_ONLY,
LIBLTE_S1AP_MDT_ACTIVATION_IMMEDIATE_MDT_AND_TRACE,
LIBLTE_S1AP_MDT_ACTIVATION_LOGGED_MDT_ONLY,
LIBLTE_S1AP_MDT_ACTIVATION_N_ITEMS,
} LIBLTE_S1AP_MDT_ACTIVATION_ENUM;
static const char liblte_s1ap_mdt_activation_text[LIBLTE_S1AP_MDT_ACTIVATION_N_ITEMS][80] = {
"immediate-MDT-only",
"immediate-MDT-and-Trace",
"logged-MDT-only",
};
typedef struct {
bool ext;
LIBLTE_S1AP_MDT_ACTIVATION_ENUM e;
} LIBLTE_S1AP_MDT_ACTIVATION_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_mdt_activation(LIBLTE_S1AP_MDT_ACTIVATION_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_mdt_activation(uint8_t** ptr, LIBLTE_S1AP_MDT_ACTIVATION_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE ManagementBasedMDTAllowed ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_MANAGEMENTBASEDMDTALLOWED_ALLOWED,
LIBLTE_S1AP_MANAGEMENTBASEDMDTALLOWED_N_ITEMS,
} LIBLTE_S1AP_MANAGEMENTBASEDMDTALLOWED_ENUM;
static const char liblte_s1ap_managementbasedmdtallowed_text[LIBLTE_S1AP_MANAGEMENTBASEDMDTALLOWED_N_ITEMS][80] = {
"allowed",
};
typedef struct {
bool ext;
LIBLTE_S1AP_MANAGEMENTBASEDMDTALLOWED_ENUM e;
} LIBLTE_S1AP_MANAGEMENTBASEDMDTALLOWED_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_managementbasedmdtallowed(LIBLTE_S1AP_MANAGEMENTBASEDMDTALLOWED_ENUM_EXT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_managementbasedmdtallowed(uint8_t** ptr,
LIBLTE_S1AP_MANAGEMENTBASEDMDTALLOWED_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE PrivacyIndicator ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_PRIVACYINDICATOR_IMMEDIATE_MDT,
LIBLTE_S1AP_PRIVACYINDICATOR_LOGGED_MDT,
LIBLTE_S1AP_PRIVACYINDICATOR_N_ITEMS,
} LIBLTE_S1AP_PRIVACYINDICATOR_ENUM;
static const char liblte_s1ap_privacyindicator_text[LIBLTE_S1AP_PRIVACYINDICATOR_N_ITEMS][80] = {
"immediate-MDT",
"logged-MDT",
};
typedef struct {
bool ext;
LIBLTE_S1AP_PRIVACYINDICATOR_ENUM e;
} LIBLTE_S1AP_PRIVACYINDICATOR_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_privacyindicator(LIBLTE_S1AP_PRIVACYINDICATOR_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_privacyindicator(uint8_t** ptr, LIBLTE_S1AP_PRIVACYINDICATOR_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE MeasurementsToActivate STATIC BIT STRING
********************************************************************************/
#define LIBLTE_S1AP_MEASUREMENTSTOACTIVATE_BIT_STRING_LEN 8
typedef struct {
uint8_t buffer[8];
} LIBLTE_S1AP_MEASUREMENTSTOACTIVATE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_measurementstoactivate(LIBLTE_S1AP_MEASUREMENTSTOACTIVATE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_measurementstoactivate(uint8_t** ptr,
LIBLTE_S1AP_MEASUREMENTSTOACTIVATE_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE MessageIdentifier STATIC BIT STRING
********************************************************************************/
#define LIBLTE_S1AP_MESSAGEIDENTIFIER_BIT_STRING_LEN 16
typedef struct {
uint8_t buffer[16];
} LIBLTE_S1AP_MESSAGEIDENTIFIER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_messageidentifier(LIBLTE_S1AP_MESSAGEIDENTIFIER_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_messageidentifier(uint8_t** ptr, LIBLTE_S1AP_MESSAGEIDENTIFIER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE MMEname PrintableString
********************************************************************************/
typedef struct {
bool ext;
uint32_t n_octets;
uint8_t buffer[150];
} LIBLTE_S1AP_MMENAME_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_mmename(LIBLTE_S1AP_MMENAME_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_mmename(uint8_t** ptr, LIBLTE_S1AP_MMENAME_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE MME_Group_ID STATIC OCTET STRING
********************************************************************************/
#define LIBLTE_S1AP_MME_GROUP_ID_OCTET_STRING_LEN 2
typedef struct {
uint8_t buffer[2];
} LIBLTE_S1AP_MME_GROUP_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_mme_group_id(LIBLTE_S1AP_MME_GROUP_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_mme_group_id(uint8_t** ptr, LIBLTE_S1AP_MME_GROUP_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE MME_UE_S1AP_ID INTEGER
********************************************************************************/
typedef struct {
uint32_t MME_UE_S1AP_ID;
} LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_mme_ue_s1ap_id(LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_mme_ue_s1ap_id(uint8_t** ptr, LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE MSClassmark2 DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_MSCLASSMARK2_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_msclassmark2(LIBLTE_S1AP_MSCLASSMARK2_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_msclassmark2(uint8_t** ptr, LIBLTE_S1AP_MSCLASSMARK2_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE NAS_PDU DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_NAS_PDU_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_nas_pdu(LIBLTE_S1AP_NAS_PDU_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_nas_pdu(uint8_t** ptr, LIBLTE_S1AP_NAS_PDU_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE NASSecurityParameterstoE_UTRAN DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_NASSECURITYPARAMETERSTOE_UTRAN_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_nassecurityparameterstoe_utran(LIBLTE_S1AP_NASSECURITYPARAMETERSTOE_UTRAN_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_nassecurityparameterstoe_utran(uint8_t** ptr, LIBLTE_S1AP_NASSECURITYPARAMETERSTOE_UTRAN_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE NumberOfBroadcasts INTEGER
********************************************************************************/
typedef struct {
uint16_t NumberOfBroadcasts;
} LIBLTE_S1AP_NUMBEROFBROADCASTS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_numberofbroadcasts(LIBLTE_S1AP_NUMBEROFBROADCASTS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_numberofbroadcasts(uint8_t** ptr, LIBLTE_S1AP_NUMBEROFBROADCASTS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE OverloadAction ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_OVERLOADACTION_REJECT_NON_EMERGENCY_MO_DT,
LIBLTE_S1AP_OVERLOADACTION_REJECT_RRC_CR_SIGNALLING,
LIBLTE_S1AP_OVERLOADACTION_PERMIT_EMERGENCY_SESSIONS_AND_MOBILE_TERMINATED_SERVICES_ONLY,
LIBLTE_S1AP_OVERLOADACTION_PERMIT_HIGH_PRIORITY_SESSIONS_AND_MOBILE_TERMINATED_SERVICES_ONLY,
LIBLTE_S1AP_OVERLOADACTION_REJECT_DELAY_TOLERANT_ACCESS,
LIBLTE_S1AP_OVERLOADACTION_N_ITEMS,
} LIBLTE_S1AP_OVERLOADACTION_ENUM;
static const char liblte_s1ap_overloadaction_text[LIBLTE_S1AP_OVERLOADACTION_N_ITEMS][80] = {
"reject-non-emergency-mo-dt",
"reject-rrc-cr-signalling",
"permit-emergency-sessions-and-mobile-terminated-services-only",
"permit-high-priority-sessions-and-mobile-terminated-services-only",
"reject-delay-tolerant-access",
};
typedef struct {
bool ext;
LIBLTE_S1AP_OVERLOADACTION_ENUM e;
} LIBLTE_S1AP_OVERLOADACTION_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_overloadaction(LIBLTE_S1AP_OVERLOADACTION_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_overloadaction(uint8_t** ptr, LIBLTE_S1AP_OVERLOADACTION_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE PagingDRX ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_PAGINGDRX_V32,
LIBLTE_S1AP_PAGINGDRX_V64,
LIBLTE_S1AP_PAGINGDRX_V128,
LIBLTE_S1AP_PAGINGDRX_V256,
LIBLTE_S1AP_PAGINGDRX_N_ITEMS,
} LIBLTE_S1AP_PAGINGDRX_ENUM;
static const char liblte_s1ap_pagingdrx_text[LIBLTE_S1AP_PAGINGDRX_N_ITEMS][80] = {
"v32",
"v64",
"v128",
"v256",
};
typedef struct {
bool ext;
LIBLTE_S1AP_PAGINGDRX_ENUM e;
} LIBLTE_S1AP_PAGINGDRX_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_pagingdrx(LIBLTE_S1AP_PAGINGDRX_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_pagingdrx(uint8_t** ptr, LIBLTE_S1AP_PAGINGDRX_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE PDCP_SN INTEGER
********************************************************************************/
typedef struct {
uint16_t PDCP_SN;
} LIBLTE_S1AP_PDCP_SN_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_pdcp_sn(LIBLTE_S1AP_PDCP_SN_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_pdcp_sn(uint8_t** ptr, LIBLTE_S1AP_PDCP_SN_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Port_Number STATIC OCTET STRING
********************************************************************************/
#define LIBLTE_S1AP_PORT_NUMBER_OCTET_STRING_LEN 2
typedef struct {
uint8_t buffer[2];
} LIBLTE_S1AP_PORT_NUMBER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_port_number(LIBLTE_S1AP_PORT_NUMBER_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_port_number(uint8_t** ptr, LIBLTE_S1AP_PORT_NUMBER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Pre_emptionVulnerability ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_PRE_EMPTIONVULNERABILITY_NOT_PRE_EMPTABLE,
LIBLTE_S1AP_PRE_EMPTIONVULNERABILITY_PRE_EMPTABLE,
LIBLTE_S1AP_PRE_EMPTIONVULNERABILITY_N_ITEMS,
} LIBLTE_S1AP_PRE_EMPTIONVULNERABILITY_ENUM;
static const char liblte_s1ap_pre_emptionvulnerability_text[LIBLTE_S1AP_PRE_EMPTIONVULNERABILITY_N_ITEMS][80] = {
"not-pre-emptable",
"pre-emptable",
};
LIBLTE_ERROR_ENUM liblte_s1ap_pack_pre_emptionvulnerability(LIBLTE_S1AP_PRE_EMPTIONVULNERABILITY_ENUM* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_pre_emptionvulnerability(uint8_t** ptr,
LIBLTE_S1AP_PRE_EMPTIONVULNERABILITY_ENUM* ie);
/*******************************************************************************
/* ProtocolIE PS_ServiceNotAvailable ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_PS_SERVICENOTAVAILABLE_PS_SERVICE_NOT_AVAILABLE,
LIBLTE_S1AP_PS_SERVICENOTAVAILABLE_N_ITEMS,
} LIBLTE_S1AP_PS_SERVICENOTAVAILABLE_ENUM;
static const char liblte_s1ap_ps_servicenotavailable_text[LIBLTE_S1AP_PS_SERVICENOTAVAILABLE_N_ITEMS][80] = {
"ps-service-not-available",
};
typedef struct {
bool ext;
LIBLTE_S1AP_PS_SERVICENOTAVAILABLE_ENUM e;
} LIBLTE_S1AP_PS_SERVICENOTAVAILABLE_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ps_servicenotavailable(LIBLTE_S1AP_PS_SERVICENOTAVAILABLE_ENUM_EXT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ps_servicenotavailable(uint8_t** ptr,
LIBLTE_S1AP_PS_SERVICENOTAVAILABLE_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE ReceiveStatusofULPDCPSDUs STATIC BIT STRING
********************************************************************************/
#define LIBLTE_S1AP_RECEIVESTATUSOFULPDCPSDUS_BIT_STRING_LEN 4096
typedef struct {
uint8_t buffer[4096];
} LIBLTE_S1AP_RECEIVESTATUSOFULPDCPSDUS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_receivestatusofulpdcpsdus(LIBLTE_S1AP_RECEIVESTATUSOFULPDCPSDUS_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_receivestatusofulpdcpsdus(uint8_t** ptr,
LIBLTE_S1AP_RECEIVESTATUSOFULPDCPSDUS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE RelativeMMECapacity INTEGER
********************************************************************************/
typedef struct {
uint8_t RelativeMMECapacity;
} LIBLTE_S1AP_RELATIVEMMECAPACITY_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_relativemmecapacity(LIBLTE_S1AP_RELATIVEMMECAPACITY_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_relativemmecapacity(uint8_t** ptr, LIBLTE_S1AP_RELATIVEMMECAPACITY_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE RAC STATIC OCTET STRING
********************************************************************************/
#define LIBLTE_S1AP_RAC_OCTET_STRING_LEN 1
typedef struct {
uint8_t buffer[1];
} LIBLTE_S1AP_RAC_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_rac(LIBLTE_S1AP_RAC_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_rac(uint8_t** ptr, LIBLTE_S1AP_RAC_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ReportIntervalMDT ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_REPORTINTERVALMDT_MS120,
LIBLTE_S1AP_REPORTINTERVALMDT_MS240,
LIBLTE_S1AP_REPORTINTERVALMDT_MS480,
LIBLTE_S1AP_REPORTINTERVALMDT_MS640,
LIBLTE_S1AP_REPORTINTERVALMDT_MS1024,
LIBLTE_S1AP_REPORTINTERVALMDT_MS2048,
LIBLTE_S1AP_REPORTINTERVALMDT_MS5120,
LIBLTE_S1AP_REPORTINTERVALMDT_MS10240,
LIBLTE_S1AP_REPORTINTERVALMDT_MIN1,
LIBLTE_S1AP_REPORTINTERVALMDT_MIN6,
LIBLTE_S1AP_REPORTINTERVALMDT_MIN12,
LIBLTE_S1AP_REPORTINTERVALMDT_MIN30,
LIBLTE_S1AP_REPORTINTERVALMDT_MIN60,
LIBLTE_S1AP_REPORTINTERVALMDT_N_ITEMS,
} LIBLTE_S1AP_REPORTINTERVALMDT_ENUM;
static const char liblte_s1ap_reportintervalmdt_text[LIBLTE_S1AP_REPORTINTERVALMDT_N_ITEMS][80] = {
"ms120",
"ms240",
"ms480",
"ms640",
"ms1024",
"ms2048",
"ms5120",
"ms10240",
"min1",
"min6",
"min12",
"min30",
"min60",
};
LIBLTE_ERROR_ENUM liblte_s1ap_pack_reportintervalmdt(LIBLTE_S1AP_REPORTINTERVALMDT_ENUM* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_reportintervalmdt(uint8_t** ptr, LIBLTE_S1AP_REPORTINTERVALMDT_ENUM* ie);
/*******************************************************************************
/* ProtocolIE ReportArea ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_REPORTAREA_ECGI,
LIBLTE_S1AP_REPORTAREA_N_ITEMS,
} LIBLTE_S1AP_REPORTAREA_ENUM;
static const char liblte_s1ap_reportarea_text[LIBLTE_S1AP_REPORTAREA_N_ITEMS][80] = {
"ecgi",
};
typedef struct {
bool ext;
LIBLTE_S1AP_REPORTAREA_ENUM e;
} LIBLTE_S1AP_REPORTAREA_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_reportarea(LIBLTE_S1AP_REPORTAREA_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_reportarea(uint8_t** ptr, LIBLTE_S1AP_REPORTAREA_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE RNC_ID INTEGER
********************************************************************************/
typedef struct {
uint16_t RNC_ID;
} LIBLTE_S1AP_RNC_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_rnc_id(LIBLTE_S1AP_RNC_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_rnc_id(uint8_t** ptr, LIBLTE_S1AP_RNC_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE RRC_Establishment_Cause ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_RRC_ESTABLISHMENT_CAUSE_EMERGENCY,
LIBLTE_S1AP_RRC_ESTABLISHMENT_CAUSE_HIGHPRIORITYACCESS,
LIBLTE_S1AP_RRC_ESTABLISHMENT_CAUSE_MT_ACCESS,
LIBLTE_S1AP_RRC_ESTABLISHMENT_CAUSE_MO_SIGNALLING,
LIBLTE_S1AP_RRC_ESTABLISHMENT_CAUSE_MO_DATA,
LIBLTE_S1AP_RRC_ESTABLISHMENT_CAUSE_DELAY_TOLERANTACCESS,
LIBLTE_S1AP_RRC_ESTABLISHMENT_CAUSE_N_ITEMS,
} LIBLTE_S1AP_RRC_ESTABLISHMENT_CAUSE_ENUM;
static const char liblte_s1ap_rrc_establishment_cause_text[LIBLTE_S1AP_RRC_ESTABLISHMENT_CAUSE_N_ITEMS][80] = {
"emergency",
"highPriorityAccess",
"mt-Access",
"mo-Signalling",
"mo-Data",
"delay-TolerantAccess",
};
typedef struct {
bool ext;
LIBLTE_S1AP_RRC_ESTABLISHMENT_CAUSE_ENUM e;
} LIBLTE_S1AP_RRC_ESTABLISHMENT_CAUSE_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_rrc_establishment_cause(LIBLTE_S1AP_RRC_ESTABLISHMENT_CAUSE_ENUM_EXT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_rrc_establishment_cause(uint8_t** ptr,
LIBLTE_S1AP_RRC_ESTABLISHMENT_CAUSE_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE Routing_ID INTEGER
********************************************************************************/
typedef struct {
uint8_t Routing_ID;
} LIBLTE_S1AP_ROUTING_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_routing_id(LIBLTE_S1AP_ROUTING_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_routing_id(uint8_t** ptr, LIBLTE_S1AP_ROUTING_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE SONInformationRequest ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_SONINFORMATIONREQUEST_X2TNL_CONFIGURATION_INFO,
LIBLTE_S1AP_SONINFORMATIONREQUEST_TIME_SYNCHRONIZATION_INFO,
LIBLTE_S1AP_SONINFORMATIONREQUEST_N_ITEMS,
} LIBLTE_S1AP_SONINFORMATIONREQUEST_ENUM;
static const char liblte_s1ap_soninformationrequest_text[LIBLTE_S1AP_SONINFORMATIONREQUEST_N_ITEMS][80] = {
"x2TNL-Configuration-Info",
"time-Synchronization-Info",
};
typedef struct {
bool ext;
LIBLTE_S1AP_SONINFORMATIONREQUEST_ENUM e;
} LIBLTE_S1AP_SONINFORMATIONREQUEST_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_soninformationrequest(LIBLTE_S1AP_SONINFORMATIONREQUEST_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_soninformationrequest(uint8_t** ptr,
LIBLTE_S1AP_SONINFORMATIONREQUEST_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE Source_ToTarget_TransparentContainer DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_SOURCE_TOTARGET_TRANSPARENTCONTAINER_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_source_totarget_transparentcontainer(LIBLTE_S1AP_SOURCE_TOTARGET_TRANSPARENTCONTAINER_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_source_totarget_transparentcontainer(uint8_t** ptr,
LIBLTE_S1AP_SOURCE_TOTARGET_TRANSPARENTCONTAINER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE SRVCCHOIndication ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_SRVCCHOINDICATION_PSANDCS,
LIBLTE_S1AP_SRVCCHOINDICATION_CSONLY,
LIBLTE_S1AP_SRVCCHOINDICATION_N_ITEMS,
} LIBLTE_S1AP_SRVCCHOINDICATION_ENUM;
static const char liblte_s1ap_srvcchoindication_text[LIBLTE_S1AP_SRVCCHOINDICATION_N_ITEMS][80] = {
"pSandCS",
"cSonly",
};
typedef struct {
bool ext;
LIBLTE_S1AP_SRVCCHOINDICATION_ENUM e;
} LIBLTE_S1AP_SRVCCHOINDICATION_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_srvcchoindication(LIBLTE_S1AP_SRVCCHOINDICATION_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_srvcchoindication(uint8_t** ptr, LIBLTE_S1AP_SRVCCHOINDICATION_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE SourceRNC_ToTargetRNC_TransparentContainer DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_SOURCERNC_TOTARGETRNC_TRANSPARENTCONTAINER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_sourcernc_totargetrnc_transparentcontainer(
LIBLTE_S1AP_SOURCERNC_TOTARGETRNC_TRANSPARENTCONTAINER_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_sourcernc_totargetrnc_transparentcontainer(
uint8_t** ptr, LIBLTE_S1AP_SOURCERNC_TOTARGETRNC_TRANSPARENTCONTAINER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE SubscriberProfileIDforRFP INTEGER
********************************************************************************/
typedef struct {
uint8_t SubscriberProfileIDforRFP;
} LIBLTE_S1AP_SUBSCRIBERPROFILEIDFORRFP_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_subscriberprofileidforrfp(LIBLTE_S1AP_SUBSCRIBERPROFILEIDFORRFP_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_subscriberprofileidforrfp(uint8_t** ptr,
LIBLTE_S1AP_SUBSCRIBERPROFILEIDFORRFP_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE SynchronizationStatus ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_SYNCHRONIZATIONSTATUS_SYNCHRONOUS,
LIBLTE_S1AP_SYNCHRONIZATIONSTATUS_ASYNCHRONOUS,
LIBLTE_S1AP_SYNCHRONIZATIONSTATUS_N_ITEMS,
} LIBLTE_S1AP_SYNCHRONIZATIONSTATUS_ENUM;
static const char liblte_s1ap_synchronizationstatus_text[LIBLTE_S1AP_SYNCHRONIZATIONSTATUS_N_ITEMS][80] = {
"synchronous",
"asynchronous",
};
typedef struct {
bool ext;
LIBLTE_S1AP_SYNCHRONIZATIONSTATUS_ENUM e;
} LIBLTE_S1AP_SYNCHRONIZATIONSTATUS_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_synchronizationstatus(LIBLTE_S1AP_SYNCHRONIZATIONSTATUS_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_synchronizationstatus(uint8_t** ptr,
LIBLTE_S1AP_SYNCHRONIZATIONSTATUS_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE TargetRNC_ToSourceRNC_TransparentContainer DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_TARGETRNC_TOSOURCERNC_TRANSPARENTCONTAINER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_targetrnc_tosourcernc_transparentcontainer(
LIBLTE_S1AP_TARGETRNC_TOSOURCERNC_TRANSPARENTCONTAINER_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_targetrnc_tosourcernc_transparentcontainer(
uint8_t** ptr, LIBLTE_S1AP_TARGETRNC_TOSOURCERNC_TRANSPARENTCONTAINER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Threshold_RSRQ INTEGER
********************************************************************************/
typedef struct {
uint8_t Threshold_RSRQ;
} LIBLTE_S1AP_THRESHOLD_RSRQ_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_threshold_rsrq(LIBLTE_S1AP_THRESHOLD_RSRQ_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_threshold_rsrq(uint8_t** ptr, LIBLTE_S1AP_THRESHOLD_RSRQ_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Time_UE_StayedInCell INTEGER
********************************************************************************/
typedef struct {
uint16_t Time_UE_StayedInCell;
} LIBLTE_S1AP_TIME_UE_STAYEDINCELL_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_time_ue_stayedincell(LIBLTE_S1AP_TIME_UE_STAYEDINCELL_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_time_ue_stayedincell(uint8_t** ptr, LIBLTE_S1AP_TIME_UE_STAYEDINCELL_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TransportLayerAddress DYNAMIC BIT STRING
********************************************************************************/
// lb:1, ub:160
typedef struct {
bool ext;
uint32_t n_bits;
uint8_t buffer[160];
} LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_transportlayeraddress(LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_transportlayeraddress(uint8_t** ptr, LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TraceDepth ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_TRACEDEPTH_MINIMUM,
LIBLTE_S1AP_TRACEDEPTH_MEDIUM,
LIBLTE_S1AP_TRACEDEPTH_MAXIMUM,
LIBLTE_S1AP_TRACEDEPTH_MINIMUMWITHOUTVENDORSPECIFICEXTENSION,
LIBLTE_S1AP_TRACEDEPTH_MEDIUMWITHOUTVENDORSPECIFICEXTENSION,
LIBLTE_S1AP_TRACEDEPTH_MAXIMUMWITHOUTVENDORSPECIFICEXTENSION,
LIBLTE_S1AP_TRACEDEPTH_N_ITEMS,
} LIBLTE_S1AP_TRACEDEPTH_ENUM;
static const char liblte_s1ap_tracedepth_text[LIBLTE_S1AP_TRACEDEPTH_N_ITEMS][80] = {
"minimum",
"medium",
"maximum",
"minimumWithoutVendorSpecificExtension",
"mediumWithoutVendorSpecificExtension",
"maximumWithoutVendorSpecificExtension",
};
typedef struct {
bool ext;
LIBLTE_S1AP_TRACEDEPTH_ENUM e;
} LIBLTE_S1AP_TRACEDEPTH_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tracedepth(LIBLTE_S1AP_TRACEDEPTH_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tracedepth(uint8_t** ptr, LIBLTE_S1AP_TRACEDEPTH_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE TrafficLoadReductionIndication INTEGER
********************************************************************************/
typedef struct {
uint8_t TrafficLoadReductionIndication;
} LIBLTE_S1AP_TRAFFICLOADREDUCTIONINDICATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_trafficloadreductionindication(LIBLTE_S1AP_TRAFFICLOADREDUCTIONINDICATION_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_trafficloadreductionindication(uint8_t** ptr, LIBLTE_S1AP_TRAFFICLOADREDUCTIONINDICATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE UERadioCapability DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_UERADIOCAPABILITY_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ueradiocapability(LIBLTE_S1AP_UERADIOCAPABILITY_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ueradiocapability(uint8_t** ptr, LIBLTE_S1AP_UERADIOCAPABILITY_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE WarningType STATIC OCTET STRING
********************************************************************************/
#define LIBLTE_S1AP_WARNINGTYPE_OCTET_STRING_LEN 2
typedef struct {
uint8_t buffer[2];
} LIBLTE_S1AP_WARNINGTYPE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_warningtype(LIBLTE_S1AP_WARNINGTYPE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_warningtype(uint8_t** ptr, LIBLTE_S1AP_WARNINGTYPE_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE WarningMessageContents DYNAMIC OCTET STRING
********************************************************************************/
// lb:1, ub:9600
typedef struct {
uint32_t n_octets;
uint8_t buffer[9600];
} LIBLTE_S1AP_WARNINGMESSAGECONTENTS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_warningmessagecontents(LIBLTE_S1AP_WARNINGMESSAGECONTENTS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_warningmessagecontents(uint8_t** ptr,
LIBLTE_S1AP_WARNINGMESSAGECONTENTS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CauseProtocol ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_CAUSEPROTOCOL_TRANSFER_SYNTAX_ERROR,
LIBLTE_S1AP_CAUSEPROTOCOL_ABSTRACT_SYNTAX_ERROR_REJECT,
LIBLTE_S1AP_CAUSEPROTOCOL_ABSTRACT_SYNTAX_ERROR_IGNORE_AND_NOTIFY,
LIBLTE_S1AP_CAUSEPROTOCOL_MESSAGE_NOT_COMPATIBLE_WITH_RECEIVER_STATE,
LIBLTE_S1AP_CAUSEPROTOCOL_SEMANTIC_ERROR,
LIBLTE_S1AP_CAUSEPROTOCOL_ABSTRACT_SYNTAX_ERROR_FALSELY_CONSTRUCTED_MESSAGE,
LIBLTE_S1AP_CAUSEPROTOCOL_UNSPECIFIED,
LIBLTE_S1AP_CAUSEPROTOCOL_N_ITEMS,
} LIBLTE_S1AP_CAUSEPROTOCOL_ENUM;
static const char liblte_s1ap_causeprotocol_text[LIBLTE_S1AP_CAUSEPROTOCOL_N_ITEMS][80] = {
"transfer-syntax-error",
"abstract-syntax-error-reject",
"abstract-syntax-error-ignore-and-notify",
"message-not-compatible-with-receiver-state",
"semantic-error",
"abstract-syntax-error-falsely-constructed-message",
"unspecified",
};
typedef struct {
bool ext;
LIBLTE_S1AP_CAUSEPROTOCOL_ENUM e;
} LIBLTE_S1AP_CAUSEPROTOCOL_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_causeprotocol(LIBLTE_S1AP_CAUSEPROTOCOL_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_causeprotocol(uint8_t** ptr, LIBLTE_S1AP_CAUSEPROTOCOL_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE CellAccessMode ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_CELLACCESSMODE_HYBRID,
LIBLTE_S1AP_CELLACCESSMODE_N_ITEMS,
} LIBLTE_S1AP_CELLACCESSMODE_ENUM;
static const char liblte_s1ap_cellaccessmode_text[LIBLTE_S1AP_CELLACCESSMODE_N_ITEMS][80] = {
"hybrid",
};
typedef struct {
bool ext;
LIBLTE_S1AP_CELLACCESSMODE_ENUM e;
} LIBLTE_S1AP_CELLACCESSMODE_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cellaccessmode(LIBLTE_S1AP_CELLACCESSMODE_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cellaccessmode(uint8_t** ptr, LIBLTE_S1AP_CELLACCESSMODE_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE Cdma2000RATType ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_CDMA2000RATTYPE_HRPD,
LIBLTE_S1AP_CDMA2000RATTYPE_ONEXRTT,
LIBLTE_S1AP_CDMA2000RATTYPE_N_ITEMS,
} LIBLTE_S1AP_CDMA2000RATTYPE_ENUM;
static const char liblte_s1ap_cdma2000rattype_text[LIBLTE_S1AP_CDMA2000RATTYPE_N_ITEMS][80] = {
"hRPD",
"onexRTT",
};
typedef struct {
bool ext;
LIBLTE_S1AP_CDMA2000RATTYPE_ENUM e;
} LIBLTE_S1AP_CDMA2000RATTYPE_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cdma2000rattype(LIBLTE_S1AP_CDMA2000RATTYPE_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cdma2000rattype(uint8_t** ptr, LIBLTE_S1AP_CDMA2000RATTYPE_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE Cdma2000OneXMEID DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_CDMA2000ONEXMEID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cdma2000onexmeid(LIBLTE_S1AP_CDMA2000ONEXMEID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cdma2000onexmeid(uint8_t** ptr, LIBLTE_S1AP_CDMA2000ONEXMEID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Cell_Size ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_CELL_SIZE_VERYSMALL,
LIBLTE_S1AP_CELL_SIZE_SMALL,
LIBLTE_S1AP_CELL_SIZE_MEDIUM,
LIBLTE_S1AP_CELL_SIZE_LARGE,
LIBLTE_S1AP_CELL_SIZE_N_ITEMS,
} LIBLTE_S1AP_CELL_SIZE_ENUM;
static const char liblte_s1ap_cell_size_text[LIBLTE_S1AP_CELL_SIZE_N_ITEMS][80] = {
"verysmall",
"small",
"medium",
"large",
};
typedef struct {
bool ext;
LIBLTE_S1AP_CELL_SIZE_ENUM e;
} LIBLTE_S1AP_CELL_SIZE_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cell_size(LIBLTE_S1AP_CELL_SIZE_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cell_size(uint8_t** ptr, LIBLTE_S1AP_CELL_SIZE_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE CI STATIC OCTET STRING
********************************************************************************/
#define LIBLTE_S1AP_CI_OCTET_STRING_LEN 2
typedef struct {
uint8_t buffer[2];
} LIBLTE_S1AP_CI_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ci(LIBLTE_S1AP_CI_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ci(uint8_t** ptr, LIBLTE_S1AP_CI_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CSFallbackIndicator ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_CSFALLBACKINDICATOR_CS_FALLBACK_REQUIRED,
LIBLTE_S1AP_CSFALLBACKINDICATOR_CS_FALLBACK_HIGH_PRIORITY,
LIBLTE_S1AP_CSFALLBACKINDICATOR_N_ITEMS,
} LIBLTE_S1AP_CSFALLBACKINDICATOR_ENUM;
static const char liblte_s1ap_csfallbackindicator_text[LIBLTE_S1AP_CSFALLBACKINDICATOR_N_ITEMS][80] = {
"cs-fallback-required",
"cs-fallback-high-priority",
};
typedef struct {
bool ext;
LIBLTE_S1AP_CSFALLBACKINDICATOR_ENUM e;
} LIBLTE_S1AP_CSFALLBACKINDICATOR_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_csfallbackindicator(LIBLTE_S1AP_CSFALLBACKINDICATOR_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_csfallbackindicator(uint8_t** ptr, LIBLTE_S1AP_CSFALLBACKINDICATOR_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE CSGMembershipStatus ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_CSGMEMBERSHIPSTATUS_MEMBER,
LIBLTE_S1AP_CSGMEMBERSHIPSTATUS_NOT_MEMBER,
LIBLTE_S1AP_CSGMEMBERSHIPSTATUS_N_ITEMS,
} LIBLTE_S1AP_CSGMEMBERSHIPSTATUS_ENUM;
static const char liblte_s1ap_csgmembershipstatus_text[LIBLTE_S1AP_CSGMEMBERSHIPSTATUS_N_ITEMS][80] = {
"member",
"not-member",
};
LIBLTE_ERROR_ENUM liblte_s1ap_pack_csgmembershipstatus(LIBLTE_S1AP_CSGMEMBERSHIPSTATUS_ENUM* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_csgmembershipstatus(uint8_t** ptr, LIBLTE_S1AP_CSGMEMBERSHIPSTATUS_ENUM* ie);
/*******************************************************************************
/* ProtocolIE DataCodingScheme STATIC BIT STRING
********************************************************************************/
#define LIBLTE_S1AP_DATACODINGSCHEME_BIT_STRING_LEN 8
typedef struct {
uint8_t buffer[8];
} LIBLTE_S1AP_DATACODINGSCHEME_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_datacodingscheme(LIBLTE_S1AP_DATACODINGSCHEME_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_datacodingscheme(uint8_t** ptr, LIBLTE_S1AP_DATACODINGSCHEME_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE EmergencyAreaIDList DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_EMERGENCYAREAID_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_EMERGENCYAREAIDLIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_emergencyareaidlist(LIBLTE_S1AP_EMERGENCYAREAIDLIST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_emergencyareaidlist(uint8_t** ptr, LIBLTE_S1AP_EMERGENCYAREAIDLIST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE EmergencyAreaIDListForRestart DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_EMERGENCYAREAID_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_EMERGENCYAREAIDLISTFORRESTART_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_emergencyareaidlistforrestart(LIBLTE_S1AP_EMERGENCYAREAIDLISTFORRESTART_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_emergencyareaidlistforrestart(uint8_t** ptr, LIBLTE_S1AP_EMERGENCYAREAIDLISTFORRESTART_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ENB_UE_S1AP_ID INTEGER
********************************************************************************/
typedef struct {
uint32_t ENB_UE_S1AP_ID;
} LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_enb_ue_s1ap_id(LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_enb_ue_s1ap_id(uint8_t** ptr, LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RAB_ID INTEGER
********************************************************************************/
typedef struct {
bool ext;
uint8_t E_RAB_ID;
} LIBLTE_S1AP_E_RAB_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rab_id(LIBLTE_S1AP_E_RAB_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rab_id(uint8_t** ptr, LIBLTE_S1AP_E_RAB_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RABInformationListItem SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RAB_ID_STRUCT e_RAB_ID;
LIBLTE_S1AP_DL_FORWARDING_ENUM_EXT dL_Forwarding;
bool dL_Forwarding_present;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_E_RABINFORMATIONLISTITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabinformationlistitem(LIBLTE_S1AP_E_RABINFORMATIONLISTITEM_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabinformationlistitem(uint8_t** ptr,
LIBLTE_S1AP_E_RABINFORMATIONLISTITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE EUTRANRoundTripDelayEstimationInfo INTEGER
********************************************************************************/
typedef struct {
uint16_t EUTRANRoundTripDelayEstimationInfo;
} LIBLTE_S1AP_EUTRANROUNDTRIPDELAYESTIMATIONINFO_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_eutranroundtripdelayestimationinfo(LIBLTE_S1AP_EUTRANROUNDTRIPDELAYESTIMATIONINFO_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_eutranroundtripdelayestimationinfo(uint8_t** ptr,
LIBLTE_S1AP_EUTRANROUNDTRIPDELAYESTIMATIONINFO_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ForbiddenLACs DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:4096
typedef struct {
uint32_t len;
LIBLTE_S1AP_LAC_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_FORBIDDENLACS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_forbiddenlacs(LIBLTE_S1AP_FORBIDDENLACS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_forbiddenlacs(uint8_t** ptr, LIBLTE_S1AP_FORBIDDENLACS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE GTP_TEID STATIC OCTET STRING
********************************************************************************/
#define LIBLTE_S1AP_GTP_TEID_OCTET_STRING_LEN 4
typedef struct {
uint8_t buffer[4];
} LIBLTE_S1AP_GTP_TEID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_gtp_teid(LIBLTE_S1AP_GTP_TEID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_gtp_teid(uint8_t** ptr, LIBLTE_S1AP_GTP_TEID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE GUMMEIType ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_GUMMEITYPE_NATIVE,
LIBLTE_S1AP_GUMMEITYPE_MAPPED,
LIBLTE_S1AP_GUMMEITYPE_N_ITEMS,
} LIBLTE_S1AP_GUMMEITYPE_ENUM;
static const char liblte_s1ap_gummeitype_text[LIBLTE_S1AP_GUMMEITYPE_N_ITEMS][80] = {
"native",
"mapped",
};
typedef struct {
bool ext;
LIBLTE_S1AP_GUMMEITYPE_ENUM e;
} LIBLTE_S1AP_GUMMEITYPE_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_gummeitype(LIBLTE_S1AP_GUMMEITYPE_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_gummeitype(uint8_t** ptr, LIBLTE_S1AP_GUMMEITYPE_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE HandoverType ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_HANDOVERTYPE_INTRALTE,
LIBLTE_S1AP_HANDOVERTYPE_LTETOUTRAN,
LIBLTE_S1AP_HANDOVERTYPE_LTETOGERAN,
LIBLTE_S1AP_HANDOVERTYPE_UTRANTOLTE,
LIBLTE_S1AP_HANDOVERTYPE_GERANTOLTE,
LIBLTE_S1AP_HANDOVERTYPE_N_ITEMS,
} LIBLTE_S1AP_HANDOVERTYPE_ENUM;
static const char liblte_s1ap_handovertype_text[LIBLTE_S1AP_HANDOVERTYPE_N_ITEMS][80] = {
"intralte",
"ltetoutran",
"ltetogeran",
"utrantolte",
"gerantolte",
};
typedef struct {
bool ext;
LIBLTE_S1AP_HANDOVERTYPE_ENUM e;
} LIBLTE_S1AP_HANDOVERTYPE_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_handovertype(LIBLTE_S1AP_HANDOVERTYPE_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_handovertype(uint8_t** ptr, LIBLTE_S1AP_HANDOVERTYPE_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE IntegrityProtectionAlgorithms STATIC BIT STRING
********************************************************************************/
#define LIBLTE_S1AP_INTEGRITYPROTECTIONALGORITHMS_BIT_STRING_LEN 16
typedef struct {
bool ext;
uint8_t buffer[16];
} LIBLTE_S1AP_INTEGRITYPROTECTIONALGORITHMS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_integrityprotectionalgorithms(LIBLTE_S1AP_INTEGRITYPROTECTIONALGORITHMS_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_integrityprotectionalgorithms(uint8_t** ptr, LIBLTE_S1AP_INTEGRITYPROTECTIONALGORITHMS_STRUCT* ie);
// TODO: Type undefined NULL
/*******************************************************************************
/* ProtocolIE LastVisitedGERANCellInformation CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_LASTVISITEDGERANCELLINFORMATION_CHOICE_UNDEFINED,
LIBLTE_S1AP_LASTVISITEDGERANCELLINFORMATION_CHOICE_N_ITEMS,
} LIBLTE_S1AP_LASTVISITEDGERANCELLINFORMATION_CHOICE_ENUM;
static const char
liblte_s1ap_lastvisitedgerancellinformation_choice_text[LIBLTE_S1AP_LASTVISITEDGERANCELLINFORMATION_CHOICE_N_ITEMS]
[50] = {
"undefined",
};
typedef union {
// TODO: NULL undefined;
} LIBLTE_S1AP_LASTVISITEDGERANCELLINFORMATION_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_LASTVISITEDGERANCELLINFORMATION_CHOICE_UNION choice;
LIBLTE_S1AP_LASTVISITEDGERANCELLINFORMATION_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_LASTVISITEDGERANCELLINFORMATION_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_lastvisitedgerancellinformation(LIBLTE_S1AP_LASTVISITEDGERANCELLINFORMATION_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_lastvisitedgerancellinformation(uint8_t** ptr,
LIBLTE_S1AP_LASTVISITEDGERANCELLINFORMATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Links_to_log ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_LINKS_TO_LOG_UPLINK,
LIBLTE_S1AP_LINKS_TO_LOG_DOWNLINK,
LIBLTE_S1AP_LINKS_TO_LOG_BOTH_UPLINK_AND_DOWNLINK,
LIBLTE_S1AP_LINKS_TO_LOG_N_ITEMS,
} LIBLTE_S1AP_LINKS_TO_LOG_ENUM;
static const char liblte_s1ap_links_to_log_text[LIBLTE_S1AP_LINKS_TO_LOG_N_ITEMS][80] = {
"uplink",
"downlink",
"both-uplink-and-downlink",
};
typedef struct {
bool ext;
LIBLTE_S1AP_LINKS_TO_LOG_ENUM e;
} LIBLTE_S1AP_LINKS_TO_LOG_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_links_to_log(LIBLTE_S1AP_LINKS_TO_LOG_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_links_to_log(uint8_t** ptr, LIBLTE_S1AP_LINKS_TO_LOG_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE LoggingInterval ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_LOGGINGINTERVAL_MS128,
LIBLTE_S1AP_LOGGINGINTERVAL_MS256,
LIBLTE_S1AP_LOGGINGINTERVAL_MS512,
LIBLTE_S1AP_LOGGINGINTERVAL_MS1024,
LIBLTE_S1AP_LOGGINGINTERVAL_MS2048,
LIBLTE_S1AP_LOGGINGINTERVAL_MS3072,
LIBLTE_S1AP_LOGGINGINTERVAL_MS4096,
LIBLTE_S1AP_LOGGINGINTERVAL_MS6144,
LIBLTE_S1AP_LOGGINGINTERVAL_N_ITEMS,
} LIBLTE_S1AP_LOGGINGINTERVAL_ENUM;
static const char liblte_s1ap_logginginterval_text[LIBLTE_S1AP_LOGGINGINTERVAL_N_ITEMS][80] = {
"ms128",
"ms256",
"ms512",
"ms1024",
"ms2048",
"ms3072",
"ms4096",
"ms6144",
};
LIBLTE_ERROR_ENUM liblte_s1ap_pack_logginginterval(LIBLTE_S1AP_LOGGINGINTERVAL_ENUM* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_logginginterval(uint8_t** ptr, LIBLTE_S1AP_LOGGINGINTERVAL_ENUM* ie);
/*******************************************************************************
/* ProtocolIE M3period ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_M3PERIOD_MS100,
LIBLTE_S1AP_M3PERIOD_MS1000,
LIBLTE_S1AP_M3PERIOD_MS10000,
LIBLTE_S1AP_M3PERIOD_N_ITEMS,
} LIBLTE_S1AP_M3PERIOD_ENUM;
static const char liblte_s1ap_m3period_text[LIBLTE_S1AP_M3PERIOD_N_ITEMS][80] = {
"ms100",
"ms1000",
"ms10000",
};
typedef struct {
bool ext;
LIBLTE_S1AP_M3PERIOD_ENUM e;
} LIBLTE_S1AP_M3PERIOD_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_m3period(LIBLTE_S1AP_M3PERIOD_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_m3period(uint8_t** ptr, LIBLTE_S1AP_M3PERIOD_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE M4period ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_M4PERIOD_MS1024,
LIBLTE_S1AP_M4PERIOD_MS2048,
LIBLTE_S1AP_M4PERIOD_MS5120,
LIBLTE_S1AP_M4PERIOD_MS10240,
LIBLTE_S1AP_M4PERIOD_MIN1,
LIBLTE_S1AP_M4PERIOD_N_ITEMS,
} LIBLTE_S1AP_M4PERIOD_ENUM;
static const char liblte_s1ap_m4period_text[LIBLTE_S1AP_M4PERIOD_N_ITEMS][80] = {
"ms1024",
"ms2048",
"ms5120",
"ms10240",
"min1",
};
typedef struct {
bool ext;
LIBLTE_S1AP_M4PERIOD_ENUM e;
} LIBLTE_S1AP_M4PERIOD_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_m4period(LIBLTE_S1AP_M4PERIOD_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_m4period(uint8_t** ptr, LIBLTE_S1AP_M4PERIOD_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE M5period ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_M5PERIOD_MS1024,
LIBLTE_S1AP_M5PERIOD_MS2048,
LIBLTE_S1AP_M5PERIOD_MS5120,
LIBLTE_S1AP_M5PERIOD_MS10240,
LIBLTE_S1AP_M5PERIOD_MIN1,
LIBLTE_S1AP_M5PERIOD_N_ITEMS,
} LIBLTE_S1AP_M5PERIOD_ENUM;
static const char liblte_s1ap_m5period_text[LIBLTE_S1AP_M5PERIOD_N_ITEMS][80] = {
"ms1024",
"ms2048",
"ms5120",
"ms10240",
"min1",
};
typedef struct {
bool ext;
LIBLTE_S1AP_M5PERIOD_ENUM e;
} LIBLTE_S1AP_M5PERIOD_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_m5period(LIBLTE_S1AP_M5PERIOD_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_m5period(uint8_t** ptr, LIBLTE_S1AP_M5PERIOD_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE MobilityInformation STATIC BIT STRING
********************************************************************************/
#define LIBLTE_S1AP_MOBILITYINFORMATION_BIT_STRING_LEN 32
typedef struct {
uint8_t buffer[32];
} LIBLTE_S1AP_MOBILITYINFORMATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_mobilityinformation(LIBLTE_S1AP_MOBILITYINFORMATION_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_mobilityinformation(uint8_t** ptr, LIBLTE_S1AP_MOBILITYINFORMATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE MME_Code STATIC OCTET STRING
********************************************************************************/
#define LIBLTE_S1AP_MME_CODE_OCTET_STRING_LEN 1
typedef struct {
uint8_t buffer[1];
} LIBLTE_S1AP_MME_CODE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_mme_code(LIBLTE_S1AP_MME_CODE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_mme_code(uint8_t** ptr, LIBLTE_S1AP_MME_CODE_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE MSClassmark3 DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_MSCLASSMARK3_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_msclassmark3(LIBLTE_S1AP_MSCLASSMARK3_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_msclassmark3(uint8_t** ptr, LIBLTE_S1AP_MSCLASSMARK3_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE NumberofBroadcastRequest INTEGER
********************************************************************************/
typedef struct {
uint16_t NumberofBroadcastRequest;
} LIBLTE_S1AP_NUMBEROFBROADCASTREQUEST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_numberofbroadcastrequest(LIBLTE_S1AP_NUMBEROFBROADCASTREQUEST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_numberofbroadcastrequest(uint8_t** ptr,
LIBLTE_S1AP_NUMBEROFBROADCASTREQUEST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE OverloadResponse CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_OVERLOADRESPONSE_CHOICE_OVERLOADACTION,
LIBLTE_S1AP_OVERLOADRESPONSE_CHOICE_N_ITEMS,
} LIBLTE_S1AP_OVERLOADRESPONSE_CHOICE_ENUM;
static const char liblte_s1ap_overloadresponse_choice_text[LIBLTE_S1AP_OVERLOADRESPONSE_CHOICE_N_ITEMS][50] = {
"overloadAction",
};
typedef union {
LIBLTE_S1AP_OVERLOADACTION_ENUM_EXT overloadAction;
} LIBLTE_S1AP_OVERLOADRESPONSE_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_OVERLOADRESPONSE_CHOICE_UNION choice;
LIBLTE_S1AP_OVERLOADRESPONSE_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_OVERLOADRESPONSE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_overloadresponse(LIBLTE_S1AP_OVERLOADRESPONSE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_overloadresponse(uint8_t** ptr, LIBLTE_S1AP_OVERLOADRESPONSE_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE PDCP_SNExtended INTEGER
********************************************************************************/
typedef struct {
uint16_t PDCP_SNExtended;
} LIBLTE_S1AP_PDCP_SNEXTENDED_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_pdcp_snextended(LIBLTE_S1AP_PDCP_SNEXTENDED_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_pdcp_snextended(uint8_t** ptr, LIBLTE_S1AP_PDCP_SNEXTENDED_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Pre_emptionCapability ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_PRE_EMPTIONCAPABILITY_SHALL_NOT_TRIGGER_PRE_EMPTION,
LIBLTE_S1AP_PRE_EMPTIONCAPABILITY_MAY_TRIGGER_PRE_EMPTION,
LIBLTE_S1AP_PRE_EMPTIONCAPABILITY_N_ITEMS,
} LIBLTE_S1AP_PRE_EMPTIONCAPABILITY_ENUM;
static const char liblte_s1ap_pre_emptioncapability_text[LIBLTE_S1AP_PRE_EMPTIONCAPABILITY_N_ITEMS][80] = {
"shall-not-trigger-pre-emption",
"may-trigger-pre-emption",
};
LIBLTE_ERROR_ENUM liblte_s1ap_pack_pre_emptioncapability(LIBLTE_S1AP_PRE_EMPTIONCAPABILITY_ENUM* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_pre_emptioncapability(uint8_t** ptr, LIBLTE_S1AP_PRE_EMPTIONCAPABILITY_ENUM* ie);
/*******************************************************************************
/* ProtocolIE QCI INTEGER
********************************************************************************/
typedef struct {
uint8_t QCI;
} LIBLTE_S1AP_QCI_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_qci(LIBLTE_S1AP_QCI_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_qci(uint8_t** ptr, LIBLTE_S1AP_QCI_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE RelayNode_Indicator ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_RELAYNODE_INDICATOR_TRUE,
LIBLTE_S1AP_RELAYNODE_INDICATOR_N_ITEMS,
} LIBLTE_S1AP_RELAYNODE_INDICATOR_ENUM;
static const char liblte_s1ap_relaynode_indicator_text[LIBLTE_S1AP_RELAYNODE_INDICATOR_N_ITEMS][80] = {
"true",
};
typedef struct {
bool ext;
LIBLTE_S1AP_RELAYNODE_INDICATOR_ENUM e;
} LIBLTE_S1AP_RELAYNODE_INDICATOR_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_relaynode_indicator(LIBLTE_S1AP_RELAYNODE_INDICATOR_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_relaynode_indicator(uint8_t** ptr, LIBLTE_S1AP_RELAYNODE_INDICATOR_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE M1ReportingTrigger ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_M1REPORTINGTRIGGER_PERIODIC,
LIBLTE_S1AP_M1REPORTINGTRIGGER_A2EVENTTRIGGERED,
LIBLTE_S1AP_M1REPORTINGTRIGGER_A2EVENTTRIGGERED_PERIODIC,
LIBLTE_S1AP_M1REPORTINGTRIGGER_N_ITEMS,
} LIBLTE_S1AP_M1REPORTINGTRIGGER_ENUM;
static const char liblte_s1ap_m1reportingtrigger_text[LIBLTE_S1AP_M1REPORTINGTRIGGER_N_ITEMS][80] = {
"periodic",
"a2eventtriggered",
"a2eventtriggered-periodic",
};
typedef struct {
bool ext;
LIBLTE_S1AP_M1REPORTINGTRIGGER_ENUM e;
} LIBLTE_S1AP_M1REPORTINGTRIGGER_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_m1reportingtrigger(LIBLTE_S1AP_M1REPORTINGTRIGGER_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_m1reportingtrigger(uint8_t** ptr, LIBLTE_S1AP_M1REPORTINGTRIGGER_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE RIMInformation DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_RIMINFORMATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_riminformation(LIBLTE_S1AP_RIMINFORMATION_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_riminformation(uint8_t** ptr, LIBLTE_S1AP_RIMINFORMATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE RepetitionPeriod INTEGER
********************************************************************************/
typedef struct {
uint16_t RepetitionPeriod;
} LIBLTE_S1AP_REPETITIONPERIOD_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_repetitionperiod(LIBLTE_S1AP_REPETITIONPERIOD_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_repetitionperiod(uint8_t** ptr, LIBLTE_S1AP_REPETITIONPERIOD_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE SecurityKey STATIC BIT STRING
********************************************************************************/
#define LIBLTE_S1AP_SECURITYKEY_BIT_STRING_LEN 256
typedef struct {
uint8_t buffer[256];
} LIBLTE_S1AP_SECURITYKEY_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_securitykey(LIBLTE_S1AP_SECURITYKEY_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_securitykey(uint8_t** ptr, LIBLTE_S1AP_SECURITYKEY_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE SerialNumber STATIC BIT STRING
********************************************************************************/
#define LIBLTE_S1AP_SERIALNUMBER_BIT_STRING_LEN 16
typedef struct {
uint8_t buffer[16];
} LIBLTE_S1AP_SERIALNUMBER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_serialnumber(LIBLTE_S1AP_SERIALNUMBER_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_serialnumber(uint8_t** ptr, LIBLTE_S1AP_SERIALNUMBER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE SourceBSS_ToTargetBSS_TransparentContainer DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_SOURCEBSS_TOTARGETBSS_TRANSPARENTCONTAINER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_sourcebss_totargetbss_transparentcontainer(
LIBLTE_S1AP_SOURCEBSS_TOTARGETBSS_TRANSPARENTCONTAINER_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_sourcebss_totargetbss_transparentcontainer(
uint8_t** ptr, LIBLTE_S1AP_SOURCEBSS_TOTARGETBSS_TRANSPARENTCONTAINER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE SRVCCOperationPossible ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_SRVCCOPERATIONPOSSIBLE_POSSIBLE,
LIBLTE_S1AP_SRVCCOPERATIONPOSSIBLE_N_ITEMS,
} LIBLTE_S1AP_SRVCCOPERATIONPOSSIBLE_ENUM;
static const char liblte_s1ap_srvccoperationpossible_text[LIBLTE_S1AP_SRVCCOPERATIONPOSSIBLE_N_ITEMS][80] = {
"possible",
};
typedef struct {
bool ext;
LIBLTE_S1AP_SRVCCOPERATIONPOSSIBLE_ENUM e;
} LIBLTE_S1AP_SRVCCOPERATIONPOSSIBLE_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_srvccoperationpossible(LIBLTE_S1AP_SRVCCOPERATIONPOSSIBLE_ENUM_EXT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_srvccoperationpossible(uint8_t** ptr,
LIBLTE_S1AP_SRVCCOPERATIONPOSSIBLE_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE ServedGroupIDs DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_MME_GROUP_ID_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_SERVEDGROUPIDS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_servedgroupids(LIBLTE_S1AP_SERVEDGROUPIDS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_servedgroupids(uint8_t** ptr, LIBLTE_S1AP_SERVEDGROUPIDS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE StratumLevel INTEGER
********************************************************************************/
typedef struct {
bool ext;
uint8_t StratumLevel;
} LIBLTE_S1AP_STRATUMLEVEL_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_stratumlevel(LIBLTE_S1AP_STRATUMLEVEL_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_stratumlevel(uint8_t** ptr, LIBLTE_S1AP_STRATUMLEVEL_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TAC STATIC OCTET STRING
********************************************************************************/
#define LIBLTE_S1AP_TAC_OCTET_STRING_LEN 2
typedef struct {
uint8_t buffer[2];
} LIBLTE_S1AP_TAC_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tac(LIBLTE_S1AP_TAC_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tac(uint8_t** ptr, LIBLTE_S1AP_TAC_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TAListforMDT DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:8
typedef struct {
uint32_t len;
LIBLTE_S1AP_TAC_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_TALISTFORMDT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_talistformdt(LIBLTE_S1AP_TALISTFORMDT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_talistformdt(uint8_t** ptr, LIBLTE_S1AP_TALISTFORMDT_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TBCD_STRING STATIC OCTET STRING
********************************************************************************/
#define LIBLTE_S1AP_TBCD_STRING_OCTET_STRING_LEN 3
typedef struct {
uint8_t buffer[3];
} LIBLTE_S1AP_TBCD_STRING_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tbcd_string(LIBLTE_S1AP_TBCD_STRING_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tbcd_string(uint8_t** ptr, LIBLTE_S1AP_TBCD_STRING_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Target_ToSource_TransparentContainer DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_TARGET_TOSOURCE_TRANSPARENTCONTAINER_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_target_tosource_transparentcontainer(LIBLTE_S1AP_TARGET_TOSOURCE_TRANSPARENTCONTAINER_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_target_tosource_transparentcontainer(uint8_t** ptr,
LIBLTE_S1AP_TARGET_TOSOURCE_TRANSPARENTCONTAINER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Threshold_RSRP INTEGER
********************************************************************************/
typedef struct {
uint8_t Threshold_RSRP;
} LIBLTE_S1AP_THRESHOLD_RSRP_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_threshold_rsrp(LIBLTE_S1AP_THRESHOLD_RSRP_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_threshold_rsrp(uint8_t** ptr, LIBLTE_S1AP_THRESHOLD_RSRP_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Time_UE_StayedInCell_EnhancedGranularity INTEGER
********************************************************************************/
typedef struct {
uint16_t Time_UE_StayedInCell_EnhancedGranularity;
} LIBLTE_S1AP_TIME_UE_STAYEDINCELL_ENHANCEDGRANULARITY_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_time_ue_stayedincell_enhancedgranularity(
LIBLTE_S1AP_TIME_UE_STAYEDINCELL_ENHANCEDGRANULARITY_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_time_ue_stayedincell_enhancedgranularity(
uint8_t** ptr, LIBLTE_S1AP_TIME_UE_STAYEDINCELL_ENHANCEDGRANULARITY_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_UTRAN_Trace_ID STATIC OCTET STRING
********************************************************************************/
#define LIBLTE_S1AP_E_UTRAN_TRACE_ID_OCTET_STRING_LEN 8
typedef struct {
uint8_t buffer[8];
} LIBLTE_S1AP_E_UTRAN_TRACE_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_utran_trace_id(LIBLTE_S1AP_E_UTRAN_TRACE_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_utran_trace_id(uint8_t** ptr, LIBLTE_S1AP_E_UTRAN_TRACE_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TypeOfError ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_TYPEOFERROR_NOT_UNDERSTOOD,
LIBLTE_S1AP_TYPEOFERROR_MISSING,
LIBLTE_S1AP_TYPEOFERROR_N_ITEMS,
} LIBLTE_S1AP_TYPEOFERROR_ENUM;
static const char liblte_s1ap_typeoferror_text[LIBLTE_S1AP_TYPEOFERROR_N_ITEMS][80] = {
"not-understood",
"missing",
};
typedef struct {
bool ext;
LIBLTE_S1AP_TYPEOFERROR_ENUM e;
} LIBLTE_S1AP_TYPEOFERROR_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_typeoferror(LIBLTE_S1AP_TYPEOFERROR_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_typeoferror(uint8_t** ptr, LIBLTE_S1AP_TYPEOFERROR_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE UEAggregateMaximumBitrate SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_BITRATE_STRUCT uEaggregateMaximumBitRateDL;
LIBLTE_S1AP_BITRATE_STRUCT uEaggregateMaximumBitRateUL;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_UEAGGREGATEMAXIMUMBITRATE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ueaggregatemaximumbitrate(LIBLTE_S1AP_UEAGGREGATEMAXIMUMBITRATE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ueaggregatemaximumbitrate(uint8_t** ptr,
LIBLTE_S1AP_UEAGGREGATEMAXIMUMBITRATE_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE UE_S1AP_ID_pair SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT mME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_UE_S1AP_ID_PAIR_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ue_s1ap_id_pair(LIBLTE_S1AP_UE_S1AP_ID_PAIR_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ue_s1ap_id_pair(uint8_t** ptr, LIBLTE_S1AP_UE_S1AP_ID_PAIR_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE UEIdentityIndexValue STATIC BIT STRING
********************************************************************************/
#define LIBLTE_S1AP_UEIDENTITYINDEXVALUE_BIT_STRING_LEN 10
typedef struct {
uint8_t buffer[10];
} LIBLTE_S1AP_UEIDENTITYINDEXVALUE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ueidentityindexvalue(LIBLTE_S1AP_UEIDENTITYINDEXVALUE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ueidentityindexvalue(uint8_t** ptr, LIBLTE_S1AP_UEIDENTITYINDEXVALUE_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE UESecurityCapabilities SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_ENCRYPTIONALGORITHMS_STRUCT encryptionAlgorithms;
LIBLTE_S1AP_INTEGRITYPROTECTIONALGORITHMS_STRUCT integrityProtectionAlgorithms;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_UESECURITYCAPABILITIES_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_uesecuritycapabilities(LIBLTE_S1AP_UESECURITYCAPABILITIES_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_uesecuritycapabilities(uint8_t** ptr,
LIBLTE_S1AP_UESECURITYCAPABILITIES_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE VoiceSupportMatchIndicator ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_VOICESUPPORTMATCHINDICATOR_SUPPORTED,
LIBLTE_S1AP_VOICESUPPORTMATCHINDICATOR_NOT_SUPPORTED,
LIBLTE_S1AP_VOICESUPPORTMATCHINDICATOR_N_ITEMS,
} LIBLTE_S1AP_VOICESUPPORTMATCHINDICATOR_ENUM;
static const char liblte_s1ap_voicesupportmatchindicator_text[LIBLTE_S1AP_VOICESUPPORTMATCHINDICATOR_N_ITEMS][80] = {
"supported",
"not-supported",
};
typedef struct {
bool ext;
LIBLTE_S1AP_VOICESUPPORTMATCHINDICATOR_ENUM e;
} LIBLTE_S1AP_VOICESUPPORTMATCHINDICATOR_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_voicesupportmatchindicator(LIBLTE_S1AP_VOICESUPPORTMATCHINDICATOR_ENUM_EXT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_voicesupportmatchindicator(uint8_t** ptr,
LIBLTE_S1AP_VOICESUPPORTMATCHINDICATOR_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE WarningSecurityInfo STATIC OCTET STRING
********************************************************************************/
#define LIBLTE_S1AP_WARNINGSECURITYINFO_OCTET_STRING_LEN 50
typedef struct {
uint8_t buffer[50];
} LIBLTE_S1AP_WARNINGSECURITYINFO_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_warningsecurityinfo(LIBLTE_S1AP_WARNINGSECURITYINFO_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_warningsecurityinfo(uint8_t** ptr, LIBLTE_S1AP_WARNINGSECURITYINFO_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ENBX2GTPTLAs DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:16
typedef struct {
uint32_t len;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_ENBX2GTPTLAS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_enbx2gtptlas(LIBLTE_S1AP_ENBX2GTPTLAS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_enbx2gtptlas(uint8_t** ptr, LIBLTE_S1AP_ENBX2GTPTLAS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CauseTransport ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_CAUSETRANSPORT_TRANSPORT_RESOURCE_UNAVAILABLE,
LIBLTE_S1AP_CAUSETRANSPORT_UNSPECIFIED,
LIBLTE_S1AP_CAUSETRANSPORT_N_ITEMS,
} LIBLTE_S1AP_CAUSETRANSPORT_ENUM;
static const char liblte_s1ap_causetransport_text[LIBLTE_S1AP_CAUSETRANSPORT_N_ITEMS][80] = {
"transport-resource-unavailable",
"unspecified",
};
typedef struct {
bool ext;
LIBLTE_S1AP_CAUSETRANSPORT_ENUM e;
} LIBLTE_S1AP_CAUSETRANSPORT_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_causetransport(LIBLTE_S1AP_CAUSETRANSPORT_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_causetransport(uint8_t** ptr, LIBLTE_S1AP_CAUSETRANSPORT_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE Cdma2000HOStatus ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_CDMA2000HOSTATUS_HOSUCCESS,
LIBLTE_S1AP_CDMA2000HOSTATUS_HOFAILURE,
LIBLTE_S1AP_CDMA2000HOSTATUS_N_ITEMS,
} LIBLTE_S1AP_CDMA2000HOSTATUS_ENUM;
static const char liblte_s1ap_cdma2000hostatus_text[LIBLTE_S1AP_CDMA2000HOSTATUS_N_ITEMS][80] = {
"hOSuccess",
"hOFailure",
};
typedef struct {
bool ext;
LIBLTE_S1AP_CDMA2000HOSTATUS_ENUM e;
} LIBLTE_S1AP_CDMA2000HOSTATUS_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cdma2000hostatus(LIBLTE_S1AP_CDMA2000HOSTATUS_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cdma2000hostatus(uint8_t** ptr, LIBLTE_S1AP_CDMA2000HOSTATUS_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE Cdma2000OneXPilot DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_CDMA2000ONEXPILOT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cdma2000onexpilot(LIBLTE_S1AP_CDMA2000ONEXPILOT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cdma2000onexpilot(uint8_t** ptr, LIBLTE_S1AP_CDMA2000ONEXPILOT_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ConcurrentWarningMessageIndicator ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_CONCURRENTWARNINGMESSAGEINDICATOR_TRUE,
LIBLTE_S1AP_CONCURRENTWARNINGMESSAGEINDICATOR_N_ITEMS,
} LIBLTE_S1AP_CONCURRENTWARNINGMESSAGEINDICATOR_ENUM;
static const char
liblte_s1ap_concurrentwarningmessageindicator_text[LIBLTE_S1AP_CONCURRENTWARNINGMESSAGEINDICATOR_N_ITEMS][80] = {
"true",
};
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_concurrentwarningmessageindicator(LIBLTE_S1AP_CONCURRENTWARNINGMESSAGEINDICATOR_ENUM* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_concurrentwarningmessageindicator(uint8_t** ptr,
LIBLTE_S1AP_CONCURRENTWARNINGMESSAGEINDICATOR_ENUM* ie);
/*******************************************************************************
/* ProtocolIE COUNTvalue SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_PDCP_SN_STRUCT pDCP_SN;
LIBLTE_S1AP_HFN_STRUCT hFN;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_COUNTVALUE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_countvalue(LIBLTE_S1AP_COUNTVALUE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_countvalue(uint8_t** ptr, LIBLTE_S1AP_COUNTVALUE_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CriticalityDiagnostics_IE_Item SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_CRITICALITY_ENUM iECriticality;
LIBLTE_S1AP_PROTOCOLIE_ID_STRUCT iE_ID;
LIBLTE_S1AP_TYPEOFERROR_ENUM_EXT typeOfError;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_IE_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_criticalitydiagnostics_ie_item(LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_IE_ITEM_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_criticalitydiagnostics_ie_item(uint8_t** ptr, LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_IE_ITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ENBX2TLAs DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:2
typedef struct {
uint32_t len;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_ENBX2TLAS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_enbx2tlas(LIBLTE_S1AP_ENBX2TLAS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_enbx2tlas(uint8_t** ptr, LIBLTE_S1AP_ENBX2TLAS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ExtendedRepetitionPeriod INTEGER
********************************************************************************/
typedef struct {
uint32_t ExtendedRepetitionPeriod;
} LIBLTE_S1AP_EXTENDEDREPETITIONPERIOD_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_extendedrepetitionperiod(LIBLTE_S1AP_EXTENDEDREPETITIONPERIOD_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_extendedrepetitionperiod(uint8_t** ptr,
LIBLTE_S1AP_EXTENDEDREPETITIONPERIOD_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ForbiddenTACs DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:4096
typedef struct {
uint32_t len;
LIBLTE_S1AP_TAC_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_FORBIDDENTACS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_forbiddentacs(LIBLTE_S1AP_FORBIDDENTACS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_forbiddentacs(uint8_t** ptr, LIBLTE_S1AP_FORBIDDENTACS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE GBR_QosInformation SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_BITRATE_STRUCT e_RAB_MaximumBitrateDL;
LIBLTE_S1AP_BITRATE_STRUCT e_RAB_MaximumBitrateUL;
LIBLTE_S1AP_BITRATE_STRUCT e_RAB_GuaranteedBitrateDL;
LIBLTE_S1AP_BITRATE_STRUCT e_RAB_GuaranteedBitrateUL;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_GBR_QOSINFORMATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_gbr_qosinformation(LIBLTE_S1AP_GBR_QOSINFORMATION_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_gbr_qosinformation(uint8_t** ptr, LIBLTE_S1AP_GBR_QOSINFORMATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE HFNModified INTEGER
********************************************************************************/
typedef struct {
uint32_t HFNModified;
} LIBLTE_S1AP_HFNMODIFIED_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_hfnmodified(LIBLTE_S1AP_HFNMODIFIED_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_hfnmodified(uint8_t** ptr, LIBLTE_S1AP_HFNMODIFIED_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE KillAllWarningMessages ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_KILLALLWARNINGMESSAGES_TRUE,
LIBLTE_S1AP_KILLALLWARNINGMESSAGES_N_ITEMS,
} LIBLTE_S1AP_KILLALLWARNINGMESSAGES_ENUM;
static const char liblte_s1ap_killallwarningmessages_text[LIBLTE_S1AP_KILLALLWARNINGMESSAGES_N_ITEMS][80] = {
"true",
};
LIBLTE_ERROR_ENUM liblte_s1ap_pack_killallwarningmessages(LIBLTE_S1AP_KILLALLWARNINGMESSAGES_ENUM* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_killallwarningmessages(uint8_t** ptr, LIBLTE_S1AP_KILLALLWARNINGMESSAGES_ENUM* ie);
/*******************************************************************************
/* ProtocolIE LPPa_PDU DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_LPPA_PDU_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_lppa_pdu(LIBLTE_S1AP_LPPA_PDU_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_lppa_pdu(uint8_t** ptr, LIBLTE_S1AP_LPPA_PDU_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE M3Configuration SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_M3PERIOD_ENUM_EXT m3period;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_M3CONFIGURATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_m3configuration(LIBLTE_S1AP_M3CONFIGURATION_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_m3configuration(uint8_t** ptr, LIBLTE_S1AP_M3CONFIGURATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE M5Configuration SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_M5PERIOD_ENUM_EXT m5period;
LIBLTE_S1AP_LINKS_TO_LOG_ENUM_EXT m5_links_to_log;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_M5CONFIGURATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_m5configuration(LIBLTE_S1AP_M5CONFIGURATION_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_m5configuration(uint8_t** ptr, LIBLTE_S1AP_M5CONFIGURATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE MeasurementThresholdA2 CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_MEASUREMENTTHRESHOLDA2_CHOICE_THRESHOLD_RSRP,
LIBLTE_S1AP_MEASUREMENTTHRESHOLDA2_CHOICE_THRESHOLD_RSRQ,
LIBLTE_S1AP_MEASUREMENTTHRESHOLDA2_CHOICE_N_ITEMS,
} LIBLTE_S1AP_MEASUREMENTTHRESHOLDA2_CHOICE_ENUM;
static const char liblte_s1ap_measurementthresholda2_choice_text[LIBLTE_S1AP_MEASUREMENTTHRESHOLDA2_CHOICE_N_ITEMS]
[50] = {
"threshold_RSRP",
"threshold_RSRQ",
};
typedef union {
LIBLTE_S1AP_THRESHOLD_RSRP_STRUCT threshold_RSRP;
LIBLTE_S1AP_THRESHOLD_RSRQ_STRUCT threshold_RSRQ;
} LIBLTE_S1AP_MEASUREMENTTHRESHOLDA2_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_MEASUREMENTTHRESHOLDA2_CHOICE_UNION choice;
LIBLTE_S1AP_MEASUREMENTTHRESHOLDA2_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_MEASUREMENTTHRESHOLDA2_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_measurementthresholda2(LIBLTE_S1AP_MEASUREMENTTHRESHOLDA2_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_measurementthresholda2(uint8_t** ptr,
LIBLTE_S1AP_MEASUREMENTTHRESHOLDA2_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE M_TMSI STATIC OCTET STRING
********************************************************************************/
#define LIBLTE_S1AP_M_TMSI_OCTET_STRING_LEN 4
typedef struct {
uint8_t buffer[4];
} LIBLTE_S1AP_M_TMSI_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_m_tmsi(LIBLTE_S1AP_M_TMSI_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_m_tmsi(uint8_t** ptr, LIBLTE_S1AP_M_TMSI_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE OldBSS_ToNewBSS_Information DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_OLDBSS_TONEWBSS_INFORMATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_oldbss_tonewbss_information(LIBLTE_S1AP_OLDBSS_TONEWBSS_INFORMATION_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_oldbss_tonewbss_information(uint8_t** ptr,
LIBLTE_S1AP_OLDBSS_TONEWBSS_INFORMATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE PLMNidentity STATIC OCTET STRING
********************************************************************************/
#define LIBLTE_S1AP_PLMNIDENTITY_OCTET_STRING_LEN 3
typedef struct {
uint8_t buffer[3];
} LIBLTE_S1AP_PLMNIDENTITY_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_plmnidentity(LIBLTE_S1AP_PLMNIDENTITY_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_plmnidentity(uint8_t** ptr, LIBLTE_S1AP_PLMNIDENTITY_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ReceiveStatusOfULPDCPSDUsExtended DYNAMIC BIT STRING
********************************************************************************/
// lb:1, ub:16384
typedef struct {
uint32_t n_bits;
uint8_t buffer[16384];
} LIBLTE_S1AP_RECEIVESTATUSOFULPDCPSDUSEXTENDED_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_receivestatusofulpdcpsdusextended(LIBLTE_S1AP_RECEIVESTATUSOFULPDCPSDUSEXTENDED_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_receivestatusofulpdcpsdusextended(uint8_t** ptr,
LIBLTE_S1AP_RECEIVESTATUSOFULPDCPSDUSEXTENDED_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE RequestType SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_EVENTTYPE_ENUM_EXT eventType;
LIBLTE_S1AP_REPORTAREA_ENUM_EXT reportArea;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_REQUESTTYPE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_requesttype(LIBLTE_S1AP_REQUESTTYPE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_requesttype(uint8_t** ptr, LIBLTE_S1AP_REQUESTTYPE_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE RRC_Container DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_RRC_CONTAINER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_rrc_container(LIBLTE_S1AP_RRC_CONTAINER_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_rrc_container(uint8_t** ptr, LIBLTE_S1AP_RRC_CONTAINER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE nextHopChainingCount INTEGER
********************************************************************************/
typedef struct {
uint8_t nextHopChainingCount;
} LIBLTE_S1AP_NEXTHOPCHAININGCOUNT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_nexthopchainingcount(LIBLTE_S1AP_NEXTHOPCHAININGCOUNT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_nexthopchainingcount(uint8_t** ptr, LIBLTE_S1AP_NEXTHOPCHAININGCOUNT_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE SecurityContext SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_NEXTHOPCHAININGCOUNT_STRUCT nextHopChainingCount;
LIBLTE_S1AP_SECURITYKEY_STRUCT nextHopParameter;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_SECURITYCONTEXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_securitycontext(LIBLTE_S1AP_SECURITYCONTEXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_securitycontext(uint8_t** ptr, LIBLTE_S1AP_SECURITYCONTEXT_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ServedMMECs DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_MME_CODE_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_SERVEDMMECS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_servedmmecs(LIBLTE_S1AP_SERVEDMMECS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_servedmmecs(uint8_t** ptr, LIBLTE_S1AP_SERVEDMMECS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TimeSynchronizationInfo SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_STRATUMLEVEL_STRUCT stratumLevel;
LIBLTE_S1AP_SYNCHRONIZATIONSTATUS_ENUM_EXT synchronizationStatus;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_TIMESYNCHRONIZATIONINFO_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_timesynchronizationinfo(LIBLTE_S1AP_TIMESYNCHRONIZATIONINFO_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_timesynchronizationinfo(uint8_t** ptr,
LIBLTE_S1AP_TIMESYNCHRONIZATIONINFO_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TAI SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TBCD_STRING_STRUCT pLMNidentity;
LIBLTE_S1AP_TAC_STRUCT tAC;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_TAI_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tai(LIBLTE_S1AP_TAI_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tai(uint8_t** ptr, LIBLTE_S1AP_TAI_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TABasedMDT SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TALISTFORMDT_STRUCT tAListforMDT;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_TABASEDMDT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tabasedmdt(LIBLTE_S1AP_TABASEDMDT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tabasedmdt(uint8_t** ptr, LIBLTE_S1AP_TABASEDMDT_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TargeteNB_ToSourceeNB_TransparentContainer SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_RRC_CONTAINER_STRUCT rRC_Container;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_TARGETENB_TOSOURCEENB_TRANSPARENTCONTAINER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_targetenb_tosourceenb_transparentcontainer(
LIBLTE_S1AP_TARGETENB_TOSOURCEENB_TRANSPARENTCONTAINER_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_targetenb_tosourceenb_transparentcontainer(
uint8_t** ptr, LIBLTE_S1AP_TARGETENB_TOSOURCEENB_TRANSPARENTCONTAINER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE M1ThresholdEventA2 SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MEASUREMENTTHRESHOLDA2_STRUCT measurementThreshold;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_M1THRESHOLDEVENTA2_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_m1thresholdeventa2(LIBLTE_S1AP_M1THRESHOLDEVENTA2_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_m1thresholdeventa2(uint8_t** ptr, LIBLTE_S1AP_M1THRESHOLDEVENTA2_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TransportInformation SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT transportLayerAddress;
LIBLTE_S1AP_GTP_TEID_STRUCT uL_GTP_TEID;
} LIBLTE_S1AP_TRANSPORTINFORMATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_transportinformation(LIBLTE_S1AP_TRANSPORTINFORMATION_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_transportinformation(uint8_t** ptr, LIBLTE_S1AP_TRANSPORTINFORMATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TunnelInformation SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT transportLayerAddress;
LIBLTE_S1AP_PORT_NUMBER_STRUCT uDP_Port_Number;
bool uDP_Port_Number_present;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_TUNNELINFORMATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tunnelinformation(LIBLTE_S1AP_TUNNELINFORMATION_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tunnelinformation(uint8_t** ptr, LIBLTE_S1AP_TUNNELINFORMATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE UE_S1AP_IDs CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_UE_S1AP_IDS_CHOICE_UE_S1AP_ID_PAIR,
LIBLTE_S1AP_UE_S1AP_IDS_CHOICE_MME_UE_S1AP_ID,
LIBLTE_S1AP_UE_S1AP_IDS_CHOICE_N_ITEMS,
} LIBLTE_S1AP_UE_S1AP_IDS_CHOICE_ENUM;
static const char liblte_s1ap_ue_s1ap_ids_choice_text[LIBLTE_S1AP_UE_S1AP_IDS_CHOICE_N_ITEMS][50] = {
"uE_S1AP_ID_pair",
"mME_UE_S1AP_ID",
};
typedef union {
LIBLTE_S1AP_UE_S1AP_ID_PAIR_STRUCT uE_S1AP_ID_pair;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT mME_UE_S1AP_ID;
} LIBLTE_S1AP_UE_S1AP_IDS_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_UE_S1AP_IDS_CHOICE_UNION choice;
LIBLTE_S1AP_UE_S1AP_IDS_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_UE_S1AP_IDS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ue_s1ap_ids(LIBLTE_S1AP_UE_S1AP_IDS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ue_s1ap_ids(uint8_t** ptr, LIBLTE_S1AP_UE_S1AP_IDS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ENBX2ExtTLA SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT iPsecTLA;
bool iPsecTLA_present;
LIBLTE_S1AP_ENBX2GTPTLAS_STRUCT gTPTLAa;
bool gTPTLAa_present;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_ENBX2EXTTLA_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_enbx2exttla(LIBLTE_S1AP_ENBX2EXTTLA_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_enbx2exttla(uint8_t** ptr, LIBLTE_S1AP_ENBX2EXTTLA_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE BPLMNs DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:6
typedef struct {
uint32_t len;
LIBLTE_S1AP_TBCD_STRING_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_BPLMNS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_bplmns(LIBLTE_S1AP_BPLMNS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_bplmns(uint8_t** ptr, LIBLTE_S1AP_BPLMNS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Cause CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_CAUSE_CHOICE_RADIONETWORK,
LIBLTE_S1AP_CAUSE_CHOICE_TRANSPORT,
LIBLTE_S1AP_CAUSE_CHOICE_NAS,
LIBLTE_S1AP_CAUSE_CHOICE_PROTOCOL,
LIBLTE_S1AP_CAUSE_CHOICE_MISC,
LIBLTE_S1AP_CAUSE_CHOICE_N_ITEMS,
} LIBLTE_S1AP_CAUSE_CHOICE_ENUM;
static const char liblte_s1ap_cause_choice_text[LIBLTE_S1AP_CAUSE_CHOICE_N_ITEMS][50] = {
"radioNetwork",
"transport",
"nas",
"protocol",
"misc",
};
typedef union {
LIBLTE_S1AP_CAUSERADIONETWORK_ENUM_EXT radioNetwork;
LIBLTE_S1AP_CAUSETRANSPORT_ENUM_EXT transport;
LIBLTE_S1AP_CAUSENAS_ENUM_EXT nas;
LIBLTE_S1AP_CAUSEPROTOCOL_ENUM_EXT protocol;
LIBLTE_S1AP_CAUSEMISC_ENUM_EXT misc;
} LIBLTE_S1AP_CAUSE_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_CAUSE_CHOICE_UNION choice;
LIBLTE_S1AP_CAUSE_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_CAUSE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cause(LIBLTE_S1AP_CAUSE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cause(uint8_t** ptr, LIBLTE_S1AP_CAUSE_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Cdma2000OneXSRVCCInfo SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_CDMA2000ONEXMEID_STRUCT cdma2000OneXMEID;
LIBLTE_S1AP_CDMA2000ONEXMSI_STRUCT cdma2000OneXMSI;
LIBLTE_S1AP_CDMA2000ONEXPILOT_STRUCT cdma2000OneXPilot;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_CDMA2000ONEXSRVCCINFO_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cdma2000onexsrvccinfo(LIBLTE_S1AP_CDMA2000ONEXSRVCCINFO_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cdma2000onexsrvccinfo(uint8_t** ptr, LIBLTE_S1AP_CDMA2000ONEXSRVCCINFO_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CGI SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TBCD_STRING_STRUCT pLMNidentity;
LIBLTE_S1AP_LAC_STRUCT lAC;
LIBLTE_S1AP_CI_STRUCT cI;
LIBLTE_S1AP_RAC_STRUCT rAC;
bool rAC_present;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_CGI_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cgi(LIBLTE_S1AP_CGI_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cgi(uint8_t** ptr, LIBLTE_S1AP_CGI_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE COUNTValueExtended SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_PDCP_SNEXTENDED_STRUCT pDCP_SNExtended;
LIBLTE_S1AP_HFNMODIFIED_STRUCT hFNModified;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_COUNTVALUEEXTENDED_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_countvalueextended(LIBLTE_S1AP_COUNTVALUEEXTENDED_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_countvalueextended(uint8_t** ptr, LIBLTE_S1AP_COUNTVALUEEXTENDED_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CriticalityDiagnostics_IE_List DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_IE_ITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_IE_LIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_criticalitydiagnostics_ie_list(LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_IE_LIST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_criticalitydiagnostics_ie_list(uint8_t** ptr, LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_IE_LIST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Global_ENB_ID SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TBCD_STRING_STRUCT pLMNidentity;
LIBLTE_S1AP_ENB_ID_STRUCT eNB_ID;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_GLOBAL_ENB_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_global_enb_id(LIBLTE_S1AP_GLOBAL_ENB_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_global_enb_id(uint8_t** ptr, LIBLTE_S1AP_GLOBAL_ENB_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE EPLMNs DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:15
typedef struct {
uint32_t len;
LIBLTE_S1AP_TBCD_STRING_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_EPLMNS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_eplmns(LIBLTE_S1AP_EPLMNS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_eplmns(uint8_t** ptr, LIBLTE_S1AP_EPLMNS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RABItem SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RAB_ID_STRUCT e_RAB_ID;
LIBLTE_S1AP_CAUSE_STRUCT cause;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_E_RABITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabitem(LIBLTE_S1AP_E_RABITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabitem(uint8_t** ptr, LIBLTE_S1AP_E_RABITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE EUTRAN_CGI SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TBCD_STRING_STRUCT pLMNidentity;
LIBLTE_S1AP_CELLIDENTITY_STRUCT cell_ID;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_EUTRAN_CGI_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_eutran_cgi(LIBLTE_S1AP_EUTRAN_CGI_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_eutran_cgi(uint8_t** ptr, LIBLTE_S1AP_EUTRAN_CGI_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ForbiddenTAs_Item SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TBCD_STRING_STRUCT pLMN_Identity;
LIBLTE_S1AP_FORBIDDENTACS_STRUCT forbiddenTACs;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_FORBIDDENTAS_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_forbiddentas_item(LIBLTE_S1AP_FORBIDDENTAS_ITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_forbiddentas_item(uint8_t** ptr, LIBLTE_S1AP_FORBIDDENTAS_ITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ForbiddenLAs_Item SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TBCD_STRING_STRUCT pLMN_Identity;
LIBLTE_S1AP_FORBIDDENLACS_STRUCT forbiddenLACs;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_FORBIDDENLAS_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_forbiddenlas_item(LIBLTE_S1AP_FORBIDDENLAS_ITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_forbiddenlas_item(uint8_t** ptr, LIBLTE_S1AP_FORBIDDENLAS_ITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE LAI SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TBCD_STRING_STRUCT pLMNidentity;
LIBLTE_S1AP_LAC_STRUCT lAC;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_LAI_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_lai(LIBLTE_S1AP_LAI_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_lai(uint8_t** ptr, LIBLTE_S1AP_LAI_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE M4Configuration SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_M4PERIOD_ENUM_EXT m4period;
LIBLTE_S1AP_LINKS_TO_LOG_ENUM_EXT m4_links_to_log;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_M4CONFIGURATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_m4configuration(LIBLTE_S1AP_M4CONFIGURATION_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_m4configuration(uint8_t** ptr, LIBLTE_S1AP_M4CONFIGURATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE MDTPLMNList DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:16
typedef struct {
uint32_t len;
LIBLTE_S1AP_TBCD_STRING_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_MDTPLMNLIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_mdtplmnlist(LIBLTE_S1AP_MDTPLMNLIST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_mdtplmnlist(uint8_t** ptr, LIBLTE_S1AP_MDTPLMNLIST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE MMERelaySupportIndicator ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_MMERELAYSUPPORTINDICATOR_TRUE,
LIBLTE_S1AP_MMERELAYSUPPORTINDICATOR_N_ITEMS,
} LIBLTE_S1AP_MMERELAYSUPPORTINDICATOR_ENUM;
static const char liblte_s1ap_mmerelaysupportindicator_text[LIBLTE_S1AP_MMERELAYSUPPORTINDICATOR_N_ITEMS][80] = {
"true",
};
typedef struct {
bool ext;
LIBLTE_S1AP_MMERELAYSUPPORTINDICATOR_ENUM e;
} LIBLTE_S1AP_MMERELAYSUPPORTINDICATOR_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_mmerelaysupportindicator(LIBLTE_S1AP_MMERELAYSUPPORTINDICATOR_ENUM_EXT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_mmerelaysupportindicator(uint8_t** ptr,
LIBLTE_S1AP_MMERELAYSUPPORTINDICATOR_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE PagingPriority ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_PAGINGPRIORITY_PRIOLEVEL1,
LIBLTE_S1AP_PAGINGPRIORITY_PRIOLEVEL2,
LIBLTE_S1AP_PAGINGPRIORITY_PRIOLEVEL3,
LIBLTE_S1AP_PAGINGPRIORITY_PRIOLEVEL4,
LIBLTE_S1AP_PAGINGPRIORITY_PRIOLEVEL5,
LIBLTE_S1AP_PAGINGPRIORITY_PRIOLEVEL6,
LIBLTE_S1AP_PAGINGPRIORITY_PRIOLEVEL7,
LIBLTE_S1AP_PAGINGPRIORITY_PRIOLEVEL8,
LIBLTE_S1AP_PAGINGPRIORITY_N_ITEMS,
} LIBLTE_S1AP_PAGINGPRIORITY_ENUM;
static const char liblte_s1ap_pagingpriority_text[LIBLTE_S1AP_PAGINGPRIORITY_N_ITEMS][80] = {
"priolevel1",
"priolevel2",
"priolevel3",
"priolevel4",
"priolevel5",
"priolevel6",
"priolevel7",
"priolevel8",
};
typedef struct {
bool ext;
LIBLTE_S1AP_PAGINGPRIORITY_ENUM e;
} LIBLTE_S1AP_PAGINGPRIORITY_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_pagingpriority(LIBLTE_S1AP_PAGINGPRIORITY_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_pagingpriority(uint8_t** ptr, LIBLTE_S1AP_PAGINGPRIORITY_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE PriorityLevel INTEGER
********************************************************************************/
typedef struct {
uint8_t PriorityLevel;
} LIBLTE_S1AP_PRIORITYLEVEL_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_prioritylevel(LIBLTE_S1AP_PRIORITYLEVEL_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_prioritylevel(uint8_t** ptr, LIBLTE_S1AP_PRIORITYLEVEL_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ECGIListForRestart DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_ECGILISTFORRESTART_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ecgilistforrestart(LIBLTE_S1AP_ECGILISTFORRESTART_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ecgilistforrestart(uint8_t** ptr, LIBLTE_S1AP_ECGILISTFORRESTART_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE SourceeNB_ID SEQUENCE
********************************************************************************/
typedef struct {
LIBLTE_S1AP_GLOBAL_ENB_ID_STRUCT global_ENB_ID;
LIBLTE_S1AP_TAI_STRUCT selected_TAI;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_SOURCEENB_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_sourceenb_id(LIBLTE_S1AP_SOURCEENB_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_sourceenb_id(uint8_t** ptr, LIBLTE_S1AP_SOURCEENB_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ServedPLMNs DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:32
typedef struct {
uint32_t len;
LIBLTE_S1AP_TBCD_STRING_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_SERVEDPLMNS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_servedplmns(LIBLTE_S1AP_SERVEDPLMNS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_servedplmns(uint8_t** ptr, LIBLTE_S1AP_SERVEDPLMNS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE SupportedTAs_Item SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TAC_STRUCT tAC;
LIBLTE_S1AP_BPLMNS_STRUCT broadcastPLMNs;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_SUPPORTEDTAS_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_supportedtas_item(LIBLTE_S1AP_SUPPORTEDTAS_ITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_supportedtas_item(uint8_t** ptr, LIBLTE_S1AP_SUPPORTEDTAS_ITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TAIListforMDT DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:8
typedef struct {
uint32_t len;
LIBLTE_S1AP_TAI_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_TAILISTFORMDT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tailistformdt(LIBLTE_S1AP_TAILISTFORMDT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tailistformdt(uint8_t** ptr, LIBLTE_S1AP_TAILISTFORMDT_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CompletedCellinTAI_Item SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT eCGI;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_COMPLETEDCELLINTAI_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_completedcellintai_item(LIBLTE_S1AP_COMPLETEDCELLINTAI_ITEM_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_completedcellintai_item(uint8_t** ptr,
LIBLTE_S1AP_COMPLETEDCELLINTAI_ITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TargeteNB_ID SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_GLOBAL_ENB_ID_STRUCT global_ENB_ID;
LIBLTE_S1AP_TAI_STRUCT selected_TAI;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_TARGETENB_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_targetenb_id(LIBLTE_S1AP_TARGETENB_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_targetenb_id(uint8_t** ptr, LIBLTE_S1AP_TARGETENB_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TargetBSS_ToSourceBSS_TransparentContainer DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_TARGETBSS_TOSOURCEBSS_TRANSPARENTCONTAINER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_targetbss_tosourcebss_transparentcontainer(
LIBLTE_S1AP_TARGETBSS_TOSOURCEBSS_TRANSPARENTCONTAINER_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_targetbss_tosourcebss_transparentcontainer(
uint8_t** ptr, LIBLTE_S1AP_TARGETBSS_TOSOURCEBSS_TRANSPARENTCONTAINER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TAIListForRestart DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:2048
typedef struct {
uint32_t len;
LIBLTE_S1AP_TAI_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_TAILISTFORRESTART_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tailistforrestart(LIBLTE_S1AP_TAILISTFORRESTART_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tailistforrestart(uint8_t** ptr, LIBLTE_S1AP_TAILISTFORRESTART_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE UserLocationInformation SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT eutran_cgi;
LIBLTE_S1AP_TAI_STRUCT tai;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_USERLOCATIONINFORMATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_userlocationinformation(LIBLTE_S1AP_USERLOCATIONINFORMATION_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_userlocationinformation(uint8_t** ptr,
LIBLTE_S1AP_USERLOCATIONINFORMATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ENBX2ExtTLAs DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:16
typedef struct {
uint32_t len;
LIBLTE_S1AP_ENBX2EXTTLA_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_ENBX2EXTTLAS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_enbx2exttlas(LIBLTE_S1AP_ENBX2EXTTLAS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_enbx2exttlas(uint8_t** ptr, LIBLTE_S1AP_ENBX2EXTTLAS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE AllocationAndRetentionPriority SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_PRIORITYLEVEL_STRUCT priorityLevel;
LIBLTE_S1AP_PRE_EMPTIONCAPABILITY_ENUM pre_emptionCapability;
LIBLTE_S1AP_PRE_EMPTIONVULNERABILITY_ENUM pre_emptionVulnerability;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_ALLOCATIONANDRETENTIONPRIORITY_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_allocationandretentionpriority(LIBLTE_S1AP_ALLOCATIONANDRETENTIONPRIORITY_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_allocationandretentionpriority(uint8_t** ptr, LIBLTE_S1AP_ALLOCATIONANDRETENTIONPRIORITY_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CancelledCellinEAI_Item SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT eCGI;
LIBLTE_S1AP_NUMBEROFBROADCASTS_STRUCT numberOfBroadcasts;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_CANCELLEDCELLINEAI_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cancelledcellineai_item(LIBLTE_S1AP_CANCELLEDCELLINEAI_ITEM_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cancelledcellineai_item(uint8_t** ptr,
LIBLTE_S1AP_CANCELLEDCELLINEAI_ITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CancelledCellinTAI_Item SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT eCGI;
LIBLTE_S1AP_NUMBEROFBROADCASTS_STRUCT numberOfBroadcasts;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_CANCELLEDCELLINTAI_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cancelledcellintai_item(LIBLTE_S1AP_CANCELLEDCELLINTAI_ITEM_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cancelledcellintai_item(uint8_t** ptr,
LIBLTE_S1AP_CANCELLEDCELLINTAI_ITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CellID_Broadcast_Item SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT eCGI;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_CELLID_BROADCAST_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cellid_broadcast_item(LIBLTE_S1AP_CELLID_BROADCAST_ITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cellid_broadcast_item(uint8_t** ptr, LIBLTE_S1AP_CELLID_BROADCAST_ITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CellID_Cancelled_Item SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT eCGI;
LIBLTE_S1AP_NUMBEROFBROADCASTS_STRUCT numberOfBroadcasts;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_CELLID_CANCELLED_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cellid_cancelled_item(LIBLTE_S1AP_CELLID_CANCELLED_ITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cellid_cancelled_item(uint8_t** ptr, LIBLTE_S1AP_CELLID_CANCELLED_ITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CellIdListforMDT DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:32
typedef struct {
uint32_t len;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_CELLIDLISTFORMDT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cellidlistformdt(LIBLTE_S1AP_CELLIDLISTFORMDT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cellidlistformdt(uint8_t** ptr, LIBLTE_S1AP_CELLIDLISTFORMDT_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CSG_Id STATIC BIT STRING
********************************************************************************/
#define LIBLTE_S1AP_CSG_ID_BIT_STRING_LEN 27
typedef struct {
uint8_t buffer[27];
} LIBLTE_S1AP_CSG_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_csg_id(LIBLTE_S1AP_CSG_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_csg_id(uint8_t** ptr, LIBLTE_S1AP_CSG_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CSG_IdList_Item SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_CSG_ID_STRUCT cSG_Id;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_CSG_IDLIST_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_csg_idlist_item(LIBLTE_S1AP_CSG_IDLIST_ITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_csg_idlist_item(uint8_t** ptr, LIBLTE_S1AP_CSG_IDLIST_ITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Direct_Forwarding_Path_Availability ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_DIRECT_FORWARDING_PATH_AVAILABILITY_DIRECTPATHAVAILABLE,
LIBLTE_S1AP_DIRECT_FORWARDING_PATH_AVAILABILITY_N_ITEMS,
} LIBLTE_S1AP_DIRECT_FORWARDING_PATH_AVAILABILITY_ENUM;
static const char
liblte_s1ap_direct_forwarding_path_availability_text[LIBLTE_S1AP_DIRECT_FORWARDING_PATH_AVAILABILITY_N_ITEMS][80] =
{
"directPathAvailable",
};
typedef struct {
bool ext;
LIBLTE_S1AP_DIRECT_FORWARDING_PATH_AVAILABILITY_ENUM e;
} LIBLTE_S1AP_DIRECT_FORWARDING_PATH_AVAILABILITY_ENUM_EXT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_direct_forwarding_path_availability(LIBLTE_S1AP_DIRECT_FORWARDING_PATH_AVAILABILITY_ENUM_EXT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_direct_forwarding_path_availability(uint8_t** ptr,
LIBLTE_S1AP_DIRECT_FORWARDING_PATH_AVAILABILITY_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE CompletedCellinEAI_Item SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT eCGI;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_COMPLETEDCELLINEAI_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_completedcellineai_item(LIBLTE_S1AP_COMPLETEDCELLINEAI_ITEM_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_completedcellineai_item(uint8_t** ptr,
LIBLTE_S1AP_COMPLETEDCELLINEAI_ITEM_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List E_RABInformationList DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_E_RABINFORMATIONLISTITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_E_RABINFORMATIONLIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabinformationlist(LIBLTE_S1AP_E_RABINFORMATIONLIST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabinformationlist(uint8_t** ptr, LIBLTE_S1AP_E_RABINFORMATIONLIST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ForbiddenTAs DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:16
typedef struct {
uint32_t len;
LIBLTE_S1AP_FORBIDDENTAS_ITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_FORBIDDENTAS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_forbiddentas(LIBLTE_S1AP_FORBIDDENTAS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_forbiddentas(uint8_t** ptr, LIBLTE_S1AP_FORBIDDENTAS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE GUMMEI SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TBCD_STRING_STRUCT pLMN_Identity;
LIBLTE_S1AP_MME_GROUP_ID_STRUCT mME_Group_ID;
LIBLTE_S1AP_MME_CODE_STRUCT mME_Code;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_GUMMEI_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_gummei(LIBLTE_S1AP_GUMMEI_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_gummei(uint8_t** ptr, LIBLTE_S1AP_GUMMEI_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE LoggedMDT SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_LOGGINGINTERVAL_ENUM loggingInterval;
LIBLTE_S1AP_LOGGINGDURATION_ENUM loggingDuration;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_LOGGEDMDT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_loggedmdt(LIBLTE_S1AP_LOGGEDMDT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_loggedmdt(uint8_t** ptr, LIBLTE_S1AP_LOGGEDMDT_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE NASSecurityParametersfromE_UTRAN DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_NASSECURITYPARAMETERSFROME_UTRAN_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_nassecurityparametersfrome_utran(LIBLTE_S1AP_NASSECURITYPARAMETERSFROME_UTRAN_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_nassecurityparametersfrome_utran(uint8_t** ptr,
LIBLTE_S1AP_NASSECURITYPARAMETERSFROME_UTRAN_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ReportAmountMDT ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_REPORTAMOUNTMDT_R1,
LIBLTE_S1AP_REPORTAMOUNTMDT_R2,
LIBLTE_S1AP_REPORTAMOUNTMDT_R4,
LIBLTE_S1AP_REPORTAMOUNTMDT_R8,
LIBLTE_S1AP_REPORTAMOUNTMDT_R16,
LIBLTE_S1AP_REPORTAMOUNTMDT_R32,
LIBLTE_S1AP_REPORTAMOUNTMDT_R64,
LIBLTE_S1AP_REPORTAMOUNTMDT_RINFINITY,
LIBLTE_S1AP_REPORTAMOUNTMDT_N_ITEMS,
} LIBLTE_S1AP_REPORTAMOUNTMDT_ENUM;
static const char liblte_s1ap_reportamountmdt_text[LIBLTE_S1AP_REPORTAMOUNTMDT_N_ITEMS][80] = {
"r1",
"r2",
"r4",
"r8",
"r16",
"r32",
"r64",
"rinfinity",
};
LIBLTE_ERROR_ENUM liblte_s1ap_pack_reportamountmdt(LIBLTE_S1AP_REPORTAMOUNTMDT_ENUM* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_reportamountmdt(uint8_t** ptr, LIBLTE_S1AP_REPORTAMOUNTMDT_ENUM* ie);
/*******************************************************************************
/* ProtocolIE ServedGUMMEIsItem SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_SERVEDPLMNS_STRUCT servedPLMNs;
LIBLTE_S1AP_SERVEDGROUPIDS_STRUCT servedGroupIDs;
LIBLTE_S1AP_SERVEDMMECS_STRUCT servedMMECs;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_SERVEDGUMMEISITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_servedgummeisitem(LIBLTE_S1AP_SERVEDGUMMEISITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_servedgummeisitem(uint8_t** ptr, LIBLTE_S1AP_SERVEDGUMMEISITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE S_TMSI SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_CODE_STRUCT mMEC;
LIBLTE_S1AP_M_TMSI_STRUCT m_TMSI;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_S_TMSI_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_s_tmsi(LIBLTE_S1AP_S_TMSI_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_s_tmsi(uint8_t** ptr, LIBLTE_S1AP_S_TMSI_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TAIListforWarning DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_TAI_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_TAILISTFORWARNING_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tailistforwarning(LIBLTE_S1AP_TAILISTFORWARNING_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tailistforwarning(uint8_t** ptr, LIBLTE_S1AP_TAILISTFORWARNING_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CompletedCellinTAI DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_COMPLETEDCELLINTAI_ITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_COMPLETEDCELLINTAI_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_completedcellintai(LIBLTE_S1AP_COMPLETEDCELLINTAI_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_completedcellintai(uint8_t** ptr, LIBLTE_S1AP_COMPLETEDCELLINTAI_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TargetRNC_ID SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_LAI_STRUCT lAI;
LIBLTE_S1AP_RAC_STRUCT rAC;
bool rAC_present;
LIBLTE_S1AP_RNC_ID_STRUCT rNC_ID;
LIBLTE_S1AP_EXTENDEDRNC_ID_STRUCT extendedRNC_ID;
bool extendedRNC_ID_present;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_TARGETRNC_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_targetrnc_id(LIBLTE_S1AP_TARGETRNC_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_targetrnc_id(uint8_t** ptr, LIBLTE_S1AP_TARGETRNC_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE UE_associatedLogicalS1_ConnectionItem SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT mME_UE_S1AP_ID;
bool mME_UE_S1AP_ID_present;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
bool eNB_UE_S1AP_ID_present;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEM_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_ue_associatedlogicals1_connectionitem(LIBLTE_S1AP_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEM_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_ue_associatedlogicals1_connectionitem(uint8_t** ptr,
LIBLTE_S1AP_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE UEPagingID CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_UEPAGINGID_CHOICE_S_TMSI,
LIBLTE_S1AP_UEPAGINGID_CHOICE_IMSI,
LIBLTE_S1AP_UEPAGINGID_CHOICE_N_ITEMS,
} LIBLTE_S1AP_UEPAGINGID_CHOICE_ENUM;
static const char liblte_s1ap_uepagingid_choice_text[LIBLTE_S1AP_UEPAGINGID_CHOICE_N_ITEMS][50] = {
"s_TMSI",
"iMSI",
};
typedef union {
LIBLTE_S1AP_S_TMSI_STRUCT s_TMSI;
LIBLTE_S1AP_IMSI_STRUCT iMSI;
} LIBLTE_S1AP_UEPAGINGID_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_UEPAGINGID_CHOICE_UNION choice;
LIBLTE_S1AP_UEPAGINGID_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_UEPAGINGID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_uepagingid(LIBLTE_S1AP_UEPAGINGID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_uepagingid(uint8_t** ptr, LIBLTE_S1AP_UEPAGINGID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE Bearers_SubjectToStatusTransfer_Item SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RAB_ID_STRUCT e_RAB_ID;
LIBLTE_S1AP_COUNTVALUE_STRUCT uL_COUNTvalue;
LIBLTE_S1AP_COUNTVALUE_STRUCT dL_COUNTvalue;
LIBLTE_S1AP_RECEIVESTATUSOFULPDCPSDUS_STRUCT receiveStatusofULPDCPSDUs;
bool receiveStatusofULPDCPSDUs_present;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_BEARERS_SUBJECTTOSTATUSTRANSFER_ITEM_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_bearers_subjecttostatustransfer_item(LIBLTE_S1AP_BEARERS_SUBJECTTOSTATUSTRANSFER_ITEM_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_bearers_subjecttostatustransfer_item(uint8_t** ptr,
LIBLTE_S1AP_BEARERS_SUBJECTTOSTATUSTRANSFER_ITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CancelledCellinEAI DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_CANCELLEDCELLINEAI_ITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_CANCELLEDCELLINEAI_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cancelledcellineai(LIBLTE_S1AP_CANCELLEDCELLINEAI_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cancelledcellineai(uint8_t** ptr, LIBLTE_S1AP_CANCELLEDCELLINEAI_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CellID_Broadcast DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_CELLID_BROADCAST_ITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_CELLID_BROADCAST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cellid_broadcast(LIBLTE_S1AP_CELLID_BROADCAST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cellid_broadcast(uint8_t** ptr, LIBLTE_S1AP_CELLID_BROADCAST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CellBasedMDT SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_CELLIDLISTFORMDT_STRUCT cellIdListforMDT;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_CELLBASEDMDT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cellbasedmdt(LIBLTE_S1AP_CELLBASEDMDT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cellbasedmdt(uint8_t** ptr, LIBLTE_S1AP_CELLBASEDMDT_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CSG_IdList DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_CSG_IDLIST_ITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_CSG_IDLIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_csg_idlist(LIBLTE_S1AP_CSG_IDLIST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_csg_idlist(uint8_t** ptr, LIBLTE_S1AP_CSG_IDLIST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ECGIList DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_ECGILIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ecgilist(LIBLTE_S1AP_ECGILIST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ecgilist(uint8_t** ptr, LIBLTE_S1AP_ECGILIST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE EmergencyAreaID_Cancelled_Item SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_EMERGENCYAREAID_STRUCT emergencyAreaID;
LIBLTE_S1AP_CANCELLEDCELLINEAI_STRUCT cancelledCellinEAI;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_EMERGENCYAREAID_CANCELLED_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_emergencyareaid_cancelled_item(LIBLTE_S1AP_EMERGENCYAREAID_CANCELLED_ITEM_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_emergencyareaid_cancelled_item(uint8_t** ptr, LIBLTE_S1AP_EMERGENCYAREAID_CANCELLED_ITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE GERAN_Cell_ID SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_LAI_STRUCT lAI;
LIBLTE_S1AP_RAC_STRUCT rAC;
LIBLTE_S1AP_CI_STRUCT cI;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_GERAN_CELL_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_geran_cell_id(LIBLTE_S1AP_GERAN_CELL_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_geran_cell_id(uint8_t** ptr, LIBLTE_S1AP_GERAN_CELL_ID_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List E_RABList DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_E_RABITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_E_RABLIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rablist(LIBLTE_S1AP_E_RABLIST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rablist(uint8_t** ptr, LIBLTE_S1AP_E_RABLIST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ForbiddenLAs DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:16
typedef struct {
uint32_t len;
LIBLTE_S1AP_FORBIDDENLAS_ITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_FORBIDDENLAS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_forbiddenlas(LIBLTE_S1AP_FORBIDDENLAS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_forbiddenlas(uint8_t** ptr, LIBLTE_S1AP_FORBIDDENLAS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE MDT_Location_Info STATIC BIT STRING
********************************************************************************/
#define LIBLTE_S1AP_MDT_LOCATION_INFO_BIT_STRING_LEN 8
typedef struct {
uint8_t buffer[8];
} LIBLTE_S1AP_MDT_LOCATION_INFO_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_mdt_location_info(LIBLTE_S1AP_MDT_LOCATION_INFO_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_mdt_location_info(uint8_t** ptr, LIBLTE_S1AP_MDT_LOCATION_INFO_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE M1PeriodicReporting SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_REPORTINTERVALMDT_ENUM reportInterval;
LIBLTE_S1AP_REPORTAMOUNTMDT_ENUM reportAmount;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_M1PERIODICREPORTING_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_m1periodicreporting(LIBLTE_S1AP_M1PERIODICREPORTING_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_m1periodicreporting(uint8_t** ptr, LIBLTE_S1AP_M1PERIODICREPORTING_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE eHRPD_Sector_ID DYNAMIC OCTET STRING
********************************************************************************/
// lb:0, ub:16318
typedef struct {
uint32_t n_octets;
uint8_t buffer[16318];
} LIBLTE_S1AP_EHRPD_SECTOR_ID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ehrpd_sector_id(LIBLTE_S1AP_EHRPD_SECTOR_ID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ehrpd_sector_id(uint8_t** ptr, LIBLTE_S1AP_EHRPD_SECTOR_ID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE RIMRoutingAddress CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_RIMROUTINGADDRESS_CHOICE_GERAN_CELL_ID,
LIBLTE_S1AP_RIMROUTINGADDRESS_CHOICE_TARGETRNC_ID,
LIBLTE_S1AP_RIMROUTINGADDRESS_CHOICE_EHRPD_SECTOR_ID,
LIBLTE_S1AP_RIMROUTINGADDRESS_CHOICE_N_ITEMS,
} LIBLTE_S1AP_RIMROUTINGADDRESS_CHOICE_ENUM;
static const char liblte_s1ap_rimroutingaddress_choice_text[LIBLTE_S1AP_RIMROUTINGADDRESS_CHOICE_N_ITEMS][50] = {
"gERAN_Cell_ID",
"targetRNC_ID",
"eHRPD_Sector_ID",
};
typedef union {
LIBLTE_S1AP_GERAN_CELL_ID_STRUCT gERAN_Cell_ID;
LIBLTE_S1AP_TARGETRNC_ID_STRUCT targetRNC_ID;
LIBLTE_S1AP_EHRPD_SECTOR_ID_STRUCT eHRPD_Sector_ID;
} LIBLTE_S1AP_RIMROUTINGADDRESS_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_RIMROUTINGADDRESS_CHOICE_UNION choice;
LIBLTE_S1AP_RIMROUTINGADDRESS_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_RIMROUTINGADDRESS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_rimroutingaddress(LIBLTE_S1AP_RIMROUTINGADDRESS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_rimroutingaddress(uint8_t** ptr, LIBLTE_S1AP_RIMROUTINGADDRESS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ServedGUMMEIs DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:8
typedef struct {
uint32_t len;
LIBLTE_S1AP_SERVEDGUMMEISITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_SERVEDGUMMEIS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_servedgummeis(LIBLTE_S1AP_SERVEDGUMMEIS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_servedgummeis(uint8_t** ptr, LIBLTE_S1AP_SERVEDGUMMEIS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TAIBasedMDT SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TAILISTFORMDT_STRUCT tAIListforMDT;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_TAIBASEDMDT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_taibasedmdt(LIBLTE_S1AP_TAIBASEDMDT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_taibasedmdt(uint8_t** ptr, LIBLTE_S1AP_TAIBASEDMDT_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TAI_Broadcast_Item SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TAI_STRUCT tAI;
LIBLTE_S1AP_COMPLETEDCELLINTAI_STRUCT completedCellinTAI;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_TAI_BROADCAST_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tai_broadcast_item(LIBLTE_S1AP_TAI_BROADCAST_ITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tai_broadcast_item(uint8_t** ptr, LIBLTE_S1AP_TAI_BROADCAST_ITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TargetID CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_TARGETID_CHOICE_TARGETENB_ID,
LIBLTE_S1AP_TARGETID_CHOICE_TARGETRNC_ID,
LIBLTE_S1AP_TARGETID_CHOICE_CGI,
LIBLTE_S1AP_TARGETID_CHOICE_N_ITEMS,
} LIBLTE_S1AP_TARGETID_CHOICE_ENUM;
static const char liblte_s1ap_targetid_choice_text[LIBLTE_S1AP_TARGETID_CHOICE_N_ITEMS][50] = {
"targeteNB_ID",
"targetRNC_ID",
"cGI",
};
typedef union {
LIBLTE_S1AP_TARGETENB_ID_STRUCT targeteNB_ID;
LIBLTE_S1AP_TARGETRNC_ID_STRUCT targetRNC_ID;
LIBLTE_S1AP_CGI_STRUCT cGI;
} LIBLTE_S1AP_TARGETID_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_TARGETID_CHOICE_UNION choice;
LIBLTE_S1AP_TARGETID_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_TARGETID_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_targetid(LIBLTE_S1AP_TARGETID_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_targetid(uint8_t** ptr, LIBLTE_S1AP_TARGETID_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE WarningAreaList CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_WARNINGAREALIST_CHOICE_CELLIDLIST,
LIBLTE_S1AP_WARNINGAREALIST_CHOICE_TRACKINGAREALISTFORWARNING,
LIBLTE_S1AP_WARNINGAREALIST_CHOICE_EMERGENCYAREAIDLIST,
LIBLTE_S1AP_WARNINGAREALIST_CHOICE_N_ITEMS,
} LIBLTE_S1AP_WARNINGAREALIST_CHOICE_ENUM;
static const char liblte_s1ap_warningarealist_choice_text[LIBLTE_S1AP_WARNINGAREALIST_CHOICE_N_ITEMS][50] = {
"cellIDList",
"trackingAreaListforWarning",
"emergencyAreaIDList",
};
typedef union {
LIBLTE_S1AP_ECGILIST_STRUCT cellIDList;
LIBLTE_S1AP_TAILISTFORWARNING_STRUCT trackingAreaListforWarning;
LIBLTE_S1AP_EMERGENCYAREAIDLIST_STRUCT emergencyAreaIDList;
} LIBLTE_S1AP_WARNINGAREALIST_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_WARNINGAREALIST_CHOICE_UNION choice;
LIBLTE_S1AP_WARNINGAREALIST_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_WARNINGAREALIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_warningarealist(LIBLTE_S1AP_WARNINGAREALIST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_warningarealist(uint8_t** ptr, LIBLTE_S1AP_WARNINGAREALIST_STRUCT* ie);
// TODO: Type pLMNWide NULL
/*******************************************************************************
/* ProtocolIE AreaScopeOfMDT CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_AREASCOPEOFMDT_CHOICE_CELLBASED,
LIBLTE_S1AP_AREASCOPEOFMDT_CHOICE_TABASED,
LIBLTE_S1AP_AREASCOPEOFMDT_CHOICE_PLMNWIDE,
LIBLTE_S1AP_AREASCOPEOFMDT_CHOICE_TAIBASED,
LIBLTE_S1AP_AREASCOPEOFMDT_CHOICE_N_ITEMS,
} LIBLTE_S1AP_AREASCOPEOFMDT_CHOICE_ENUM;
static const char liblte_s1ap_areascopeofmdt_choice_text[LIBLTE_S1AP_AREASCOPEOFMDT_CHOICE_N_ITEMS][50] = {
"cellBased",
"tABased",
"pLMNWide",
"tAIBased",
};
typedef union {
LIBLTE_S1AP_CELLBASEDMDT_STRUCT cellBased;
LIBLTE_S1AP_TABASEDMDT_STRUCT tABased;
// TODO: NULL pLMNWide;
LIBLTE_S1AP_TAIBASEDMDT_STRUCT tAIBased;
} LIBLTE_S1AP_AREASCOPEOFMDT_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_AREASCOPEOFMDT_CHOICE_UNION choice;
LIBLTE_S1AP_AREASCOPEOFMDT_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_AREASCOPEOFMDT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_areascopeofmdt(LIBLTE_S1AP_AREASCOPEOFMDT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_areascopeofmdt(uint8_t** ptr, LIBLTE_S1AP_AREASCOPEOFMDT_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CancelledCellinTAI DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_CANCELLEDCELLINTAI_ITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_CANCELLEDCELLINTAI_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cancelledcellintai(LIBLTE_S1AP_CANCELLEDCELLINTAI_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cancelledcellintai(uint8_t** ptr, LIBLTE_S1AP_CANCELLEDCELLINTAI_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CellType SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_CELL_SIZE_ENUM_EXT cell_Size;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_CELLTYPE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_celltype(LIBLTE_S1AP_CELLTYPE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_celltype(uint8_t** ptr, LIBLTE_S1AP_CELLTYPE_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE EmergencyAreaID_Cancelled DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_EMERGENCYAREAID_CANCELLED_ITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_EMERGENCYAREAID_CANCELLED_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_emergencyareaid_cancelled(LIBLTE_S1AP_EMERGENCYAREAID_CANCELLED_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_emergencyareaid_cancelled(uint8_t** ptr,
LIBLTE_S1AP_EMERGENCYAREAID_CANCELLED_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE GUMMEIList DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_GUMMEI_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_GUMMEILIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_gummeilist(LIBLTE_S1AP_GUMMEILIST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_gummeilist(uint8_t** ptr, LIBLTE_S1AP_GUMMEILIST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RABLevelQoSParameters SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_QCI_STRUCT qCI;
LIBLTE_S1AP_ALLOCATIONANDRETENTIONPRIORITY_STRUCT allocationRetentionPriority;
LIBLTE_S1AP_GBR_QOSINFORMATION_STRUCT gbrQosInformation;
bool gbrQosInformation_present;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_E_RABLEVELQOSPARAMETERS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rablevelqosparameters(LIBLTE_S1AP_E_RABLEVELQOSPARAMETERS_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rablevelqosparameters(uint8_t** ptr,
LIBLTE_S1AP_E_RABLEVELQOSPARAMETERS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE LastVisitedEUTRANCellInformation SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT global_Cell_ID;
LIBLTE_S1AP_CELLTYPE_STRUCT cellType;
LIBLTE_S1AP_TIME_UE_STAYEDINCELL_STRUCT time_UE_StayedInCell;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_LASTVISITEDEUTRANCELLINFORMATION_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_lastvisitedeutrancellinformation(LIBLTE_S1AP_LASTVISITEDEUTRANCELLINFORMATION_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_lastvisitedeutrancellinformation(uint8_t** ptr,
LIBLTE_S1AP_LASTVISITEDEUTRANCELLINFORMATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE RIMTransfer SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_RIMINFORMATION_STRUCT rIMInformation;
LIBLTE_S1AP_RIMROUTINGADDRESS_STRUCT rIMRoutingAddress;
bool rIMRoutingAddress_present;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_RIMTRANSFER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_rimtransfer(LIBLTE_S1AP_RIMTRANSFER_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_rimtransfer(uint8_t** ptr, LIBLTE_S1AP_RIMTRANSFER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE SupportedTAs DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_SUPPORTEDTAS_ITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_SUPPORTEDTAS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_supportedtas(LIBLTE_S1AP_SUPPORTEDTAS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_supportedtas(uint8_t** ptr, LIBLTE_S1AP_SUPPORTEDTAS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TAI_Cancelled_Item SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TAI_STRUCT tAI;
LIBLTE_S1AP_CANCELLEDCELLINTAI_STRUCT cancelledCellinTAI;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_TAI_CANCELLED_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tai_cancelled_item(LIBLTE_S1AP_TAI_CANCELLED_ITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tai_cancelled_item(uint8_t** ptr, LIBLTE_S1AP_TAI_CANCELLED_ITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE X2TNLConfigurationInfo SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_ENBX2TLAS_STRUCT eNBX2TransportLayerAddresses;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_X2TNLCONFIGURATIONINFO_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_x2tnlconfigurationinfo(LIBLTE_S1AP_X2TNLCONFIGURATIONINFO_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_x2tnlconfigurationinfo(uint8_t** ptr,
LIBLTE_S1AP_X2TNLCONFIGURATIONINFO_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List Bearers_SubjectToStatusTransferList DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_BEARERS_SUBJECTTOSTATUSTRANSFER_ITEM_STRUCT
buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_BEARERS_SUBJECTTOSTATUSTRANSFERLIST_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_bearers_subjecttostatustransferlist(LIBLTE_S1AP_BEARERS_SUBJECTTOSTATUSTRANSFERLIST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_bearers_subjecttostatustransferlist(uint8_t** ptr,
LIBLTE_S1AP_BEARERS_SUBJECTTOSTATUSTRANSFERLIST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CellID_Cancelled DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_CELLID_CANCELLED_ITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_CELLID_CANCELLED_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cellid_cancelled(LIBLTE_S1AP_CELLID_CANCELLED_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cellid_cancelled(uint8_t** ptr, LIBLTE_S1AP_CELLID_CANCELLED_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CompletedCellinEAI DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_COMPLETEDCELLINEAI_ITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_COMPLETEDCELLINEAI_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_completedcellineai(LIBLTE_S1AP_COMPLETEDCELLINEAI_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_completedcellineai(uint8_t** ptr, LIBLTE_S1AP_COMPLETEDCELLINEAI_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE HandoverRestrictionList SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TBCD_STRING_STRUCT servingPLMN;
LIBLTE_S1AP_EPLMNS_STRUCT equivalentPLMNs;
bool equivalentPLMNs_present;
LIBLTE_S1AP_FORBIDDENTAS_STRUCT forbiddenTAs;
bool forbiddenTAs_present;
LIBLTE_S1AP_FORBIDDENLAS_STRUCT forbiddenLAs;
bool forbiddenLAs_present;
LIBLTE_S1AP_FORBIDDENINTERRATS_ENUM_EXT forbiddenInterRATs;
bool forbiddenInterRATs_present;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_HANDOVERRESTRICTIONLIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_handoverrestrictionlist(LIBLTE_S1AP_HANDOVERRESTRICTIONLIST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_handoverrestrictionlist(uint8_t** ptr,
LIBLTE_S1AP_HANDOVERRESTRICTIONLIST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE LastVisitedCell_Item CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_LASTVISITEDCELL_ITEM_CHOICE_E_UTRAN_CELL,
LIBLTE_S1AP_LASTVISITEDCELL_ITEM_CHOICE_UTRAN_CELL,
LIBLTE_S1AP_LASTVISITEDCELL_ITEM_CHOICE_GERAN_CELL,
LIBLTE_S1AP_LASTVISITEDCELL_ITEM_CHOICE_N_ITEMS,
} LIBLTE_S1AP_LASTVISITEDCELL_ITEM_CHOICE_ENUM;
static const char liblte_s1ap_lastvisitedcell_item_choice_text[LIBLTE_S1AP_LASTVISITEDCELL_ITEM_CHOICE_N_ITEMS][50] = {
"e_UTRAN_Cell",
"uTRAN_Cell",
"gERAN_Cell",
};
typedef union {
LIBLTE_S1AP_LASTVISITEDEUTRANCELLINFORMATION_STRUCT e_UTRAN_Cell;
LIBLTE_S1AP_LASTVISITEDUTRANCELLINFORMATION_STRUCT uTRAN_Cell;
LIBLTE_S1AP_LASTVISITEDGERANCELLINFORMATION_STRUCT gERAN_Cell;
} LIBLTE_S1AP_LASTVISITEDCELL_ITEM_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_LASTVISITEDCELL_ITEM_CHOICE_UNION choice;
LIBLTE_S1AP_LASTVISITEDCELL_ITEM_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_LASTVISITEDCELL_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_lastvisitedcell_item(LIBLTE_S1AP_LASTVISITEDCELL_ITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_lastvisitedcell_item(uint8_t** ptr, LIBLTE_S1AP_LASTVISITEDCELL_ITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE SONInformationReply SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_X2TNLCONFIGURATIONINFO_STRUCT x2TNLConfigurationInfo;
bool x2TNLConfigurationInfo_present;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_SONINFORMATIONREPLY_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_soninformationreply(LIBLTE_S1AP_SONINFORMATIONREPLY_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_soninformationreply(uint8_t** ptr, LIBLTE_S1AP_SONINFORMATIONREPLY_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TAI_Broadcast DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_TAI_BROADCAST_ITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_TAI_BROADCAST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tai_broadcast(LIBLTE_S1AP_TAI_BROADCAST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tai_broadcast(uint8_t** ptr, LIBLTE_S1AP_TAI_BROADCAST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TimeToWait ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_TIMETOWAIT_V1S,
LIBLTE_S1AP_TIMETOWAIT_V2S,
LIBLTE_S1AP_TIMETOWAIT_V5S,
LIBLTE_S1AP_TIMETOWAIT_V10S,
LIBLTE_S1AP_TIMETOWAIT_V20S,
LIBLTE_S1AP_TIMETOWAIT_V60S,
LIBLTE_S1AP_TIMETOWAIT_N_ITEMS,
} LIBLTE_S1AP_TIMETOWAIT_ENUM;
static const char liblte_s1ap_timetowait_text[LIBLTE_S1AP_TIMETOWAIT_N_ITEMS][80] = {
"v1s",
"v2s",
"v5s",
"v10s",
"v20s",
"v60s",
};
typedef struct {
bool ext;
LIBLTE_S1AP_TIMETOWAIT_ENUM e;
} LIBLTE_S1AP_TIMETOWAIT_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_timetowait(LIBLTE_S1AP_TIMETOWAIT_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_timetowait(uint8_t** ptr, LIBLTE_S1AP_TIMETOWAIT_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE UE_HistoryInformation DYNAMIC SEQUENCE OF
********************************************************************************/
#define LIBLTE_S1AP_UE_HISTORYINFORMATION_BIT_STRING_LEN 32 // FIXME: Check if this size is adequate
// lb:1, ub:16
typedef struct {
uint32_t len;
LIBLTE_S1AP_LASTVISITEDCELL_ITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_UE_HISTORYINFORMATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ue_historyinformation(LIBLTE_S1AP_UE_HISTORYINFORMATION_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ue_historyinformation(uint8_t** ptr, LIBLTE_S1AP_UE_HISTORYINFORMATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE CriticalityDiagnostics SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_PROCEDURECODE_STRUCT procedureCode;
bool procedureCode_present;
LIBLTE_S1AP_TRIGGERINGMESSAGE_ENUM triggeringMessage;
bool triggeringMessage_present;
LIBLTE_S1AP_CRITICALITY_ENUM procedureCriticality;
bool procedureCriticality_present;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_IE_LIST_STRUCT iEsCriticalityDiagnostics;
bool iEsCriticalityDiagnostics_present;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_criticalitydiagnostics(LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_criticalitydiagnostics(uint8_t** ptr,
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE EmergencyAreaID_Broadcast_Item SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_EMERGENCYAREAID_STRUCT emergencyAreaID;
LIBLTE_S1AP_COMPLETEDCELLINEAI_STRUCT completedCellinEAI;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_EMERGENCYAREAID_BROADCAST_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_emergencyareaid_broadcast_item(LIBLTE_S1AP_EMERGENCYAREAID_BROADCAST_ITEM_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_emergencyareaid_broadcast_item(uint8_t** ptr, LIBLTE_S1AP_EMERGENCYAREAID_BROADCAST_ITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ImmediateMDT SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MEASUREMENTSTOACTIVATE_STRUCT measurementsToActivate;
LIBLTE_S1AP_M1REPORTINGTRIGGER_ENUM_EXT m1reportingTrigger;
LIBLTE_S1AP_M1THRESHOLDEVENTA2_STRUCT m1thresholdeventA2;
bool m1thresholdeventA2_present;
LIBLTE_S1AP_M1PERIODICREPORTING_STRUCT m1periodicReporting;
bool m1periodicReporting_present;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_IMMEDIATEMDT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_immediatemdt(LIBLTE_S1AP_IMMEDIATEMDT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_immediatemdt(uint8_t** ptr, LIBLTE_S1AP_IMMEDIATEMDT_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE MDTMode CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_MDTMODE_CHOICE_IMMEDIATEMDT,
LIBLTE_S1AP_MDTMODE_CHOICE_LOGGEDMDT,
LIBLTE_S1AP_MDTMODE_CHOICE_N_ITEMS,
} LIBLTE_S1AP_MDTMODE_CHOICE_ENUM;
static const char liblte_s1ap_mdtmode_choice_text[LIBLTE_S1AP_MDTMODE_CHOICE_N_ITEMS][50] = {
"immediateMDT",
"loggedMDT",
};
typedef union {
LIBLTE_S1AP_IMMEDIATEMDT_STRUCT immediateMDT;
LIBLTE_S1AP_LOGGEDMDT_STRUCT loggedMDT;
} LIBLTE_S1AP_MDTMODE_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_MDTMODE_CHOICE_UNION choice;
LIBLTE_S1AP_MDTMODE_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_MDTMODE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_mdtmode(LIBLTE_S1AP_MDTMODE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_mdtmode(uint8_t** ptr, LIBLTE_S1AP_MDTMODE_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE SourceeNB_ToTargeteNB_TransparentContainer SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_RRC_CONTAINER_STRUCT rRC_Container;
LIBLTE_S1AP_E_RABINFORMATIONLIST_STRUCT e_RABInformationList;
bool e_RABInformationList_present;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT targetCell_ID;
LIBLTE_S1AP_SUBSCRIBERPROFILEIDFORRFP_STRUCT subscriberProfileIDforRFP;
bool subscriberProfileIDforRFP_present;
LIBLTE_S1AP_UE_HISTORYINFORMATION_STRUCT uE_HistoryInformation;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_SOURCEENB_TOTARGETENB_TRANSPARENTCONTAINER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_sourceenb_totargetenb_transparentcontainer(
LIBLTE_S1AP_SOURCEENB_TOTARGETENB_TRANSPARENTCONTAINER_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_sourceenb_totargetenb_transparentcontainer(
uint8_t** ptr, LIBLTE_S1AP_SOURCEENB_TOTARGETENB_TRANSPARENTCONTAINER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE EmergencyAreaID_Broadcast DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_EMERGENCYAREAID_BROADCAST_ITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_EMERGENCYAREAID_BROADCAST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_emergencyareaid_broadcast(LIBLTE_S1AP_EMERGENCYAREAID_BROADCAST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_emergencyareaid_broadcast(uint8_t** ptr,
LIBLTE_S1AP_EMERGENCYAREAID_BROADCAST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE MDT_Configuration SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MDT_ACTIVATION_ENUM_EXT mdt_Activation;
LIBLTE_S1AP_AREASCOPEOFMDT_STRUCT areaScopeOfMDT;
LIBLTE_S1AP_MDTMODE_STRUCT mDTMode;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_MDT_CONFIGURATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_mdt_configuration(LIBLTE_S1AP_MDT_CONFIGURATION_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_mdt_configuration(uint8_t** ptr, LIBLTE_S1AP_MDT_CONFIGURATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TAI_Cancelled DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:65535
typedef struct {
uint32_t len;
LIBLTE_S1AP_TAI_CANCELLED_ITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_TAI_CANCELLED_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tai_cancelled(LIBLTE_S1AP_TAI_CANCELLED_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tai_cancelled(uint8_t** ptr, LIBLTE_S1AP_TAI_CANCELLED_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE BroadcastCancelledAreaList CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_BROADCASTCANCELLEDAREALIST_CHOICE_CELLID_CANCELLED,
LIBLTE_S1AP_BROADCASTCANCELLEDAREALIST_CHOICE_TAI_CANCELLED,
LIBLTE_S1AP_BROADCASTCANCELLEDAREALIST_CHOICE_EMERGENCYAREAID_CANCELLED,
LIBLTE_S1AP_BROADCASTCANCELLEDAREALIST_CHOICE_N_ITEMS,
} LIBLTE_S1AP_BROADCASTCANCELLEDAREALIST_CHOICE_ENUM;
static const char
liblte_s1ap_broadcastcancelledarealist_choice_text[LIBLTE_S1AP_BROADCASTCANCELLEDAREALIST_CHOICE_N_ITEMS][50] = {
"cellID_Cancelled",
"tAI_Cancelled",
"emergencyAreaID_Cancelled",
};
typedef union {
LIBLTE_S1AP_CELLID_CANCELLED_STRUCT cellID_Cancelled;
LIBLTE_S1AP_TAI_CANCELLED_STRUCT tAI_Cancelled;
LIBLTE_S1AP_EMERGENCYAREAID_CANCELLED_STRUCT emergencyAreaID_Cancelled;
} LIBLTE_S1AP_BROADCASTCANCELLEDAREALIST_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_BROADCASTCANCELLEDAREALIST_CHOICE_UNION choice;
LIBLTE_S1AP_BROADCASTCANCELLEDAREALIST_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_BROADCASTCANCELLEDAREALIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_broadcastcancelledarealist(LIBLTE_S1AP_BROADCASTCANCELLEDAREALIST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_broadcastcancelledarealist(uint8_t** ptr,
LIBLTE_S1AP_BROADCASTCANCELLEDAREALIST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ENB_StatusTransfer_TransparentContainer SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_BEARERS_SUBJECTTOSTATUSTRANSFERLIST_STRUCT bearers_SubjectToStatusTransferList;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_ENB_STATUSTRANSFER_TRANSPARENTCONTAINER_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_enb_statustransfer_transparentcontainer(LIBLTE_S1AP_ENB_STATUSTRANSFER_TRANSPARENTCONTAINER_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_enb_statustransfer_transparentcontainer(
uint8_t** ptr, LIBLTE_S1AP_ENB_STATUSTRANSFER_TRANSPARENTCONTAINER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TraceActivation SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_UTRAN_TRACE_ID_STRUCT e_UTRAN_Trace_ID;
LIBLTE_S1AP_INTERFACESTOTRACE_STRUCT interfacesToTrace;
LIBLTE_S1AP_TRACEDEPTH_ENUM_EXT traceDepth;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT traceCollectionEntityIPAddress;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_TRACEACTIVATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_traceactivation(LIBLTE_S1AP_TRACEACTIVATION_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_traceactivation(uint8_t** ptr, LIBLTE_S1AP_TRACEACTIVATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE BroadcastCompletedAreaList CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_BROADCASTCOMPLETEDAREALIST_CHOICE_CELLID_BROADCAST,
LIBLTE_S1AP_BROADCASTCOMPLETEDAREALIST_CHOICE_TAI_BROADCAST,
LIBLTE_S1AP_BROADCASTCOMPLETEDAREALIST_CHOICE_EMERGENCYAREAID_BROADCAST,
LIBLTE_S1AP_BROADCASTCOMPLETEDAREALIST_CHOICE_N_ITEMS,
} LIBLTE_S1AP_BROADCASTCOMPLETEDAREALIST_CHOICE_ENUM;
static const char
liblte_s1ap_broadcastcompletedarealist_choice_text[LIBLTE_S1AP_BROADCASTCOMPLETEDAREALIST_CHOICE_N_ITEMS][50] = {
"cellID_Broadcast",
"tAI_Broadcast",
"emergencyAreaID_Broadcast",
};
typedef union {
LIBLTE_S1AP_CELLID_BROADCAST_STRUCT cellID_Broadcast;
LIBLTE_S1AP_TAI_BROADCAST_STRUCT tAI_Broadcast;
LIBLTE_S1AP_EMERGENCYAREAID_BROADCAST_STRUCT emergencyAreaID_Broadcast;
} LIBLTE_S1AP_BROADCASTCOMPLETEDAREALIST_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_BROADCASTCOMPLETEDAREALIST_CHOICE_UNION choice;
LIBLTE_S1AP_BROADCASTCOMPLETEDAREALIST_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_BROADCASTCOMPLETEDAREALIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_broadcastcompletedarealist(LIBLTE_S1AP_BROADCASTCOMPLETEDAREALIST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_broadcastcompletedarealist(uint8_t** ptr,
LIBLTE_S1AP_BROADCASTCOMPLETEDAREALIST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE SONInformation CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_SONINFORMATION_CHOICE_SONINFORMATIONREQUEST,
LIBLTE_S1AP_SONINFORMATION_CHOICE_SONINFORMATIONREPLY,
LIBLTE_S1AP_SONINFORMATION_CHOICE_N_ITEMS,
} LIBLTE_S1AP_SONINFORMATION_CHOICE_ENUM;
static const char liblte_s1ap_soninformation_choice_text[LIBLTE_S1AP_SONINFORMATION_CHOICE_N_ITEMS][50] = {
"sONInformationRequest",
"sONInformationReply",
};
typedef union {
LIBLTE_S1AP_SONINFORMATIONREQUEST_ENUM_EXT sONInformationRequest;
LIBLTE_S1AP_SONINFORMATIONREPLY_STRUCT sONInformationReply;
} LIBLTE_S1AP_SONINFORMATION_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_SONINFORMATION_CHOICE_UNION choice;
LIBLTE_S1AP_SONINFORMATION_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_SONINFORMATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_soninformation(LIBLTE_S1AP_SONINFORMATION_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_soninformation(uint8_t** ptr, LIBLTE_S1AP_SONINFORMATION_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE SONConfigurationTransfer SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TARGETENB_ID_STRUCT targeteNB_ID;
LIBLTE_S1AP_SOURCEENB_ID_STRUCT sourceeNB_ID;
LIBLTE_S1AP_SONINFORMATION_STRUCT sONInformation;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_SONCONFIGURATIONTRANSFER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_sonconfigurationtransfer(LIBLTE_S1AP_SONCONFIGURATIONTRANSFER_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_sonconfigurationtransfer(uint8_t** ptr,
LIBLTE_S1AP_SONCONFIGURATIONTRANSFER_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ResetAll ENUMERATED
********************************************************************************/
typedef enum {
LIBLTE_S1AP_RESETALL_RESET_ALL,
LIBLTE_S1AP_RESETALL_N_ITEMS,
} LIBLTE_S1AP_RESETALL_ENUM;
static const char liblte_s1ap_resetall_text[LIBLTE_S1AP_RESETALL_N_ITEMS][80] = {
"reset-all",
};
typedef struct {
bool ext;
LIBLTE_S1AP_RESETALL_ENUM e;
} LIBLTE_S1AP_RESETALL_ENUM_EXT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_resetall(LIBLTE_S1AP_RESETALL_ENUM_EXT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_resetall(uint8_t** ptr, LIBLTE_S1AP_RESETALL_ENUM_EXT* ie);
/*******************************************************************************
/* ProtocolIE Inter_SystemInformationTransferType CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_INTER_SYSTEMINFORMATIONTRANSFERTYPE_CHOICE_RIMTRANSFER,
LIBLTE_S1AP_INTER_SYSTEMINFORMATIONTRANSFERTYPE_CHOICE_N_ITEMS,
} LIBLTE_S1AP_INTER_SYSTEMINFORMATIONTRANSFERTYPE_CHOICE_ENUM;
static const char liblte_s1ap_inter_systeminformationtransfertype_choice_text
[LIBLTE_S1AP_INTER_SYSTEMINFORMATIONTRANSFERTYPE_CHOICE_N_ITEMS][50] = {
"rIMTransfer",
};
typedef union {
LIBLTE_S1AP_RIMTRANSFER_STRUCT rIMTransfer;
} LIBLTE_S1AP_INTER_SYSTEMINFORMATIONTRANSFERTYPE_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_INTER_SYSTEMINFORMATIONTRANSFERTYPE_CHOICE_UNION choice;
LIBLTE_S1AP_INTER_SYSTEMINFORMATIONTRANSFERTYPE_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_INTER_SYSTEMINFORMATIONTRANSFERTYPE_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_inter_systeminformationtransfertype(LIBLTE_S1AP_INTER_SYSTEMINFORMATIONTRANSFERTYPE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_inter_systeminformationtransfertype(uint8_t** ptr,
LIBLTE_S1AP_INTER_SYSTEMINFORMATIONTRANSFERTYPE_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RAB_IE_ContainerPairList DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_PROTOCOLIE_CONTAINERPAIR_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_E_RAB_IE_CONTAINERPAIRLIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rab_ie_containerpairlist(LIBLTE_S1AP_E_RAB_IE_CONTAINERPAIRLIST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rab_ie_containerpairlist(uint8_t** ptr,
LIBLTE_S1AP_E_RAB_IE_CONTAINERPAIRLIST_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RABDataForwardingItem SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RAB_ID_STRUCT e_RAB_ID;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT dL_transportLayerAddress;
bool dL_transportLayerAddress_present;
LIBLTE_S1AP_GTP_TEID_STRUCT dL_gTP_TEID;
bool dL_gTP_TEID_present;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT uL_TransportLayerAddress;
bool uL_TransportLayerAddress_present;
LIBLTE_S1AP_GTP_TEID_STRUCT uL_GTP_TEID;
bool uL_GTP_TEID_present;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_E_RABDATAFORWARDINGITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabdataforwardingitem(LIBLTE_S1AP_E_RABDATAFORWARDINGITEM_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabdataforwardingitem(uint8_t** ptr,
LIBLTE_S1AP_E_RABDATAFORWARDINGITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RABToBeSetupItemHOReq SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RAB_ID_STRUCT e_RAB_ID;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT transportLayerAddress;
LIBLTE_S1AP_GTP_TEID_STRUCT gTP_TEID;
LIBLTE_S1AP_E_RABLEVELQOSPARAMETERS_STRUCT e_RABlevelQosParameters;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_E_RABTOBESETUPITEMHOREQ_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabtobesetupitemhoreq(LIBLTE_S1AP_E_RABTOBESETUPITEMHOREQ_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabtobesetupitemhoreq(uint8_t** ptr,
LIBLTE_S1AP_E_RABTOBESETUPITEMHOREQ_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RABAdmittedItem SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RAB_ID_STRUCT e_RAB_ID;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT transportLayerAddress;
LIBLTE_S1AP_GTP_TEID_STRUCT gTP_TEID;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT dL_transportLayerAddress;
bool dL_transportLayerAddress_present;
LIBLTE_S1AP_GTP_TEID_STRUCT dL_gTP_TEID;
bool dL_gTP_TEID_present;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT uL_TransportLayerAddress;
bool uL_TransportLayerAddress_present;
LIBLTE_S1AP_GTP_TEID_STRUCT uL_GTP_TEID;
bool uL_GTP_TEID_present;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_E_RABADMITTEDITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabadmitteditem(LIBLTE_S1AP_E_RABADMITTEDITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabadmitteditem(uint8_t** ptr, LIBLTE_S1AP_E_RABADMITTEDITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RABFailedToSetupItemHOReqAck SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RAB_ID_STRUCT e_RAB_ID;
LIBLTE_S1AP_CAUSE_STRUCT cause;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_E_RABFAILEDTOSETUPITEMHOREQACK_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabfailedtosetupitemhoreqack(LIBLTE_S1AP_E_RABFAILEDTOSETUPITEMHOREQACK_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabfailedtosetupitemhoreqack(uint8_t** ptr, LIBLTE_S1AP_E_RABFAILEDTOSETUPITEMHOREQACK_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RABToBeSwitchedDLItem SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RAB_ID_STRUCT e_RAB_ID;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT transportLayerAddress;
LIBLTE_S1AP_GTP_TEID_STRUCT gTP_TEID;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_E_RABTOBESWITCHEDDLITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabtobeswitcheddlitem(LIBLTE_S1AP_E_RABTOBESWITCHEDDLITEM_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabtobeswitcheddlitem(uint8_t** ptr,
LIBLTE_S1AP_E_RABTOBESWITCHEDDLITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RABToBeSwitchedULItem SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RAB_ID_STRUCT e_RAB_ID;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT transportLayerAddress;
LIBLTE_S1AP_GTP_TEID_STRUCT gTP_TEID;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_E_RABTOBESWITCHEDULITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabtobeswitchedulitem(LIBLTE_S1AP_E_RABTOBESWITCHEDULITEM_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabtobeswitchedulitem(uint8_t** ptr,
LIBLTE_S1AP_E_RABTOBESWITCHEDULITEM_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RABToBeSetupItemBearerSUReq SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RAB_ID_STRUCT e_RAB_ID;
LIBLTE_S1AP_E_RABLEVELQOSPARAMETERS_STRUCT e_RABlevelQoSParameters;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT transportLayerAddress;
LIBLTE_S1AP_GTP_TEID_STRUCT gTP_TEID;
LIBLTE_S1AP_NAS_PDU_STRUCT nAS_PDU;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_E_RABTOBESETUPITEMBEARERSUREQ_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabtobesetupitembearersureq(LIBLTE_S1AP_E_RABTOBESETUPITEMBEARERSUREQ_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabtobesetupitembearersureq(uint8_t** ptr, LIBLTE_S1AP_E_RABTOBESETUPITEMBEARERSUREQ_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RABSetupItemBearerSURes SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RAB_ID_STRUCT e_RAB_ID;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT transportLayerAddress;
LIBLTE_S1AP_GTP_TEID_STRUCT gTP_TEID;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_E_RABSETUPITEMBEARERSURES_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabsetupitembearersures(LIBLTE_S1AP_E_RABSETUPITEMBEARERSURES_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabsetupitembearersures(uint8_t** ptr,
LIBLTE_S1AP_E_RABSETUPITEMBEARERSURES_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RABToBeModifiedItemBearerModReq SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RAB_ID_STRUCT e_RAB_ID;
LIBLTE_S1AP_E_RABLEVELQOSPARAMETERS_STRUCT e_RABLevelQoSParameters;
LIBLTE_S1AP_NAS_PDU_STRUCT nAS_PDU;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_E_RABTOBEMODIFIEDITEMBEARERMODREQ_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabtobemodifieditembearermodreq(LIBLTE_S1AP_E_RABTOBEMODIFIEDITEMBEARERMODREQ_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabtobemodifieditembearermodreq(uint8_t** ptr,
LIBLTE_S1AP_E_RABTOBEMODIFIEDITEMBEARERMODREQ_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RABModifyItemBearerModRes SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RAB_ID_STRUCT e_RAB_ID;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_E_RABMODIFYITEMBEARERMODRES_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabmodifyitembearermodres(LIBLTE_S1AP_E_RABMODIFYITEMBEARERMODRES_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabmodifyitembearermodres(uint8_t** ptr,
LIBLTE_S1AP_E_RABMODIFYITEMBEARERMODRES_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RABReleaseItemBearerRelComp SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RAB_ID_STRUCT e_RAB_ID;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_E_RABRELEASEITEMBEARERRELCOMP_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabreleaseitembearerrelcomp(LIBLTE_S1AP_E_RABRELEASEITEMBEARERRELCOMP_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabreleaseitembearerrelcomp(uint8_t** ptr, LIBLTE_S1AP_E_RABRELEASEITEMBEARERRELCOMP_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RABToBeSetupItemCtxtSUReq SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RAB_ID_STRUCT e_RAB_ID;
LIBLTE_S1AP_E_RABLEVELQOSPARAMETERS_STRUCT e_RABlevelQoSParameters;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT transportLayerAddress;
LIBLTE_S1AP_GTP_TEID_STRUCT gTP_TEID;
LIBLTE_S1AP_NAS_PDU_STRUCT nAS_PDU;
bool nAS_PDU_present;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_E_RABTOBESETUPITEMCTXTSUREQ_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabtobesetupitemctxtsureq(LIBLTE_S1AP_E_RABTOBESETUPITEMCTXTSUREQ_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabtobesetupitemctxtsureq(uint8_t** ptr,
LIBLTE_S1AP_E_RABTOBESETUPITEMCTXTSUREQ_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE E_RABSetupItemCtxtSURes SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RAB_ID_STRUCT e_RAB_ID;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT transportLayerAddress;
LIBLTE_S1AP_GTP_TEID_STRUCT gTP_TEID;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_E_RABSETUPITEMCTXTSURES_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabsetupitemctxtsures(LIBLTE_S1AP_E_RABSETUPITEMCTXTSURES_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabsetupitemctxtsures(uint8_t** ptr,
LIBLTE_S1AP_E_RABSETUPITEMCTXTSURES_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE TAIItem SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TAI_STRUCT tAI;
LIBLTE_S1AP_PROTOCOLEXTENSIONCONTAINER_STRUCT iE_Extensions;
bool iE_Extensions_present;
} LIBLTE_S1AP_TAIITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_taiitem(LIBLTE_S1AP_TAIITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_taiitem(uint8_t** ptr, LIBLTE_S1AP_TAIITEM_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List UE_associatedLogicalS1_ConnectionListRes DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEM_STRUCT
buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_UE_ASSOCIATEDLOGICALS1_CONNECTIONLISTRES_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ue_associatedlogicals1_connectionlistres(
LIBLTE_S1AP_UE_ASSOCIATEDLOGICALS1_CONNECTIONLISTRES_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ue_associatedlogicals1_connectionlistres(
uint8_t** ptr, LIBLTE_S1AP_UE_ASSOCIATEDLOGICALS1_CONNECTIONLISTRES_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List UE_associatedLogicalS1_ConnectionListResAck DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEM_STRUCT
buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_UE_ASSOCIATEDLOGICALS1_CONNECTIONLISTRESACK_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ue_associatedlogicals1_connectionlistresack(
LIBLTE_S1AP_UE_ASSOCIATEDLOGICALS1_CONNECTIONLISTRESACK_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ue_associatedlogicals1_connectionlistresack(
uint8_t** ptr, LIBLTE_S1AP_UE_ASSOCIATEDLOGICALS1_CONNECTIONLISTRESACK_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE PrivateMessage SEQUENCE
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_PRIVATEIE_CONTAINER_STRUCT privateIEs;
} LIBLTE_S1AP_PRIVATEMESSAGE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_privatemessage(LIBLTE_S1AP_PRIVATEMESSAGE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_privatemessage(uint8_t** ptr, LIBLTE_S1AP_PRIVATEMESSAGE_STRUCT* ie);
/*******************************************************************************
/* ProtocolIE ResetType CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_RESETTYPE_CHOICE_S1_INTERFACE,
LIBLTE_S1AP_RESETTYPE_CHOICE_PARTOFS1_INTERFACE,
LIBLTE_S1AP_RESETTYPE_CHOICE_N_ITEMS,
} LIBLTE_S1AP_RESETTYPE_CHOICE_ENUM;
static const char liblte_s1ap_resettype_choice_text[LIBLTE_S1AP_RESETTYPE_CHOICE_N_ITEMS][50] = {
"s1_Interface",
"partOfS1_Interface",
};
typedef union {
LIBLTE_S1AP_RESETALL_ENUM_EXT s1_Interface;
LIBLTE_S1AP_UE_ASSOCIATEDLOGICALS1_CONNECTIONLISTRES_STRUCT partOfS1_Interface;
} LIBLTE_S1AP_RESETTYPE_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_RESETTYPE_CHOICE_UNION choice;
LIBLTE_S1AP_RESETTYPE_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_RESETTYPE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_resettype(LIBLTE_S1AP_RESETTYPE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_resettype(uint8_t** ptr, LIBLTE_S1AP_RESETTYPE_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List E_RABSubjecttoDataForwardingList DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_E_RABDATAFORWARDINGITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_E_RABSUBJECTTODATAFORWARDINGLIST_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabsubjecttodataforwardinglist(LIBLTE_S1AP_E_RABSUBJECTTODATAFORWARDINGLIST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabsubjecttodataforwardinglist(uint8_t** ptr,
LIBLTE_S1AP_E_RABSUBJECTTODATAFORWARDINGLIST_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List E_RABToBeSetupListHOReq DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_E_RABTOBESETUPITEMHOREQ_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_E_RABTOBESETUPLISTHOREQ_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabtobesetuplisthoreq(LIBLTE_S1AP_E_RABTOBESETUPLISTHOREQ_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabtobesetuplisthoreq(uint8_t** ptr,
LIBLTE_S1AP_E_RABTOBESETUPLISTHOREQ_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List E_RABAdmittedList DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_E_RABADMITTEDITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_E_RABADMITTEDLIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabadmittedlist(LIBLTE_S1AP_E_RABADMITTEDLIST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabadmittedlist(uint8_t** ptr, LIBLTE_S1AP_E_RABADMITTEDLIST_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List E_RABToBeSwitchedDLList DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_E_RABTOBESWITCHEDDLITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_E_RABTOBESWITCHEDDLLIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabtobeswitcheddllist(LIBLTE_S1AP_E_RABTOBESWITCHEDDLLIST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabtobeswitcheddllist(uint8_t** ptr,
LIBLTE_S1AP_E_RABTOBESWITCHEDDLLIST_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List E_RABToBeSwitchedULList DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_E_RABTOBESWITCHEDULITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_E_RABTOBESWITCHEDULLIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabtobeswitchedullist(LIBLTE_S1AP_E_RABTOBESWITCHEDULLIST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabtobeswitchedullist(uint8_t** ptr,
LIBLTE_S1AP_E_RABTOBESWITCHEDULLIST_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List E_RABToBeSetupListBearerSUReq DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_E_RABTOBESETUPITEMBEARERSUREQ_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_E_RABTOBESETUPLISTBEARERSUREQ_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabtobesetuplistbearersureq(LIBLTE_S1AP_E_RABTOBESETUPLISTBEARERSUREQ_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabtobesetuplistbearersureq(uint8_t** ptr, LIBLTE_S1AP_E_RABTOBESETUPLISTBEARERSUREQ_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List E_RABSetupListBearerSURes DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_E_RABSETUPITEMBEARERSURES_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_E_RABSETUPLISTBEARERSURES_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabsetuplistbearersures(LIBLTE_S1AP_E_RABSETUPLISTBEARERSURES_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabsetuplistbearersures(uint8_t** ptr,
LIBLTE_S1AP_E_RABSETUPLISTBEARERSURES_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List E_RABToBeModifiedListBearerModReq DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_E_RABTOBEMODIFIEDITEMBEARERMODREQ_STRUCT
buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_E_RABTOBEMODIFIEDLISTBEARERMODREQ_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabtobemodifiedlistbearermodreq(LIBLTE_S1AP_E_RABTOBEMODIFIEDLISTBEARERMODREQ_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabtobemodifiedlistbearermodreq(uint8_t** ptr,
LIBLTE_S1AP_E_RABTOBEMODIFIEDLISTBEARERMODREQ_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List E_RABModifyListBearerModRes DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_E_RABMODIFYITEMBEARERMODRES_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_E_RABMODIFYLISTBEARERMODRES_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabmodifylistbearermodres(LIBLTE_S1AP_E_RABMODIFYLISTBEARERMODRES_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabmodifylistbearermodres(uint8_t** ptr,
LIBLTE_S1AP_E_RABMODIFYLISTBEARERMODRES_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List E_RABReleaseListBearerRelComp DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_E_RABRELEASEITEMBEARERRELCOMP_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_E_RABRELEASELISTBEARERRELCOMP_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabreleaselistbearerrelcomp(LIBLTE_S1AP_E_RABRELEASELISTBEARERRELCOMP_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabreleaselistbearerrelcomp(uint8_t** ptr, LIBLTE_S1AP_E_RABRELEASELISTBEARERRELCOMP_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List E_RABToBeSetupListCtxtSUReq DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_E_RABTOBESETUPITEMCTXTSUREQ_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_E_RABTOBESETUPLISTCTXTSUREQ_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabtobesetuplistctxtsureq(LIBLTE_S1AP_E_RABTOBESETUPLISTCTXTSUREQ_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabtobesetuplistctxtsureq(uint8_t** ptr,
LIBLTE_S1AP_E_RABTOBESETUPLISTCTXTSUREQ_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List E_RABSetupListCtxtSURes DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_E_RABSETUPITEMCTXTSURES_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_E_RABSETUPLISTCTXTSURES_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabsetuplistctxtsures(LIBLTE_S1AP_E_RABSETUPLISTCTXTSURES_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabsetuplistctxtsures(uint8_t** ptr,
LIBLTE_S1AP_E_RABSETUPLISTCTXTSURES_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List TAIList DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_TAIITEM_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_TAILIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tailist(LIBLTE_S1AP_TAILIST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tailist(uint8_t** ptr, LIBLTE_S1AP_TAILIST_STRUCT* ie);
/*******************************************************************************
/* Protocol Container List E_RABFailedtoSetupListHOReqAck DYNAMIC SEQUENCE OF
********************************************************************************/
// lb:1, ub:256
typedef struct {
uint32_t len;
LIBLTE_S1AP_E_RABFAILEDTOSETUPITEMHOREQACK_STRUCT buffer[32]; // WARNING: Artificial limit to reduce memory footprint
} LIBLTE_S1AP_E_RABFAILEDTOSETUPLISTHOREQACK_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabfailedtosetuplisthoreqack(LIBLTE_S1AP_E_RABFAILEDTOSETUPLISTHOREQACK_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabfailedtosetuplisthoreqack(uint8_t** ptr, LIBLTE_S1AP_E_RABFAILEDTOSETUPLISTHOREQACK_STRUCT* ie);
/*******************************************************************************
/* Protocol Message AllocationAndRetentionPriority_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_ALLOCATIONANDRETENTIONPRIORITY_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_allocationandretentionpriority_ext(LIBLTE_S1AP_MESSAGE_ALLOCATIONANDRETENTIONPRIORITY_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_allocationandretentionpriority_ext(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_ALLOCATIONANDRETENTIONPRIORITY_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message CancelledCellinEAI_Item_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_CANCELLEDCELLINEAI_ITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_cancelledcellineai_item_ext(LIBLTE_S1AP_MESSAGE_CANCELLEDCELLINEAI_ITEM_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_cancelledcellineai_item_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_CANCELLEDCELLINEAI_ITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message CancelledCellinTAI_Item_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_CANCELLEDCELLINTAI_ITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_cancelledcellintai_item_ext(LIBLTE_S1AP_MESSAGE_CANCELLEDCELLINTAI_ITEM_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_cancelledcellintai_item_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_CANCELLEDCELLINTAI_ITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message CellID_Broadcast_Item_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_CELLID_BROADCAST_ITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cellid_broadcast_item_ext(LIBLTE_S1AP_MESSAGE_CELLID_BROADCAST_ITEM_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_cellid_broadcast_item_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_CELLID_BROADCAST_ITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message CellID_Cancelled_Item_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_CELLID_CANCELLED_ITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cellid_cancelled_item_ext(LIBLTE_S1AP_MESSAGE_CELLID_CANCELLED_ITEM_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_cellid_cancelled_item_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_CELLID_CANCELLED_ITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message CellBasedMDT_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_CELLBASEDMDT_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cellbasedmdt_ext(LIBLTE_S1AP_MESSAGE_CELLBASEDMDT_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cellbasedmdt_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_CELLBASEDMDT_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message Cdma2000OneXSRVCCInfo_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_CDMA2000ONEXSRVCCINFO_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cdma2000onexsrvccinfo_ext(LIBLTE_S1AP_MESSAGE_CDMA2000ONEXSRVCCINFO_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_cdma2000onexsrvccinfo_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_CDMA2000ONEXSRVCCINFO_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message CellType_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_CELLTYPE_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_celltype_ext(LIBLTE_S1AP_MESSAGE_CELLTYPE_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_celltype_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_CELLTYPE_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message CGI_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_CGI_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_cgi_ext(LIBLTE_S1AP_MESSAGE_CGI_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_cgi_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_CGI_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message CSG_IdList_Item_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_CSG_IDLIST_ITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_csg_idlist_item_ext(LIBLTE_S1AP_MESSAGE_CSG_IDLIST_ITEM_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_csg_idlist_item_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_CSG_IDLIST_ITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message COUNTvalue_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_COUNTVALUE_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_countvalue_ext(LIBLTE_S1AP_MESSAGE_COUNTVALUE_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_countvalue_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_COUNTVALUE_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message COUNTValueExtended_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_COUNTVALUEEXTENDED_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_countvalueextended_ext(LIBLTE_S1AP_MESSAGE_COUNTVALUEEXTENDED_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_countvalueextended_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_COUNTVALUEEXTENDED_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message CriticalityDiagnostics_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_CRITICALITYDIAGNOSTICS_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_criticalitydiagnostics_ext(LIBLTE_S1AP_MESSAGE_CRITICALITYDIAGNOSTICS_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_criticalitydiagnostics_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_CRITICALITYDIAGNOSTICS_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message CriticalityDiagnostics_IE_Item_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_CRITICALITYDIAGNOSTICS_IE_ITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_criticalitydiagnostics_ie_item_ext(LIBLTE_S1AP_MESSAGE_CRITICALITYDIAGNOSTICS_IE_ITEM_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_criticalitydiagnostics_ie_item_ext(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_CRITICALITYDIAGNOSTICS_IE_ITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message EmergencyAreaID_Broadcast_Item_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_EMERGENCYAREAID_BROADCAST_ITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_emergencyareaid_broadcast_item_ext(LIBLTE_S1AP_MESSAGE_EMERGENCYAREAID_BROADCAST_ITEM_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_emergencyareaid_broadcast_item_ext(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_EMERGENCYAREAID_BROADCAST_ITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message EmergencyAreaID_Cancelled_Item_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_EMERGENCYAREAID_CANCELLED_ITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_emergencyareaid_cancelled_item_ext(LIBLTE_S1AP_MESSAGE_EMERGENCYAREAID_CANCELLED_ITEM_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_emergencyareaid_cancelled_item_ext(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_EMERGENCYAREAID_CANCELLED_ITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message CompletedCellinEAI_Item_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_COMPLETEDCELLINEAI_ITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_completedcellineai_item_ext(LIBLTE_S1AP_MESSAGE_COMPLETEDCELLINEAI_ITEM_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_completedcellineai_item_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_COMPLETEDCELLINEAI_ITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message GERAN_Cell_ID_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_GERAN_CELL_ID_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_geran_cell_id_ext(LIBLTE_S1AP_MESSAGE_GERAN_CELL_ID_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_geran_cell_id_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_GERAN_CELL_ID_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message GlobalENB_ID_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_GLOBALENB_ID_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_globalenb_id_ext(LIBLTE_S1AP_MESSAGE_GLOBALENB_ID_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_globalenb_id_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_GLOBALENB_ID_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message ENB_StatusTransfer_TransparentContainer_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_ENB_STATUSTRANSFER_TRANSPARENTCONTAINER_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_enb_statustransfer_transparentcontainer_ext(
LIBLTE_S1AP_MESSAGE_ENB_STATUSTRANSFER_TRANSPARENTCONTAINER_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_enb_statustransfer_transparentcontainer_ext(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_ENB_STATUSTRANSFER_TRANSPARENTCONTAINER_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABInformationListItem_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_E_RABINFORMATIONLISTITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabinformationlistitem_ext(LIBLTE_S1AP_MESSAGE_E_RABINFORMATIONLISTITEM_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabinformationlistitem_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABINFORMATIONLISTITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABItem_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_E_RABITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabitem_ext(LIBLTE_S1AP_MESSAGE_E_RABITEM_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabitem_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_E_RABITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABQoSParameters_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_E_RABQOSPARAMETERS_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabqosparameters_ext(LIBLTE_S1AP_MESSAGE_E_RABQOSPARAMETERS_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabqosparameters_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABQOSPARAMETERS_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message EUTRAN_CGI_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_EUTRAN_CGI_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_eutran_cgi_ext(LIBLTE_S1AP_MESSAGE_EUTRAN_CGI_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_eutran_cgi_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_EUTRAN_CGI_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message ForbiddenTAs_Item_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_FORBIDDENTAS_ITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_forbiddentas_item_ext(LIBLTE_S1AP_MESSAGE_FORBIDDENTAS_ITEM_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_forbiddentas_item_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_FORBIDDENTAS_ITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message ForbiddenLAs_Item_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_FORBIDDENLAS_ITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_forbiddenlas_item_ext(LIBLTE_S1AP_MESSAGE_FORBIDDENLAS_ITEM_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_forbiddenlas_item_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_FORBIDDENLAS_ITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message GBR_QosInformation_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_GBR_QOSINFORMATION_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_gbr_qosinformation_ext(LIBLTE_S1AP_MESSAGE_GBR_QOSINFORMATION_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_gbr_qosinformation_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_GBR_QOSINFORMATION_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message GUMMEI_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_GUMMEI_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_gummei_ext(LIBLTE_S1AP_MESSAGE_GUMMEI_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_gummei_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_GUMMEI_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message HandoverRestrictionList_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_HANDOVERRESTRICTIONLIST_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_handoverrestrictionlist_ext(LIBLTE_S1AP_MESSAGE_HANDOVERRESTRICTIONLIST_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_handoverrestrictionlist_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_HANDOVERRESTRICTIONLIST_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message LAI_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_LAI_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_lai_ext(LIBLTE_S1AP_MESSAGE_LAI_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_lai_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_LAI_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message LoggedMDT_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_LOGGEDMDT_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_loggedmdt_ext(LIBLTE_S1AP_MESSAGE_LOGGEDMDT_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_loggedmdt_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_LOGGEDMDT_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message M3Configuration_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_M3CONFIGURATION_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_m3configuration_ext(LIBLTE_S1AP_MESSAGE_M3CONFIGURATION_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_m3configuration_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_M3CONFIGURATION_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message M4Configuration_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_M4CONFIGURATION_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_m4configuration_ext(LIBLTE_S1AP_MESSAGE_M4CONFIGURATION_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_m4configuration_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_M4CONFIGURATION_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message M5Configuration_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_M5CONFIGURATION_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_m5configuration_ext(LIBLTE_S1AP_MESSAGE_M5CONFIGURATION_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_m5configuration_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_M5CONFIGURATION_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message M1PeriodicReporting_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_M1PERIODICREPORTING_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_m1periodicreporting_ext(LIBLTE_S1AP_MESSAGE_M1PERIODICREPORTING_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_m1periodicreporting_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_M1PERIODICREPORTING_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message RequestType_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_REQUESTTYPE_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_requesttype_ext(LIBLTE_S1AP_MESSAGE_REQUESTTYPE_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_requesttype_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_REQUESTTYPE_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message RIMTransfer_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_RIMTRANSFER_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_rimtransfer_ext(LIBLTE_S1AP_MESSAGE_RIMTRANSFER_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_rimtransfer_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_RIMTRANSFER_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message SecurityContext_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_SECURITYCONTEXT_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_securitycontext_ext(LIBLTE_S1AP_MESSAGE_SECURITYCONTEXT_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_securitycontext_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_SECURITYCONTEXT_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message SourceeNB_ID_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_SOURCEENB_ID_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_sourceenb_id_ext(LIBLTE_S1AP_MESSAGE_SOURCEENB_ID_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_sourceenb_id_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_SOURCEENB_ID_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message ServedGUMMEIsItem_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_SERVEDGUMMEISITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_servedgummeisitem_ext(LIBLTE_S1AP_MESSAGE_SERVEDGUMMEISITEM_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_servedgummeisitem_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_SERVEDGUMMEISITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message SupportedTAs_Item_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_SUPPORTEDTAS_ITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_supportedtas_item_ext(LIBLTE_S1AP_MESSAGE_SUPPORTEDTAS_ITEM_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_supportedtas_item_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_SUPPORTEDTAS_ITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message TimeSynchronizationInfo_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_TIMESYNCHRONIZATIONINFO_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_timesynchronizationinfo_ext(LIBLTE_S1AP_MESSAGE_TIMESYNCHRONIZATIONINFO_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_timesynchronizationinfo_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_TIMESYNCHRONIZATIONINFO_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message S_TMSI_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_S_TMSI_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_s_tmsi_ext(LIBLTE_S1AP_MESSAGE_S_TMSI_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_s_tmsi_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_S_TMSI_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message TAIBasedMDT_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_TAIBASEDMDT_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_taibasedmdt_ext(LIBLTE_S1AP_MESSAGE_TAIBASEDMDT_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_taibasedmdt_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_TAIBASEDMDT_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message TAI_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_TAI_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tai_ext(LIBLTE_S1AP_MESSAGE_TAI_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tai_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_TAI_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message TAI_Broadcast_Item_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_TAI_BROADCAST_ITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tai_broadcast_item_ext(LIBLTE_S1AP_MESSAGE_TAI_BROADCAST_ITEM_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tai_broadcast_item_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_TAI_BROADCAST_ITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message TAI_Cancelled_Item_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_TAI_CANCELLED_ITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tai_cancelled_item_ext(LIBLTE_S1AP_MESSAGE_TAI_CANCELLED_ITEM_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tai_cancelled_item_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_TAI_CANCELLED_ITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message TABasedMDT_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_TABASEDMDT_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tabasedmdt_ext(LIBLTE_S1AP_MESSAGE_TABASEDMDT_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tabasedmdt_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_TABASEDMDT_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message CompletedCellinTAI_Item_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_COMPLETEDCELLINTAI_ITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_completedcellintai_item_ext(LIBLTE_S1AP_MESSAGE_COMPLETEDCELLINTAI_ITEM_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_completedcellintai_item_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_COMPLETEDCELLINTAI_ITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message TargeteNB_ID_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_TARGETENB_ID_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_targetenb_id_ext(LIBLTE_S1AP_MESSAGE_TARGETENB_ID_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_targetenb_id_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_TARGETENB_ID_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message TargetRNC_ID_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_TARGETRNC_ID_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_targetrnc_id_ext(LIBLTE_S1AP_MESSAGE_TARGETRNC_ID_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_targetrnc_id_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_TARGETRNC_ID_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message TargeteNB_ToSourceeNB_TransparentContainer_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_TARGETENB_TOSOURCEENB_TRANSPARENTCONTAINER_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_targetenb_tosourceenb_transparentcontainer_ext(
LIBLTE_S1AP_MESSAGE_TARGETENB_TOSOURCEENB_TRANSPARENTCONTAINER_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_targetenb_tosourceenb_transparentcontainer_ext(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_TARGETENB_TOSOURCEENB_TRANSPARENTCONTAINER_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message M1ThresholdEventA2_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_M1THRESHOLDEVENTA2_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_m1thresholdeventa2_ext(LIBLTE_S1AP_MESSAGE_M1THRESHOLDEVENTA2_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_m1thresholdeventa2_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_M1THRESHOLDEVENTA2_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message Tunnel_Information_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_TUNNEL_INFORMATION_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tunnel_information_ext(LIBLTE_S1AP_MESSAGE_TUNNEL_INFORMATION_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tunnel_information_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_TUNNEL_INFORMATION_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UEAggregate_MaximumBitrates_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_UEAGGREGATE_MAXIMUMBITRATES_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_ueaggregate_maximumbitrates_ext(LIBLTE_S1AP_MESSAGE_UEAGGREGATE_MAXIMUMBITRATES_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_ueaggregate_maximumbitrates_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_UEAGGREGATE_MAXIMUMBITRATES_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UE_S1AP_ID_pair_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_UE_S1AP_ID_PAIR_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ue_s1ap_id_pair_ext(LIBLTE_S1AP_MESSAGE_UE_S1AP_ID_PAIR_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ue_s1ap_id_pair_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_UE_S1AP_ID_PAIR_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UE_associatedLogicalS1_ConnectionItemExt STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEMEXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ue_associatedlogicals1_connectionitemext(
LIBLTE_S1AP_MESSAGE_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEMEXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ue_associatedlogicals1_connectionitemext(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEMEXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UESecurityCapabilities_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_UESECURITYCAPABILITIES_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_uesecuritycapabilities_ext(LIBLTE_S1AP_MESSAGE_UESECURITYCAPABILITIES_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_uesecuritycapabilities_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_UESECURITYCAPABILITIES_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UserLocationInformation_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_USERLOCATIONINFORMATION_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_userlocationinformation_ext(LIBLTE_S1AP_MESSAGE_USERLOCATIONINFORMATION_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_userlocationinformation_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_USERLOCATIONINFORMATION_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message ENBX2ExtTLA_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_ENBX2EXTTLA_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_enbx2exttla_ext(LIBLTE_S1AP_MESSAGE_ENBX2EXTTLA_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_enbx2exttla_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_ENBX2EXTTLA_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message SourceeNB_ToTargeteNB_TransparentContainer_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MOBILITYINFORMATION_STRUCT MobilityInformation;
bool MobilityInformation_present;
} LIBLTE_S1AP_MESSAGE_SOURCEENB_TOTARGETENB_TRANSPARENTCONTAINER_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_sourceenb_totargetenb_transparentcontainer_ext(
LIBLTE_S1AP_MESSAGE_SOURCEENB_TOTARGETENB_TRANSPARENTCONTAINER_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_sourceenb_totargetenb_transparentcontainer_ext(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_SOURCEENB_TOTARGETENB_TRANSPARENTCONTAINER_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABInformationList STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RABINFORMATIONLISTITEM_STRUCT E_RABInformationListItem;
} LIBLTE_S1AP_MESSAGE_E_RABINFORMATIONLIST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabinformationlist(LIBLTE_S1AP_MESSAGE_E_RABINFORMATIONLIST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabinformationlist(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABINFORMATIONLIST_STRUCT* ie);
/*******************************************************************************
/* Protocol Message LastVisitedEUTRANCellInformation_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TIME_UE_STAYEDINCELL_ENHANCEDGRANULARITY_STRUCT Time_UE_StayedInCell_EnhancedGranularity;
bool Time_UE_StayedInCell_EnhancedGranularity_present;
LIBLTE_S1AP_CAUSE_STRUCT HO_Cause;
bool HO_Cause_present;
} LIBLTE_S1AP_MESSAGE_LASTVISITEDEUTRANCELLINFORMATION_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_lastvisitedeutrancellinformation_ext(
LIBLTE_S1AP_MESSAGE_LASTVISITEDEUTRANCELLINFORMATION_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_lastvisitedeutrancellinformation_ext(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_LASTVISITEDEUTRANCELLINFORMATION_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message SONInformationReply_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TIMESYNCHRONIZATIONINFO_STRUCT Time_Synchronization_Info;
bool Time_Synchronization_Info_present;
} LIBLTE_S1AP_MESSAGE_SONINFORMATIONREPLY_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_soninformationreply_ext(LIBLTE_S1AP_MESSAGE_SONINFORMATIONREPLY_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_soninformationreply_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_SONINFORMATIONREPLY_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message Bearers_SubjectToStatusTransfer_ItemExt STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_COUNTVALUEEXTENDED_STRUCT ULCOUNTValueExtended;
bool ULCOUNTValueExtended_present;
LIBLTE_S1AP_COUNTVALUEEXTENDED_STRUCT DLCOUNTValueExtended;
bool DLCOUNTValueExtended_present;
LIBLTE_S1AP_RECEIVESTATUSOFULPDCPSDUSEXTENDED_STRUCT ReceiveStatusOfULPDCPSDUsExtended;
bool ReceiveStatusOfULPDCPSDUsExtended_present;
} LIBLTE_S1AP_MESSAGE_BEARERS_SUBJECTTOSTATUSTRANSFER_ITEMEXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_bearers_subjecttostatustransfer_itemext(
LIBLTE_S1AP_MESSAGE_BEARERS_SUBJECTTOSTATUSTRANSFER_ITEMEXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_bearers_subjecttostatustransfer_itemext(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_BEARERS_SUBJECTTOSTATUSTRANSFER_ITEMEXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABItem STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RABITEM_STRUCT E_RABItem;
} LIBLTE_S1AP_MESSAGE_E_RABITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabitem(LIBLTE_S1AP_MESSAGE_E_RABITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabitem(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_E_RABITEM_STRUCT* ie);
/*******************************************************************************
/* Protocol Message MDT_Configuration_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MDTPLMNLIST_STRUCT SignallingBasedMDTPLMNList;
bool SignallingBasedMDTPLMNList_present;
} LIBLTE_S1AP_MESSAGE_MDT_CONFIGURATION_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_mdt_configuration_ext(LIBLTE_S1AP_MESSAGE_MDT_CONFIGURATION_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_mdt_configuration_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_MDT_CONFIGURATION_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message X2TNLConfigurationInfo_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_ENBX2EXTTLAS_STRUCT eNBX2ExtendedTransportLayerAddresses;
bool eNBX2ExtendedTransportLayerAddresses_present;
} LIBLTE_S1AP_MESSAGE_X2TNLCONFIGURATIONINFO_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_x2tnlconfigurationinfo_ext(LIBLTE_S1AP_MESSAGE_X2TNLCONFIGURATIONINFO_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_x2tnlconfigurationinfo_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_X2TNLCONFIGURATIONINFO_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message Bearers_SubjectToStatusTransfer_Item STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_BEARERS_SUBJECTTOSTATUSTRANSFER_ITEM_STRUCT Bearers_SubjectToStatusTransfer_Item;
} LIBLTE_S1AP_MESSAGE_BEARERS_SUBJECTTOSTATUSTRANSFER_ITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_bearers_subjecttostatustransfer_item(
LIBLTE_S1AP_MESSAGE_BEARERS_SUBJECTTOSTATUSTRANSFER_ITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_bearers_subjecttostatustransfer_item(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_BEARERS_SUBJECTTOSTATUSTRANSFER_ITEM_STRUCT* ie);
/*******************************************************************************
/* Protocol Message ImmediateMDT_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_M3CONFIGURATION_STRUCT M3Configuration;
bool M3Configuration_present;
LIBLTE_S1AP_M4CONFIGURATION_STRUCT M4Configuration;
bool M4Configuration_present;
LIBLTE_S1AP_M5CONFIGURATION_STRUCT M5Configuration;
bool M5Configuration_present;
LIBLTE_S1AP_MDT_LOCATION_INFO_STRUCT MDT_Location_Info;
bool MDT_Location_Info_present;
} LIBLTE_S1AP_MESSAGE_IMMEDIATEMDT_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_immediatemdt_ext(LIBLTE_S1AP_MESSAGE_IMMEDIATEMDT_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_immediatemdt_ext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_IMMEDIATEMDT_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message SONConfigurationTransfer_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_X2TNLCONFIGURATIONINFO_STRUCT x2TNLConfigurationInfo;
bool x2TNLConfigurationInfo_present;
} LIBLTE_S1AP_MESSAGE_SONCONFIGURATIONTRANSFER_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_sonconfigurationtransfer_ext(LIBLTE_S1AP_MESSAGE_SONCONFIGURATIONTRANSFER_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_sonconfigurationtransfer_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_SONCONFIGURATIONTRANSFER_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message TraceActivation_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MDT_CONFIGURATION_STRUCT MDTConfiguration;
bool MDTConfiguration_present;
} LIBLTE_S1AP_MESSAGE_TRACEACTIVATION_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_traceactivation_ext(LIBLTE_S1AP_MESSAGE_TRACEACTIVATION_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_traceactivation_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_TRACEACTIVATION_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message HandoverRequired STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_HANDOVERTYPE_ENUM_EXT HandoverType;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
LIBLTE_S1AP_TARGETID_STRUCT TargetID;
LIBLTE_S1AP_DIRECT_FORWARDING_PATH_AVAILABILITY_ENUM_EXT Direct_Forwarding_Path_Availability;
bool Direct_Forwarding_Path_Availability_present;
LIBLTE_S1AP_SRVCCHOINDICATION_ENUM_EXT SRVCCHOIndication;
bool SRVCCHOIndication_present;
LIBLTE_S1AP_SOURCE_TOTARGET_TRANSPARENTCONTAINER_STRUCT Source_ToTarget_TransparentContainer;
LIBLTE_S1AP_SOURCE_TOTARGET_TRANSPARENTCONTAINER_STRUCT Source_ToTarget_TransparentContainer_Secondary;
bool Source_ToTarget_TransparentContainer_Secondary_present;
LIBLTE_S1AP_MSCLASSMARK2_STRUCT MSClassmark2;
bool MSClassmark2_present;
LIBLTE_S1AP_MSCLASSMARK3_STRUCT MSClassmark3;
bool MSClassmark3_present;
LIBLTE_S1AP_CSG_ID_STRUCT CSG_Id;
bool CSG_Id_present;
LIBLTE_S1AP_CELLACCESSMODE_ENUM_EXT CellAccessMode;
bool CellAccessMode_present;
LIBLTE_S1AP_PS_SERVICENOTAVAILABLE_ENUM_EXT PS_ServiceNotAvailable;
bool PS_ServiceNotAvailable_present;
} LIBLTE_S1AP_MESSAGE_HANDOVERREQUIRED_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_handoverrequired(LIBLTE_S1AP_MESSAGE_HANDOVERREQUIRED_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_handoverrequired(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_HANDOVERREQUIRED_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABDataForwardingItem_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_E_RABDATAFORWARDINGITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabdataforwardingitem_ext(LIBLTE_S1AP_MESSAGE_E_RABDATAFORWARDINGITEM_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabdataforwardingitem_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABDATAFORWARDINGITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message HandoverPreparationFailure STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_HANDOVERPREPARATIONFAILURE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_handoverpreparationfailure(LIBLTE_S1AP_MESSAGE_HANDOVERPREPARATIONFAILURE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_handoverpreparationfailure(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_HANDOVERPREPARATIONFAILURE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABToBeSetupItemHOReq_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_DATA_FORWARDING_NOT_POSSIBLE_ENUM_EXT Data_Forwarding_Not_Possible;
bool Data_Forwarding_Not_Possible_present;
} LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMHOREQ_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabtobesetupitemhoreq_ext(LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMHOREQ_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabtobesetupitemhoreq_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMHOREQ_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABAdmittedItem_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_E_RABADMITTEDITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabadmitteditem_ext(LIBLTE_S1AP_MESSAGE_E_RABADMITTEDITEM_EXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabadmitteditem_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABADMITTEDITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABFailedToSetupItemHOReqAckExt STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_E_RABFAILEDTOSETUPITEMHOREQACKEXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabfailedtosetupitemhoreqackext(LIBLTE_S1AP_MESSAGE_E_RABFAILEDTOSETUPITEMHOREQACKEXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabfailedtosetupitemhoreqackext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABFAILEDTOSETUPITEMHOREQACKEXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message HandoverFailure STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_HANDOVERFAILURE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_handoverfailure(LIBLTE_S1AP_MESSAGE_HANDOVERFAILURE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_handoverfailure(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_HANDOVERFAILURE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message HandoverNotify STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT EUTRAN_CGI;
LIBLTE_S1AP_TAI_STRUCT TAI;
LIBLTE_S1AP_TUNNELINFORMATION_STRUCT Tunnel_Information_for_BBF;
bool Tunnel_Information_for_BBF_present;
LIBLTE_S1AP_LHN_ID_STRUCT LHN_ID;
bool LHN_ID_present;
} LIBLTE_S1AP_MESSAGE_HANDOVERNOTIFY_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_handovernotify(LIBLTE_S1AP_MESSAGE_HANDOVERNOTIFY_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_handovernotify(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_HANDOVERNOTIFY_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABToBeSwitchedDLItem_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_E_RABTOBESWITCHEDDLITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabtobeswitcheddlitem_ext(LIBLTE_S1AP_MESSAGE_E_RABTOBESWITCHEDDLITEM_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabtobeswitcheddlitem_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABTOBESWITCHEDDLITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABToBeSwitchedULItem_Ext STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_E_RABTOBESWITCHEDULITEM_EXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabtobeswitchedulitem_ext(LIBLTE_S1AP_MESSAGE_E_RABTOBESWITCHEDULITEM_EXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabtobeswitchedulitem_ext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABTOBESWITCHEDULITEM_EXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message PathSwitchRequestFailure STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_PATHSWITCHREQUESTFAILURE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_pathswitchrequestfailure(LIBLTE_S1AP_MESSAGE_PATHSWITCHREQUESTFAILURE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_pathswitchrequestfailure(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_PATHSWITCHREQUESTFAILURE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message HandoverCancel STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
} LIBLTE_S1AP_MESSAGE_HANDOVERCANCEL_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_handovercancel(LIBLTE_S1AP_MESSAGE_HANDOVERCANCEL_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_handovercancel(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_HANDOVERCANCEL_STRUCT* ie);
/*******************************************************************************
/* Protocol Message HandoverCancelAcknowledge STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_HANDOVERCANCELACKNOWLEDGE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_handovercancelacknowledge(LIBLTE_S1AP_MESSAGE_HANDOVERCANCELACKNOWLEDGE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_handovercancelacknowledge(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_HANDOVERCANCELACKNOWLEDGE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABToBeSetupItemBearerSUReqExt STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_CORRELATION_ID_STRUCT Correlation_ID;
bool Correlation_ID_present;
LIBLTE_S1AP_CORRELATION_ID_STRUCT SIPTO_Correlation_ID;
bool SIPTO_Correlation_ID_present;
} LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMBEARERSUREQEXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabtobesetupitembearersureqext(LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMBEARERSUREQEXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabtobesetupitembearersureqext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMBEARERSUREQEXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABSetupItemBearerSUResExt STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_E_RABSETUPITEMBEARERSURESEXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabsetupitembearersuresext(LIBLTE_S1AP_MESSAGE_E_RABSETUPITEMBEARERSURESEXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabsetupitembearersuresext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABSETUPITEMBEARERSURESEXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABToBeModifyItemBearerModReqExt STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TRANSPORTINFORMATION_STRUCT TransportInformation;
bool TransportInformation_present;
} LIBLTE_S1AP_MESSAGE_E_RABTOBEMODIFYITEMBEARERMODREQEXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabtobemodifyitembearermodreqext(LIBLTE_S1AP_MESSAGE_E_RABTOBEMODIFYITEMBEARERMODREQEXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabtobemodifyitembearermodreqext(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_E_RABTOBEMODIFYITEMBEARERMODREQEXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABModifyItemBearerModResExt STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_E_RABMODIFYITEMBEARERMODRESEXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabmodifyitembearermodresext(LIBLTE_S1AP_MESSAGE_E_RABMODIFYITEMBEARERMODRESEXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabmodifyitembearermodresext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABMODIFYITEMBEARERMODRESEXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABReleaseCommand STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_UEAGGREGATEMAXIMUMBITRATE_STRUCT uEaggregateMaximumBitrate;
bool uEaggregateMaximumBitrate_present;
LIBLTE_S1AP_E_RABLIST_STRUCT E_RABToBeReleasedList;
LIBLTE_S1AP_NAS_PDU_STRUCT NAS_PDU;
bool NAS_PDU_present;
} LIBLTE_S1AP_MESSAGE_E_RABRELEASECOMMAND_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabreleasecommand(LIBLTE_S1AP_MESSAGE_E_RABRELEASECOMMAND_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabreleasecommand(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABRELEASECOMMAND_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABReleaseItemBearerRelCompExt STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_E_RABRELEASEITEMBEARERRELCOMPEXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabreleaseitembearerrelcompext(LIBLTE_S1AP_MESSAGE_E_RABRELEASEITEMBEARERRELCOMPEXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabreleaseitembearerrelcompext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABRELEASEITEMBEARERRELCOMPEXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABReleaseIndication STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_E_RABLIST_STRUCT E_RABReleasedList;
LIBLTE_S1AP_USERLOCATIONINFORMATION_STRUCT UserLocationInformation;
bool UserLocationInformation_present;
} LIBLTE_S1AP_MESSAGE_E_RABRELEASEINDICATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabreleaseindication(LIBLTE_S1AP_MESSAGE_E_RABRELEASEINDICATION_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabreleaseindication(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABRELEASEINDICATION_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABToBeSetupItemCtxtSUReqExt STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_CORRELATION_ID_STRUCT Correlation_ID;
bool Correlation_ID_present;
LIBLTE_S1AP_CORRELATION_ID_STRUCT SIPTO_Correlation_ID;
bool SIPTO_Correlation_ID_present;
} LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMCTXTSUREQEXT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabtobesetupitemctxtsureqext(LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMCTXTSUREQEXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabtobesetupitemctxtsureqext(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMCTXTSUREQEXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABSetupItemCtxtSUResExt STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_E_RABSETUPITEMCTXTSURESEXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabsetupitemctxtsuresext(LIBLTE_S1AP_MESSAGE_E_RABSETUPITEMCTXTSURESEXT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabsetupitemctxtsuresext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_E_RABSETUPITEMCTXTSURESEXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message InitialContextSetupFailure STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_INITIALCONTEXTSETUPFAILURE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_initialcontextsetupfailure(LIBLTE_S1AP_MESSAGE_INITIALCONTEXTSETUPFAILURE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_initialcontextsetupfailure(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_INITIALCONTEXTSETUPFAILURE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message TAIItemExt STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_TAIITEMEXT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_taiitemext(LIBLTE_S1AP_MESSAGE_TAIITEMEXT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_taiitemext(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_TAIITEMEXT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UEContextReleaseRequest STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
LIBLTE_S1AP_GWCONTEXTRELEASEINDICATION_ENUM_EXT GWContextReleaseIndication;
bool GWContextReleaseIndication_present;
} LIBLTE_S1AP_MESSAGE_UECONTEXTRELEASEREQUEST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_uecontextreleaserequest(LIBLTE_S1AP_MESSAGE_UECONTEXTRELEASEREQUEST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_uecontextreleaserequest(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_UECONTEXTRELEASEREQUEST_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UEContextReleaseCommand STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_UE_S1AP_IDS_STRUCT UE_S1AP_IDs;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
} LIBLTE_S1AP_MESSAGE_UECONTEXTRELEASECOMMAND_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_uecontextreleasecommand(LIBLTE_S1AP_MESSAGE_UECONTEXTRELEASECOMMAND_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_uecontextreleasecommand(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_UECONTEXTRELEASECOMMAND_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UEContextReleaseComplete STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
LIBLTE_S1AP_USERLOCATIONINFORMATION_STRUCT UserLocationInformation;
bool UserLocationInformation_present;
} LIBLTE_S1AP_MESSAGE_UECONTEXTRELEASECOMPLETE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_uecontextreleasecomplete(LIBLTE_S1AP_MESSAGE_UECONTEXTRELEASECOMPLETE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_uecontextreleasecomplete(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_UECONTEXTRELEASECOMPLETE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UEContextModificationRequest STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_SECURITYKEY_STRUCT SecurityKey;
bool SecurityKey_present;
LIBLTE_S1AP_SUBSCRIBERPROFILEIDFORRFP_STRUCT SubscriberProfileIDforRFP;
bool SubscriberProfileIDforRFP_present;
LIBLTE_S1AP_UEAGGREGATEMAXIMUMBITRATE_STRUCT uEaggregateMaximumBitrate;
bool uEaggregateMaximumBitrate_present;
LIBLTE_S1AP_CSFALLBACKINDICATOR_ENUM_EXT CSFallbackIndicator;
bool CSFallbackIndicator_present;
LIBLTE_S1AP_UESECURITYCAPABILITIES_STRUCT UESecurityCapabilities;
bool UESecurityCapabilities_present;
LIBLTE_S1AP_CSGMEMBERSHIPSTATUS_ENUM CSGMembershipStatus;
bool CSGMembershipStatus_present;
LIBLTE_S1AP_LAI_STRUCT RegisteredLAI;
bool RegisteredLAI_present;
LIBLTE_S1AP_ADDITIONALCSFALLBACKINDICATOR_ENUM_EXT AdditionalCSFallbackIndicator;
bool AdditionalCSFallbackIndicator_present;
} LIBLTE_S1AP_MESSAGE_UECONTEXTMODIFICATIONREQUEST_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_uecontextmodificationrequest(LIBLTE_S1AP_MESSAGE_UECONTEXTMODIFICATIONREQUEST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_uecontextmodificationrequest(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_UECONTEXTMODIFICATIONREQUEST_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UEContextModificationResponse STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_UECONTEXTMODIFICATIONRESPONSE_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_uecontextmodificationresponse(LIBLTE_S1AP_MESSAGE_UECONTEXTMODIFICATIONRESPONSE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_uecontextmodificationresponse(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_UECONTEXTMODIFICATIONRESPONSE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UEContextModificationFailure STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_UECONTEXTMODIFICATIONFAILURE_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_uecontextmodificationfailure(LIBLTE_S1AP_MESSAGE_UECONTEXTMODIFICATIONFAILURE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_uecontextmodificationfailure(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_UECONTEXTMODIFICATIONFAILURE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UERadioCapabilityMatchRequest STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_UERADIOCAPABILITY_STRUCT UERadioCapability;
bool UERadioCapability_present;
} LIBLTE_S1AP_MESSAGE_UERADIOCAPABILITYMATCHREQUEST_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_ueradiocapabilitymatchrequest(LIBLTE_S1AP_MESSAGE_UERADIOCAPABILITYMATCHREQUEST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_ueradiocapabilitymatchrequest(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_UERADIOCAPABILITYMATCHREQUEST_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UERadioCapabilityMatchResponse STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_VOICESUPPORTMATCHINDICATOR_ENUM_EXT VoiceSupportMatchIndicator;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_UERADIOCAPABILITYMATCHRESPONSE_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_ueradiocapabilitymatchresponse(LIBLTE_S1AP_MESSAGE_UERADIOCAPABILITYMATCHRESPONSE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_ueradiocapabilitymatchresponse(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_UERADIOCAPABILITYMATCHRESPONSE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message DownlinkNASTransport STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_NAS_PDU_STRUCT NAS_PDU;
LIBLTE_S1AP_HANDOVERRESTRICTIONLIST_STRUCT HandoverRestrictionList;
bool HandoverRestrictionList_present;
LIBLTE_S1AP_SUBSCRIBERPROFILEIDFORRFP_STRUCT SubscriberProfileIDforRFP;
bool SubscriberProfileIDforRFP_present;
} LIBLTE_S1AP_MESSAGE_DOWNLINKNASTRANSPORT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_downlinknastransport(LIBLTE_S1AP_MESSAGE_DOWNLINKNASTRANSPORT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_downlinknastransport(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_DOWNLINKNASTRANSPORT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message InitialUEMessage STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_NAS_PDU_STRUCT NAS_PDU;
LIBLTE_S1AP_TAI_STRUCT TAI;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT EUTRAN_CGI;
LIBLTE_S1AP_RRC_ESTABLISHMENT_CAUSE_ENUM_EXT RRC_Establishment_Cause;
LIBLTE_S1AP_S_TMSI_STRUCT S_TMSI;
bool S_TMSI_present;
LIBLTE_S1AP_CSG_ID_STRUCT CSG_Id;
bool CSG_Id_present;
LIBLTE_S1AP_GUMMEI_STRUCT GUMMEI_ID;
bool GUMMEI_ID_present;
LIBLTE_S1AP_CELLACCESSMODE_ENUM_EXT CellAccessMode;
bool CellAccessMode_present;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT GW_TransportLayerAddress;
bool GW_TransportLayerAddress_present;
LIBLTE_S1AP_RELAYNODE_INDICATOR_ENUM_EXT RelayNode_Indicator;
bool RelayNode_Indicator_present;
LIBLTE_S1AP_GUMMEITYPE_ENUM_EXT GUMMEIType;
bool GUMMEIType_present;
LIBLTE_S1AP_TUNNELINFORMATION_STRUCT Tunnel_Information_for_BBF;
bool Tunnel_Information_for_BBF_present;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT SIPTO_L_GW_TransportLayerAddress;
bool SIPTO_L_GW_TransportLayerAddress_present;
LIBLTE_S1AP_LHN_ID_STRUCT LHN_ID;
bool LHN_ID_present;
} LIBLTE_S1AP_MESSAGE_INITIALUEMESSAGE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_initialuemessage(LIBLTE_S1AP_MESSAGE_INITIALUEMESSAGE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_initialuemessage(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_INITIALUEMESSAGE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UplinkNASTransport STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_NAS_PDU_STRUCT NAS_PDU;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT EUTRAN_CGI;
LIBLTE_S1AP_TAI_STRUCT TAI;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT GW_TransportLayerAddress;
bool GW_TransportLayerAddress_present;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT SIPTO_L_GW_TransportLayerAddress;
bool SIPTO_L_GW_TransportLayerAddress_present;
LIBLTE_S1AP_LHN_ID_STRUCT LHN_ID;
bool LHN_ID_present;
} LIBLTE_S1AP_MESSAGE_UPLINKNASTRANSPORT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_uplinknastransport(LIBLTE_S1AP_MESSAGE_UPLINKNASTRANSPORT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_uplinknastransport(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_UPLINKNASTRANSPORT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message NASNonDeliveryIndication STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_NAS_PDU_STRUCT NAS_PDU;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
} LIBLTE_S1AP_MESSAGE_NASNONDELIVERYINDICATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_nasnondeliveryindication(LIBLTE_S1AP_MESSAGE_NASNONDELIVERYINDICATION_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_nasnondeliveryindication(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_NASNONDELIVERYINDICATION_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UE_associatedLogicalS1_ConnectionItem STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEM_STRUCT UE_associatedLogicalS1_ConnectionItem;
} LIBLTE_S1AP_MESSAGE_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ue_associatedlogicals1_connectionitem(
LIBLTE_S1AP_MESSAGE_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ue_associatedlogicals1_connectionitem(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEM_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UE_associatedLogicalS1_ConnectionItemRes STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEM_STRUCT UE_associatedLogicalS1_ConnectionItem;
} LIBLTE_S1AP_MESSAGE_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEMRES_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_ue_associatedlogicals1_connectionitemres(
LIBLTE_S1AP_MESSAGE_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEMRES_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_ue_associatedlogicals1_connectionitemres(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_UE_ASSOCIATEDLOGICALS1_CONNECTIONITEMRES_STRUCT* ie);
/*******************************************************************************
/* Protocol Message ErrorIndication STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
bool MME_UE_S1AP_ID_present;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
bool eNB_UE_S1AP_ID_present;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
bool Cause_present;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_ERRORINDICATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_errorindication(LIBLTE_S1AP_MESSAGE_ERRORINDICATION_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_errorindication(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_ERRORINDICATION_STRUCT* ie);
/*******************************************************************************
/* Protocol Message S1SetupRequest STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_GLOBAL_ENB_ID_STRUCT Global_ENB_ID;
LIBLTE_S1AP_ENBNAME_STRUCT eNBname;
bool eNBname_present;
LIBLTE_S1AP_SUPPORTEDTAS_STRUCT SupportedTAs;
LIBLTE_S1AP_PAGINGDRX_ENUM_EXT DefaultPagingDRX;
LIBLTE_S1AP_CSG_IDLIST_STRUCT CSG_IdList;
bool CSG_IdList_present;
} LIBLTE_S1AP_MESSAGE_S1SETUPREQUEST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_s1setuprequest(LIBLTE_S1AP_MESSAGE_S1SETUPREQUEST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_s1setuprequest(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_S1SETUPREQUEST_STRUCT* ie);
/*******************************************************************************
/* Protocol Message S1SetupResponse STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MMENAME_STRUCT MMEname;
bool MMEname_present;
LIBLTE_S1AP_SERVEDGUMMEIS_STRUCT ServedGUMMEIs;
LIBLTE_S1AP_RELATIVEMMECAPACITY_STRUCT RelativeMMECapacity;
LIBLTE_S1AP_MMERELAYSUPPORTINDICATOR_ENUM_EXT MMERelaySupportIndicator;
bool MMERelaySupportIndicator_present;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_S1SETUPRESPONSE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_s1setupresponse(LIBLTE_S1AP_MESSAGE_S1SETUPRESPONSE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_s1setupresponse(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_S1SETUPRESPONSE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message S1SetupFailure STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
LIBLTE_S1AP_TIMETOWAIT_ENUM_EXT TimeToWait;
bool TimeToWait_present;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_S1SETUPFAILURE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_s1setupfailure(LIBLTE_S1AP_MESSAGE_S1SETUPFAILURE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_s1setupfailure(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_S1SETUPFAILURE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message ENBConfigurationUpdate STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_ENBNAME_STRUCT eNBname;
bool eNBname_present;
LIBLTE_S1AP_SUPPORTEDTAS_STRUCT SupportedTAs;
bool SupportedTAs_present;
LIBLTE_S1AP_CSG_IDLIST_STRUCT CSG_IdList;
bool CSG_IdList_present;
LIBLTE_S1AP_PAGINGDRX_ENUM_EXT DefaultPagingDRX;
bool DefaultPagingDRX_present;
} LIBLTE_S1AP_MESSAGE_ENBCONFIGURATIONUPDATE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_enbconfigurationupdate(LIBLTE_S1AP_MESSAGE_ENBCONFIGURATIONUPDATE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_enbconfigurationupdate(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_ENBCONFIGURATIONUPDATE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message ENBConfigurationUpdateAcknowledge STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_ENBCONFIGURATIONUPDATEACKNOWLEDGE_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_enbconfigurationupdateacknowledge(LIBLTE_S1AP_MESSAGE_ENBCONFIGURATIONUPDATEACKNOWLEDGE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_enbconfigurationupdateacknowledge(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_ENBCONFIGURATIONUPDATEACKNOWLEDGE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message ENBConfigurationUpdateFailure STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
LIBLTE_S1AP_TIMETOWAIT_ENUM_EXT TimeToWait;
bool TimeToWait_present;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_ENBCONFIGURATIONUPDATEFAILURE_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_enbconfigurationupdatefailure(LIBLTE_S1AP_MESSAGE_ENBCONFIGURATIONUPDATEFAILURE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_enbconfigurationupdatefailure(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_ENBCONFIGURATIONUPDATEFAILURE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message MMEConfigurationUpdate STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MMENAME_STRUCT MMEname;
bool MMEname_present;
LIBLTE_S1AP_SERVEDGUMMEIS_STRUCT ServedGUMMEIs;
bool ServedGUMMEIs_present;
LIBLTE_S1AP_RELATIVEMMECAPACITY_STRUCT RelativeMMECapacity;
bool RelativeMMECapacity_present;
} LIBLTE_S1AP_MESSAGE_MMECONFIGURATIONUPDATE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_mmeconfigurationupdate(LIBLTE_S1AP_MESSAGE_MMECONFIGURATIONUPDATE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_mmeconfigurationupdate(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_MMECONFIGURATIONUPDATE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message MMEConfigurationUpdateAcknowledge STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_MMECONFIGURATIONUPDATEACKNOWLEDGE_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_mmeconfigurationupdateacknowledge(LIBLTE_S1AP_MESSAGE_MMECONFIGURATIONUPDATEACKNOWLEDGE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_mmeconfigurationupdateacknowledge(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_MMECONFIGURATIONUPDATEACKNOWLEDGE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message MMEConfigurationUpdateFailure STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
LIBLTE_S1AP_TIMETOWAIT_ENUM_EXT TimeToWait;
bool TimeToWait_present;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_MMECONFIGURATIONUPDATEFAILURE_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_mmeconfigurationupdatefailure(LIBLTE_S1AP_MESSAGE_MMECONFIGURATIONUPDATEFAILURE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_mmeconfigurationupdatefailure(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_MMECONFIGURATIONUPDATEFAILURE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UplinkS1cdma2000tunneling STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_CDMA2000RATTYPE_ENUM_EXT cdma2000RATType;
LIBLTE_S1AP_CDMA2000SECTORID_STRUCT cdma2000SectorID;
LIBLTE_S1AP_CDMA2000HOREQUIREDINDICATION_ENUM_EXT cdma2000HORequiredIndication;
bool cdma2000HORequiredIndication_present;
LIBLTE_S1AP_CDMA2000ONEXSRVCCINFO_STRUCT cdma2000OneXSRVCCInfo;
bool cdma2000OneXSRVCCInfo_present;
LIBLTE_S1AP_CDMA2000ONEXRAND_STRUCT cdma2000OneXRAND;
bool cdma2000OneXRAND_present;
LIBLTE_S1AP_CDMA2000PDU_STRUCT cdma2000PDU;
LIBLTE_S1AP_EUTRANROUNDTRIPDELAYESTIMATIONINFO_STRUCT EUTRANRoundTripDelayEstimationInfo;
bool EUTRANRoundTripDelayEstimationInfo_present;
} LIBLTE_S1AP_MESSAGE_UPLINKS1CDMA2000TUNNELING_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_uplinks1cdma2000tunneling(LIBLTE_S1AP_MESSAGE_UPLINKS1CDMA2000TUNNELING_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_uplinks1cdma2000tunneling(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_UPLINKS1CDMA2000TUNNELING_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UECapabilityInfoIndication STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_UERADIOCAPABILITY_STRUCT UERadioCapability;
} LIBLTE_S1AP_MESSAGE_UECAPABILITYINFOINDICATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_uecapabilityinfoindication(LIBLTE_S1AP_MESSAGE_UECAPABILITYINFOINDICATION_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_uecapabilityinfoindication(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_UECAPABILITYINFOINDICATION_STRUCT* ie);
/*******************************************************************************
/* Protocol Message ENBStatusTransfer STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_ENB_STATUSTRANSFER_TRANSPARENTCONTAINER_STRUCT eNB_StatusTransfer_TransparentContainer;
} LIBLTE_S1AP_MESSAGE_ENBSTATUSTRANSFER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_enbstatustransfer(LIBLTE_S1AP_MESSAGE_ENBSTATUSTRANSFER_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_enbstatustransfer(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_ENBSTATUSTRANSFER_STRUCT* ie);
/*******************************************************************************
/* Protocol Message MMEStatusTransfer STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_ENB_STATUSTRANSFER_TRANSPARENTCONTAINER_STRUCT eNB_StatusTransfer_TransparentContainer;
} LIBLTE_S1AP_MESSAGE_MMESTATUSTRANSFER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_mmestatustransfer(LIBLTE_S1AP_MESSAGE_MMESTATUSTRANSFER_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_mmestatustransfer(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_MMESTATUSTRANSFER_STRUCT* ie);
/*******************************************************************************
/* Protocol Message TraceStart STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_TRACEACTIVATION_STRUCT TraceActivation;
} LIBLTE_S1AP_MESSAGE_TRACESTART_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tracestart(LIBLTE_S1AP_MESSAGE_TRACESTART_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tracestart(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_TRACESTART_STRUCT* ie);
/*******************************************************************************
/* Protocol Message TraceFailureIndication STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_E_UTRAN_TRACE_ID_STRUCT E_UTRAN_Trace_ID;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
} LIBLTE_S1AP_MESSAGE_TRACEFAILUREINDICATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_tracefailureindication(LIBLTE_S1AP_MESSAGE_TRACEFAILUREINDICATION_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_tracefailureindication(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_TRACEFAILUREINDICATION_STRUCT* ie);
/*******************************************************************************
/* Protocol Message DeactivateTrace STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_E_UTRAN_TRACE_ID_STRUCT E_UTRAN_Trace_ID;
} LIBLTE_S1AP_MESSAGE_DEACTIVATETRACE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_deactivatetrace(LIBLTE_S1AP_MESSAGE_DEACTIVATETRACE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_deactivatetrace(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_DEACTIVATETRACE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message CellTrafficTrace STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_E_UTRAN_TRACE_ID_STRUCT E_UTRAN_Trace_ID;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT EUTRAN_CGI;
LIBLTE_S1AP_TRANSPORTLAYERADDRESS_STRUCT TraceCollectionEntityIPAddress;
LIBLTE_S1AP_PRIVACYINDICATOR_ENUM_EXT PrivacyIndicator;
bool PrivacyIndicator_present;
} LIBLTE_S1AP_MESSAGE_CELLTRAFFICTRACE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_celltraffictrace(LIBLTE_S1AP_MESSAGE_CELLTRAFFICTRACE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_celltraffictrace(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_CELLTRAFFICTRACE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message LocationReportingControl STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_REQUESTTYPE_STRUCT RequestType;
} LIBLTE_S1AP_MESSAGE_LOCATIONREPORTINGCONTROL_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_locationreportingcontrol(LIBLTE_S1AP_MESSAGE_LOCATIONREPORTINGCONTROL_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_locationreportingcontrol(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_LOCATIONREPORTINGCONTROL_STRUCT* ie);
/*******************************************************************************
/* Protocol Message LocationReportingFailureIndication STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
} LIBLTE_S1AP_MESSAGE_LOCATIONREPORTINGFAILUREINDICATION_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_locationreportingfailureindication(LIBLTE_S1AP_MESSAGE_LOCATIONREPORTINGFAILUREINDICATION_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_locationreportingfailureindication(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_LOCATIONREPORTINGFAILUREINDICATION_STRUCT* ie);
/*******************************************************************************
/* Protocol Message LocationReport STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT EUTRAN_CGI;
LIBLTE_S1AP_TAI_STRUCT TAI;
LIBLTE_S1AP_REQUESTTYPE_STRUCT RequestType;
} LIBLTE_S1AP_MESSAGE_LOCATIONREPORT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_locationreport(LIBLTE_S1AP_MESSAGE_LOCATIONREPORT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_locationreport(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_LOCATIONREPORT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message OverloadStart STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_OVERLOADRESPONSE_STRUCT OverloadResponse;
LIBLTE_S1AP_GUMMEILIST_STRUCT GUMMEIList;
bool GUMMEIList_present;
LIBLTE_S1AP_TRAFFICLOADREDUCTIONINDICATION_STRUCT TrafficLoadReductionIndication;
bool TrafficLoadReductionIndication_present;
} LIBLTE_S1AP_MESSAGE_OVERLOADSTART_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_overloadstart(LIBLTE_S1AP_MESSAGE_OVERLOADSTART_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_overloadstart(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_OVERLOADSTART_STRUCT* ie);
/*******************************************************************************
/* Protocol Message OverloadStop STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_GUMMEILIST_STRUCT GUMMEIList;
bool GUMMEIList_present;
} LIBLTE_S1AP_MESSAGE_OVERLOADSTOP_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_overloadstop(LIBLTE_S1AP_MESSAGE_OVERLOADSTOP_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_overloadstop(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_OVERLOADSTOP_STRUCT* ie);
/*******************************************************************************
/* Protocol Message WriteReplaceWarningRequest STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MESSAGEIDENTIFIER_STRUCT MessageIdentifier;
LIBLTE_S1AP_SERIALNUMBER_STRUCT SerialNumber;
LIBLTE_S1AP_WARNINGAREALIST_STRUCT WarningAreaList;
bool WarningAreaList_present;
LIBLTE_S1AP_REPETITIONPERIOD_STRUCT RepetitionPeriod;
LIBLTE_S1AP_EXTENDEDREPETITIONPERIOD_STRUCT ExtendedRepetitionPeriod;
bool ExtendedRepetitionPeriod_present;
LIBLTE_S1AP_NUMBEROFBROADCASTREQUEST_STRUCT NumberofBroadcastRequest;
LIBLTE_S1AP_WARNINGTYPE_STRUCT WarningType;
bool WarningType_present;
LIBLTE_S1AP_WARNINGSECURITYINFO_STRUCT WarningSecurityInfo;
bool WarningSecurityInfo_present;
LIBLTE_S1AP_DATACODINGSCHEME_STRUCT DataCodingScheme;
bool DataCodingScheme_present;
LIBLTE_S1AP_WARNINGMESSAGECONTENTS_STRUCT WarningMessageContents;
bool WarningMessageContents_present;
LIBLTE_S1AP_CONCURRENTWARNINGMESSAGEINDICATOR_ENUM ConcurrentWarningMessageIndicator;
bool ConcurrentWarningMessageIndicator_present;
} LIBLTE_S1AP_MESSAGE_WRITEREPLACEWARNINGREQUEST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_writereplacewarningrequest(LIBLTE_S1AP_MESSAGE_WRITEREPLACEWARNINGREQUEST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_writereplacewarningrequest(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_WRITEREPLACEWARNINGREQUEST_STRUCT* ie);
/*******************************************************************************
/* Protocol Message WriteReplaceWarningResponse STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MESSAGEIDENTIFIER_STRUCT MessageIdentifier;
LIBLTE_S1AP_SERIALNUMBER_STRUCT SerialNumber;
LIBLTE_S1AP_BROADCASTCOMPLETEDAREALIST_STRUCT BroadcastCompletedAreaList;
bool BroadcastCompletedAreaList_present;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_WRITEREPLACEWARNINGRESPONSE_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_writereplacewarningresponse(LIBLTE_S1AP_MESSAGE_WRITEREPLACEWARNINGRESPONSE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_writereplacewarningresponse(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_WRITEREPLACEWARNINGRESPONSE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message MMEDirectInformationTransfer STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_INTER_SYSTEMINFORMATIONTRANSFERTYPE_STRUCT Inter_SystemInformationTransferTypeMDT;
} LIBLTE_S1AP_MESSAGE_MMEDIRECTINFORMATIONTRANSFER_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_mmedirectinformationtransfer(LIBLTE_S1AP_MESSAGE_MMEDIRECTINFORMATIONTRANSFER_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_mmedirectinformationtransfer(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_MMEDIRECTINFORMATIONTRANSFER_STRUCT* ie);
/*******************************************************************************
/* Protocol Message ENBConfigurationTransfer STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_SONCONFIGURATIONTRANSFER_STRUCT SONConfigurationTransferECT;
bool SONConfigurationTransferECT_present;
} LIBLTE_S1AP_MESSAGE_ENBCONFIGURATIONTRANSFER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_enbconfigurationtransfer(LIBLTE_S1AP_MESSAGE_ENBCONFIGURATIONTRANSFER_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_enbconfigurationtransfer(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_ENBCONFIGURATIONTRANSFER_STRUCT* ie);
/*******************************************************************************
/* Protocol Message MMEConfigurationTransfer STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_SONCONFIGURATIONTRANSFER_STRUCT SONConfigurationTransferMCT;
bool SONConfigurationTransferMCT_present;
} LIBLTE_S1AP_MESSAGE_MMECONFIGURATIONTRANSFER_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_mmeconfigurationtransfer(LIBLTE_S1AP_MESSAGE_MMECONFIGURATIONTRANSFER_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_mmeconfigurationtransfer(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_MMECONFIGURATIONTRANSFER_STRUCT* ie);
/*******************************************************************************
/* Protocol Message PrivateMessage STRUCT
********************************************************************************/
typedef struct {
bool ext;
} LIBLTE_S1AP_MESSAGE_PRIVATEMESSAGE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_privatemessage(LIBLTE_S1AP_MESSAGE_PRIVATEMESSAGE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_privatemessage(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_PRIVATEMESSAGE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message KillRequest STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MESSAGEIDENTIFIER_STRUCT MessageIdentifier;
LIBLTE_S1AP_SERIALNUMBER_STRUCT SerialNumber;
LIBLTE_S1AP_WARNINGAREALIST_STRUCT WarningAreaList;
bool WarningAreaList_present;
LIBLTE_S1AP_KILLALLWARNINGMESSAGES_ENUM KillAllWarningMessages;
bool KillAllWarningMessages_present;
} LIBLTE_S1AP_MESSAGE_KILLREQUEST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_killrequest(LIBLTE_S1AP_MESSAGE_KILLREQUEST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_killrequest(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_KILLREQUEST_STRUCT* ie);
/*******************************************************************************
/* Protocol Message KillResponse STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MESSAGEIDENTIFIER_STRUCT MessageIdentifier;
LIBLTE_S1AP_SERIALNUMBER_STRUCT SerialNumber;
LIBLTE_S1AP_BROADCASTCANCELLEDAREALIST_STRUCT BroadcastCancelledAreaList;
bool BroadcastCancelledAreaList_present;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_KILLRESPONSE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_killresponse(LIBLTE_S1AP_MESSAGE_KILLRESPONSE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_killresponse(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_KILLRESPONSE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message PWSRestartIndication STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_ECGILISTFORRESTART_STRUCT ECGIListForRestart;
LIBLTE_S1AP_GLOBAL_ENB_ID_STRUCT Global_ENB_ID;
LIBLTE_S1AP_TAILISTFORRESTART_STRUCT TAIListForRestart;
LIBLTE_S1AP_EMERGENCYAREAIDLISTFORRESTART_STRUCT EmergencyAreaIDListForRestart;
bool EmergencyAreaIDListForRestart_present;
} LIBLTE_S1AP_MESSAGE_PWSRESTARTINDICATION_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_pwsrestartindication(LIBLTE_S1AP_MESSAGE_PWSRESTARTINDICATION_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_pwsrestartindication(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_PWSRESTARTINDICATION_STRUCT* ie);
/*******************************************************************************
/* Protocol Message DownlinkUEAssociatedLPPaTransport STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_ROUTING_ID_STRUCT Routing_ID;
LIBLTE_S1AP_LPPA_PDU_STRUCT LPPa_PDU;
} LIBLTE_S1AP_MESSAGE_DOWNLINKUEASSOCIATEDLPPATRANSPORT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_downlinkueassociatedlppatransport(LIBLTE_S1AP_MESSAGE_DOWNLINKUEASSOCIATEDLPPATRANSPORT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_downlinkueassociatedlppatransport(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_DOWNLINKUEASSOCIATEDLPPATRANSPORT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UplinkUEAssociatedLPPaTransport STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_ROUTING_ID_STRUCT Routing_ID;
LIBLTE_S1AP_LPPA_PDU_STRUCT LPPa_PDU;
} LIBLTE_S1AP_MESSAGE_UPLINKUEASSOCIATEDLPPATRANSPORT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_uplinkueassociatedlppatransport(LIBLTE_S1AP_MESSAGE_UPLINKUEASSOCIATEDLPPATRANSPORT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_uplinkueassociatedlppatransport(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_UPLINKUEASSOCIATEDLPPATRANSPORT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message DownlinkNonUEAssociatedLPPaTransport STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_ROUTING_ID_STRUCT Routing_ID;
LIBLTE_S1AP_LPPA_PDU_STRUCT LPPa_PDU;
} LIBLTE_S1AP_MESSAGE_DOWNLINKNONUEASSOCIATEDLPPATRANSPORT_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_downlinknonueassociatedlppatransport(
LIBLTE_S1AP_MESSAGE_DOWNLINKNONUEASSOCIATEDLPPATRANSPORT_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_downlinknonueassociatedlppatransport(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_DOWNLINKNONUEASSOCIATEDLPPATRANSPORT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message UplinkNonUEAssociatedLPPaTransport STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_ROUTING_ID_STRUCT Routing_ID;
LIBLTE_S1AP_LPPA_PDU_STRUCT LPPa_PDU;
} LIBLTE_S1AP_MESSAGE_UPLINKNONUEASSOCIATEDLPPATRANSPORT_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_uplinknonueassociatedlppatransport(LIBLTE_S1AP_MESSAGE_UPLINKNONUEASSOCIATEDLPPATRANSPORT_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_uplinknonueassociatedlppatransport(
uint8_t** ptr, LIBLTE_S1AP_MESSAGE_UPLINKNONUEASSOCIATEDLPPATRANSPORT_STRUCT* ie);
/*******************************************************************************
/* Protocol Message ENBDirectInformationTransfer STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_INTER_SYSTEMINFORMATIONTRANSFERTYPE_STRUCT Inter_SystemInformationTransferTypeEDT;
} LIBLTE_S1AP_MESSAGE_ENBDIRECTINFORMATIONTRANSFER_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_enbdirectinformationtransfer(LIBLTE_S1AP_MESSAGE_ENBDIRECTINFORMATIONTRANSFER_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_enbdirectinformationtransfer(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_ENBDIRECTINFORMATIONTRANSFER_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABDataForwardingItem STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RABDATAFORWARDINGITEM_STRUCT E_RABDataForwardingItem;
} LIBLTE_S1AP_MESSAGE_E_RABDATAFORWARDINGITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabdataforwardingitem(LIBLTE_S1AP_MESSAGE_E_RABDATAFORWARDINGITEM_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabdataforwardingitem(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABDATAFORWARDINGITEM_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABToBeSetupItemHOReq STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RABTOBESETUPITEMHOREQ_STRUCT E_RABToBeSetupItemHOReq;
} LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMHOREQ_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabtobesetupitemhoreq(LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMHOREQ_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabtobesetupitemhoreq(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMHOREQ_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABAdmittedItem STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RABADMITTEDITEM_STRUCT E_RABAdmittedItem;
} LIBLTE_S1AP_MESSAGE_E_RABADMITTEDITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabadmitteditem(LIBLTE_S1AP_MESSAGE_E_RABADMITTEDITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabadmitteditem(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_E_RABADMITTEDITEM_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABFailedtoSetupItemHOReqAck STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RABFAILEDTOSETUPITEMHOREQACK_STRUCT E_RABFailedtoSetupItemHOReqAck;
} LIBLTE_S1AP_MESSAGE_E_RABFAILEDTOSETUPITEMHOREQACK_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabfailedtosetupitemhoreqack(LIBLTE_S1AP_MESSAGE_E_RABFAILEDTOSETUPITEMHOREQACK_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabfailedtosetupitemhoreqack(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABFAILEDTOSETUPITEMHOREQACK_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABToBeSwitchedDLItem STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RABTOBESWITCHEDDLITEM_STRUCT E_RABToBeSwitchedDLItem;
} LIBLTE_S1AP_MESSAGE_E_RABTOBESWITCHEDDLITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabtobeswitcheddlitem(LIBLTE_S1AP_MESSAGE_E_RABTOBESWITCHEDDLITEM_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabtobeswitcheddlitem(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABTOBESWITCHEDDLITEM_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABToBeSwitchedULItem STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RABTOBESWITCHEDULITEM_STRUCT E_RABToBeSwitchedULItem;
} LIBLTE_S1AP_MESSAGE_E_RABTOBESWITCHEDULITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabtobeswitchedulitem(LIBLTE_S1AP_MESSAGE_E_RABTOBESWITCHEDULITEM_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabtobeswitchedulitem(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABTOBESWITCHEDULITEM_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABToBeSetupItemBearerSUReq STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RABTOBESETUPITEMBEARERSUREQ_STRUCT E_RABToBeSetupItemBearerSUReq;
} LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMBEARERSUREQ_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabtobesetupitembearersureq(LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMBEARERSUREQ_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabtobesetupitembearersureq(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMBEARERSUREQ_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABSetupItemBearerSURes STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RABSETUPITEMBEARERSURES_STRUCT E_RABSetupItemBearerSURes;
} LIBLTE_S1AP_MESSAGE_E_RABSETUPITEMBEARERSURES_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabsetupitembearersures(LIBLTE_S1AP_MESSAGE_E_RABSETUPITEMBEARERSURES_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabsetupitembearersures(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_E_RABSETUPITEMBEARERSURES_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABToBeModifiedItemBearerModReq STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RABTOBEMODIFIEDITEMBEARERMODREQ_STRUCT E_RABToBeModifiedItemBearerModReq;
} LIBLTE_S1AP_MESSAGE_E_RABTOBEMODIFIEDITEMBEARERMODREQ_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabtobemodifieditembearermodreq(LIBLTE_S1AP_MESSAGE_E_RABTOBEMODIFIEDITEMBEARERMODREQ_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabtobemodifieditembearermodreq(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABTOBEMODIFIEDITEMBEARERMODREQ_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABModifyItemBearerModRes STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RABMODIFYITEMBEARERMODRES_STRUCT E_RABModifyItemBearerModRes;
} LIBLTE_S1AP_MESSAGE_E_RABMODIFYITEMBEARERMODRES_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabmodifyitembearermodres(LIBLTE_S1AP_MESSAGE_E_RABMODIFYITEMBEARERMODRES_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabmodifyitembearermodres(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABMODIFYITEMBEARERMODRES_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABReleaseItemBearerRelComp STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RABRELEASEITEMBEARERRELCOMP_STRUCT E_RABReleaseItemBearerRelComp;
} LIBLTE_S1AP_MESSAGE_E_RABRELEASEITEMBEARERRELCOMP_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabreleaseitembearerrelcomp(LIBLTE_S1AP_MESSAGE_E_RABRELEASEITEMBEARERRELCOMP_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabreleaseitembearerrelcomp(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABRELEASEITEMBEARERRELCOMP_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABToBeSetupItemCtxtSUReq STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RABTOBESETUPITEMCTXTSUREQ_STRUCT E_RABToBeSetupItemCtxtSUReq;
} LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMCTXTSUREQ_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_e_rabtobesetupitemctxtsureq(LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMCTXTSUREQ_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_e_rabtobesetupitemctxtsureq(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABTOBESETUPITEMCTXTSUREQ_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABSetupItemCtxtSURes STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_E_RABSETUPITEMCTXTSURES_STRUCT E_RABSetupItemCtxtSURes;
} LIBLTE_S1AP_MESSAGE_E_RABSETUPITEMCTXTSURES_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabsetupitemctxtsures(LIBLTE_S1AP_MESSAGE_E_RABSETUPITEMCTXTSURES_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabsetupitemctxtsures(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABSETUPITEMCTXTSURES_STRUCT* ie);
/*******************************************************************************
/* Protocol Message TAIItem STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_TAIITEM_STRUCT TAIItem;
} LIBLTE_S1AP_MESSAGE_TAIITEM_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_taiitem(LIBLTE_S1AP_MESSAGE_TAIITEM_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_taiitem(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_TAIITEM_STRUCT* ie);
/*******************************************************************************
/* Protocol Message ResetAcknowledge STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_UE_ASSOCIATEDLOGICALS1_CONNECTIONLISTRESACK_STRUCT UE_associatedLogicalS1_ConnectionListResAck;
bool UE_associatedLogicalS1_ConnectionListResAck_present;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_RESETACKNOWLEDGE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_resetacknowledge(LIBLTE_S1AP_MESSAGE_RESETACKNOWLEDGE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_resetacknowledge(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_RESETACKNOWLEDGE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message Reset STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
LIBLTE_S1AP_RESETTYPE_STRUCT ResetType;
} LIBLTE_S1AP_MESSAGE_RESET_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_reset(LIBLTE_S1AP_MESSAGE_RESET_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_reset(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_RESET_STRUCT* ie);
/*******************************************************************************
/* Protocol Message DownlinkS1cdma2000tunneling STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_E_RABSUBJECTTODATAFORWARDINGLIST_STRUCT E_RABSubjecttoDataForwardingList;
bool E_RABSubjecttoDataForwardingList_present;
LIBLTE_S1AP_CDMA2000HOSTATUS_ENUM_EXT cdma2000HOStatus;
bool cdma2000HOStatus_present;
LIBLTE_S1AP_CDMA2000RATTYPE_ENUM_EXT cdma2000RATType;
LIBLTE_S1AP_CDMA2000PDU_STRUCT cdma2000PDU;
} LIBLTE_S1AP_MESSAGE_DOWNLINKS1CDMA2000TUNNELING_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_downlinks1cdma2000tunneling(LIBLTE_S1AP_MESSAGE_DOWNLINKS1CDMA2000TUNNELING_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_downlinks1cdma2000tunneling(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_DOWNLINKS1CDMA2000TUNNELING_STRUCT* ie);
/*******************************************************************************
/* Protocol Message HandoverCommand STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_HANDOVERTYPE_ENUM_EXT HandoverType;
LIBLTE_S1AP_NASSECURITYPARAMETERSFROME_UTRAN_STRUCT NASSecurityParametersfromE_UTRAN;
bool NASSecurityParametersfromE_UTRAN_present;
LIBLTE_S1AP_E_RABSUBJECTTODATAFORWARDINGLIST_STRUCT E_RABSubjecttoDataForwardingList;
bool E_RABSubjecttoDataForwardingList_present;
LIBLTE_S1AP_E_RABLIST_STRUCT E_RABtoReleaseListHOCmd;
bool E_RABtoReleaseListHOCmd_present;
LIBLTE_S1AP_TARGET_TOSOURCE_TRANSPARENTCONTAINER_STRUCT Target_ToSource_TransparentContainer;
LIBLTE_S1AP_TARGET_TOSOURCE_TRANSPARENTCONTAINER_STRUCT Target_ToSource_TransparentContainer_Secondary;
bool Target_ToSource_TransparentContainer_Secondary_present;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_HANDOVERCOMMAND_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_handovercommand(LIBLTE_S1AP_MESSAGE_HANDOVERCOMMAND_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_handovercommand(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_HANDOVERCOMMAND_STRUCT* ie);
/*******************************************************************************
/* Protocol Message HandoverRequest STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_HANDOVERTYPE_ENUM_EXT HandoverType;
LIBLTE_S1AP_CAUSE_STRUCT Cause;
LIBLTE_S1AP_UEAGGREGATEMAXIMUMBITRATE_STRUCT uEaggregateMaximumBitrate;
LIBLTE_S1AP_E_RABTOBESETUPLISTHOREQ_STRUCT E_RABToBeSetupListHOReq;
LIBLTE_S1AP_SOURCE_TOTARGET_TRANSPARENTCONTAINER_STRUCT Source_ToTarget_TransparentContainer;
LIBLTE_S1AP_UESECURITYCAPABILITIES_STRUCT UESecurityCapabilities;
LIBLTE_S1AP_HANDOVERRESTRICTIONLIST_STRUCT HandoverRestrictionList;
bool HandoverRestrictionList_present;
LIBLTE_S1AP_TRACEACTIVATION_STRUCT TraceActivation;
bool TraceActivation_present;
LIBLTE_S1AP_REQUESTTYPE_STRUCT RequestType;
bool RequestType_present;
LIBLTE_S1AP_SRVCCOPERATIONPOSSIBLE_ENUM_EXT SRVCCOperationPossible;
bool SRVCCOperationPossible_present;
LIBLTE_S1AP_SECURITYCONTEXT_STRUCT SecurityContext;
LIBLTE_S1AP_NASSECURITYPARAMETERSTOE_UTRAN_STRUCT NASSecurityParameterstoE_UTRAN;
bool NASSecurityParameterstoE_UTRAN_present;
LIBLTE_S1AP_CSG_ID_STRUCT CSG_Id;
bool CSG_Id_present;
LIBLTE_S1AP_CSGMEMBERSHIPSTATUS_ENUM CSGMembershipStatus;
bool CSGMembershipStatus_present;
LIBLTE_S1AP_GUMMEI_STRUCT GUMMEI_ID;
bool GUMMEI_ID_present;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID_2;
bool MME_UE_S1AP_ID_2_present;
LIBLTE_S1AP_MANAGEMENTBASEDMDTALLOWED_ENUM_EXT ManagementBasedMDTAllowed;
bool ManagementBasedMDTAllowed_present;
LIBLTE_S1AP_MDTPLMNLIST_STRUCT ManagementBasedMDTPLMNList;
bool ManagementBasedMDTPLMNList_present;
} LIBLTE_S1AP_MESSAGE_HANDOVERREQUEST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_handoverrequest(LIBLTE_S1AP_MESSAGE_HANDOVERREQUEST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_handoverrequest(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_HANDOVERREQUEST_STRUCT* ie);
/*******************************************************************************
/* Protocol Message PathSwitchRequest STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_E_RABTOBESWITCHEDDLLIST_STRUCT E_RABToBeSwitchedDLList;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT SourceMME_UE_S1AP_ID;
LIBLTE_S1AP_EUTRAN_CGI_STRUCT EUTRAN_CGI;
LIBLTE_S1AP_TAI_STRUCT TAI;
LIBLTE_S1AP_UESECURITYCAPABILITIES_STRUCT UESecurityCapabilities;
LIBLTE_S1AP_CSG_ID_STRUCT CSG_Id;
bool CSG_Id_present;
LIBLTE_S1AP_CELLACCESSMODE_ENUM_EXT CellAccessMode;
bool CellAccessMode_present;
LIBLTE_S1AP_GUMMEI_STRUCT SourceMME_GUMMEI;
bool SourceMME_GUMMEI_present;
LIBLTE_S1AP_CSGMEMBERSHIPSTATUS_ENUM CSGMembershipStatus;
bool CSGMembershipStatus_present;
LIBLTE_S1AP_TUNNELINFORMATION_STRUCT Tunnel_Information_for_BBF;
bool Tunnel_Information_for_BBF_present;
LIBLTE_S1AP_LHN_ID_STRUCT LHN_ID;
bool LHN_ID_present;
} LIBLTE_S1AP_MESSAGE_PATHSWITCHREQUEST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_pathswitchrequest(LIBLTE_S1AP_MESSAGE_PATHSWITCHREQUEST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_pathswitchrequest(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_PATHSWITCHREQUEST_STRUCT* ie);
/*******************************************************************************
/* Protocol Message PathSwitchRequestAcknowledge STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_UEAGGREGATEMAXIMUMBITRATE_STRUCT uEaggregateMaximumBitrate;
bool uEaggregateMaximumBitrate_present;
LIBLTE_S1AP_E_RABTOBESWITCHEDULLIST_STRUCT E_RABToBeSwitchedULList;
bool E_RABToBeSwitchedULList_present;
LIBLTE_S1AP_E_RABLIST_STRUCT E_RABToBeReleasedList;
bool E_RABToBeReleasedList_present;
LIBLTE_S1AP_SECURITYCONTEXT_STRUCT SecurityContext;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID_2;
bool MME_UE_S1AP_ID_2_present;
LIBLTE_S1AP_CSGMEMBERSHIPSTATUS_ENUM CSGMembershipStatus;
bool CSGMembershipStatus_present;
} LIBLTE_S1AP_MESSAGE_PATHSWITCHREQUESTACKNOWLEDGE_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_pathswitchrequestacknowledge(LIBLTE_S1AP_MESSAGE_PATHSWITCHREQUESTACKNOWLEDGE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_pathswitchrequestacknowledge(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_PATHSWITCHREQUESTACKNOWLEDGE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABSetupRequest STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_UEAGGREGATEMAXIMUMBITRATE_STRUCT uEaggregateMaximumBitrate;
bool uEaggregateMaximumBitrate_present;
LIBLTE_S1AP_E_RABTOBESETUPLISTBEARERSUREQ_STRUCT E_RABToBeSetupListBearerSUReq;
} LIBLTE_S1AP_MESSAGE_E_RABSETUPREQUEST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabsetuprequest(LIBLTE_S1AP_MESSAGE_E_RABSETUPREQUEST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabsetuprequest(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_E_RABSETUPREQUEST_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABSetupResponse STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_E_RABSETUPLISTBEARERSURES_STRUCT E_RABSetupListBearerSURes;
bool E_RABSetupListBearerSURes_present;
LIBLTE_S1AP_E_RABLIST_STRUCT E_RABFailedToSetupListBearerSURes;
bool E_RABFailedToSetupListBearerSURes_present;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_E_RABSETUPRESPONSE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabsetupresponse(LIBLTE_S1AP_MESSAGE_E_RABSETUPRESPONSE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabsetupresponse(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABSETUPRESPONSE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABModifyRequest STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_UEAGGREGATEMAXIMUMBITRATE_STRUCT uEaggregateMaximumBitrate;
bool uEaggregateMaximumBitrate_present;
LIBLTE_S1AP_E_RABTOBEMODIFIEDLISTBEARERMODREQ_STRUCT E_RABToBeModifiedListBearerModReq;
} LIBLTE_S1AP_MESSAGE_E_RABMODIFYREQUEST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabmodifyrequest(LIBLTE_S1AP_MESSAGE_E_RABMODIFYREQUEST_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabmodifyrequest(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABMODIFYREQUEST_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABModifyResponse STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_E_RABMODIFYLISTBEARERMODRES_STRUCT E_RABModifyListBearerModRes;
bool E_RABModifyListBearerModRes_present;
LIBLTE_S1AP_E_RABLIST_STRUCT E_RABFailedToModifyList;
bool E_RABFailedToModifyList_present;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_E_RABMODIFYRESPONSE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabmodifyresponse(LIBLTE_S1AP_MESSAGE_E_RABMODIFYRESPONSE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabmodifyresponse(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABMODIFYRESPONSE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message E_RABReleaseResponse STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_E_RABRELEASELISTBEARERRELCOMP_STRUCT E_RABReleaseListBearerRelComp;
bool E_RABReleaseListBearerRelComp_present;
LIBLTE_S1AP_E_RABLIST_STRUCT E_RABFailedToReleaseList;
bool E_RABFailedToReleaseList_present;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
LIBLTE_S1AP_USERLOCATIONINFORMATION_STRUCT UserLocationInformation;
bool UserLocationInformation_present;
} LIBLTE_S1AP_MESSAGE_E_RABRELEASERESPONSE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_e_rabreleaseresponse(LIBLTE_S1AP_MESSAGE_E_RABRELEASERESPONSE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_e_rabreleaseresponse(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_E_RABRELEASERESPONSE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message InitialContextSetupRequest STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_UEAGGREGATEMAXIMUMBITRATE_STRUCT uEaggregateMaximumBitrate;
LIBLTE_S1AP_E_RABTOBESETUPLISTCTXTSUREQ_STRUCT E_RABToBeSetupListCtxtSUReq;
LIBLTE_S1AP_UESECURITYCAPABILITIES_STRUCT UESecurityCapabilities;
LIBLTE_S1AP_SECURITYKEY_STRUCT SecurityKey;
LIBLTE_S1AP_TRACEACTIVATION_STRUCT TraceActivation;
bool TraceActivation_present;
LIBLTE_S1AP_HANDOVERRESTRICTIONLIST_STRUCT HandoverRestrictionList;
bool HandoverRestrictionList_present;
LIBLTE_S1AP_UERADIOCAPABILITY_STRUCT UERadioCapability;
bool UERadioCapability_present;
LIBLTE_S1AP_SUBSCRIBERPROFILEIDFORRFP_STRUCT SubscriberProfileIDforRFP;
bool SubscriberProfileIDforRFP_present;
LIBLTE_S1AP_CSFALLBACKINDICATOR_ENUM_EXT CSFallbackIndicator;
bool CSFallbackIndicator_present;
LIBLTE_S1AP_SRVCCOPERATIONPOSSIBLE_ENUM_EXT SRVCCOperationPossible;
bool SRVCCOperationPossible_present;
LIBLTE_S1AP_CSGMEMBERSHIPSTATUS_ENUM CSGMembershipStatus;
bool CSGMembershipStatus_present;
LIBLTE_S1AP_LAI_STRUCT RegisteredLAI;
bool RegisteredLAI_present;
LIBLTE_S1AP_GUMMEI_STRUCT GUMMEI_ID;
bool GUMMEI_ID_present;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID_2;
bool MME_UE_S1AP_ID_2_present;
LIBLTE_S1AP_MANAGEMENTBASEDMDTALLOWED_ENUM_EXT ManagementBasedMDTAllowed;
bool ManagementBasedMDTAllowed_present;
LIBLTE_S1AP_MDTPLMNLIST_STRUCT ManagementBasedMDTPLMNList;
bool ManagementBasedMDTPLMNList_present;
LIBLTE_S1AP_ADDITIONALCSFALLBACKINDICATOR_ENUM_EXT AdditionalCSFallbackIndicator;
bool AdditionalCSFallbackIndicator_present;
} LIBLTE_S1AP_MESSAGE_INITIALCONTEXTSETUPREQUEST_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_initialcontextsetuprequest(LIBLTE_S1AP_MESSAGE_INITIALCONTEXTSETUPREQUEST_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_initialcontextsetuprequest(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_INITIALCONTEXTSETUPREQUEST_STRUCT* ie);
/*******************************************************************************
/* Protocol Message InitialContextSetupResponse STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_E_RABSETUPLISTCTXTSURES_STRUCT E_RABSetupListCtxtSURes;
LIBLTE_S1AP_E_RABLIST_STRUCT E_RABFailedToSetupListCtxtSURes;
bool E_RABFailedToSetupListCtxtSURes_present;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
} LIBLTE_S1AP_MESSAGE_INITIALCONTEXTSETUPRESPONSE_STRUCT;
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_initialcontextsetupresponse(LIBLTE_S1AP_MESSAGE_INITIALCONTEXTSETUPRESPONSE_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_initialcontextsetupresponse(uint8_t** ptr,
LIBLTE_S1AP_MESSAGE_INITIALCONTEXTSETUPRESPONSE_STRUCT* ie);
/*******************************************************************************
/* Protocol Message Paging STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_UEIDENTITYINDEXVALUE_STRUCT UEIdentityIndexValue;
LIBLTE_S1AP_UEPAGINGID_STRUCT UEPagingID;
LIBLTE_S1AP_PAGINGDRX_ENUM_EXT pagingDRX;
bool pagingDRX_present;
LIBLTE_S1AP_CNDOMAIN_ENUM CNDomain;
LIBLTE_S1AP_TAILIST_STRUCT TAIList;
LIBLTE_S1AP_CSG_IDLIST_STRUCT CSG_IdList;
bool CSG_IdList_present;
LIBLTE_S1AP_PAGINGPRIORITY_ENUM_EXT PagingPriority;
bool PagingPriority_present;
} LIBLTE_S1AP_MESSAGE_PAGING_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_paging(LIBLTE_S1AP_MESSAGE_PAGING_STRUCT* ie, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_paging(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_PAGING_STRUCT* ie);
/*******************************************************************************
/* Protocol Message HandoverRequestAcknowledge STRUCT
********************************************************************************/
typedef struct {
bool ext;
LIBLTE_S1AP_MME_UE_S1AP_ID_STRUCT MME_UE_S1AP_ID;
LIBLTE_S1AP_ENB_UE_S1AP_ID_STRUCT eNB_UE_S1AP_ID;
LIBLTE_S1AP_E_RABADMITTEDLIST_STRUCT E_RABAdmittedList;
LIBLTE_S1AP_E_RABFAILEDTOSETUPLISTHOREQACK_STRUCT E_RABFailedToSetupListHOReqAck;
bool E_RABFailedToSetupListHOReqAck_present;
LIBLTE_S1AP_TARGET_TOSOURCE_TRANSPARENTCONTAINER_STRUCT Target_ToSource_TransparentContainer;
LIBLTE_S1AP_CSG_ID_STRUCT CSG_Id;
bool CSG_Id_present;
LIBLTE_S1AP_CRITICALITYDIAGNOSTICS_STRUCT CriticalityDiagnostics;
bool CriticalityDiagnostics_present;
LIBLTE_S1AP_CELLACCESSMODE_ENUM_EXT CellAccessMode;
bool CellAccessMode_present;
} LIBLTE_S1AP_MESSAGE_HANDOVERREQUESTACKNOWLEDGE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_handoverrequestacknowledge(LIBLTE_S1AP_MESSAGE_HANDOVERREQUESTACKNOWLEDGE_STRUCT* ie,
uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_handoverrequestacknowledge(uint8_t** ptr, LIBLTE_S1AP_MESSAGE_HANDOVERREQUESTACKNOWLEDGE_STRUCT* ie);
/*******************************************************************************
/* Procedure code criticality lookups
********************************************************************************/
static const LIBLTE_S1AP_CRITICALITY_ENUM liblte_s1ap_procedure_criticality[50] = {
LIBLTE_S1AP_CRITICALITY_REJECT, LIBLTE_S1AP_CRITICALITY_REJECT, LIBLTE_S1AP_CRITICALITY_IGNORE,
LIBLTE_S1AP_CRITICALITY_REJECT, LIBLTE_S1AP_CRITICALITY_REJECT, LIBLTE_S1AP_CRITICALITY_REJECT,
LIBLTE_S1AP_CRITICALITY_REJECT, LIBLTE_S1AP_CRITICALITY_REJECT, LIBLTE_S1AP_CRITICALITY_IGNORE,
LIBLTE_S1AP_CRITICALITY_REJECT, LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_IGNORE,
LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_REJECT,
LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_REJECT,
LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_IGNORE,
LIBLTE_S1AP_CRITICALITY_REJECT, LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_REJECT,
LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_IGNORE,
LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_REJECT,
LIBLTE_S1AP_CRITICALITY_REJECT, LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_IGNORE,
LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_REJECT,
LIBLTE_S1AP_CRITICALITY_REJECT, LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_IGNORE,
LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_IGNORE,
LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_REJECT, LIBLTE_S1AP_CRITICALITY_IGNORE,
LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_IGNORE, LIBLTE_S1AP_CRITICALITY_IGNORE,
LIBLTE_S1AP_CRITICALITY_REJECT, LIBLTE_S1AP_CRITICALITY_IGNORE,
};
/*******************************************************************************
/* ProtocolIE-Field
********************************************************************************/
LIBLTE_ERROR_ENUM
liblte_s1ap_pack_protocolie_header(uint32_t len, uint32_t ie_id, LIBLTE_S1AP_CRITICALITY_ENUM crit, uint8_t** ptr);
LIBLTE_ERROR_ENUM
liblte_s1ap_unpack_protocolie_header(uint8_t** ptr, uint32_t* ie_id, LIBLTE_S1AP_CRITICALITY_ENUM* crit, uint32_t* len);
/*******************************************************************************
/* InitiatingMessage CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_LOCATIONREPORTINGCONTROL,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_DOWNLINKS1CDMA2000TUNNELING,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_S1SETUPREQUEST,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_UECAPABILITYINFOINDICATION,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_LOCATIONREPORT,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_UPLINKNONUEASSOCIATEDLPPATRANSPORT,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_UPLINKS1CDMA2000TUNNELING,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_MMECONFIGURATIONTRANSFER,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_TRACESTART,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_HANDOVERCANCEL,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_UERADIOCAPABILITYMATCHREQUEST,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_DOWNLINKNASTRANSPORT,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_INITIALCONTEXTSETUPREQUEST,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_HANDOVERREQUIRED,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_MMEDIRECTINFORMATIONTRANSFER,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_TRACEFAILUREINDICATION,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_MMECONFIGURATIONUPDATE,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_WRITEREPLACEWARNINGREQUEST,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_ENBDIRECTINFORMATIONTRANSFER,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_DOWNLINKUEASSOCIATEDLPPATRANSPORT,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_E_RABRELEASECOMMAND,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_NASNONDELIVERYINDICATION,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_ENBCONFIGURATIONUPDATE,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_UPLINKUEASSOCIATEDLPPATRANSPORT,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_INITIALUEMESSAGE,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_E_RABMODIFYREQUEST,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_UECONTEXTMODIFICATIONREQUEST,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_E_RABSETUPREQUEST,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_RESET,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_OVERLOADSTART,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_E_RABRELEASEINDICATION,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_LOCATIONREPORTINGFAILUREINDICATION,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_DEACTIVATETRACE,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_PATHSWITCHREQUEST,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_HANDOVERREQUEST,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_DOWNLINKNONUEASSOCIATEDLPPATRANSPORT,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_OVERLOADSTOP,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_PAGING,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_HANDOVERNOTIFY,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_PWSRESTARTINDICATION,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_UECONTEXTRELEASEREQUEST,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_UPLINKNASTRANSPORT,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_ENBCONFIGURATIONTRANSFER,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_MMESTATUSTRANSFER,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_CELLTRAFFICTRACE,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_UECONTEXTRELEASECOMMAND,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_KILLREQUEST,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_PRIVATEMESSAGE,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_ENBSTATUSTRANSFER,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_ERRORINDICATION,
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_N_ITEMS,
} LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_ENUM;
static const char liblte_s1ap_initiatingmessage_choice_text[LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_N_ITEMS][50] = {
"LocationReportingControl",
"DownlinkS1cdma2000tunneling",
"S1SetupRequest",
"UECapabilityInfoIndication",
"LocationReport",
"UplinkNonUEAssociatedLPPaTransport",
"UplinkS1cdma2000tunneling",
"MMEConfigurationTransfer",
"TraceStart",
"HandoverCancel",
"UERadioCapabilityMatchRequest",
"DownlinkNASTransport",
"InitialContextSetupRequest",
"HandoverRequired",
"MMEDirectInformationTransfer",
"TraceFailureIndication",
"MMEConfigurationUpdate",
"WriteReplaceWarningRequest",
"ENBDirectInformationTransfer",
"DownlinkUEAssociatedLPPaTransport",
"E-RABReleaseCommand",
"NASNonDeliveryIndication",
"ENBConfigurationUpdate",
"UplinkUEAssociatedLPPaTransport",
"InitialUEMessage",
"E-RABModifyRequest",
"UEContextModificationRequest",
"E-RABSetupRequest",
"Reset",
"OverloadStart",
"E-RABReleaseIndication",
"LocationReportingFailureIndication",
"DeactivateTrace",
"PathSwitchRequest",
"HandoverRequest",
"DownlinkNonUEAssociatedLPPaTransport",
"OverloadStop",
"Paging",
"HandoverNotify",
"PWSRestartIndication",
"UEContextReleaseRequest",
"UplinkNASTransport",
"ENBConfigurationTransfer",
"MMEStatusTransfer",
"CellTrafficTrace",
"UEContextReleaseCommand",
"KillRequest",
"PrivateMessage",
"ENBStatusTransfer",
"ErrorIndication",
};
typedef union {
LIBLTE_S1AP_MESSAGE_LOCATIONREPORTINGCONTROL_STRUCT LocationReportingControl;
LIBLTE_S1AP_MESSAGE_DOWNLINKS1CDMA2000TUNNELING_STRUCT DownlinkS1cdma2000tunneling;
LIBLTE_S1AP_MESSAGE_S1SETUPREQUEST_STRUCT S1SetupRequest;
LIBLTE_S1AP_MESSAGE_UECAPABILITYINFOINDICATION_STRUCT UECapabilityInfoIndication;
LIBLTE_S1AP_MESSAGE_LOCATIONREPORT_STRUCT LocationReport;
LIBLTE_S1AP_MESSAGE_UPLINKNONUEASSOCIATEDLPPATRANSPORT_STRUCT UplinkNonUEAssociatedLPPaTransport;
LIBLTE_S1AP_MESSAGE_UPLINKS1CDMA2000TUNNELING_STRUCT UplinkS1cdma2000tunneling;
LIBLTE_S1AP_MESSAGE_MMECONFIGURATIONTRANSFER_STRUCT MMEConfigurationTransfer;
LIBLTE_S1AP_MESSAGE_TRACESTART_STRUCT TraceStart;
LIBLTE_S1AP_MESSAGE_HANDOVERCANCEL_STRUCT HandoverCancel;
LIBLTE_S1AP_MESSAGE_UERADIOCAPABILITYMATCHREQUEST_STRUCT UERadioCapabilityMatchRequest;
LIBLTE_S1AP_MESSAGE_DOWNLINKNASTRANSPORT_STRUCT DownlinkNASTransport;
LIBLTE_S1AP_MESSAGE_INITIALCONTEXTSETUPREQUEST_STRUCT InitialContextSetupRequest;
LIBLTE_S1AP_MESSAGE_HANDOVERREQUIRED_STRUCT HandoverRequired;
LIBLTE_S1AP_MESSAGE_MMEDIRECTINFORMATIONTRANSFER_STRUCT MMEDirectInformationTransfer;
LIBLTE_S1AP_MESSAGE_TRACEFAILUREINDICATION_STRUCT TraceFailureIndication;
LIBLTE_S1AP_MESSAGE_MMECONFIGURATIONUPDATE_STRUCT MMEConfigurationUpdate;
LIBLTE_S1AP_MESSAGE_WRITEREPLACEWARNINGREQUEST_STRUCT WriteReplaceWarningRequest;
LIBLTE_S1AP_MESSAGE_ENBDIRECTINFORMATIONTRANSFER_STRUCT ENBDirectInformationTransfer;
LIBLTE_S1AP_MESSAGE_DOWNLINKUEASSOCIATEDLPPATRANSPORT_STRUCT DownlinkUEAssociatedLPPaTransport;
LIBLTE_S1AP_MESSAGE_E_RABRELEASECOMMAND_STRUCT E_RABReleaseCommand;
LIBLTE_S1AP_MESSAGE_NASNONDELIVERYINDICATION_STRUCT NASNonDeliveryIndication;
LIBLTE_S1AP_MESSAGE_ENBCONFIGURATIONUPDATE_STRUCT ENBConfigurationUpdate;
LIBLTE_S1AP_MESSAGE_UPLINKUEASSOCIATEDLPPATRANSPORT_STRUCT UplinkUEAssociatedLPPaTransport;
LIBLTE_S1AP_MESSAGE_INITIALUEMESSAGE_STRUCT InitialUEMessage;
LIBLTE_S1AP_MESSAGE_E_RABMODIFYREQUEST_STRUCT E_RABModifyRequest;
LIBLTE_S1AP_MESSAGE_UECONTEXTMODIFICATIONREQUEST_STRUCT UEContextModificationRequest;
LIBLTE_S1AP_MESSAGE_E_RABSETUPREQUEST_STRUCT E_RABSetupRequest;
LIBLTE_S1AP_MESSAGE_RESET_STRUCT Reset;
LIBLTE_S1AP_MESSAGE_OVERLOADSTART_STRUCT OverloadStart;
LIBLTE_S1AP_MESSAGE_E_RABRELEASEINDICATION_STRUCT E_RABReleaseIndication;
LIBLTE_S1AP_MESSAGE_LOCATIONREPORTINGFAILUREINDICATION_STRUCT LocationReportingFailureIndication;
LIBLTE_S1AP_MESSAGE_DEACTIVATETRACE_STRUCT DeactivateTrace;
LIBLTE_S1AP_MESSAGE_PATHSWITCHREQUEST_STRUCT PathSwitchRequest;
LIBLTE_S1AP_MESSAGE_HANDOVERREQUEST_STRUCT HandoverRequest;
LIBLTE_S1AP_MESSAGE_DOWNLINKNONUEASSOCIATEDLPPATRANSPORT_STRUCT DownlinkNonUEAssociatedLPPaTransport;
LIBLTE_S1AP_MESSAGE_OVERLOADSTOP_STRUCT OverloadStop;
LIBLTE_S1AP_MESSAGE_PAGING_STRUCT Paging;
LIBLTE_S1AP_MESSAGE_HANDOVERNOTIFY_STRUCT HandoverNotify;
LIBLTE_S1AP_MESSAGE_PWSRESTARTINDICATION_STRUCT PWSRestartIndication;
LIBLTE_S1AP_MESSAGE_UECONTEXTRELEASEREQUEST_STRUCT UEContextReleaseRequest;
LIBLTE_S1AP_MESSAGE_UPLINKNASTRANSPORT_STRUCT UplinkNASTransport;
LIBLTE_S1AP_MESSAGE_ENBCONFIGURATIONTRANSFER_STRUCT ENBConfigurationTransfer;
LIBLTE_S1AP_MESSAGE_MMESTATUSTRANSFER_STRUCT MMEStatusTransfer;
LIBLTE_S1AP_MESSAGE_CELLTRAFFICTRACE_STRUCT CellTrafficTrace;
LIBLTE_S1AP_MESSAGE_UECONTEXTRELEASECOMMAND_STRUCT UEContextReleaseCommand;
LIBLTE_S1AP_MESSAGE_KILLREQUEST_STRUCT KillRequest;
LIBLTE_S1AP_MESSAGE_PRIVATEMESSAGE_STRUCT PrivateMessage;
LIBLTE_S1AP_MESSAGE_ENBSTATUSTRANSFER_STRUCT ENBStatusTransfer;
LIBLTE_S1AP_MESSAGE_ERRORINDICATION_STRUCT ErrorIndication;
} LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_UNION;
typedef struct {
uint8_t procedureCode;
LIBLTE_S1AP_CRITICALITY_ENUM criticality;
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_UNION choice;
LIBLTE_S1AP_INITIATINGMESSAGE_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_INITIATINGMESSAGE_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_initiatingmessage(LIBLTE_S1AP_INITIATINGMESSAGE_STRUCT* msg, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_initiatingmessage(uint8_t** ptr, LIBLTE_S1AP_INITIATINGMESSAGE_STRUCT* msg);
/*******************************************************************************
/* UnsuccessfulOutcome CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_UNSUCCESSFULOUTCOME_CHOICE_S1SETUPFAILURE,
LIBLTE_S1AP_UNSUCCESSFULOUTCOME_CHOICE_PATHSWITCHREQUESTFAILURE,
LIBLTE_S1AP_UNSUCCESSFULOUTCOME_CHOICE_UECONTEXTMODIFICATIONFAILURE,
LIBLTE_S1AP_UNSUCCESSFULOUTCOME_CHOICE_INITIALCONTEXTSETUPFAILURE,
LIBLTE_S1AP_UNSUCCESSFULOUTCOME_CHOICE_ENBCONFIGURATIONUPDATEFAILURE,
LIBLTE_S1AP_UNSUCCESSFULOUTCOME_CHOICE_HANDOVERPREPARATIONFAILURE,
LIBLTE_S1AP_UNSUCCESSFULOUTCOME_CHOICE_HANDOVERFAILURE,
LIBLTE_S1AP_UNSUCCESSFULOUTCOME_CHOICE_MMECONFIGURATIONUPDATEFAILURE,
LIBLTE_S1AP_UNSUCCESSFULOUTCOME_CHOICE_N_ITEMS,
} LIBLTE_S1AP_UNSUCCESSFULOUTCOME_CHOICE_ENUM;
static const char liblte_s1ap_unsuccessfuloutcome_choice_text[LIBLTE_S1AP_UNSUCCESSFULOUTCOME_CHOICE_N_ITEMS][50] = {
"S1SetupFailure",
"PathSwitchRequestFailure",
"UEContextModificationFailure",
"InitialContextSetupFailure",
"ENBConfigurationUpdateFailure",
"HandoverPreparationFailure",
"HandoverFailure",
"MMEConfigurationUpdateFailure",
};
typedef union {
LIBLTE_S1AP_MESSAGE_S1SETUPFAILURE_STRUCT S1SetupFailure;
LIBLTE_S1AP_MESSAGE_PATHSWITCHREQUESTFAILURE_STRUCT PathSwitchRequestFailure;
LIBLTE_S1AP_MESSAGE_UECONTEXTMODIFICATIONFAILURE_STRUCT UEContextModificationFailure;
LIBLTE_S1AP_MESSAGE_INITIALCONTEXTSETUPFAILURE_STRUCT InitialContextSetupFailure;
LIBLTE_S1AP_MESSAGE_ENBCONFIGURATIONUPDATEFAILURE_STRUCT ENBConfigurationUpdateFailure;
LIBLTE_S1AP_MESSAGE_HANDOVERPREPARATIONFAILURE_STRUCT HandoverPreparationFailure;
LIBLTE_S1AP_MESSAGE_HANDOVERFAILURE_STRUCT HandoverFailure;
LIBLTE_S1AP_MESSAGE_MMECONFIGURATIONUPDATEFAILURE_STRUCT MMEConfigurationUpdateFailure;
} LIBLTE_S1AP_UNSUCCESSFULOUTCOME_CHOICE_UNION;
typedef struct {
uint8_t procedureCode;
LIBLTE_S1AP_CRITICALITY_ENUM criticality;
LIBLTE_S1AP_UNSUCCESSFULOUTCOME_CHOICE_UNION choice;
LIBLTE_S1AP_UNSUCCESSFULOUTCOME_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_UNSUCCESSFULOUTCOME_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_unsuccessfuloutcome(LIBLTE_S1AP_UNSUCCESSFULOUTCOME_STRUCT* msg, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_unsuccessfuloutcome(uint8_t** ptr, LIBLTE_S1AP_UNSUCCESSFULOUTCOME_STRUCT* msg);
/*******************************************************************************
/* SuccessfulOutcome CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_HANDOVERREQUESTACKNOWLEDGE,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_UECONTEXTRELEASECOMPLETE,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_UERADIOCAPABILITYMATCHRESPONSE,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_INITIALCONTEXTSETUPRESPONSE,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_E_RABSETUPRESPONSE,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_PATHSWITCHREQUESTACKNOWLEDGE,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_MMECONFIGURATIONUPDATEACKNOWLEDGE,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_RESETACKNOWLEDGE,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_ENBCONFIGURATIONUPDATEACKNOWLEDGE,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_E_RABMODIFYRESPONSE,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_WRITEREPLACEWARNINGRESPONSE,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_S1SETUPRESPONSE,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_KILLRESPONSE,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_UECONTEXTMODIFICATIONRESPONSE,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_HANDOVERCOMMAND,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_HANDOVERCANCELACKNOWLEDGE,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_E_RABRELEASERESPONSE,
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_N_ITEMS,
} LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_ENUM;
static const char liblte_s1ap_successfuloutcome_choice_text[LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_N_ITEMS][50] = {
"HandoverRequestAcknowledge",
"UEContextReleaseComplete",
"UERadioCapabilityMatchResponse",
"InitialContextSetupResponse",
"E-RABSetupResponse",
"PathSwitchRequestAcknowledge",
"MMEConfigurationUpdateAcknowledge",
"ResetAcknowledge",
"ENBConfigurationUpdateAcknowledge",
"E-RABModifyResponse",
"WriteReplaceWarningResponse",
"S1SetupResponse",
"KillResponse",
"UEContextModificationResponse",
"HandoverCommand",
"HandoverCancelAcknowledge",
"E-RABReleaseResponse",
};
typedef union {
LIBLTE_S1AP_MESSAGE_HANDOVERREQUESTACKNOWLEDGE_STRUCT HandoverRequestAcknowledge;
LIBLTE_S1AP_MESSAGE_UECONTEXTRELEASECOMPLETE_STRUCT UEContextReleaseComplete;
LIBLTE_S1AP_MESSAGE_UERADIOCAPABILITYMATCHRESPONSE_STRUCT UERadioCapabilityMatchResponse;
LIBLTE_S1AP_MESSAGE_INITIALCONTEXTSETUPRESPONSE_STRUCT InitialContextSetupResponse;
LIBLTE_S1AP_MESSAGE_E_RABSETUPRESPONSE_STRUCT E_RABSetupResponse;
LIBLTE_S1AP_MESSAGE_PATHSWITCHREQUESTACKNOWLEDGE_STRUCT PathSwitchRequestAcknowledge;
LIBLTE_S1AP_MESSAGE_MMECONFIGURATIONUPDATEACKNOWLEDGE_STRUCT MMEConfigurationUpdateAcknowledge;
LIBLTE_S1AP_MESSAGE_RESETACKNOWLEDGE_STRUCT ResetAcknowledge;
LIBLTE_S1AP_MESSAGE_ENBCONFIGURATIONUPDATEACKNOWLEDGE_STRUCT ENBConfigurationUpdateAcknowledge;
LIBLTE_S1AP_MESSAGE_E_RABMODIFYRESPONSE_STRUCT E_RABModifyResponse;
LIBLTE_S1AP_MESSAGE_WRITEREPLACEWARNINGRESPONSE_STRUCT WriteReplaceWarningResponse;
LIBLTE_S1AP_MESSAGE_S1SETUPRESPONSE_STRUCT S1SetupResponse;
LIBLTE_S1AP_MESSAGE_KILLRESPONSE_STRUCT KillResponse;
LIBLTE_S1AP_MESSAGE_UECONTEXTMODIFICATIONRESPONSE_STRUCT UEContextModificationResponse;
LIBLTE_S1AP_MESSAGE_HANDOVERCOMMAND_STRUCT HandoverCommand;
LIBLTE_S1AP_MESSAGE_HANDOVERCANCELACKNOWLEDGE_STRUCT HandoverCancelAcknowledge;
LIBLTE_S1AP_MESSAGE_E_RABRELEASERESPONSE_STRUCT E_RABReleaseResponse;
} LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_UNION;
typedef struct {
uint8_t procedureCode;
LIBLTE_S1AP_CRITICALITY_ENUM criticality;
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_UNION choice;
LIBLTE_S1AP_SUCCESSFULOUTCOME_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_SUCCESSFULOUTCOME_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_successfuloutcome(LIBLTE_S1AP_SUCCESSFULOUTCOME_STRUCT* msg, uint8_t** ptr);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_successfuloutcome(uint8_t** ptr, LIBLTE_S1AP_SUCCESSFULOUTCOME_STRUCT* msg);
/*******************************************************************************
/* S1AP_PDU CHOICE
********************************************************************************/
typedef enum {
LIBLTE_S1AP_S1AP_PDU_CHOICE_INITIATINGMESSAGE,
LIBLTE_S1AP_S1AP_PDU_CHOICE_SUCCESSFULOUTCOME,
LIBLTE_S1AP_S1AP_PDU_CHOICE_UNSUCCESSFULOUTCOME,
LIBLTE_S1AP_S1AP_PDU_CHOICE_N_ITEMS,
} LIBLTE_S1AP_S1AP_PDU_CHOICE_ENUM;
static const char liblte_s1ap_s1ap_pdu_choice_text[LIBLTE_S1AP_S1AP_PDU_CHOICE_N_ITEMS][50] = {
"initiatingMessage",
"successfulOutcome",
"unsuccessfulOutcome",
};
typedef union {
LIBLTE_S1AP_INITIATINGMESSAGE_STRUCT initiatingMessage;
LIBLTE_S1AP_SUCCESSFULOUTCOME_STRUCT successfulOutcome;
LIBLTE_S1AP_UNSUCCESSFULOUTCOME_STRUCT unsuccessfulOutcome;
} LIBLTE_S1AP_S1AP_PDU_CHOICE_UNION;
typedef struct {
bool ext;
LIBLTE_S1AP_S1AP_PDU_CHOICE_UNION choice;
LIBLTE_S1AP_S1AP_PDU_CHOICE_ENUM choice_type;
} LIBLTE_S1AP_S1AP_PDU_STRUCT;
LIBLTE_ERROR_ENUM liblte_s1ap_pack_s1ap_pdu(LIBLTE_S1AP_S1AP_PDU_STRUCT* s1ap_pdu, LIBLTE_BYTE_MSG_STRUCT* msg);
LIBLTE_ERROR_ENUM liblte_s1ap_unpack_s1ap_pdu(LIBLTE_BYTE_MSG_STRUCT* msg, LIBLTE_S1AP_S1AP_PDU_STRUCT* s1ap_pdu);
#endif // SRSLTE_LIBLTE_S1AP_H