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.
sgsn_libgtp.c: Drop use of deprecated libgtp APIs gtp_retrans*()
Since osmo-ggsn.git c94837c6a401bf0f80791b619a9b4cfbe9160afd, those
APIs are a no-op since timers are tracked internally through osmocom
APIs (and at the same time, new implementation fixes some timing related
As a result, osmo-sgsn depends now on at least that libgtp commit. Since
it's not yet avaiable on latest libgtp release, let's track it down in
TODO-RELESE to not forget to update libgtp requirements during osmo-sgsn
#2 Updated by pespin over 1 year ago
- 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
#3 Updated by pespin over 1 year ago
- Status changed from In Progress to Feedback
- % Done changed from 50 to 90