osmo-s1gw (0.3.0) unstable; urgency=medium * s1ap_proxy: merge process_pdu_safe() with process_pdu() * s1ap_proxy: do not expose {en,de}code_pdu() API * s1ap_proxy: turn this module into a gen_server * s1ap_proxy: add E-RAB introspection API * erab_fsm: rename erab_release_req/1 -> erab_release_cmd/1 * erab_fsm: add erab_release/2 and erab_release_ind/1 * s1ap_proxy: properly handle E-RAB RELEASE IND * erab_fsm: add all-state event handler * erab_fsm: add fetch_info/1 for state introspection * sctp_server: add type hints * sctp_server: cosmetic: use ?FUNCTION_NAME in send_data/2 * sctp_server: pass MME addr/port to sctp_proxy as opaque data * sctp_server: cosmetic: rename State -> S * sctp_server: cosmetic: make #server_state last argument * sctp_server: pass #server_state to client_{add,del}() * sctp_server: make it abstract from sctp_proxy logic * sctp_server: add fetch_conn_list/0 for state introspection * sctp_proxy: add all-state event handler * sctp_proxy: add fetch_info/1 for state introspection * s1ap_proxy: use erab_uid() to log unique E-RAB ID * s1ap_proxy: add a TODO about an optional IE * s1ap_proxy: rework handle_ie/2 into handle_ie/3 * s1ap_proxy: handle_ies(): reorder arguments * s1ap_proxy: handle_ies(): pass IEI path to handle_ie() * s1ap_proxy: handle_ies(): also handle #'ProtocolExtensionField' * erab_fsm: store UID, expose it via fetch_info/1 * erab_fsm: session_modify(): split PFCP PDU handling * s1ap_proxy: cosmetic: fix wrong arity in comment * s1ap_proxy: fix IEI path leak in handle_ies/4 * erab_fsm: fix copy-paste in a log message * erab_fsm: add more logging to clarify timeout events * rebar.config: remove unneeded parse_transform * erab_fsm: add pretty printer for F-TEID * s1ap_proxy: handle UE CONTEXT RELEASE PDUs * osmo_s1gw.app.src: set 'vsn' to 'semver' * rebar.config: cosmetic: use spaces, not tabs * rebar.config: relx: fix release name (must be an atom) * rebar.config: relx: generate the version automatically * {erab_fsm,sctp_proxy}: handle_event/4: fix return value * {erab_fsm,sctp_proxy}: handle_event/4: reply to unknown calls * erab_fsm: make erab_release_{cmd,ind}/1 non-blocking * erab_fsm: handle RELEASE.{cmd,ind} in state erab_wait_setup_rsp * erab_fsm: handle RELEASE.ind in state erab_wait_release_rsp * erab_fsm: implement E-RAB MODIFY Req/Rsp procedure * erab_fsm: implement E-RAB MODIFY Ind/Cnf procedure * erab_fsm: pretty-print U2CM and U2AM during MODIFY Req/Ind * s1ap_proxy: catch exceptions in handle_pdu/2 * s1ap_proxy: handle E-RAB MODIFY REQ/RSP * s1ap_proxy: handle E-RAB MODIFICATION IND/CNF * s1ap_proxy: increment *_IN_PKT_* counters on exception * sctp_server: invalidate handler's Pid on 'EXIT' * sctp_{server,proxy}: log SCTP TSN, SID, SSN, and data len * sctp_common: new module with common SCTP/S1AP API * s1gw_metrics: use lists:filter/2 to create counters/gauges * sctp_{client,server}: disable Nagle by setting sctp_nodelay * s1gw_metrics: make exometer_report_statsd less verbose * sctp_{client,server}: add and use sctp_common:parse_addr/1 * sctp_{client,server}: accept arguments in form of a map * sctp_{client,server}: allow passing additional sockopts * sctp_{client,server}: make sctp_nodelay configurable * sctp_{client,server}: set sndbuf/recbuf explicitly -- Vadim Yanitskiy Fri, 18 Apr 2025 02:56:33 +0700 osmo-s1gw (0.2.0) unstable; urgency=medium [ Vadim Yanitskiy ] * pfcp_peer: PFCP peer implementation * erab_fsm: E-RAB FSM implementation * sctp_proxy: maintain opaque state for s1ap_proxy * config: rename upf_{loc,rem}_addr to pfcp_{loc,rem}_addr * fix misconceptions about E-RAB establishment * erab_fsm: fix API docs: UID was moved to start_link() * erab_fsm: fix message flow misconceptions * erab_fsm: implement handling of GTP-U address * erab_fsm: include Network Instance IE in PDRs and FARs * erab_fsm: fix improper IEs in session_modify_req() * erab_fsm: properly omit Network Instance IE * {sctp,s1ap}_proxy: employ E-RAB FSMs * s1ap_proxy: handle E-RAB RELEASE COMMAND/RESPONSE * config/sys.config: fix grammar in comments * pfcp_peer: store local/remote Recovery Time Stamp in #peer_state * pfcp_peer: log IP address / port of {in,out}going PDUs * pfcp_peer: implement the Heartbeat procedure * pfcp_peer: fix incorrect order of logging arguments * s1ap_proxy: fix E-RAB FSM lookup for RELEASE related IEs * pfcp_peer: fix handling of IPv6 addr in get_f_seid() * pfcp_peer: do not assign SEID=0, increment properly * s1ap_proxy: clarify a logging statement, reduce verbosity * s1ap_proxy: add types for S1AP PDU and IE tuples * s1ap_proxy: print unique E-RAB ID in error messages * s1ap_proxy_test: re-generate E-RAB RELEASE.{cmd,rsp} PDU blobs * s1ap_proxy: handle E-RAB RELEASE INDICATION * sctp_proxy: fix calling gauge_dec() on a counter * s1gw_metrics: more precise type hints * s1ap_proxy: move sctp_proxy:handle_pdu() to process_pdu_safe() * pfcp_peer: cosmetic: fix a comment * pfcp_peer: do not route incoming PDUs without SEID * pfcp_peer: implement Heartbeat Request procedure * s1gw_metrics: add counters for PFCP Heartbeat Req/Resp * s1gw_metrics: add a counter for unexpected PFCP PDUs [ Pau Espin Pedrol ] * pfcp_peer: Retry PFCP assiciation towards UPF instead of exiting * sctp_proxy: Allow handling EXIT signal * pfcp_peer: Error if requested to create session without being associated * erab_fsm: Abort and reply call with error if unable to establish PFCP sess * s1ap_proxy: Support replying errors * Introduce initial metrics support -- Vadim Yanitskiy Sat, 02 Nov 2024 03:26:52 +0700 osmo-s1gw (0.1.1) unstable; urgency=medium [ Vadim Yanitskiy ] * contrib/jenkins.sh: also run Dialyzer * config/sys.config: print prefix before msg, if present * Makefile: allow overriding the config file * rebar.{config,lock}: add pfcplib to deps[] * sctp_client: add type hints * sctp_proxy: add type hints for public API * sctp_proxy: fix typo in field name: s/mmr_port/mme_port/g * sctp_proxy: handle_pdu/2: print stacktrace on exception * sctp_server: do not let sctp_proxy:shutdown() crash the server * contrib/jenkins.sh: increase EUnit verbosity * Makefile: add 'install' target * contrib: add systemd unit file * add debian package files -- Oliver Smith Fri, 09 Aug 2024 10:02:27 +0200 osmo-s1gw (0.1.0) unstable; urgency=medium * Initial debian packaging -- Vadim Yanitskiy Mon, 05 Aug 2024 20:42:11 +0700