Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-pcu/+/32360
to look at the new patch set (#4).
Change subject: ms: Rewrite MS release lifecycle ......................................................................
ms: Rewrite MS release lifecycle
This commit changes lots of stuff in the MS release lifecycle, but there's no really good way to split this into patches which make sense, since all the chaos is intensively entangled.
Get rid of the ms_callback complex mess, it is not needed at all.
Previous MS release was strange due to the existance of previous ms_callback.idle concept and MS storage: the MS signalled when it went idle (no TBFs attached) and waited for somebody outside to free it, while then arming itself the release timer to release itself if it was not released by whoever.
The new lifecycle follows an easier (expected) approach: Whenever all TBFs become detached from the MS and it becomes idle (use_count becomes 0), then it frees its reserved resources (TFI, etc.) and either: * frees itself immediatelly under certain conditions (release timeout configured = 0 or MS garbage with TLLI=GSM_RESERVED_TMSI) * Arms release_timer and frees itself when it triggers.
If during release_timer the MS is required again (for instance because a new TBF with TLLI/IMSI of the MS is observed), then a TBF is attached to the MS and it is considered to become active again, hence the release_timer is stopped.
OS#6002 Change-Id: Ibe5115bc15bb4d76026918adc1be79469c2f4839 --- M src/bts.cpp M src/gprs_ms.c M src/gprs_ms.h M tests/alloc/AllocTest.err M tests/alloc/AllocTest.ok M tests/app_info/AppInfoTest.err M tests/ms/MsTest.cpp M tests/ms/MsTest.err M tests/ms/MsTest.ok M tests/tbf/TbfTest.err M tests/ulc/PdchUlcTest.err 11 files changed, 388 insertions(+), 551 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/60/32360/4