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

Method processHandoverFailure

Peering/Peering.cpp:438–465  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

436
437
438void PeerInterface::processHandoverFailure(const struct sockaddr_in* peer, const char* message)
439{
440 // This indication means that inbound handover processing failed
441 // on the other BTS. This BTS cannot handover this call right now.
442 unsigned transactionID;
443 unsigned cause;
444 unsigned holdoff = gConfig.getNum("GSM.Handover.FailureHoldoff");
445 unsigned res = sscanf(message,"IND HANDOVER_FAILURE %u %u %u", &transactionID, &cause, &holdoff);
446 if (res==0) {
447 LOG(ALERT) << "cannot parse peering message " << message;
448 return;
449 }
450
451 if (res<3) {
452 LOG(ALERT) << "peering message missing parameters " << message;
453 }
454
455 // Set holdoff on this BTS.
456
457 // FIXME -- We need to decide what else to do here. See #817.
458 gNeighborTable.holdOff(peer,holdoff);
459
460 char rsp[50];
461 sprintf(rsp,"ACK HANDOVER_FAILURE %u", transactionID);
462 sendMessage(peer,rsp);
463
464 return;
465}
466
467
468

Callers

nothing calls this directly

Calls 1

holdOffMethod · 0.80

Tested by

no test coverage detected