neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hnbgw/+/36141?usp=email )
Change subject: improve HNBAP error logging ...................................................................... improve HNBAP error logging We have a situation where HNBAP is not answered by osmo-hnbgw, and the log is all silent. Add logging to a lot more of the possible HNBAP failure paths to find out what is wrong. Related: SYS#6810 Change-Id: I17d2809f59087d32e7c11a3ada1d3fadf6f0b660 --- M src/osmo-hnbgw/hnbgw.c M src/osmo-hnbgw/hnbgw_hnbap.c 2 files changed, 33 insertions(+), 4 deletions(-) Approvals: neels: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-hnbgw/hnbgw.c b/src/osmo-hnbgw/hnbgw.c index 6f74d04..43fcaca 100644 --- a/src/osmo-hnbgw/hnbgw.c +++ b/src/osmo-hnbgw/hnbgw.c @@ -155,8 +155,7 @@ struct ue_context *ue; ue = talloc_zero(g_hnbgw, struct ue_context); - if (!ue) - return NULL; + OSMO_ASSERT(ue); ue->hnb = hnb; if (imsi) diff --git a/src/osmo-hnbgw/hnbgw_hnbap.c b/src/osmo-hnbgw/hnbgw_hnbap.c index b220918..f860173 100644 --- a/src/osmo-hnbgw/hnbgw_hnbap.c +++ b/src/osmo-hnbgw/hnbgw_hnbap.c @@ -194,6 +194,9 @@ rc = hnbap_encode_ueregisteraccepties(&accept_out, &accept); ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_OCTET_STRING, &accept.uE_Identity.choice.iMSI); if (rc < 0) { + LOGHNB(ue->hnb, DHNBAP, LOGL_ERROR, + "Failed to encode HNBAP UE Register Accept message for UE IMSI-%s TMSI-0x%08x\n", + ue->imsi, ue->tmsi); return rc; } @@ -204,7 +207,12 @@ ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_UERegisterAccept, &accept_out); - return hnbgw_hnbap_tx(ue->hnb, msg); + rc = hnbgw_hnbap_tx(ue->hnb, msg); + if (rc) + LOGHNB(ue->hnb, DHNBAP, LOGL_ERROR, + "Failed to enqueue HNBAP UE Register Accept message for UE IMSI-%s TMSI-0x%08x\n", + ue->imsi, ue->tmsi); + return rc; } static int hnbgw_tx_ue_register_rej(struct hnb_context *hnb, HNBAP_UE_Identity_t *ue_id, const struct HNBAP_Cause *cause) @@ -426,6 +434,7 @@ } if (rc < 0) { + LOGHNB(hnb, DHNBAP, LOGL_ERROR, "Failed to encode HNBAP UE Register Accept for TMSI 0x%08x\n", tmsi); /* Encoding failed. Nothing in 'accept_out'. */ /* If we allocated the UE context but the UE REGISTER fails, get rid of it again: there will likely * never be a UE DE-REGISTER for this UE from the HNB, and the ue_context would linger forever. */ @@ -441,6 +450,8 @@ &accept_out); rc = hnbgw_hnbap_tx(hnb, msg); ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_UERegisterAccept, &accept_out); + if (rc) + LOGHNB(hnb, DHNBAP, LOGL_ERROR, "Failed to transmit HNBAP UE Register Accept for TMSI 0x%08x\n", tmsi); return rc; } @@ -642,14 +653,19 @@ ue = ue_context_by_imsi(imsi); if (!ue) ue = ue_allocated = ue_context_alloc(ctx, imsi, 0); + else + LOGHNB(ctx, DHNBAP, LOGL_DEBUG, "UE context for IMSI %s already exists\n", imsi); /* Send UERegisterAccept */ rc = hnbgw_tx_ue_register_acc(ue); if (rc < 0) { + LOGHNB(ctx, DHNBAP, LOGL_ERROR, "Failed to transmit HNBAP UE Register Accept for IMSI %s\n", imsi); /* If we allocated the UE context but the UE REGISTER fails, get rid of it again: there will likely * never be a UE DE-REGISTER for this UE from the HNB, and the ue_context would linger forever. */ - if (ue_allocated) + if (ue_allocated) { ue_context_free(ue_allocated); + LOGHNB(ctx, DHNBAP, LOGL_INFO, "Freed UE context for IMSI %s\n", imsi); + } } free_and_return_rc: hnbap_free_ueregisterrequesties(&ies); -- To view, visit https://gerrit.osmocom.org/c/osmo-hnbgw/+/36141?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hnbgw Gerrit-Branch: master Gerrit-Change-Id: I17d2809f59087d32e7c11a3ada1d3fadf6f0b660 Gerrit-Change-Number: 36141 Gerrit-PatchSet: 4 Gerrit-Owner: neels <nhofm...@sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels <nhofm...@sysmocom.de> Gerrit-Reviewer: pespin <pes...@sysmocom.de> Gerrit-CC: dexter <pma...@sysmocom.de> Gerrit-MessageType: merged