aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2021-01-31 17:06:34 +0100
committerlaforge <laforge@osmocom.org>2021-02-01 14:30:53 +0000
commit2319014f7efd98a8f86ac0fcb0dfaee257249e96 (patch)
treed363f15311d262210e9dcee557c2d2fa14e7275f /src
parentaf916f1c7bc15935034364b9c646193cefe54709 (diff)
frame_relay: Send "Fuil Status" ENQUIRY after link recovers
If we are the 'user' side of FR and a link has just recovered, we should ensure the next STATUS is for "full status". This way we learn about the present DLCs as quickly as possible, saving up to 10 seconds of further delay in link recovery. Related: OS#4999 Change-Id: I6f905a18a7d130a3c02b4a3e7a2a2dc24afc0ea1
Diffstat (limited to 'src')
-rw-r--r--src/gb/frame_relay.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gb/frame_relay.c b/src/gb/frame_relay.c
index 3a51700b..03b847aa 100644
--- a/src/gb/frame_relay.c
+++ b/src/gb/frame_relay.c
@@ -430,8 +430,12 @@ static void check_link_state(struct osmo_fr_link *link, bool valid)
LOGPFRL(link, LOGL_NOTICE, "Link recovered\n");
link->state = true;
- if (link->role == FR_ROLE_USER_EQUIPMENT)
+ if (link->role == FR_ROLE_USER_EQUIPMENT) {
+ /* make sure the next STATUS ENQUIRY is for a full
+ * status report to get the configred DLCs ASAP */
+ link->polling_count = 0;
return;
+ }
llist_for_each_entry(dlc, &link->dlc_list, list) {
if (!dlc->add && !dlc->del)