libgtp: Fix use os gtp_retranstimeout() APIs in osmo-ggsn and osmo-sgsn
Currently libgtp provides gtp_retranstimeout() and gtp_retrans() APIs to handle retransmission of tx packets and dropping of enqueued duplicate checks.
The idea is that gtp_retranstimeout() provides through an out param the first time when gtp_retrans() needs to be called to handle all events.
However, that means whenever a new packet is transmitted/enqueued using libgtp API, gtp_retranstimeout() must be called by the application to schedule the timer again, because retransmission from that new packet may come before other already-scheduled events.
We are currently not doing that.
I am actually preparing a patch to drop those APIs completely (leave them as no-ops actually) and handle everything correctly internally through osmocom timers. That part is mostly done, but I need to remember to update the internal timers every time gtp_req() is called.
- Status changed from New to In Progress
- % Done changed from 0 to 50
libgtp + osmo-ggsn + sgsnemu patches:
remote: https://gerrit.osmocom.org/c/osmo-ggsn/+/15309 gtp: Manage queue timers internally
remote: https://gerrit.osmocom.org/c/osmo-ggsn/+/15310 ggsn, sgsnemu: Drop use of no-op deprecated gtp_retrans* APIs
osmo-sgsn patches (dropping use of gtp_retrans*()): TODO