Closed gantonie closed 3 years ago
Most likely you are hitting the GTP-C idle timeout. That timeout is triggered is there is not GTP-C for a given context for a while. The default is 8 hours, but it can be configured and also disabled.
This is a per APN setting, here is an example to configure it https://github.com/travelping/ergw/blob/release/2.8.11/test/pgw_SUITE.erl#L175-L178
The value is in milliseconds, or the keyword infinity
to disable it.
The duplicate IP happens when the UE has not yet be informed about the terminated session. It might then believe that it has an IP which in fact has already been reused by the PGW. The PGW handler will send a Delete Bearer Request to the SGW when the timeout is triggered. Teh SGW should tell the UE to release the association and reconnect. But it seems that in your case that isn't working correctly.
I just tried with {'Idle-Timeout', infinity}
and it worked fine for while then crashed like before.
What does "a while" mean? Minutes, Hours? Can you provide a full log and complete GTP-C trace?
It generally crashes after one or two minutes. The zip folder ergw_gtpc.zip contains two files:
error: Received DOWN information for <0.1134.0> with info normal
is when the UE disconnects from erGW and error: handler failed with: not_found
when I manually disconnect them from the networkDelete Session Request
happens when I manually disconnect the UEs, not when they disconnect from erGWI did some more testing about this issue.
This problem only seems to happen when the MME is in a separate VM. It doesn't occur when the MME is installed locally on the host machine.
Just before erGW sends the error message, the Open5GS MME also returns the following error several times:
[mme] ERROR: Unknown SGW : 192.168.56.1 (../src/mme/mme-gtp-path.c:58)
The address 192.168.56.1
corresponds to the machine hosting the VM and the erGW/VPP docker.
When I add this address to the SGW list in the MME configuration, this error stops appearing but erGW still disconnect the UE after one or two minutes after the UE connection.
I also have this problem with erGW version 2.8.8. erGW 2.8.9 returns the following error at launch and doesn't seem to work.
error: crasher: initial call: ergw_cluster:'-fun.startup/0-'/0, pid: <0.1137.0>, registered_name: [], exit: {ok,[{ergw_cluster,startup,0,[{file,"/ergw/apps/ergw_cluster/src/ergw_cluster.erl"},{line,170}]},{proc_lib,init_p,3,[{file,"proc_lib.erl"},{line,211}]}]}, ancestors: [ergw_cluster,ergw_cluster_sup,<0.1134.0>], message_queue_len: 0, messages: [], links: [<0.1136.0>], dictionary: [], trap_exit: false, status: running, heap_size: 376, stack_size: 28, reductions: 185; neighbours:
The ergw_cluster
error can not come from any of the 2.8.x. It was introduce to master a while back, but those changes have not made it into any release.
You are on your own (for the moment) if you try to run ergw from master.
In master the application structure has been reorganized and the configuration is not read from a JSON or YAML file. Somewhat working config files can be found at https://github.com/travelping/ergw/tree/master/apps/ergw/test/smc_SUITE_data. The ergw config should only contain the sections for kernel and jobs, the ergw_aaa section needs to be removed and the ergw section should only contain some like:
{ergw, [{type, json}, {file, "file"}]}
found the problem in the GTP-C trace
This is the Fq-TEID that the MME sends in the Create Session Request:
Fully Qualified Tunnel Endpoint Identifier (F-TEID) : S11 MME GTP-C interface, TEID/GRE Key: 0x00000008, IPv4 192.168.56.2
IE Type: Fully Qualified Tunnel Endpoint Identifier (F-TEID) (87)
IE Length: 9
0000 .... = CR flag: 0
.... 0000 = Instance: 0
1... .... = V4: IPv4 address present
.0.. .... = V6: IPv6 address not present
..00 1010 = Interface Type: S11 MME GTP-C interface (10)
TEID/GRE Key: 0x00000008 (8)
F-TEID IPv4: 192.168.56.2
when ergw tries to send GTP-C Echo Requests to that IP, there is no response. ergw then has to assume that the MME is down and therefor terminates all contexts on that MME. You either have to make sure that the MME is reachable at that IP and responds to GTP-C Echo Requests, or change the IP in that IE to an IP where the MME is reachable (probable 172.20.16.1)
This was indeed the problem, the MME didn't process the packets sent by erGW because it considered them to come from the host machine rather than the SGW/SMF.
I solved this by redirecting the packets destined to the port 2123 of the host machine to the docker container and changing the MME configuration accordingly.
Thank you for your help.
erGW
version2.8.11
Erlang/OTP
version23
Current behavior
Hi, I am currently trying to connect two UEs on a network with erGW and UPG-VPP. The architecture of the configuration is below. Both of the UEs are connecting to the network and can access to the Internet, ping each other and ping other addresses on the network.
However after a while, erGW considers that the UEs are disconnected while there is no problem on the eNodeB. I can not access any other addresses nor the Internet in this state.
Then, when I properly disconnect the UE from the eNodeB, erGW returns this
I only need to restart erGW (not VPP) to fix this problem temporarily. The duration the UEs stay connected to erGW varies but it is generally less than a minute.
Side notes
I also noticed this two points related to the distribution of the IP addresses by erGW.
Config
The address range for the UEs is 10.0.180.100/24 - 10.0.180.200/24
This is my erGW configuration ergw-c-node.zip
Is my problem linked to a configuration problem in erGW? I thank you in advance