NS_Provider_FR: Drop received messages until limk+pvc are up

Related: OS#4974
Change-Id: I69f9cf485b0a9eaf9294236f50ffcf4af20f1d20
diff --git a/library/NS_Provider_FR.ttcn b/library/NS_Provider_FR.ttcn
index 5138d82..30aadef 100644
--- a/library/NS_Provider_FR.ttcn
+++ b/library/NS_Provider_FR.ttcn
@@ -50,8 +50,21 @@
 		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 {