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/.
pespin gerrit-no-reply at lists.osmocom.orgpespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/15817 )
Change subject: WIP: ss7: Set Traffic Mode Type in ASPAC msg if set in VTY
......................................................................
WIP: ss7: Set Traffic Mode Type in ASPAC msg if set in VTY
TODO: Make sure the new prim is used to construct the message in lower
layers.
Related: OS#4220
Change-Id: Icce0e672f6180ebc92ca34f538d41161d02fecb9
---
M src/xua_asp_fsm.c
1 file changed, 55 insertions(+), 4 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/17/15817/1
diff --git a/src/xua_asp_fsm.c b/src/xua_asp_fsm.c
index 9dc9a82..166811e 100644
--- a/src/xua_asp_fsm.c
+++ b/src/xua_asp_fsm.c
@@ -1,6 +1,6 @@
/* SCCP M3UA / SUA ASP osmo_fsm according to RFC3868 4.3.1 */
/* (C) Copyright 2017 by Harald Welte <laforge at gnumonks.org>
- *
+ *
* All Rights reserved.
*
* SPDX-License-Identifier: GPL-2.0+
@@ -36,7 +36,7 @@
* * translate incoming SUA/M3UA msg_class/msg_type to xua_asp_event
* * propagate state transitions to XUA_AS_FSM via _onenter functiosn
* * notify the Layer Management of any relevant changes
- * *
+ * *
*/
/* According to RFC3868 Section 8 */
@@ -99,6 +99,38 @@
} t_ack;
};
+static unsigned int xua_asp_get_rctx(struct osmo_ss7_asp *asp, uint32_t *rctxs, size_t len)
+{
+ size_t rctx_next = 0;
+ struct osmo_ss7_as *as;
+
+ llist_for_each_entry(as, &asp->inst->as_list, list) {
+ if (!osmo_ss7_as_has_asp(as, asp))
+ continue;
+ rctxs[rctx_next] = as->cfg.routing_key.context;
+ rctx_next++;
+ }
+ return rctx_next;
+}
+
+/*
+static int xua_asp_add_rctx(struct osmo_ss7_asp *asp, struct xua_msg *xua)
+{
+ uint32_t rctxs[32];
+ size_t rctx_cnt = 0;
+ size_t i;
+
+ rctx_cnt = xua_asp_get_rctx(asp, rctxs, ARRAY_SIZE(rctxs));
+
+ if (rctx_cnt == 0)
+ return 0;
+
+ for (i = 0; i < rctx_cnt; i++)
+ rctxs[i] = htonl(rctxs[i]);
+ // FIXME: add 4 bytes for TAG + LEN?
+ return xua_msg_add_data(xua, SUA_IEI_ROUTE_CTX, rctx_cnt * sizeof(uint32_t), (uint8_t *) &rctxs[0]);
+}*/
+
struct osmo_xlm_prim *xua_xlm_prim_alloc(enum osmo_xlm_prim_type prim_type,
enum osmo_prim_operation op)
{
@@ -194,8 +226,27 @@
case XUA_ASP_E_ASPTM_ASPAC:
/* RFC3868 Ch. 3.6.1 */
xua->hdr = XUA_HDR(SUA_MSGC_ASPTM, SUA_ASPTM_ACTIVE);
- /* Optional: Traffic Mode Type */
/* Optional: Routing Context */
+ uint32_t rctxs[32];
+ size_t rctx_cnt = 0;
+ size_t i;
+ struct osmo_ss7_as *as;
+
+ rctx_cnt = xua_asp_get_rctx(asp, rctxs, ARRAY_SIZE(rctxs));
+
+ /* Optional: Traffic Mode */
+ if (rctx_cnt) {
+ as = osmo_ss7_as_find_by_rctx(asp->inst, rctxs[0]);
+ if (as->cfg.mode_set_by_vty)
+ xua_msg_add_u32(xua, SUA_IEI_TRAF_MODE_TYP, as->cfg.mode);
+ }
+ /* Optional: Routing Context */
+ if (rctx_cnt) {
+ for (i = 0; i < rctx_cnt; i++)
+ rctxs[i] = htonl(rctxs[i]);
+ // FIXME: add 4 bytes for TAG + LEN?
+ xua_msg_add_data(xua, SUA_IEI_ROUTE_CTX, rctx_cnt * sizeof(uint32_t), (uint8_t *) &rctxs[0]);
+ }
/* Optional: TID Label */
/* Optional: DRN Label */
/* Optional: Info String */
@@ -205,7 +256,7 @@
xua->hdr = XUA_HDR(SUA_MSGC_ASPTM, SUA_ASPTM_ACTIVE_ACK);
/* Optional: Traffic Mode Type */
/* Mandatory: Routing Context */
- //FIXME xua_msg_add_u32(xua, SUA_IEI_ROUTE_CTX,
+ //FIXME xua_msg_add_u32(xua, SUA_IEI_ROUTE_CTX,
/* Optional: Info String */
break;
case XUA_ASP_E_ASPTM_ASPIA:
--
To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/15817
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-sccp
Gerrit-Branch: master
Gerrit-Change-Id: Icce0e672f6180ebc92ca34f538d41161d02fecb9
Gerrit-Change-Number: 15817
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20191021/8258c2ad/attachment.htm>