Loading Makefile +4 −18 Original line number Diff line number Diff line Loading @@ -12,16 +12,6 @@ ifeq (,$(TTCN3_DIR)) $(error TTCN3_DIR shall be defined in config.mk) endif ifeq (,$(ASN1C)) ifneq (,$(ASN1C_PATH)) ASN1C := $(ASN1C_PATH)/asn1c/.libs/asn1c -S $(ASN1C_PATH)/skeletons else ASN1C := asn1c endif endif export ASN1C_PATH first: all define IncludeModule Loading Loading @@ -103,8 +93,7 @@ echo: echo_sources @echo -e "defines: $(addsuffix \n, $(defines))" clean: rm -f $(outdir)/$(ATS)$(EXE) $(gen_objects) $(gen_sources) $(gen_headers) $(cc_objects) $(outdir)/.generate $(outdir)/../lib5GNGAPAsn.so # rm -f $(outdir)/asn1/*.so $(outdir)/asn1/*.o $(outdir)/asn1/*.c $(outdir)/asn1/*.h $(outdir)/asn1/Makefile.am.libasncodec rm -f $(outdir)/$(ATS)$(EXE) $(gen_objects) $(gen_sources) $(gen_headers) $(cc_objects) $(outdir)/.generate regen: force_regen $(outdir)/.generate force_regen: Loading Loading @@ -135,8 +124,8 @@ $(cc_objects) : $(outdir)/%.o : %.cc mkdir -p $(dir $@) g++ -g -O0 -std=c++17 -c $(addprefix -D, $(defines)) $(addprefix -I, $(includes)) -o $@ $< $(gen_sources): $(TTCN3_DIR)/bin/compiler -n -e -L -R -U none -o $(outdir) $(tt_sources) #$(gen_sources): # $(TTCN3_DIR)/bin/asn1_compiler $(TTCN3_COMPILER_OPTIONS) -o $(outdir) $(tt_sources) $(gen_sources): $(outdir)/.generate Loading @@ -148,6 +137,3 @@ $(foreach S, $(ttcn_sources), $(eval $(outdir)/$(notdir $(patsubst %.ttcn, %.cc $(foreach S, $(ttcn3_sources), $(eval $(outdir)/$(notdir $(patsubst %.ttcn3, %.cc, $(S))): $(S))) $(foreach S, $(asn_sources), $(eval $(outdir)/$(notdir $(patsubst %.asn, %.cc, $(S))): $(S))) $(foreach S, $(asn1_sources), $(eval $(outdir)/$(notdir $(patsubst %.asn1, %.cc, $(S))): $(S))) $(asn_sources) $(asn1_sources): NAS_ETSI.code-workspace +75 −1 Original line number Diff line number Diff line Loading @@ -2,12 +2,86 @@ "folders": [ { "path": "." }, { "path": "../ngap" }, { "path": "../../frameworks/titan/titan.core" }, { "path": "../5G-AKA-simulation-in-C" } ], "settings": { "files.associations": { "pdusessionresourcemodifyindication.h": "c", "random": "cpp" "random": "cpp", "export": "cpp", "cctype": "cpp", "clocale": "cpp", "cmath": "cpp", "cstdarg": "cpp", "cstddef": "cpp", "cstdio": "cpp", "cstdlib": "cpp", "cstring": "cpp", "ctime": "cpp", "cwchar": "cpp", "cwctype": "cpp", "array": "cpp", "atomic": "cpp", "bit": "cpp", "*.tcc": "cpp", "bitset": "cpp", "chrono": "cpp", "codecvt": "cpp", "compare": "cpp", "concepts": "cpp", "condition_variable": "cpp", "cstdint": "cpp", "deque": "cpp", "list": "cpp", "map": "cpp", "set": "cpp", "string": "cpp", "unordered_map": "cpp", "vector": "cpp", "exception": "cpp", "algorithm": "cpp", "functional": "cpp", "iterator": "cpp", "memory": "cpp", "memory_resource": "cpp", "numeric": "cpp", "ratio": "cpp", "regex": "cpp", "string_view": "cpp", "system_error": "cpp", "tuple": "cpp", "type_traits": "cpp", "utility": "cpp", "hash_map": "cpp", "fstream": "cpp", "initializer_list": "cpp", "iomanip": "cpp", "iosfwd": "cpp", "iostream": "cpp", "istream": "cpp", "limits": "cpp", "mutex": "cpp", "new": "cpp", "numbers": "cpp", "ostream": "cpp", "semaphore": "cpp", "sstream": "cpp", "stdexcept": "cpp", "stop_token": "cpp", "streambuf": "cpp", "thread": "cpp", "cinttypes": "cpp", "typeinfo": "cpp", "variant": "cpp" } } } No newline at end of file _Makefile_Asn1deleted 100644 → 0 +0 −170 Original line number Diff line number Diff line -include config.mk ifeq (,$(ATS)) $(error ATS shall be defined) endif ifeq (,$(TOPDIR)) TOPDIR := . endif ifeq (,$(TTCN3_DIR)) $(error TTCN3_DIR shall be defined in config.mk) endif ifeq (,$(ASN1C)) ifneq (,$(ASN1C_PATH)) ASN1C := $(ASN1C_PATH)/asn1c/.libs/asn1c -S $(ASN1C_PATH)/skeletons else ASN1C := asn1c ASN1C := asn1_compiler endif endif export ASN1C_PATH first: all define IncludeModule undefine sources undefine modules undefine includes include $(1)/module.mk $$(foreach S, $$(sources), $$(eval all_sources += $$(if $$(filter /%, $$(S)), $$(TOPDIR)$$(S), $(1)/$$(S)))) $$(foreach I, $$(includes), $$(eval all_includes += $$(if $$(filter /%, $$(I)), $$(TOPDIR)$$(I), $(1)/$$(I)))) $$(foreach M, $$(modules), $$(eval $$(call IncludeModule, $$(if $$(filter /%, $$(M)), $$(TOPDIR)$$(M), $(1)/$$(M))))) endef all_includes := $(TTCN3_DIR)/include $(TTCN3_DIR)/src /usr/include/jsoncpp /usr/include/libxml2 defines += TITAN_RUNTIME_2 _NO_SOFTLINKS_ $(ATS) AS_USE_SSL _GNU_SOURCE libs += $(TTCN3_DIR)/lib/libttcn3-rt2-parallel.a -lstdc++fs ifeq (Windows_NT,$(OS)) # Silence linker warnings. LDFLAGS += -Wl,--enable-auto-import,--enable-runtime-pseudo-reloc defines += WIN32 libs += $(patsubst %, -L%/lib, $(OPENSSL_DIR)) all_includes += $(addsuffix /include, $(OPENSSL_DIR)) libs += $(WPCAP_DLL_PATH) else defines += LINUX libs += -lpcap -lrt -lpthread endif ##libs += -lssl -lcrypto -lxml2 -ljsoncpp -L$(OSIP_LIB) -losipparser2 -lsctp libs += -lssl -lcrypto -lxml2 -lsctp $(eval $(call IncludeModule, $(TOPDIR)/ttcn/$(ATS))) outdir := $(TOPDIR)/build/$(ATS) bindir := $(TOPDIR)/bin sources := $(all_sources) ##includes := $(outdir) $(outdir)/.. $(outdir)/asn1 $(all_includes) $(NPCAP_INCLUDE) $(OSIP_INCLUDE) includes := $(outdir) $(outdir)/.. $(outdir)/asn1 $(all_includes) ifeq (Windows_NT,$(OS)) EXE=.exe endif ttcn_sources := $(filter %.ttcn , $(sources)) ttcn3_sources := $(filter %.ttcn3, $(sources)) asn_sources := $(filter %.asn, $(sources)) asn1_sources := $(filter %.asn1, $(sources)) tt_sources := $(ttcn_sources) $(ttcn3_sources) $(asn_sources) $(asn1_sources) cc_sources := $(filter %.cc, $(sources)) gen_ttcn_sources := $(addprefix $(outdir)/, $(notdir $(patsubst %.ttcn, %.cc, $(ttcn_sources)))) gen_ttcn_headers := $(addprefix $(outdir)/, $(notdir $(patsubst %.ttcn, %.hh, $(ttcn_sources)))) gen_ttcn3_sources := $(addprefix $(outdir)/, $(notdir $(patsubst %.ttcn3, %.cc, $(ttcn3_sources)))) gen_ttcn3_headers := $(addprefix $(outdir)/, $(notdir $(patsubst %.ttcn3, %.hh, $(ttcn3_sources)))) gen_asn_sources := $(addprefix $(outdir)/, $(notdir $(patsubst %.asn, %.cc, $(asn_sources)))) gen_asn_headers := $(addprefix $(outdir)/, $(notdir $(patsubst %.asn, %.hh, $(asn_sources)))) gen_asn1_sources := $(addprefix $(outdir)/, $(notdir $(patsubst %.asn1, %.cc, $(asn1_sources)))) gen_asn1_headers := $(addprefix $(outdir)/, $(notdir $(patsubst %.asn1, %.hh, $(asn1_sources)))) gen_sources := $(gen_ttcn_sources) $(gen_ttcn3_sources) $(gen_asn_sources) $(gen_asn1_sources) gen_headers := $(gen_ttcn_headers) $(gen_ttcn3_headers) $(gen_asn_headers) $(gen_asn1_headers) gen_objects := $(patsubst %.cc, %.o, $(gen_sources)) cc_objects := $(patsubst %.cc, $(outdir)/%.o, $(cc_sources)) .PHONY: all FORCE echo all: $(bindir) $(outdir) $(bindir)/$(ATS)$(EXE) echo_sources: @echo -e "$(addsuffix \n,$(all_sources))" echo: echo_sources @echo -e "sources:\n $(addsuffix \n, $(sources))" @echo -e "gen_sources:\n $(addsuffix \n, $(gen_sources))" @echo -e "gen_objects:\n $(addsuffix \n, $(gen_objects))" @echo -e "cc_objects:\n $(addsuffix \n, $(cc_objects))" @echo -e "includes:\n $(addsuffix \n, $(includes))" @echo -e "defines: $(addsuffix \n, $(defines))" clean: rm -f $(outdir)/$(ATS)$(EXE) $(gen_objects) $(gen_sources) $(gen_headers) $(cc_objects) $(outdir)/.generate $(outdir)/../libAsn.so # rm -f $(outdir)/asn1/*.so $(outdir)/asn1/*.o $(outdir)/asn1/*.c $(outdir)/asn1/*.h $(outdir)/asn1/Makefile.am.libasncodec regen: force_regen $(outdir)/.generate force_regen: rm -f $(outdir)/.generate t3q: all @echo -e "Code checking in progress..." @java -Xmx3g -Xss512m -jar $(T3Q_PATH)/t3q.jar --config $(T3Q_PATH)/$(T3Q_CONFIG) $(tt_sources) > $(outdir)/t3q.out 2>&1 ; cd - @echo -e "Code checking in done..." @echo -e "Output file is located here: $(outdir)/t3q.out" t3d: all @echo -e "TTCN-3 doc generation in progress..." @java -Xmx3g -Xss512m -jar $(T3D_PATH)/t3d.jar --config $(T3D_PATH)/$(T3D_CONFIG) $(tt_sources) > $(outdir)/t3d.out 2>&1 ; cd - @echo -e "TTCN-3 doc generation done..." @echo -e "Output file is located here: $(outdir)/t3d.out" $(outdir) $(outdir)/asn1 $(bindir): mkdir -p $@ $(bindir)/$(ATS)$(EXE): $(outdir)/asn1/libAsn.a $(gen_objects) $(cc_objects) g++ -g3 -std=c++17 -o $@ $(LDFLAGS) $(gen_objects) $(cc_objects) $(outdir)/asn1/libAsn.a $(libs) $(gen_objects) :%.o :%.cc g++ -g3 -std=c++17 -c $(addprefix -D, $(defines)) $(addprefix -I, $(includes)) -o $@ $< $(cc_objects) : $(outdir)/%.o : %.cc mkdir -p $(dir $@) g++ -g3 -std=c++17 -c $(addprefix -D, $(defines)) $(addprefix -I, $(includes)) -o $@ $< #$(gen_sources): # $(TTCN3_DIR)/bin/compiler -n -e -L -R -U none -o $(outdir) $(tt_sources) $(gen_sources): $(outdir)/.generate $(outdir)/.generate: Makefile $(tt_sources) $(TTCN3_DIR)/bin/compiler $(TTCN3_COMPILER_OPTIONS) -o $(outdir) $(tt_sources) touch $@ $(bindir)/libAsn.so: $(outdir)/asn1/libAsn.so cp -f $< $@ $(outdir)/asn1/libAsn.a: $(asn_sources) $(asn1_sources) libasn1.mk Makefile mkdir -p $(outdir)/asn1 echo TOP_DIR := ../../.. >$(outdir)/asn1/Makefile echo ASN_PDU := $(pdu) >>$(outdir)/asn1/Makefile echo ASN_FILES := \\ >>$(outdir)/asn1/Makefile for n in $(asn_sources) $(asn1_sources); do echo " $$n \\"; done >>$(outdir)/asn1/Makefile echo >>$(outdir)/asn1/Makefile cat libasn1.mk >>$(outdir)/asn1/Makefile $(MAKE) -C $(outdir)/asn1 touch $@ $(foreach S, $(ttcn_sources), $(eval $(outdir)/$(notdir $(patsubst %.ttcn, %.cc, $(S))): $(S))) $(foreach S, $(ttcn3_sources), $(eval $(outdir)/$(notdir $(patsubst %.ttcn3, %.cc, $(S))): $(S))) $(foreach S, $(asn_sources), $(eval $(outdir)/$(notdir $(patsubst %.asn, %.cc, $(S))): $(S))) $(foreach S, $(asn1_sources), $(eval $(outdir)/$(notdir $(patsubst %.asn1, %.cc, $(S))): $(S))) $(asn_sources) $(asn1_sources): _Makefile_noAsn1deleted 100644 → 0 +0 −124 Original line number Diff line number Diff line -include config.mk ifeq (,$(ATS)) $(error ATS shall be defined) endif ifeq (,$(TOPDIR)) TOPDIR := . endif ifeq (,$(TTCN3_DIR)) $(error TTCN3_DIR shall be defined in config.mk) endif first: all define IncludeModule undefine sources undefine modules undefine includes include $(1)/module.mk $$(foreach S, $$(sources), $$(eval all_sources += $(1)/$$(S))) $$(foreach I, $$(includes), $$(eval all_includes += $(1)/$$(I))) $$(foreach M, $$(modules), $$(eval $$(call IncludeModule, $$(if $$(filter /%, $$(M)), $$(M), $(1)/$$(M))))) endef all_includes := $(TTCN3_DIR)/include $(TTCN3_DIR)/src /usr/include/libxml2 defines += TITAN_RUNTIME_2 _NO_SOFTLINKS_ $(ATS) AS_USE_SSL libs += $(TTCN3_DIR)/lib/libttcn3-rt2-parallel.a -lstdc++fs ifeq (Windows_NT,$(OS)) # Silence linker warnings. LDFLAGS += -Wl,--enable-auto-import,--enable-runtime-pseudo-reloc defines += WIN32 libs += $(patsubst %, -L%/lib, $(OPENSSL_DIR)) all_includes += $(addsuffix /include, $(OPENSSL_DIR)) libs += $(WPCAP_DLL_PATH) else defines += LINUX libs += -lpcap -lrt -lpthread endif libs += -lssl -lcrypto -lxml2 -L$(OSIP_LIB) -losipparser2 $(eval $(call IncludeModule, $(TOPDIR)/ttcn/$(ATS))) outdir := $(TOPDIR)/build/$(ATS) bindir := $(TOPDIR)/bin sources := $(sort $(all_sources)) includes := $(outdir) $(outdir)/.. $(all_includes) $(NPCAP_INCLUDE) $(OSIP_INCLUDE) ifeq (Windows_NT,$(OS)) EXE=.exe endif ttcn_sources := $(filter %.ttcn , $(sources)) ttcn3_sources := $(filter %.ttcn3, $(sources)) xsd_sources := $(filter %.xsd, $(sources)) tt_sources := $(ttcn_sources) $(ttcn3_sources) $(xsd_sources) cc_sources := $(filter %.cc, $(sources)) gen_ttcn_sources := $(addprefix $(outdir)/, $(notdir $(patsubst %.ttcn, %.cc, $(ttcn_sources)))) gen_ttcn_headers := $(addprefix $(outdir)/, $(notdir $(patsubst %.ttcn, %.hh, $(ttcn_sources)))) gen_ttcn3_sources := $(addprefix $(outdir)/, $(notdir $(patsubst %.ttcn3, %.cc, $(ttcn3_sources)))) gen_ttcn3_headers := $(addprefix $(outdir)/, $(notdir $(patsubst %.ttcn3, %.hh, $(ttcn3_sources)))) gen_xsd_sources := $(addprefix $(outdir)/, $(notdir $(patsubst %.xsd, %.cc, $(xsd_sources)))) gen_xsd_headers := $(addprefix $(outdir)/, $(notdir $(patsubst %.xsd, %.hh, $(xsd_sources)))) gen_sources := $(gen_ttcn_sources) $(gen_ttcn3_sources) $(gen_xsd_sources) gen_headers := $(gen_ttcn_headers) $(gen_ttcn3_headers) $(gen_xsd_headers) gen_objects := $(patsubst %.cc, %.o, $(gen_sources)) cc_objects := $(patsubst %.cc, $(outdir)/%.o, $(cc_sources)) .PHONY: all FORCE echo all: $(bindir) $(outdir) $(bindir)/$(ATS)$(EXE) echo_sources: @echo -e "$(addsuffix \n,$(all_sources))" echo: echo_sources @echo -e "sources:\n $(addsuffix \n, $(sources))" @echo -e "gen_sources:\n $(addsuffix \n, $(gen_sources))" @echo -e "gen_objects:\n $(addsuffix \n, $(gen_objects))" @echo -e "cc_objects:\n $(addsuffix \n, $(cc_objects))" @echo -e "includes:\n $(addsuffix \n, $(includes))" @echo -e "defines: $(addsuffix \n, $(defines))" clean: rm -f $(outdir)/$(ATS)$(EXE) $(gen_objects) $(gen_sources) $(gen_headers) $(cc_objects) $(outdir)/.generate regen: force_regen $(outdir)/.generate force_regen: rm -f $(outdir)/.generate $(outdir) $(bindir): mkdir -p $@ $(bindir)/$(ATS)$(EXE): $(gen_objects) $(cc_objects) g++ -g -O0 -std=c++17 -o $@ $(LDFLAGS) $(gen_objects) $(cc_objects) $(libs) $(gen_objects) :%.o :%.cc g++ -g -O0 -std=c++17 -c $(addprefix -D, $(defines)) $(addprefix -I, $(includes)) -o $@ $< $(cc_objects) : $(outdir)/%.o : %.cc mkdir -p $(dir $@) g++ -g -O0 -std=c++17 -c $(addprefix -D, $(defines)) $(addprefix -I, $(includes)) -o $@ $< $(gen_sources): $(outdir)/.generate $(outdir)/.generate: Makefile $(tt_sources) $(foreach F, $(wildcard ttcn/patch_ims_titan/*.ttcn), cp $(F) ttcn/LibIms/ttcn;) $(foreach F, $(wildcard ttcn/patch_sip_titan/*.ttcn), cp $(F) ttcn/LibSip/ttcn;) $(foreach F, $(wildcard ttcn/patch_lib_common_titan/ttcn/*.ttcn), cp $(F) ttcn/LibCommon/ttcn;) $(foreach F, $(wildcard ttcn/patch_lib_http/*.ttcn), cp $(F) ttcn/LibIts/ttcn/Http;) $(TTCN3_DIR)/bin/compiler $(TTCN3_COMPILER_OPTIONS) -o $(outdir) $(tt_sources) touch $@ $(foreach S, $(ttcn_sources), $(eval $(outdir)/$(notdir $(patsubst %.ttcn, %.cc, $(S))): $(S))) $(foreach S, $(ttcn3_sources), $(eval $(outdir)/$(notdir $(patsubst %.ttcn3, %.cc, $(S))): $(S))) $(foreach S, $(xsd_sources), $(eval $(outdir)/$(notdir $(patsubst %.xsd, %.cc, $(S))): $(S))) ccsrc/Asn1c/asn1_recoder.ccdeleted 100644 → 0 +0 −56 Original line number Diff line number Diff line #include <asn1/asn_application.h> #include "asn1_recoder.hh" #include <TTCN3.hh> extern "C" { static int asn1c_collect_encoded_data(const void *buffer, size_t size, void *application_specific_key) { TTCN_Buffer *tb = (TTCN_Buffer *)application_specific_key; tb->put_s(size, (unsigned char *)buffer); return 0; } } int asn1_recoder::recode(const asn_TYPE_descriptor_s &td, int from, int to, TTCN_Buffer &buf) { int rc = -1; void * ptr = NULL; asn_dec_rval_t rc_d; rc_d = asn_decode(NULL, (asn_transfer_syntax)from, (asn_TYPE_descriptor_s *)&td, &ptr, buf.get_data(), buf.get_len()); if (rc_d.code == RC_OK) { // Encode as PER asn_enc_rval_t rc_e; buf.clear(); rc_e = asn_encode(NULL, (asn_transfer_syntax)to, (asn_TYPE_descriptor_s *)&td, ptr, asn1c_collect_encoded_data, &buf); rc = rc_e.encoded; } if (ptr) { ASN_STRUCT_FREE(td, ptr); } return rc; } int asn1_recoder::ber2per(const asn_TYPE_descriptor_s &td, TTCN_Buffer &buf) { //return recode(td, (int)ATS_BER, (int)ATS_UNALIGNED_CANONICAL_PER, buf); //return recode(td, (int)ATS_BER, (int)ATS_ALIGNED_CANONICAL_PER, buf); //return recode(td, (int)ATS_BER, (int)ATS_ALIGNED_BASIC_PER, buf); return recode(td, (int)ATS_DER, (int)ATS_UNALIGNED_BASIC_PER, buf); } int asn1_recoder::per2ber(const asn_TYPE_descriptor_s &td, TTCN_Buffer &buf) { //return recode(td, (int)ATS_ALIGNED_CANONICAL_PER, (int)ATS_BER, buf); //return recode(td, (int)ATS_ALIGNED_BASIC_PER, (int)ATS_BER, buf); return recode(td, (int)ATS_UNALIGNED_BASIC_PER, (int)ATS_DER, buf); } int asn1_recoder::ber2oer(const asn_TYPE_descriptor_s & td, TTCN_Buffer & buf) { return recode(td, (int)ATS_BER, (int)ATS_CANONICAL_OER, buf); } int asn1_recoder::oer2ber(const asn_TYPE_descriptor_s & td, TTCN_Buffer & buf) { return recode(td, (int)ATS_BASIC_OER, (int)ATS_BER, buf); } Loading
Makefile +4 −18 Original line number Diff line number Diff line Loading @@ -12,16 +12,6 @@ ifeq (,$(TTCN3_DIR)) $(error TTCN3_DIR shall be defined in config.mk) endif ifeq (,$(ASN1C)) ifneq (,$(ASN1C_PATH)) ASN1C := $(ASN1C_PATH)/asn1c/.libs/asn1c -S $(ASN1C_PATH)/skeletons else ASN1C := asn1c endif endif export ASN1C_PATH first: all define IncludeModule Loading Loading @@ -103,8 +93,7 @@ echo: echo_sources @echo -e "defines: $(addsuffix \n, $(defines))" clean: rm -f $(outdir)/$(ATS)$(EXE) $(gen_objects) $(gen_sources) $(gen_headers) $(cc_objects) $(outdir)/.generate $(outdir)/../lib5GNGAPAsn.so # rm -f $(outdir)/asn1/*.so $(outdir)/asn1/*.o $(outdir)/asn1/*.c $(outdir)/asn1/*.h $(outdir)/asn1/Makefile.am.libasncodec rm -f $(outdir)/$(ATS)$(EXE) $(gen_objects) $(gen_sources) $(gen_headers) $(cc_objects) $(outdir)/.generate regen: force_regen $(outdir)/.generate force_regen: Loading Loading @@ -135,8 +124,8 @@ $(cc_objects) : $(outdir)/%.o : %.cc mkdir -p $(dir $@) g++ -g -O0 -std=c++17 -c $(addprefix -D, $(defines)) $(addprefix -I, $(includes)) -o $@ $< $(gen_sources): $(TTCN3_DIR)/bin/compiler -n -e -L -R -U none -o $(outdir) $(tt_sources) #$(gen_sources): # $(TTCN3_DIR)/bin/asn1_compiler $(TTCN3_COMPILER_OPTIONS) -o $(outdir) $(tt_sources) $(gen_sources): $(outdir)/.generate Loading @@ -148,6 +137,3 @@ $(foreach S, $(ttcn_sources), $(eval $(outdir)/$(notdir $(patsubst %.ttcn, %.cc $(foreach S, $(ttcn3_sources), $(eval $(outdir)/$(notdir $(patsubst %.ttcn3, %.cc, $(S))): $(S))) $(foreach S, $(asn_sources), $(eval $(outdir)/$(notdir $(patsubst %.asn, %.cc, $(S))): $(S))) $(foreach S, $(asn1_sources), $(eval $(outdir)/$(notdir $(patsubst %.asn1, %.cc, $(S))): $(S))) $(asn_sources) $(asn1_sources):
NAS_ETSI.code-workspace +75 −1 Original line number Diff line number Diff line Loading @@ -2,12 +2,86 @@ "folders": [ { "path": "." }, { "path": "../ngap" }, { "path": "../../frameworks/titan/titan.core" }, { "path": "../5G-AKA-simulation-in-C" } ], "settings": { "files.associations": { "pdusessionresourcemodifyindication.h": "c", "random": "cpp" "random": "cpp", "export": "cpp", "cctype": "cpp", "clocale": "cpp", "cmath": "cpp", "cstdarg": "cpp", "cstddef": "cpp", "cstdio": "cpp", "cstdlib": "cpp", "cstring": "cpp", "ctime": "cpp", "cwchar": "cpp", "cwctype": "cpp", "array": "cpp", "atomic": "cpp", "bit": "cpp", "*.tcc": "cpp", "bitset": "cpp", "chrono": "cpp", "codecvt": "cpp", "compare": "cpp", "concepts": "cpp", "condition_variable": "cpp", "cstdint": "cpp", "deque": "cpp", "list": "cpp", "map": "cpp", "set": "cpp", "string": "cpp", "unordered_map": "cpp", "vector": "cpp", "exception": "cpp", "algorithm": "cpp", "functional": "cpp", "iterator": "cpp", "memory": "cpp", "memory_resource": "cpp", "numeric": "cpp", "ratio": "cpp", "regex": "cpp", "string_view": "cpp", "system_error": "cpp", "tuple": "cpp", "type_traits": "cpp", "utility": "cpp", "hash_map": "cpp", "fstream": "cpp", "initializer_list": "cpp", "iomanip": "cpp", "iosfwd": "cpp", "iostream": "cpp", "istream": "cpp", "limits": "cpp", "mutex": "cpp", "new": "cpp", "numbers": "cpp", "ostream": "cpp", "semaphore": "cpp", "sstream": "cpp", "stdexcept": "cpp", "stop_token": "cpp", "streambuf": "cpp", "thread": "cpp", "cinttypes": "cpp", "typeinfo": "cpp", "variant": "cpp" } } } No newline at end of file
_Makefile_Asn1deleted 100644 → 0 +0 −170 Original line number Diff line number Diff line -include config.mk ifeq (,$(ATS)) $(error ATS shall be defined) endif ifeq (,$(TOPDIR)) TOPDIR := . endif ifeq (,$(TTCN3_DIR)) $(error TTCN3_DIR shall be defined in config.mk) endif ifeq (,$(ASN1C)) ifneq (,$(ASN1C_PATH)) ASN1C := $(ASN1C_PATH)/asn1c/.libs/asn1c -S $(ASN1C_PATH)/skeletons else ASN1C := asn1c ASN1C := asn1_compiler endif endif export ASN1C_PATH first: all define IncludeModule undefine sources undefine modules undefine includes include $(1)/module.mk $$(foreach S, $$(sources), $$(eval all_sources += $$(if $$(filter /%, $$(S)), $$(TOPDIR)$$(S), $(1)/$$(S)))) $$(foreach I, $$(includes), $$(eval all_includes += $$(if $$(filter /%, $$(I)), $$(TOPDIR)$$(I), $(1)/$$(I)))) $$(foreach M, $$(modules), $$(eval $$(call IncludeModule, $$(if $$(filter /%, $$(M)), $$(TOPDIR)$$(M), $(1)/$$(M))))) endef all_includes := $(TTCN3_DIR)/include $(TTCN3_DIR)/src /usr/include/jsoncpp /usr/include/libxml2 defines += TITAN_RUNTIME_2 _NO_SOFTLINKS_ $(ATS) AS_USE_SSL _GNU_SOURCE libs += $(TTCN3_DIR)/lib/libttcn3-rt2-parallel.a -lstdc++fs ifeq (Windows_NT,$(OS)) # Silence linker warnings. LDFLAGS += -Wl,--enable-auto-import,--enable-runtime-pseudo-reloc defines += WIN32 libs += $(patsubst %, -L%/lib, $(OPENSSL_DIR)) all_includes += $(addsuffix /include, $(OPENSSL_DIR)) libs += $(WPCAP_DLL_PATH) else defines += LINUX libs += -lpcap -lrt -lpthread endif ##libs += -lssl -lcrypto -lxml2 -ljsoncpp -L$(OSIP_LIB) -losipparser2 -lsctp libs += -lssl -lcrypto -lxml2 -lsctp $(eval $(call IncludeModule, $(TOPDIR)/ttcn/$(ATS))) outdir := $(TOPDIR)/build/$(ATS) bindir := $(TOPDIR)/bin sources := $(all_sources) ##includes := $(outdir) $(outdir)/.. $(outdir)/asn1 $(all_includes) $(NPCAP_INCLUDE) $(OSIP_INCLUDE) includes := $(outdir) $(outdir)/.. $(outdir)/asn1 $(all_includes) ifeq (Windows_NT,$(OS)) EXE=.exe endif ttcn_sources := $(filter %.ttcn , $(sources)) ttcn3_sources := $(filter %.ttcn3, $(sources)) asn_sources := $(filter %.asn, $(sources)) asn1_sources := $(filter %.asn1, $(sources)) tt_sources := $(ttcn_sources) $(ttcn3_sources) $(asn_sources) $(asn1_sources) cc_sources := $(filter %.cc, $(sources)) gen_ttcn_sources := $(addprefix $(outdir)/, $(notdir $(patsubst %.ttcn, %.cc, $(ttcn_sources)))) gen_ttcn_headers := $(addprefix $(outdir)/, $(notdir $(patsubst %.ttcn, %.hh, $(ttcn_sources)))) gen_ttcn3_sources := $(addprefix $(outdir)/, $(notdir $(patsubst %.ttcn3, %.cc, $(ttcn3_sources)))) gen_ttcn3_headers := $(addprefix $(outdir)/, $(notdir $(patsubst %.ttcn3, %.hh, $(ttcn3_sources)))) gen_asn_sources := $(addprefix $(outdir)/, $(notdir $(patsubst %.asn, %.cc, $(asn_sources)))) gen_asn_headers := $(addprefix $(outdir)/, $(notdir $(patsubst %.asn, %.hh, $(asn_sources)))) gen_asn1_sources := $(addprefix $(outdir)/, $(notdir $(patsubst %.asn1, %.cc, $(asn1_sources)))) gen_asn1_headers := $(addprefix $(outdir)/, $(notdir $(patsubst %.asn1, %.hh, $(asn1_sources)))) gen_sources := $(gen_ttcn_sources) $(gen_ttcn3_sources) $(gen_asn_sources) $(gen_asn1_sources) gen_headers := $(gen_ttcn_headers) $(gen_ttcn3_headers) $(gen_asn_headers) $(gen_asn1_headers) gen_objects := $(patsubst %.cc, %.o, $(gen_sources)) cc_objects := $(patsubst %.cc, $(outdir)/%.o, $(cc_sources)) .PHONY: all FORCE echo all: $(bindir) $(outdir) $(bindir)/$(ATS)$(EXE) echo_sources: @echo -e "$(addsuffix \n,$(all_sources))" echo: echo_sources @echo -e "sources:\n $(addsuffix \n, $(sources))" @echo -e "gen_sources:\n $(addsuffix \n, $(gen_sources))" @echo -e "gen_objects:\n $(addsuffix \n, $(gen_objects))" @echo -e "cc_objects:\n $(addsuffix \n, $(cc_objects))" @echo -e "includes:\n $(addsuffix \n, $(includes))" @echo -e "defines: $(addsuffix \n, $(defines))" clean: rm -f $(outdir)/$(ATS)$(EXE) $(gen_objects) $(gen_sources) $(gen_headers) $(cc_objects) $(outdir)/.generate $(outdir)/../libAsn.so # rm -f $(outdir)/asn1/*.so $(outdir)/asn1/*.o $(outdir)/asn1/*.c $(outdir)/asn1/*.h $(outdir)/asn1/Makefile.am.libasncodec regen: force_regen $(outdir)/.generate force_regen: rm -f $(outdir)/.generate t3q: all @echo -e "Code checking in progress..." @java -Xmx3g -Xss512m -jar $(T3Q_PATH)/t3q.jar --config $(T3Q_PATH)/$(T3Q_CONFIG) $(tt_sources) > $(outdir)/t3q.out 2>&1 ; cd - @echo -e "Code checking in done..." @echo -e "Output file is located here: $(outdir)/t3q.out" t3d: all @echo -e "TTCN-3 doc generation in progress..." @java -Xmx3g -Xss512m -jar $(T3D_PATH)/t3d.jar --config $(T3D_PATH)/$(T3D_CONFIG) $(tt_sources) > $(outdir)/t3d.out 2>&1 ; cd - @echo -e "TTCN-3 doc generation done..." @echo -e "Output file is located here: $(outdir)/t3d.out" $(outdir) $(outdir)/asn1 $(bindir): mkdir -p $@ $(bindir)/$(ATS)$(EXE): $(outdir)/asn1/libAsn.a $(gen_objects) $(cc_objects) g++ -g3 -std=c++17 -o $@ $(LDFLAGS) $(gen_objects) $(cc_objects) $(outdir)/asn1/libAsn.a $(libs) $(gen_objects) :%.o :%.cc g++ -g3 -std=c++17 -c $(addprefix -D, $(defines)) $(addprefix -I, $(includes)) -o $@ $< $(cc_objects) : $(outdir)/%.o : %.cc mkdir -p $(dir $@) g++ -g3 -std=c++17 -c $(addprefix -D, $(defines)) $(addprefix -I, $(includes)) -o $@ $< #$(gen_sources): # $(TTCN3_DIR)/bin/compiler -n -e -L -R -U none -o $(outdir) $(tt_sources) $(gen_sources): $(outdir)/.generate $(outdir)/.generate: Makefile $(tt_sources) $(TTCN3_DIR)/bin/compiler $(TTCN3_COMPILER_OPTIONS) -o $(outdir) $(tt_sources) touch $@ $(bindir)/libAsn.so: $(outdir)/asn1/libAsn.so cp -f $< $@ $(outdir)/asn1/libAsn.a: $(asn_sources) $(asn1_sources) libasn1.mk Makefile mkdir -p $(outdir)/asn1 echo TOP_DIR := ../../.. >$(outdir)/asn1/Makefile echo ASN_PDU := $(pdu) >>$(outdir)/asn1/Makefile echo ASN_FILES := \\ >>$(outdir)/asn1/Makefile for n in $(asn_sources) $(asn1_sources); do echo " $$n \\"; done >>$(outdir)/asn1/Makefile echo >>$(outdir)/asn1/Makefile cat libasn1.mk >>$(outdir)/asn1/Makefile $(MAKE) -C $(outdir)/asn1 touch $@ $(foreach S, $(ttcn_sources), $(eval $(outdir)/$(notdir $(patsubst %.ttcn, %.cc, $(S))): $(S))) $(foreach S, $(ttcn3_sources), $(eval $(outdir)/$(notdir $(patsubst %.ttcn3, %.cc, $(S))): $(S))) $(foreach S, $(asn_sources), $(eval $(outdir)/$(notdir $(patsubst %.asn, %.cc, $(S))): $(S))) $(foreach S, $(asn1_sources), $(eval $(outdir)/$(notdir $(patsubst %.asn1, %.cc, $(S))): $(S))) $(asn_sources) $(asn1_sources):
_Makefile_noAsn1deleted 100644 → 0 +0 −124 Original line number Diff line number Diff line -include config.mk ifeq (,$(ATS)) $(error ATS shall be defined) endif ifeq (,$(TOPDIR)) TOPDIR := . endif ifeq (,$(TTCN3_DIR)) $(error TTCN3_DIR shall be defined in config.mk) endif first: all define IncludeModule undefine sources undefine modules undefine includes include $(1)/module.mk $$(foreach S, $$(sources), $$(eval all_sources += $(1)/$$(S))) $$(foreach I, $$(includes), $$(eval all_includes += $(1)/$$(I))) $$(foreach M, $$(modules), $$(eval $$(call IncludeModule, $$(if $$(filter /%, $$(M)), $$(M), $(1)/$$(M))))) endef all_includes := $(TTCN3_DIR)/include $(TTCN3_DIR)/src /usr/include/libxml2 defines += TITAN_RUNTIME_2 _NO_SOFTLINKS_ $(ATS) AS_USE_SSL libs += $(TTCN3_DIR)/lib/libttcn3-rt2-parallel.a -lstdc++fs ifeq (Windows_NT,$(OS)) # Silence linker warnings. LDFLAGS += -Wl,--enable-auto-import,--enable-runtime-pseudo-reloc defines += WIN32 libs += $(patsubst %, -L%/lib, $(OPENSSL_DIR)) all_includes += $(addsuffix /include, $(OPENSSL_DIR)) libs += $(WPCAP_DLL_PATH) else defines += LINUX libs += -lpcap -lrt -lpthread endif libs += -lssl -lcrypto -lxml2 -L$(OSIP_LIB) -losipparser2 $(eval $(call IncludeModule, $(TOPDIR)/ttcn/$(ATS))) outdir := $(TOPDIR)/build/$(ATS) bindir := $(TOPDIR)/bin sources := $(sort $(all_sources)) includes := $(outdir) $(outdir)/.. $(all_includes) $(NPCAP_INCLUDE) $(OSIP_INCLUDE) ifeq (Windows_NT,$(OS)) EXE=.exe endif ttcn_sources := $(filter %.ttcn , $(sources)) ttcn3_sources := $(filter %.ttcn3, $(sources)) xsd_sources := $(filter %.xsd, $(sources)) tt_sources := $(ttcn_sources) $(ttcn3_sources) $(xsd_sources) cc_sources := $(filter %.cc, $(sources)) gen_ttcn_sources := $(addprefix $(outdir)/, $(notdir $(patsubst %.ttcn, %.cc, $(ttcn_sources)))) gen_ttcn_headers := $(addprefix $(outdir)/, $(notdir $(patsubst %.ttcn, %.hh, $(ttcn_sources)))) gen_ttcn3_sources := $(addprefix $(outdir)/, $(notdir $(patsubst %.ttcn3, %.cc, $(ttcn3_sources)))) gen_ttcn3_headers := $(addprefix $(outdir)/, $(notdir $(patsubst %.ttcn3, %.hh, $(ttcn3_sources)))) gen_xsd_sources := $(addprefix $(outdir)/, $(notdir $(patsubst %.xsd, %.cc, $(xsd_sources)))) gen_xsd_headers := $(addprefix $(outdir)/, $(notdir $(patsubst %.xsd, %.hh, $(xsd_sources)))) gen_sources := $(gen_ttcn_sources) $(gen_ttcn3_sources) $(gen_xsd_sources) gen_headers := $(gen_ttcn_headers) $(gen_ttcn3_headers) $(gen_xsd_headers) gen_objects := $(patsubst %.cc, %.o, $(gen_sources)) cc_objects := $(patsubst %.cc, $(outdir)/%.o, $(cc_sources)) .PHONY: all FORCE echo all: $(bindir) $(outdir) $(bindir)/$(ATS)$(EXE) echo_sources: @echo -e "$(addsuffix \n,$(all_sources))" echo: echo_sources @echo -e "sources:\n $(addsuffix \n, $(sources))" @echo -e "gen_sources:\n $(addsuffix \n, $(gen_sources))" @echo -e "gen_objects:\n $(addsuffix \n, $(gen_objects))" @echo -e "cc_objects:\n $(addsuffix \n, $(cc_objects))" @echo -e "includes:\n $(addsuffix \n, $(includes))" @echo -e "defines: $(addsuffix \n, $(defines))" clean: rm -f $(outdir)/$(ATS)$(EXE) $(gen_objects) $(gen_sources) $(gen_headers) $(cc_objects) $(outdir)/.generate regen: force_regen $(outdir)/.generate force_regen: rm -f $(outdir)/.generate $(outdir) $(bindir): mkdir -p $@ $(bindir)/$(ATS)$(EXE): $(gen_objects) $(cc_objects) g++ -g -O0 -std=c++17 -o $@ $(LDFLAGS) $(gen_objects) $(cc_objects) $(libs) $(gen_objects) :%.o :%.cc g++ -g -O0 -std=c++17 -c $(addprefix -D, $(defines)) $(addprefix -I, $(includes)) -o $@ $< $(cc_objects) : $(outdir)/%.o : %.cc mkdir -p $(dir $@) g++ -g -O0 -std=c++17 -c $(addprefix -D, $(defines)) $(addprefix -I, $(includes)) -o $@ $< $(gen_sources): $(outdir)/.generate $(outdir)/.generate: Makefile $(tt_sources) $(foreach F, $(wildcard ttcn/patch_ims_titan/*.ttcn), cp $(F) ttcn/LibIms/ttcn;) $(foreach F, $(wildcard ttcn/patch_sip_titan/*.ttcn), cp $(F) ttcn/LibSip/ttcn;) $(foreach F, $(wildcard ttcn/patch_lib_common_titan/ttcn/*.ttcn), cp $(F) ttcn/LibCommon/ttcn;) $(foreach F, $(wildcard ttcn/patch_lib_http/*.ttcn), cp $(F) ttcn/LibIts/ttcn/Http;) $(TTCN3_DIR)/bin/compiler $(TTCN3_COMPILER_OPTIONS) -o $(outdir) $(tt_sources) touch $@ $(foreach S, $(ttcn_sources), $(eval $(outdir)/$(notdir $(patsubst %.ttcn, %.cc, $(S))): $(S))) $(foreach S, $(ttcn3_sources), $(eval $(outdir)/$(notdir $(patsubst %.ttcn3, %.cc, $(S))): $(S))) $(foreach S, $(xsd_sources), $(eval $(outdir)/$(notdir $(patsubst %.xsd, %.cc, $(S))): $(S)))
ccsrc/Asn1c/asn1_recoder.ccdeleted 100644 → 0 +0 −56 Original line number Diff line number Diff line #include <asn1/asn_application.h> #include "asn1_recoder.hh" #include <TTCN3.hh> extern "C" { static int asn1c_collect_encoded_data(const void *buffer, size_t size, void *application_specific_key) { TTCN_Buffer *tb = (TTCN_Buffer *)application_specific_key; tb->put_s(size, (unsigned char *)buffer); return 0; } } int asn1_recoder::recode(const asn_TYPE_descriptor_s &td, int from, int to, TTCN_Buffer &buf) { int rc = -1; void * ptr = NULL; asn_dec_rval_t rc_d; rc_d = asn_decode(NULL, (asn_transfer_syntax)from, (asn_TYPE_descriptor_s *)&td, &ptr, buf.get_data(), buf.get_len()); if (rc_d.code == RC_OK) { // Encode as PER asn_enc_rval_t rc_e; buf.clear(); rc_e = asn_encode(NULL, (asn_transfer_syntax)to, (asn_TYPE_descriptor_s *)&td, ptr, asn1c_collect_encoded_data, &buf); rc = rc_e.encoded; } if (ptr) { ASN_STRUCT_FREE(td, ptr); } return rc; } int asn1_recoder::ber2per(const asn_TYPE_descriptor_s &td, TTCN_Buffer &buf) { //return recode(td, (int)ATS_BER, (int)ATS_UNALIGNED_CANONICAL_PER, buf); //return recode(td, (int)ATS_BER, (int)ATS_ALIGNED_CANONICAL_PER, buf); //return recode(td, (int)ATS_BER, (int)ATS_ALIGNED_BASIC_PER, buf); return recode(td, (int)ATS_DER, (int)ATS_UNALIGNED_BASIC_PER, buf); } int asn1_recoder::per2ber(const asn_TYPE_descriptor_s &td, TTCN_Buffer &buf) { //return recode(td, (int)ATS_ALIGNED_CANONICAL_PER, (int)ATS_BER, buf); //return recode(td, (int)ATS_ALIGNED_BASIC_PER, (int)ATS_BER, buf); return recode(td, (int)ATS_UNALIGNED_BASIC_PER, (int)ATS_DER, buf); } int asn1_recoder::ber2oer(const asn_TYPE_descriptor_s & td, TTCN_Buffer & buf) { return recode(td, (int)ATS_BER, (int)ATS_CANONICAL_OER, buf); } int asn1_recoder::oer2ber(const asn_TYPE_descriptor_s & td, TTCN_Buffer & buf) { return recode(td, (int)ATS_BASIC_OER, (int)ATS_BER, buf); }