MCPcopy Create free account
hub / github.com/RangeNetworks/openbts / L3SDCCHLoop

Function L3SDCCHLoop

Control/L3StateMachine.cpp:950–967  ·  view source on GitHub ↗

TODO: When a channel is first opened we should save the CMServiceRequest or LocationUpdateRequest or PagingResponse and initiate an identification and optional authorization procedure on the channel itself. That is true for both GSM and UMTS. Once we have an IMSI, we can create TranEntrys for each procedure that is MO, and also move each each MTC or MT-SMS TranEntry onto this channel. If there wa

Source from the content-addressed store, hash-verified

948// FOR NOW:
949// Just have a primary transaction on the channel, which is known from the GSMState aka CallState.
950static void L3SDCCHLoop(L3LogicalChannel*dcch)
951{
952 assert(dcch->chtype() == SDCCHType);
953 while (dcch->chanRunning()) {
954 if (dcch->radioFailure()) { // Checks expiry of T3109, set at 30s.
955 LOG(NOTICE) << "radio link failure, dropped call";
956 //gNewTransactionTable.ttLostChannel(dcch);
957 dcch->chanRelease(HARDRELEASE); // Kill off all the transactions associated with this channel.
958 return;
959 }
960
961 // Any L3 Messages from the MS side on this channel?
962 // Wait 100ms. I made this number up out of thin air.
963 // Since an incoming L3 message will be returned instantly, this delay is the effective delay
964 // in handling SIP messages or timers, and could be much longer since none of those are precision timers.
965 if (checkemMessages(dcch,100)) { gResetWatchdog(); continue; }
966 }
967}
968
969// dcch may be SDCCH or FACCH.
970// This does not return until the channel is released.

Callers 1

L3DCCHLoopFunction · 0.85

Calls 6

checkemMessagesFunction · 0.85
gResetWatchdogFunction · 0.85
chanRunningMethod · 0.80
chanReleaseMethod · 0.80
chtypeMethod · 0.45
radioFailureMethod · 0.45

Tested by

no test coverage detected