This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Harald Welte gerrit-no-reply at lists.osmocom.orgHello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/2270 to look at the new patch set (#5). M3UA: Make sure to reject unsupported traffic mode types This was discovered (and fix validated) using m3ua-sgp-asptm-i-004 of Michael Tuexen's m3ua-testtool. Change-Id: I76c01189b75ff3084cd4d3944314ec9b9f811dbf --- M src/xua_asp_fsm.c 1 file changed, 32 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/70/2270/5 diff --git a/src/xua_asp_fsm.c b/src/xua_asp_fsm.c index 1570bc9..87f8927 100644 --- a/src/xua_asp_fsm.c +++ b/src/xua_asp_fsm.c @@ -210,6 +210,25 @@ return osmo_ss7_asp_send(asp, msg); } +static int peer_send_error(struct osmo_fsm_inst *fi, uint32_t err_code) +{ + struct xua_asp_fsm_priv *xafp = fi->priv; + struct osmo_ss7_asp *asp = xafp->asp; + struct xua_msg *xua = xua_msg_alloc(); + struct msgb *msg; + + xua->hdr = XUA_HDR(SUA_MSGC_MGMT, SUA_MGMT_ERR); + xua->hdr.version = SUA_VERSION; + xua_msg_add_u32(xua, SUA_IEI_ERR_CODE, err_code); + + msg = xua_to_msg(SUA_VERSION, xua); + xua_msg_free(xua); + if (!msg) + return -1; + + return osmo_ss7_asp_send(asp, msg); +} + static void xua_t_ack_cb(void *data) { struct osmo_fsm_inst *fi = data; @@ -373,6 +392,9 @@ static void xua_asp_fsm_inactive(struct osmo_fsm_inst *fi, uint32_t event, void *data) { + struct xua_msg *xua_in; + uint32_t traf_mode; + check_stop_t_ack(fi, event); switch (event) { case XUA_ASP_E_M_ASP_ACTIVE_REQ: @@ -400,8 +422,18 @@ PRIM_OP_CONFIRM); break; case XUA_ASP_E_ASPTM_ASPAC: + xua_in = data; /* only in role SG */ ENSURE_SG_OR_IPSP(fi, event); + if (xua_msg_find_tag(xua_in, M3UA_IEI_TRAF_MODE_TYP)) { + traf_mode = xua_msg_get_u32(xua_in, M3UA_IEI_TRAF_MODE_TYP); + if (traf_mode != M3UA_TMOD_OVERRIDE && + traf_mode != M3UA_TMOD_LOADSHARE && + traf_mode != M3UA_TMOD_BCAST) { + peer_send_error(fi, M3UA_ERR_UNSUPP_TRAF_MOD_TYP); + break; + } + } /* send ACK */ peer_send(fi, XUA_ASP_E_ASPTM_ASPAC_ACK, NULL); /* transition state and inform layer manager */ -- To view, visit https://gerrit.osmocom.org/2270 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I76c01189b75ff3084cd4d3944314ec9b9f811dbf Gerrit-PatchSet: 5 Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Owner: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder