open5gs/src/mme
Pau Espin 8cc70694db
Introduce Gn interface (GTPv1C) Support to PGW (#1351)
* [CORE] tlv: Store mode in ogs_tlv_t

This allows specifying the format of the IE for each individual IE,
hence allowing messages containing IEs formatted in different ways.

This is needed in order to support parsing GTPv1-C, since messages
contain IEs with different structure (TLV vs TV). Hence, this is a
preparation patch to add support for parsing TVs in ogs-tlv.c/.h.

* [CORE] tlv: Support parsing msg with both TLV and TV in it

IEs of type TV are sometimes used in GTPv1-C. Current tlv parser/builder
doesn't provide with ways to parse messages which contain TV formatted
IEs. This patch adds the relevant types and ways to encode/decode them.

Furthermore, the current parser/builder allows parsing/building messages
containing the exact same format in all its IEs. A new parser function
is added which allows parsing messages of different types (TV, TLV)
mixed in the same message. In order to be able to do so, it uses the
general msg_mode passed to it in order to know the general TLV format
(in essence, the length of the Tag field, and also the length of the
Length field if applicable each IE).

Looking up the instance in the TLV description is left undone and
hadcoded to 0, since the only user so far requiring this API is GTPv1-C,
which has no instances.

* [CORE] tlv: Support repeated tag+instance parsing TLV message

In GTPv2C, repeated IEs (same tag) are easily differentiated by the
Instance byte, which provides info to match different decoded
structures. In GTPv1C though, there's no Instance byte, and we still
encounter repeated IEs (like GSN Address in Create PDP Context Request).
Hence, the TLV decoder needs to be updated to track count of IEs found
(identified by tag+instance, where instance is always 0 in GTPv1C) and
get the proper description index + offset into the decoded structure.

* [GTP]: Move GTPv2-C specifics to its own libgtp subdir

This will allow adding GTPv1-C code by the side. Most GTPv2 code is left
in this patch as "gtp" instead of renaming it to "gtp2" in order to
avoid massive changes. It can be done at a later stage if wanted.

* [GTP] Support generating GTPv1-C messages

* [SMF] Add Gn interface support

This patch introduces GTPv1C support to open5gs-smfd. With it,
open5gs-becomes a GGSN too, where SGSN can connect to, hence supporting
GERAN and UTRAN networks.
2022-02-18 22:23:45 +09:00
..
app-init.c Change Number of UEs usage [#533] 2020-08-25 23:05:01 -04:00
emm-build.c [IMPORTANT] changed network_access_mode: 0 (#1323) 2022-01-16 12:35:55 +09:00
emm-build.h Use GTP-U Buffering instead of Deletion[#592,#568] 2020-10-07 21:21:48 -04:00
emm-handler.c [IMPORTANT] changed network_access_mode: 0 (#1323) 2022-01-16 12:35:55 +09:00
emm-handler.h Fix the bug for Release-16 2020-07-03 01:03:13 -04:00
emm-sm.c [MME/AMF] fix the crash during timeout (#1122) 2021-08-08 12:38:15 +09:00
esm-build.c arch: DB schema Changes (#796) 2021-03-08 21:25:09 +09:00
esm-build.h fix: Derive ESM cause from GTP-Cause (#755) 2021-01-10 23:36:12 -05:00
esm-handler.c This always true. So I fixed it (#1266) 2021-12-08 20:56:26 +09:00
esm-handler.h NGAP is added 2020-05-22 22:24:48 -04:00
esm-sm.c [MME/AMF] fix the crash during timeout (#1122) 2021-08-08 12:38:15 +09:00
meson.build Finished on version 2020-07-13 21:53:41 -04:00
mme-context.c [ALL] Fix the memory leak (#1282) 2022-01-31 22:58:52 +09:00
mme-context.h [ALL] Fix the memory leak (#1282) 2022-01-31 22:58:52 +09:00
mme-event.c Change Number of UEs usage [#533] 2020-08-25 23:05:01 -04:00
mme-event.h Change Number of UEs usage [#533] 2020-08-25 23:05:01 -04:00
mme-fd-path.c [IMPORTANT] changed network_access_mode: 0 (#1323) 2022-01-16 12:35:55 +09:00
mme-fd-path.h Re-factoring the all library 2019-09-13 21:07:47 +09:00
mme-gtp-path.c [MME] fix the bug when GTPv2 conflict (#1095) 2021-07-15 21:20:56 +09:00
mme-gtp-path.h [ALL] Add protection of message encoding (#991) 2021-05-16 12:22:10 +09:00
mme-init.c [ALL] Fix the terminate sequence (#938) 2021-04-21 17:46:03 +09:00
mme-path.c [MME] fix the bug when GTPv2 conflict (#1095) 2021-07-15 21:20:56 +09:00
mme-path.h Support VoLTE service in ECM-IDLE 2020-11-07 17:27:12 -05:00
mme-s6a-handler.c [ALL] Add protection of message encoding (#991) 2021-05-16 12:22:10 +09:00
mme-s6a-handler.h Re-factoring the all library 2019-09-13 21:07:47 +09:00
mme-s11-build.c fix the buffer overflow (CVE-2021-41794) 2021-11-15 15:49:58 +09:00
mme-s11-build.h Support VoLTE service in ECM-IDLE 2020-11-07 17:27:12 -05:00
mme-s11-handler.c [ALL] Fix the memory leak (#1282) 2022-01-31 22:58:52 +09:00
mme-s11-handler.h Add GTPv2 ECHO REQ/RSP Message (#378) 2020-03-25 17:43:02 -04:00
mme-sm.c change reject cause to 11 (#1281) 2021-12-08 20:57:54 +09:00
mme-sm.h [CSFB] Create a state machine 2019-06-16 15:40:26 +09:00
mme-timer.c 4G/EPC: Maintaining Old NAS signalling [#546] 2020-09-03 19:59:00 -04:00
mme-timer.h 4G/EPC: Maintaining Old NAS signalling [#546] 2020-09-03 19:59:00 -04:00
nas-path.c [MME/AMF] fix the crash during timeout (#1122) 2021-08-08 12:38:15 +09:00
nas-path.h [ALL] Add protection of message encoding (#991) 2021-05-16 12:22:10 +09:00
nas-security.c Shall cipher in the NAS message container IE 2022-01-05 22:39:06 +09:00
nas-security.h Add AUSF, UDM, and UDR 2020-06-04 14:12:05 -04:00
s1ap-build.c [MME] Add S1AP debug (#1263) 2021-12-11 17:28:05 +09:00
s1ap-build.h Fix the MME crash during HandoverCancel (#855) 2021-03-18 22:59:22 +09:00
s1ap-handler.c [ALL] Fix the memory leak (#1282) 2022-01-31 22:58:52 +09:00
s1ap-handler.h feat: E-RABModificationIndication/Confirm (#834) 2021-03-17 14:26:57 +09:00
s1ap-path.c [MME] Add S1AP debug (#1263) 2021-12-11 17:28:05 +09:00
s1ap-path.h Add more memory log 2021-06-06 22:35:46 +09:00
s1ap-sctp.c [AMF] fix crash due to malformed NGAP (#960) 2021-05-08 15:09:10 +09:00
s1ap-sm.c feat: E-RABModificationIndication/Confirm (#834) 2021-03-17 14:26:57 +09:00
sbc-handler.c NGSetup is added 2020-05-25 12:15:22 -04:00
sbc-handler.h [CSFB] Fix the MacOSX 2019-07-08 21:03:39 +09:00
sbc-message.h NGSetup is added 2020-05-25 12:15:22 -04:00
sgsap-build.c Introduce Gn interface (GTPv1C) Support to PGW (#1351) 2022-02-18 22:23:45 +09:00
sgsap-build.h NGAP is added 2020-05-22 22:24:48 -04:00
sgsap-conv.c Re-factoring the all library 2019-09-13 21:07:47 +09:00
sgsap-conv.h Rename Project to Open5GS 2019-10-27 17:41:14 +09:00
sgsap-handler.c [NRF] fix the crash for invalid FQDN (#1333) 2022-01-22 09:34:38 +09:00
sgsap-handler.h [SGsAP] add MM-INFORMATION-REQUEST(Discard by Option2) 2019-07-21 22:52:28 +09:00
sgsap-path.c [ALL] Add protection of message encoding (#991) 2021-05-16 12:22:10 +09:00
sgsap-path.h [ALL] Add protection of message encoding (#991) 2021-05-16 12:22:10 +09:00
sgsap-sctp.c Add more memory log 2021-06-06 22:35:46 +09:00
sgsap-sm.c Fix MME crash if SGs interface is down #448, #628 2020-11-04 15:58:16 -05:00
sgsap-types.h Re-factoring the all library 2019-09-13 21:07:47 +09:00