This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/22934 ) Change subject: FrameRelay_Emulation: Fix network side emulation ...................................................................... FrameRelay_Emulation: Fix network side emulation On the network side, by definition all PVCs are always active. Only the user side detects the active PVCs from the network side. In order to make higher-layer code agnostic, we need to spoof the related status events up the stack. Change-Id: I791a7739e5ee6301ee5c24e5824a15a7b380a655 --- M src/FrameRelay_Emulation.ttcn 1 file changed, 31 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/titan.TestPorts.AF_PACKET refs/changes/34/22934/1 diff --git a/src/FrameRelay_Emulation.ttcn b/src/FrameRelay_Emulation.ttcn index fbca3bd..bc581c6 100644 --- a/src/FrameRelay_Emulation.ttcn +++ b/src/FrameRelay_Emulation.ttcn @@ -80,7 +80,7 @@ }; -/* FR Emulation user/client component/dispatcher. Exists once per FR_CODEC_PT */ +/* FR Emulation user/client component/dispatcher. Exists once per DLC */ type component FR_Client_CT { /* message port towards the Frame Relay Emulation */ port FRemu_PT FR; @@ -198,6 +198,10 @@ q933em.service_affecting_condition := false; log("Detecting no more service affecting condition after N392 consecutive good cycles"); notify_all_clients(FRemu_Event:{link_status:=FR_LINK_STS_AVAILABLE}); + if (not q933em.cfg.ats_is_user) { + /* on the network side, all DLCs are active immediately */ + notify_all_clients_pvc_state(); + } } } @@ -349,7 +353,17 @@ runs on FR_Emulation_CT { for (var integer i:= 0; i < sizeof(ConnectionTable); i := i + 1) { if (ConnectionTable[i].vc_conn != null) { - CLIENT.send(evt) to ConnectionTable[i].vc_conn; + notify_client(ConnectionTable[i].vc_conn, evt); + } + } +} + +private function notify_all_clients_pvc_state() +runs on FR_Emulation_CT { + for (var integer i:= 0; i < sizeof(ConnectionTable); i := i + 1) { + if (ConnectionTable[i].vc_conn != null) { + notify_client(ConnectionTable[i].vc_conn, + FRemu_Event:{pvc_status:=ConnectionTable[i].q933_status}); } } } @@ -437,9 +451,22 @@ " when ", vc_conn, " tries to register for it"); mtc.stop; } - ConnectionTable[dlci].vc_conn := vc_conn; - /* optionally send async Q.933 STATUS? */ + /* on the network side, every DLC is immediately active */ + ConnectionTable[dlci] := { + vc_conn := vc_conn, + q933_status := { + dlci := dlci, + new := true, + delete := false, + active := true + } + }; PROC.reply(FRemu_register:{dlci}) to vc_conn; + if (not q933em.cfg.ats_is_user) { + notify_client(vc_conn, + FRemu_Event:{pvc_status:=ConnectionTable[dlci].q933_status}); + } + /* optionally send async Q.933 STATUS? */ } [] PROC.getcall(FRemu_unregister:{?}) -> param(dlci) sender vc_conn { -- To view, visit https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/22934 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.TestPorts.AF_PACKET Gerrit-Branch: master Gerrit-Change-Id: I791a7739e5ee6301ee5c24e5824a15a7b380a655 Gerrit-Change-Number: 22934 Gerrit-PatchSet: 1 Gerrit-Owner: laforge <laforge at osmocom.org> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210216/0a7dcfbf/attachment.htm>