From 49f3ea818b66d9ee49c7142ce514c3927243b21e Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Fri, 5 Feb 2021 21:01:09 +0100 Subject: NS_Provider_FR: Drop received messages until limk+pvc are up Related: OS#4974 Change-Id: I69f9cf485b0a9eaf9294236f50ffcf4af20f1d20 --- library/NS_Provider_FR.ttcn | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/library/NS_Provider_FR.ttcn b/library/NS_Provider_FR.ttcn index 5138d824..30aadef3 100644 --- a/library/NS_Provider_FR.ttcn +++ b/library/NS_Provider_FR.ttcn @@ -50,8 +50,21 @@ function main(NSVCConfiguration config, NSConfiguration nsconfig, charstring id) var PDU_NS rx_pdu; alt { - [] FR.receive(FrameRelayFrame:?) -> value rx_fr { - NSE.send(dec_PDU_NS(rx_fr.payload)); + [not link_available] FR.receive(FrameRelayFrame:?) -> value rx_fr { + log("Dropoing Rx Msg because FR link not yet available", rx_fr); + /* this can happen if the remote side has not yet recognized the + * link is dead; don' fail here */ + } + [link_available and pvc_active] FR.receive(tr_FR(config.provider.fr.dlci)) -> value rx_fr { + var PDU_NS ns := dec_PDU_NS(rx_fr.payload); + NSE.send(ns); + } + [not pvc_active] FR.receive(tr_FR(config.provider.fr.dlci)) -> value rx_fr { + log("Dropoing Rx Msg because FR DLC not yet available", rx_fr); + } + [] FR.receive(tr_FR(?)) -> value rx_fr { + log("Dropoing Rx Msg because DLCI unknown", rx_fr); + setverdict(fail); } [] FR.receive(FRemu_Event:{link_status:=FR_LINK_STS_AVAILABLE}) -> value rx_frevt { -- cgit v1.2.3