Features 🚀
- #408 Update alpine to 3.14 for Dockerfile
- #405 New IP assignment, random init, fifo reuse of IP
- #404 Add PSDBU part or the EPFAR feature
- #393 Add NAT to the TDF function
- #357 Add PFPC User ID to Session Establishment Request
- #365 Add UP Feature checking
Bugfixes 🐛
- #402 Bump gtp and pfcp lib to normalize FQDNs on ingres
- #391 Handle timeout in PFCP send
- #356 Fix PFCP control during HSS Initiated Subscribed QoS Modification
Improvements 💡
- #354 Refactor application split and with it also config handling
Bugfixes 🐛
- #401 Lowercase
APN
expansion
Bugfixes 🐛
- #395 Lowercase
APN
before further processing it
Improvements 💡
- #380 Start use image
quay.io/travelping/alpine-erlang:23.3.4
(the image is included fix for kernel) - #373 Start use
master
ofprometheus
(included all speedup fixes)
Bugfixes 🐛
- #376 Change
normal
termination reason
Dependencies ⚙️
Improvements 💡
- #369 Start use fork of
prometheus
with speedup fix
Bugfixes 🐛
- cfdf116 DNS lookup responses with no answer records are not cached
As a temporary fix, the simple DNS cache is used on this patch release.
Improvements 💡
- #343 Update
alpine
to3.13
forDockerfile
(C) musl-1.2.1.tar.gz (sig) - August 4, 2020 This release features the new "mallocng" malloc implementation, replacing musl's original dlmalloc-like allocator that suffered from fundamental design problems. Its major user-facing new properties are the ability to return freed memory on a much finer granularity and avoidance of many catastrophic fragmentation patterns. In addition it provides strong hardening against memory usage errors by the caller, including detection of overflows, double-free, and use-after-free, and does not admit corruption of allocator state via these errors.
Dependencies ⚙️
Bugfixes 🐛
Features 🚀
- #331 implement a "real" DNS response cache
- #333 Remove prefix
v
from image tag - #341 Udpate OTP image to
23.2.7
- #334 add
UP VTIME
feature support
Bugfixes 🐛
- #326 Return proper sender
TEID
when rejecting new sessions - #327 Use
Bearer QoS
from session inCreate Session Response
- #325 Switch to
rand:uniform/1
forSEID
generation
Documentations 📚
- #318 Add
path_management
toREADME
Dependencies ⚙️
Improvements 💡
- #310 Shuffle the config loading to make it available earlier
Refactorings 🔥
- #313 Remove
/metrics
fromSwagger
definitions
Features 🚀
- #315 Implement configurable
GTP
pathICMP
error behaviour - #306 Implement configurable
GTP
RTT
metrics interval
Dependencies ⚙️
Features 🚀
- #304 Multiarch build support on
Travis
andGitLab-CI
Bugfixes 🐛
- #298 Remove non use option and fix
dev-sx.config
Bugfixes 🐛
- #296 Fix reliably delete
PFCP
session
Documentations 📚
- #285 Add missing decription of
PFCP
metrics
Dependencies ⚙️
Improvements 💡
- #293
PFCP
reduce log output
Refactorings 🔥
Features 🚀
- #278 Add global
node_id
config setting and use it inPFCP
- #279 Replace context key tuples with records
- #283 Configurable retry timings for
SMF
/UPF
heartbeats - #286 Added
PFCP
Sx
association metric - #294 Change socket config
split_sockets
tosend_port
Bugfixes 🐛
- #282 Fix online charging
URR
link
- CT: change the nested groups in the GTP suites - PR #276
- A collection of small CT fixes - PR #274
- Use random
udp
source port forGTP-C
requests - PR #273 - Fix reading from socket error queue - PR #272
- Updated ergw_aaa tag to 3.6.4 - PR #271
- Improve session termination reason handling - PR #271
- Add miss test case of proxy_lib_SUITE - PR #270
- Bump OTP to
23.1.2.0
and22.3.4.12
- Fix issue #245: provided correct config example of
sockets
section - Remove
sx_socket
option becausesx
socket is now handled in the sockets section ofergw
- Fix proxy
gw
selection when agw
isdown
- Fix issue #133 for correct display of IPv4 and IPv6
- Refactor handler contexts
- Implement UP based TEID assignment
- Remove reliance on User Plane IP Resource Information IE
- Update ergw_aaa tag to 3.6.2
- Fix Common Tests
- Handle timeouts create
session
/pdp_context
requests - Extend delete contexts REST API for delete all contexts:
/api/v1/contexts
- Update prometheus_diameter_collector tag to 1.0.1 for handle discarded answers in the diameter stats
- Added SemVer for
erGw
for skip step of changerebar.config
each time when version of project will update.
- fix resource leak in TEI mngr
- fix path maintenace, attempts to contact a peer where resetting that peer state to UP
-
feature: provide implementation for
DELETE /api/v1/contexts/:count
for GTP-Proxy setups ("drain") -
feature: configurable TEID prefix to use
-
feature: async IP assignment for IPv4 and IPv6
-
feature: simple cache for Node Selection results based upon DNS queries
-
fix handling DNS responses without IP in Sx node selection (would shutdown of ergw)
-
fix Change Reporting Indication/Action (Offline Charging)
-
fix encoding of IE 'Indication'
-
improve GTP Path Maintenance procedures. NOTE: In GTP proxy use of ergw the path maintenance now stops forwarding traffic to a non-responsive target PGW after it detects, based on GTP echo probes, that it is not reachable. The PGW path is blocked for a configurable duration (default 1 hour) for forwarding. The configuration of the duration is done with the
down_timeout
parameter of thepath_management
section in the node config (see:config/ergw-c-node.config
for example) -
unify socket definition. NOTE: this requires changes to the configuration of ergw:
sx_socket
is removed from the ergw configuration,sx
socket is now handled in thesockets
section of ergw. See config/ergw-c-node.config for an example. -
switch to Erlang/OTP 23.1
-
increase test coverage
- implement path monitoring profiles for outgoing (active) paths
- bump ergw_aaa dependency to 3.5.0 to support
state stats and diameter avp filters - bump prometheus_diameter_collector to report internal plain error counters in the same manner as the diameter result codes.
- upgrade to OTP-23.0.3
- fix handling
context
attribute of ProxyMap response - fix
netdev
configuration option - switch to Erlang/OTP 23.0 as base runtime
- bump ergw_aaa for request tracking changes, fixes accounting of outstanding requests
- fix GTP path failure detection
- test enhancements
- handle UPF removal/failure in proxy case
- make offline URR generation dependent on global setting
- use seperate socket in PFCP server of send and recv
- Offline Charging (Rf):
- include Traffic-Data-Volumes
- add Time of First/Last packet
- support different rating groups for online and offline charging in the same PCC rule (split charging)
- implemented RFC/3GPP compliant selection of NAPTR records by preference
- added late A/AAAA resolution of NAPTR/SRV pointers
- update gtplib to fix a few corner cases in GTP encoding
- fix GTPv1 cause code encoding
- switch from gen_socket to Erlang native socket.erl for GTP-C and PFCP
- upgrade eradius (through ergw_aaa) for async, retries and timeout option
- proxy mode config fixes
- experimental support for Erlang/OTP 23.0
- RADIUS is fixed and under CI
- UP Inactviity Timer feature add, use for session idle timeout
- Support 5G (and WiFi offload) Secondary RAT Usage Data Reporting
- rework dual address bearer support to actually conform to the specs
- implemented 5G Nsbf_Management API
- reselect UPF node based on outcome of authentication
- added PFCP metrics
- better support permanent Sx nodes (config change)
- multi UPF support
- switch from lager to Erlang logger
- new load control framework in ergw_aaa
- corrected OCS free behavior
- NASREQ Authentication and Accounting
- docker images moved to quay.io
- TDF
- (very) improved Gx PCC handling
- Gx RAR support
- replace exometer with prometheus.io exporter
- Support Erlang OTP 21.3 through 22.0
- stabilize CUPS support
- beta quality DIAMETER Gx, Gy and Rf support
- many bug fixes (see git log)
- Rewrite user plane interface to use control and user plane separation of EPC nodes (CUPS) architecture, compatible UPF implementation
- Drop tetrapak build support
- Support Erlang OTP 20.1 through 21.0
- Implement NAPTR based node selection
- IPv6 control and user plane support
- Beta quality features:
- S11 / SAE-GW
- change Modify Bearer Request SGW change detection for RAU/TAU/HO
- change session collision detection to take only IMSI or IMEI, not both
- implement destination port handling for GTPv2-C triggered request
- GGSN outgoing load balancing in proxy mode
- fix context path counters
- make sure colliding session are terminated before the new session is registered (avoiding a race)
- handle access point names as DNS labels (make them case insensitive)
- decouple sequence numbers in proxy mode again (fixes bug introduced in last release)
- properly clean DP context on shutdown
- catch duplicate context registration
- remove colliding tunnels when a new context is created (mandated by 3GPP procedures)
- implement 3GPP TS 23.401, Sect. 5.4.2.2, HSS Initiated Subscribed QoS Modification
- fix handling of freebind and netdev socket options
- add rate limiting for incoming requests, the default is 100 req/s
- upgrade gtplib, fix PCO's with vendor extensions
- fix handling of IP's in metrics names
- Serve Prometheus metrics on
/metrics
- populate missing version field on request
- fix resend behaviour in proxy mode
- support Erlang 20.0
- optimise GTP message encoding
- add more metrics and export them through HTTP API
- enhance the config validation
- change the handler configuration to be inline with the documentation
- enhance the proxy DS API
- add HTTP status API
- GTP context no longer crashes when error replies do not contain mandatory IEs
- unify translation logic in proxy mode
- more unit test
- fix path restart when multiple context are active
- better directional filtering of Request/Responses in proxy mode
- added some more test for proxy functions
- extensive unit tests for GGSN, PGW and proxy modes
- fix QoS IE encoding for extended bit rates
- fix path restart behavior
- implement GTPv2 messages:
- Change Notification Request
- Delete Bearer Request
- Modify Bearer Command
- implement GTPv1 messages:
- MS Info Change Notification Request
- SGSN initiated Update PDP Context Request
- GGSN initiated Delete PDP Context Request
- drop S2a support (will be readded later)
- support more message types in GTPv2 proxy
- fix TEID translation GTPv2 proxy
- fix retransmit timer handling for the proxy case
- added basic test suite for PGW
- (experimental) support for IPv6 as transport for GTP (not as payload)
- more fixes for the GTPv2 proxy, not yet working
- fix retransmission cache timeout bug
- add rcvbuf option to sockets
- use full sequence number range for GTPv2
- send end marker on S5/S8 GTP-U tunnels during hand over
- properly handle GTP version changes during handover
- validate TEID in requests
- socket are restarted after a crash now
- handle GTP v1 and v2 on the same path
- use seperate TEID for GTP-C and GTP-U
- add configuration for gateways home MCC and MNC
- GTP-U error indication is now handled properly
- SGW and SGSN handover procedures are working now
- rework the configuration model, see CONFIG.md for details
- preliminary API for exporting runtime state information (unstable, subject to change)
- complete S5/S8 interface
- initiate Accounting sessin after authentication
- extend error message on send failures
- use TEI from updated context for PDP Update Response
- rework IP pool handling (configuration format changed!)
- JSON data source for proxy mappings
- handle GTP-C decoder failures
- support session default settings
- AAA support for S5/S8
- fix IP pool handling
- replace records in API handler with maps
- replace IP allocator with constant time variant
- update to gtplib 1.1.0+ API
- Initial release