forked from acouzens/open5gs
intermediate
This commit is contained in:
parent
d60ccdbb2d
commit
5e1b768b92
|
@ -9,7 +9,7 @@ libasn_la_SOURCES = \
|
|||
|
||||
nodist_libasn_la_SOURCES = \
|
||||
s1ap_encoder.c s1ap_decoder.c \
|
||||
s1ap_ies_encoder.c s1ap_ies_decoder.c s1ap_ies_xer_print.c
|
||||
s1ap_ies_encoder.c s1ap_ies_decoder.c s1ap_ies_free.c s1ap_ies_xer_print.c
|
||||
|
||||
libasn_la_DEPENDENCIES = \
|
||||
$(top_srcdir)/lib/asn/src/asn1c/libasn1c.la
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
/*******************************************************************************
|
||||
* This file had been created by asn1tostruct.py script v1.0.2
|
||||
* Please do not modify this file but regenerate it via script.
|
||||
* Created on: 2017-02-09 17:41:53.013825 by acetcom
|
||||
* Created on: 2017-02-09 20:10:36.264314 by acetcom
|
||||
* from ['S1AP-PDU.asn']
|
||||
******************************************************************************/
|
||||
#define TRACE_MODULE ies_decoder
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -30,7 +30,7 @@
|
|||
/*******************************************************************************
|
||||
* This file had been created by asn1tostruct.py script v1.0.2
|
||||
* Please do not modify this file but regenerate it via script.
|
||||
* Created on: 2017-02-09 17:41:53.036672 by acetcom
|
||||
* Created on: 2017-02-09 20:10:36.295032 by acetcom
|
||||
* from ['S1AP-PDU.asn']
|
||||
******************************************************************************/
|
||||
#include "core_debug.h"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -30,7 +30,7 @@
|
|||
/*******************************************************************************
|
||||
* This file had been created by asn1tostruct.py script v1.0.2
|
||||
* Please do not modify this file but regenerate it via script.
|
||||
* Created on: 2017-02-09 17:41:53.053901 by acetcom
|
||||
* Created on: 2017-02-09 20:10:36.321592 by acetcom
|
||||
* from ['S1AP-PDU.asn']
|
||||
******************************************************************************/
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -299,6 +299,12 @@ for key in iesDefs:
|
|||
f.write(" %s_t *%s,\n" % (asn1cStruct, firstlower))
|
||||
f.write(" %s_t *%s);\n\n" % (re.sub('-', '_', key), lowerFirstCamelWord(re.sub('-', '_', key))))
|
||||
|
||||
f.write("/** \\brief Free function for %s ies.\n" % (key))
|
||||
f.write(" * \\param %s Pointer to the IES structure.\n" % (lowerFirstCamelWord(re.sub('-', '_', key))))
|
||||
f.write(" **/\n")
|
||||
f.write("void %s_free_%s(\n" % (fileprefix, re.sub('-', '_', structName.lower())))
|
||||
f.write(" %s_t *%s);\n\n" % (re.sub('-', '_', key), lowerFirstCamelWord(re.sub('-', '_', key))))
|
||||
|
||||
for key in iesDefs:
|
||||
if key not in ieofielist.values():
|
||||
continue
|
||||
|
@ -319,6 +325,11 @@ for key in iesDefs:
|
|||
f.write("int %s_decode_%s(\n" % (fileprefix, firstlower.lower()))
|
||||
f.write(" %s_IEs_t *%sIEs,\n" % (asn1cStruct, firstlower))
|
||||
f.write(" %s_t *%s);\n\n" % (asn1cStruct, lowerFirstCamelWord(asn1cStruct)))
|
||||
f.write("/** \\brief Free function for %s ies.\n" % (key))
|
||||
f.write(" * \\param %s Pointer to the IES structure.\n" % (lowerFirstCamelWord(re.sub('-', '_', key))))
|
||||
f.write(" **/\n")
|
||||
f.write("void %s_free_%s(\n" % (fileprefix, firstlower.lower()))
|
||||
f.write(" %s_IEs_t *%sIEs);\n\n" % (asn1cStruct, firstlower))
|
||||
|
||||
for key in iesDefs:
|
||||
asn1cStruct = re.sub('-', '_', re.sub('IEs', '', re.sub('-IEs', '', key)))
|
||||
|
@ -641,6 +652,58 @@ f.write("""S1ap_IE_t *s1ap_new_ie(S1ap_ProtocolIE_ID_t id, S1ap_Criticality_t cr
|
|||
|
||||
""")
|
||||
|
||||
#Generate Free functions
|
||||
f = open(outdir + fileprefix + '_ies_free.c', 'w')
|
||||
outputHeaderToFile(f, filename)
|
||||
f.write("#define TRACE_MODULE ies_free\n#include \"core_debug.h\"\n#include \"%s_ies_defs.h\"\n\n" % (fileprefix))
|
||||
for key in iesDefs:
|
||||
if key in ieofielist.values():
|
||||
continue
|
||||
structName = re.sub('ies', '', key)
|
||||
asn1cStruct = re.sub('-', '_', re.sub('IEs', '', key))
|
||||
if asn1cStruct.rfind('_') == len(asn1cStruct) - 1:
|
||||
asn1cStruct = asn1cStruct[:-1]
|
||||
asn1cStruct = re.sub('Item', 'List', asn1cStruct)
|
||||
ielistname = re.sub('UE', 'ue', asn1cStruct)
|
||||
ielistnamefirstlower = ielistname[:1].lower() + ielistname[1:]
|
||||
asn1cStructfirstlower = asn1cStruct[:1].lower() + asn1cStruct[1:]
|
||||
keyName = re.sub('-', '_', key)
|
||||
keyupperunderscore = keyName.upper()
|
||||
firstlower = re.sub('Item', 'List', re.sub('enb', 'eNB', lowerFirstCamelWord(asn1cStruct)))
|
||||
|
||||
f.write("void %s_free_%s(\n" % (fileprefix, re.sub('-', '_', structName.lower())))
|
||||
f.write(" %s_t *%s)\n" % (re.sub('-', '_', key), lowerFirstCamelWord(re.sub('-', '_', key))))
|
||||
f.write("{\n\n")
|
||||
|
||||
for ie in iesDefs[key]["ies"]:
|
||||
iename = re.sub('id-', '', ie[0])
|
||||
ienameunderscore = lowerFirstCamelWord(re.sub('-', '_', iename))
|
||||
ienameunderscorefirstlower = lowerFirstCamelWord(ienameunderscore)
|
||||
ietypesubst = re.sub('-', '', ie[2])
|
||||
ietypeunderscore = re.sub('-', '_', ie[2])
|
||||
ieupperunderscore = re.sub('-', '_', re.sub('id-', '', ie[0])).upper()
|
||||
|
||||
if ie[3] == "optional":
|
||||
f.write(" /* Optional field */\n")
|
||||
elif ie[3] == "conditional":
|
||||
f.write(" /* Conditional field */\n")
|
||||
if ie[2] in ieofielist.keys():
|
||||
f.write(" %s_free_%s(&%s->%s);\n" % (fileprefix, ietypeunderscore.lower(), lowerFirstCamelWord(re.sub('-', '_', key)), ienameunderscore))
|
||||
else:
|
||||
f.write(" ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_%s, &%s->%s);\n" % (ietypeunderscore, lowerFirstCamelWord(re.sub('-', '_', key)), ienameunderscore))
|
||||
f.write("}\n\n")
|
||||
|
||||
for key in iesDefs:
|
||||
if key not in ieofielist.values():
|
||||
continue
|
||||
|
||||
keyname = re.sub('IEs', '', re.sub('Item', 'List', key))
|
||||
|
||||
f.write("void %s_free_%s(\n" % (fileprefix, re.sub('-', '_', keyname).lower()))
|
||||
f.write(" %s_IEs_t *%sIEs)\n" % (re.sub('-', '_', keyname), lowerFirstCamelWord(re.sub('-', '_', keyname))))
|
||||
f.write("{\n\n")
|
||||
f.write("}\n\n")
|
||||
|
||||
#Generate xer print functions
|
||||
f = open(outdir + fileprefix + '_ies_xer_print.c', 'w')
|
||||
outputHeaderToFile(f, filename)
|
||||
|
|
|
@ -16,7 +16,6 @@ static void s1ap_test1(abts_case *tc, void *data)
|
|||
};
|
||||
|
||||
s1ap_message message;
|
||||
S1ap_S1SetupRequestIEs_t *ie = &message.msg.s1ap_S1SetupRequestIEs;
|
||||
pkbuf_t *pkbuf;
|
||||
int result;
|
||||
|
||||
|
@ -28,16 +27,7 @@ static void s1ap_test1(abts_case *tc, void *data)
|
|||
result = s1ap_decode_pdu(&message, pkbuf);
|
||||
ABTS_INT_EQUAL(tc, 0, result);
|
||||
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_Global_ENB_ID,
|
||||
&ie->global_ENB_ID);
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_ENBname,
|
||||
&ie->eNBname);
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_SupportedTAs,
|
||||
&ie->supportedTAs);
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_PagingDRX,
|
||||
&ie->defaultPagingDRX);
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_CSG_IdList,
|
||||
&ie->csG_IdList);
|
||||
s1ap_free_s1ap_s1setuprequesties(&message.msg.s1ap_S1SetupRequestIEs);
|
||||
|
||||
pkbuf_free(pkbuf);
|
||||
}
|
||||
|
@ -50,7 +40,6 @@ static void s1ap_test2(abts_case *tc, void *data)
|
|||
};
|
||||
|
||||
s1ap_message message;
|
||||
S1ap_InitialUEMessage_IEs_t *ie = &message.msg.s1ap_InitialUEMessage_IEs;
|
||||
pkbuf_t *pkbuf;
|
||||
int result;
|
||||
|
||||
|
@ -62,28 +51,7 @@ static void s1ap_test2(abts_case *tc, void *data)
|
|||
result = s1ap_decode_pdu(&message, pkbuf);
|
||||
ABTS_INT_EQUAL(tc, 0, result);
|
||||
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_ENB_UE_S1AP_ID,
|
||||
&ie->eNB_UE_S1AP_ID);
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_NAS_PDU,
|
||||
&ie->nas_pdu);
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_TAI,
|
||||
&ie->tai);
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_EUTRAN_CGI,
|
||||
&ie->eutran_cgi);
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_RRC_Establishment_Cause,
|
||||
&ie->rrC_Establishment_Cause);
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_S_TMSI,
|
||||
&ie->s_tmsi);
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_CSG_Id,
|
||||
&ie->csG_Id);
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_GUMMEI,
|
||||
&ie->gummei_id);
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_CellAccessMode,
|
||||
&ie->cellAccessMode);
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_TransportLayerAddress,
|
||||
&ie->gW_TransportLayerAddress);
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_RelayNode_Indicator,
|
||||
&ie->relayNode_Indicator);
|
||||
s1ap_free_s1ap_initialuemessage_ies(&message.msg.s1ap_InitialUEMessage_IEs);
|
||||
|
||||
pkbuf_free(pkbuf);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue