travelping / ergw

erGW - Erlang implementations of GGSN or P-GW

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Improve ICMP error handling behaviour in ERGW GTP Path maintenance

vkatsuba opened this issue · comments

erGW version

2.8.4

Description

In specific network environments ICMP error packets can be received as a result of intermittent errors. Considering the GTP path immediately down (and closing all contexts associated with them) can be an unnecessary "harsh" action in such environments.
This feature request proposes that the GTP path on which the ICMP error was received should initiate echo probes to confirm that the error is persistent, before considering the path down.

Current behavior

Currently when an ICMP error is received for a GTP path, it immediately triggers the the path down behaviour, resulting in the teardown of all the contexts associated with that path.

Expected behavior

When the path is in up state, having active contexts bound to it, ICMP errors don't directly trigger path down, but immediately start an echo keepalive probe which then follow the retry behaviour defined by T3*N3 configuration and verify whether the path is available or not. Until the echo probe is concluded either successfully (keeping the path state) or with failure with no response after the retries (setting the path to down state), subsequent ICMP errors should be ignored.
When the path is in down state (ICMP error could be result of down echo), ICMP errors should be ignored.
When the path is in idle (no active contexts bound to it) the current behaviour (changing the path state to down) should apply.