Don't permit anything bug HNB (de)registration until HNB is registered
UE registration or other HNBAP procedures should only happen once the HNB is registered. Change-Id: Iaa62ce89f4ffbff868309bfb8b1df7ebcca5c44a
This commit is contained in:
parent
6fc9fad8b7
commit
a08aeac9dd
|
@ -535,32 +535,41 @@ static int hnbgw_rx_initiating_msg(struct hnb_context *hnb, HNBAP_InitiatingMess
|
|||
{
|
||||
int rc = 0;
|
||||
|
||||
switch (imsg->procedureCode) {
|
||||
case HNBAP_ProcedureCode_id_HNBRegister: /* 8.2 */
|
||||
rc = hnbgw_rx_hnb_register_req(hnb, &imsg->value);
|
||||
break;
|
||||
case HNBAP_ProcedureCode_id_HNBDe_Register: /* 8.3 */
|
||||
rc = hnbgw_rx_hnb_deregister(hnb, &imsg->value);
|
||||
break;
|
||||
case HNBAP_ProcedureCode_id_UERegister: /* 8.4 */
|
||||
rc = hnbgw_rx_ue_register_req(hnb, &imsg->value);
|
||||
break;
|
||||
case HNBAP_ProcedureCode_id_UEDe_Register: /* 8.5 */
|
||||
rc = hnbgw_rx_ue_deregister(hnb, &imsg->value);
|
||||
break;
|
||||
case HNBAP_ProcedureCode_id_ErrorIndication: /* 8.6 */
|
||||
rc = hnbgw_rx_err_ind(hnb, &imsg->value);
|
||||
break;
|
||||
case HNBAP_ProcedureCode_id_TNLUpdate: /* 8.9 */
|
||||
case HNBAP_ProcedureCode_id_HNBConfigTransfer: /* 8.10 */
|
||||
case HNBAP_ProcedureCode_id_RelocationComplete: /* 8.11 */
|
||||
case HNBAP_ProcedureCode_id_U_RNTIQuery: /* 8.12 */
|
||||
case HNBAP_ProcedureCode_id_privateMessage:
|
||||
LOGHNB(hnb, DHNBAP, LOGL_NOTICE, "Unimplemented HNBAP Procedure %ld\n", imsg->procedureCode);
|
||||
break;
|
||||
default:
|
||||
LOGHNB(hnb, DHNBAP, LOGL_NOTICE, "Unknown HNBAP Procedure %ld\n", imsg->procedureCode);
|
||||
break;
|
||||
if (!hnb->hnb_registered) {
|
||||
switch (imsg->procedureCode) {
|
||||
case HNBAP_ProcedureCode_id_HNBRegister: /* 8.2 */
|
||||
rc = hnbgw_rx_hnb_register_req(hnb, &imsg->value);
|
||||
break;
|
||||
case HNBAP_ProcedureCode_id_HNBDe_Register: /* 8.3 */
|
||||
rc = hnbgw_rx_hnb_deregister(hnb, &imsg->value);
|
||||
break;
|
||||
default:
|
||||
LOGHNB(hnb, DHNBAP, LOGL_NOTICE, "HNBAP Procedure %ld not permitted for de-registered HNB\n",
|
||||
imsg->procedureCode);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch (imsg->procedureCode) {
|
||||
case HNBAP_ProcedureCode_id_UERegister: /* 8.4 */
|
||||
rc = hnbgw_rx_ue_register_req(hnb, &imsg->value);
|
||||
break;
|
||||
case HNBAP_ProcedureCode_id_UEDe_Register: /* 8.5 */
|
||||
rc = hnbgw_rx_ue_deregister(hnb, &imsg->value);
|
||||
break;
|
||||
case HNBAP_ProcedureCode_id_ErrorIndication: /* 8.6 */
|
||||
rc = hnbgw_rx_err_ind(hnb, &imsg->value);
|
||||
break;
|
||||
case HNBAP_ProcedureCode_id_TNLUpdate: /* 8.9 */
|
||||
case HNBAP_ProcedureCode_id_HNBConfigTransfer: /* 8.10 */
|
||||
case HNBAP_ProcedureCode_id_RelocationComplete: /* 8.11 */
|
||||
case HNBAP_ProcedureCode_id_U_RNTIQuery: /* 8.12 */
|
||||
case HNBAP_ProcedureCode_id_privateMessage:
|
||||
LOGHNB(hnb, DHNBAP, LOGL_NOTICE, "Unimplemented HNBAP Procedure %ld\n", imsg->procedureCode);
|
||||
break;
|
||||
default:
|
||||
LOGHNB(hnb, DHNBAP, LOGL_NOTICE, "Unknown HNBAP Procedure %ld\n", imsg->procedureCode);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return rc;
|
||||
|
|
Loading…
Reference in New Issue