laforge submitted this change.

View Change



2 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted one.

Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved
xua_rkm: REG REQ: clean up Traffic Mode Type checks

Validate existence of the IE and explicitly set local variable to 0
instead of relying on xua_msg_get_u32() returning 0 on failure.

Change-Id: I4b07b0608eaf2e841f47f7c664e056152ca68f72
---
M src/xua_rkm.c
1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/src/xua_rkm.c b/src/xua_rkm.c
index 465c019..cbcdc52 100644
--- a/src/xua_rkm.c
+++ b/src/xua_rkm.c
@@ -175,7 +175,7 @@
struct msgb *resp, struct osmo_ss7_as **newly_assigned_as,
unsigned int max_nas_idx, unsigned int *nas_idx)
{
- struct xua_msg_part *rctx_ie;
+ struct xua_msg_part *rctx_ie, *tmode_ie;
uint32_t rk_id, rctx, _tmode, dpc;
enum osmo_ss7_as_traffic_mode tmode;
struct osmo_ss7_as *as = NULL;
@@ -189,13 +189,22 @@
/* ASP may already include a routing context value here */
rctx_ie = xua_msg_find_tag(inner, M3UA_IEI_ROUTE_CTX);

- /* traffic mode type (0 = undefined) */
- _tmode = xua_msg_get_u32(inner, M3UA_IEI_TRAF_MODE_TYP);
- if (xua_msg_find_tag(inner, M3UA_IEI_TRAF_MODE_TYP) && _tmode != M3UA_TMOD_OVERRIDE &&
- _tmode != M3UA_TMOD_LOADSHARE && _tmode != M3UA_TMOD_BCAST) {
- LOGPASP(asp, DLSS7, LOGL_NOTICE, "RKM: Invalid Traffic Mode %u\n", _tmode);
- msgb_append_reg_res(resp, rk_id, M3UA_RKM_REG_ERR_UNSUPP_TRAF_MODE, 0);
- return -1;
+ /* traffic mode type */
+ tmode_ie = xua_msg_find_tag(inner, M3UA_IEI_TRAF_MODE_TYP);
+ if (tmode_ie) {
+ _tmode = xua_msg_part_get_u32(tmode_ie);
+ switch (_tmode) {
+ case M3UA_TMOD_OVERRIDE:
+ case M3UA_TMOD_LOADSHARE:
+ case M3UA_TMOD_BCAST:
+ break;
+ default:
+ LOGPASP(asp, DLSS7, LOGL_NOTICE, "RKM: Invalid Traffic Mode %u\n", _tmode);
+ msgb_append_reg_res(resp, rk_id, M3UA_RKM_REG_ERR_UNSUPP_TRAF_MODE, 0);
+ return -1;
+ }
+ } else {
+ _tmode = 0; /* (0 = undefined) */
}

/* destination point code (mandatory) */

To view, visit change 43397. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: I4b07b0608eaf2e841f47f7c664e056152ca68f72
Gerrit-Change-Number: 43397
Gerrit-PatchSet: 4
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>