Commit
55484175bbccfff77ef61c317f9bfcb67bed3fd6
by Vadim Yanitskiy
sctp_proxy: use a record for storing state data
Maps are convenient, but they are also more permissive: field names are unchecked at compile time, making it easier for typos or unexpected fields to slip through. Records, on the other hand, are stricter and more declarative. Their structure is explicitly defined, the set of fields is fixed, and the compiler can validate field names.
Commit
cd14c213dbe9a2030c35c0039e802f9c5c7820eb
by Vadim Yanitskiy
s1ap_proxy: signal GTP-U addr and eNB info to sctp_proxy
Move all interaction with the `enb_registry` and `gtpu_kpi` modules from `s1ap_proxy` to its parent process, `sctp_proxy`. This prepares for a follow-up change in which handling of the S1 SETUP procedure will be fully migrated to `sctp_proxy` - a prerequisite for proper MME pooling support.
Commit
16e4221a8cca4d75afa40efb9905e7017acbe35c
by Vadim Yanitskiy
s1ap_utils: add API for S1AP PDU parsing
This API will be used in a follow-up patch, in which handling of the S1 SETUP procedure will be fully migrated to `sctp_proxy` - a prerequisite for proper MME pooling support.
Commit
4614fc316dbd5fc286fc5d9dd3fcbe3fe0c93145
by Vadim Yanitskiy
s1ap_proxy: move S1 SETUP handling to sctp_proxy
This is a prerequisite for the MME pooling support. We need to receive the S1 SETUP REQUEST PDU, extract the Global-eNB-ID and TAC(s), and use this information to select an appropriate MME. The PDU must also be cached so it can be sent (or re-sent) to the selected MME(s).
The s1ap_proxy module no longer needs to parse S1 SETUP PDUs, as this logic has been moved to the sctp_proxy and implemented using the newly introduced s1ap_utils API. However, s1ap_proxy still requires the Global-eNB-ID for logging and per-eNB counters, so sctp_proxy now provides it through the new s1ap_proxy:set_genb_id/2 API.