* Remove mme_enb_t pool and use enb_list instead
* Refactor S1 Setup request handler
* Implement S1 Setup Failure response when maximum number of eNBs reached
If Initial UE Message with Service Request is received and
There is no Session Context
(e.g due to UEContextReleaseRequest or InitialContextSetupFailure)
MME will sends Service Reject NAS message.
This feature can be used for provisioning a limit on the size of the packets
sent by the MS to avoid packet fragmentation in the backbone network between
the MS and the GGSN/PGW and/or across the (S)Gi reference point) when some
of the backbone links does not support packets larger then 1500 octets
(ETSI TS 123 060 V15.5.0 Annex C)
Example of pgw.yaml to use this feature:
logger:
file: @localstatedir@/log/open5gs/pgw.log
parameter:
pgw:
freeDiameter: @sysconfdir@/freeDiameter/pgw.conf
gtpc:
- addr: 127.0.0.3
- addr: ::1
gtpu:
- addr: 127.0.0.3
- addr: ::1
ue_pool:
- addr: 10.45.0.1/16
- addr: cafe::1/64
dns:
- 8.8.8.8
- 8.8.4.4
- 2001:4860:4860::8888
- 2001:4860:4860::8844
mtu: 1400
This feature is useful in scenarios where SGW is run inside in a container or openstack vm i.e. behind 1-to-1 mapping NAT.
In docker/openstack environment, we often have 1-to-1 mapped NAT IP address in order for eNB to reach SGW.
But, this 1-to-1 mapping NAT IP address is not seen on SGW host and hence non UDP socket bindable.
Since SGW can only bind to IP address visible in it's host (usually a private IP beind a NAT),
it advertises the same to UE in S1AP message resulting in eNB not able to reach SGW on Uplink. This commit solves this issue
by providing a means to advertise a different IP address than the one SGW UDP socket is bound to.
Example of sgw.yaml to use this feature:
logger:
file: /root/open5gs/install/var/log/open5gs/sgw.log
level: debug
parameter:
no_ipv6: true
sgw:
gtpc:
addr: 127.0.0.2
gtpu:
dev: ens3
advertise_addr:
- 172.24.15.30
- fe80::f816:3eff:fe15:fe34
* initial commit: respond with ESM Cause PDN-Type if we only allow IPv4 or IPv6 (not both)
* works as intended, removing debug statement.
* Fix the indentation and add the reference
Co-authored-by: Sukchan Lee <acetcom@gmail.com>
* Updated the docs for setting up a working VoLTE testbed
* Fixed docs formatting
* More formatting fixes of doc
* Handling NAS Bearer Resource Modification Request to prevent crashing of mme
* Corrected tutorial with right APN settings required in Mongo DB for VoLTE UE
* HACK: Don't retransmit InitialContextSetupReq
Related: #256
* HACK: Don't use buggy sa1p_copy() in eNBConfigTransfer
Related: #257
* mme: don't reject with 'IMSI is unknown in HLR' (permanent reject)
* MME: Implement S6a result -> EMM cause code mapping
Closes: #263
* Spencer: modification to Haralds fix because macros are now renamed
* MME: don't assert on MAC failures of uplink NAS frames
Closes: #267
* MME: Avoid ogs_assert() in many situations
We don't want to crash the entire program just because a message
received from an external entity didn't match some of our expectations.
* compiles fine, checked DIFFs and only difference is the ogs_assert -> ogs_expect
The aper_encode function returns the number of encoded bits and when
converting to bytes we should round up or use the ((.encoded + 7) / 8)
formula as described in per_encoder.h
Fixes: #257
The check for whether the AVP exists in the ULA was wrong, resulting in
the MME refusing to proceed without this AVP. However, it is not a
mandatory AVP.