From 8b3fa5ff9f0cdff465bec71e419d71e99530f719 Mon Sep 17 00:00:00 2001 From: Sukchan Lee Date: Tue, 31 May 2022 21:44:53 +0900 Subject: [PATCH] Follow-up the contribution #1566, #1567 --- docs/_docs/hardware/01-genodebs.md | 2 ++ lib/gtp/xact.c | 15 +++++++++------ lib/pfcp/xact.c | 24 +++++++++++++++++------- 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/docs/_docs/hardware/01-genodebs.md b/docs/_docs/hardware/01-genodebs.md index 85cfb8c27e..5f343fc8b2 100644 --- a/docs/_docs/hardware/01-genodebs.md +++ b/docs/_docs/hardware/01-genodebs.md @@ -42,6 +42,8 @@ If you have tested radio hardware from a vendor not listed with Open5GS, please * Nokia FW2PC BC28 Flexi Zone G2 Outdoor Micro FDD LTE 700 MHz High Power * Nokia FWH1 B38 Flexi Zone Outdoor Micro TD LTE 2600 MHz * Nokia FRGY Flexi BTS BBU with Nokia FRCG RRU Band 5 850Mhz FDD 40W. Version 16.1A to 19.0 + * Nokia FW2FA Flexi Zone Mini-Macro Outdoor BTS, 2x20w Band 39 + * Nokia FWGR Flexi Zone Mini-Macro Outdoor BTS, 2x20w Band 1 * Ruckus Q710 and Q910 ### 4G/5G Software Stacks + SDRs diff --git a/lib/gtp/xact.c b/lib/gtp/xact.c index 629ebc41ee..dff1f93813 100644 --- a/lib/gtp/xact.c +++ b/lib/gtp/xact.c @@ -620,7 +620,6 @@ static int ogs_gtp_xact_update_rx(ogs_gtp_xact_t *xact, uint8_t type) int ogs_gtp_xact_commit(ogs_gtp_xact_t *xact) { - int rv; char buf[OGS_ADDRSTRLEN]; uint8_t type; @@ -726,10 +725,13 @@ int ogs_gtp_xact_commit(ogs_gtp_xact_t *xact) pkbuf = xact->seq[xact->step-1].pkbuf; ogs_assert(pkbuf); - rv = ogs_gtp_sendto(xact->gnode, pkbuf); - ogs_expect(rv == OGS_OK); + if (ogs_gtp_sendto(xact->gnode, pkbuf) != OGS_OK) { + ogs_error("ogs_gtp_sendto() failed"); + ogs_gtp_xact_delete(xact); + return OGS_ERROR; + } - return rv; + return OGS_OK; } static void response_timeout(void *data) @@ -1068,7 +1070,8 @@ static ogs_gtp_xact_t *ogs_gtp_xact_find_by_xid( } break; default: - ogs_warn("%s: Unexpected stage %u.", OGS_FUNC, stage); + ogs_warn("Unexpected stage %u.", stage); + ogs_assert_if_reached(); return NULL; } @@ -1085,7 +1088,7 @@ static ogs_gtp_xact_t *ogs_gtp_xact_find_by_xid( } } - ogs_error("[%d] Failed Finding xact type %u from GTPv%u peer [%s]:%d", + ogs_debug("[%d] Cannot find xact type %u from GTPv%u peer [%s]:%d", xid, type, gtp_version, OGS_ADDR(&gnode->addr, buf), OGS_PORT(&gnode->addr)); return NULL; diff --git a/lib/pfcp/xact.c b/lib/pfcp/xact.c index b78ae4f9a0..af72213d9b 100644 --- a/lib/pfcp/xact.c +++ b/lib/pfcp/xact.c @@ -459,7 +459,6 @@ static int ogs_pfcp_xact_update_rx(ogs_pfcp_xact_t *xact, uint8_t type) int ogs_pfcp_xact_commit(ogs_pfcp_xact_t *xact) { - int rv; char buf[OGS_ADDRSTRLEN]; uint8_t type; @@ -562,8 +561,11 @@ int ogs_pfcp_xact_commit(ogs_pfcp_xact_t *xact) pkbuf = xact->seq[xact->step-1].pkbuf; ogs_assert(pkbuf); - rv = ogs_pfcp_sendto(xact->node, pkbuf); - ogs_expect(rv == OGS_OK); + if (ogs_pfcp_sendto(xact->node, pkbuf) != OGS_OK) { + ogs_error("ogs_pfcp_sendto() failed"); + ogs_pfcp_xact_delete(xact); + return OGS_ERROR; + } return OGS_OK; } @@ -756,10 +758,13 @@ static ogs_pfcp_xact_t *ogs_pfcp_xact_find_by_xid( ogs_list_t *list = NULL; ogs_pfcp_xact_t *xact = NULL; + ogs_pfcp_xact_stage_t stage; ogs_assert(node); - switch (ogs_pfcp_xact_get_stage(type, xid)) { + stage = ogs_pfcp_xact_get_stage(type, xid); + + switch (stage) { case PFCP_XACT_INITIAL_STAGE: list = &node->remote_list; break; @@ -770,8 +775,9 @@ static ogs_pfcp_xact_t *ogs_pfcp_xact_find_by_xid( list = &node->local_list; break; default: + ogs_warn("Unexpected stage %u.", stage); ogs_assert_if_reached(); - break; + return NULL; } ogs_assert(list); @@ -782,11 +788,15 @@ static ogs_pfcp_xact_t *ogs_pfcp_xact_find_by_xid( xact->org == OGS_PFCP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE", OGS_ADDR(&node->addr, buf), OGS_PORT(&node->addr)); - break; + return xact; } } - return xact; + ogs_debug("[%d] Cannot find xact type %u from PFCP peer [%s]:%d", + xid, type, + OGS_ADDR(&node->addr, buf), OGS_PORT(&node->addr)); + + return NULL; } static int ogs_pfcp_xact_delete(ogs_pfcp_xact_t *xact)