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.orgHarald Welte has submitted this change and it was merged.
Change subject: m3ua: Generalize + Export function to generate MTP-TRANSFER xua_msg
......................................................................
m3ua: Generalize + Export function to generate MTP-TRANSFER xua_msg
Change-Id: If82956317ec703341514ad81057eceb3d0714f47
---
M src/m3ua.c
M src/osmo_ss7_hmrt.c
M src/xua_internal.h
3 files changed, 27 insertions(+), 16 deletions(-)
Approvals:
Harald Welte: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/src/m3ua.c b/src/m3ua.c
index a7ef06c..b204708 100644
--- a/src/m3ua.c
+++ b/src/m3ua.c
@@ -318,6 +318,30 @@
M3UA_MSG_HEADROOM, name);
}
+struct xua_msg *m3ua_xfer_from_data(const struct m3ua_data_hdr *data_hdr,
+ const uint8_t *data, unsigned int data_len)
+{
+ struct xua_msg *xua = xua_msg_alloc();
+ struct xua_msg_part *data_part;
+
+ xua->hdr = XUA_HDR(M3UA_MSGC_XFER, M3UA_XFER_DATA);
+ /* Network Appearance: Optional */
+ /* Routing Context: Conditional */
+ /* Protocol Data: Mandatory */
+ data_part = talloc_zero(xua, struct xua_msg_part);
+ OSMO_ASSERT(data_part);
+ data_part->tag = M3UA_IEI_PROT_DATA;
+ data_part->len = sizeof(*data_hdr) + data_len;
+ data_part->dat = talloc_size(data_part, data_part->len);
+ OSMO_ASSERT(data_part->dat);
+ memcpy(data_part->dat, data_hdr, sizeof(*data_hdr));
+ memcpy(data_part->dat+sizeof(*data_hdr), data, data_len);
+ llist_add_tail(&data_part->entry, &xua->headers);
+ /* Correlation Id: Optional */
+
+ return xua;
+}
+
/***********************************************************************
* ERROR generation
***********************************************************************/
diff --git a/src/osmo_ss7_hmrt.c b/src/osmo_ss7_hmrt.c
index 105a542..ce0728b 100644
--- a/src/osmo_ss7_hmrt.c
+++ b/src/osmo_ss7_hmrt.c
@@ -51,27 +51,12 @@
static struct xua_msg *mtp_prim_to_m3ua(struct osmo_mtp_prim *prim)
{
struct msgb *msg = prim->oph.msg;
- struct xua_msg *xua = xua_msg_alloc();
struct osmo_mtp_transfer_param *param = &prim->u.transfer;
- struct xua_msg_part *data_part;
struct m3ua_data_hdr data_hdr;
mtp_xfer_param_to_m3ua_dh(&data_hdr, param);
- xua->hdr = XUA_HDR(M3UA_MSGC_XFER, M3UA_XFER_DATA);
- /* Network Appearance: Optional */
- /* Routing Context: Conditional */
- /* Protocol Data: Mandatory */
- data_part = talloc_zero(xua, struct xua_msg_part);
- data_part->tag = M3UA_IEI_PROT_DATA;
- data_part->len = sizeof(data_hdr) + msgb_l2len(msg);
- data_part->dat = talloc_size(data_part, data_part->len);
- memcpy(data_part->dat, &data_hdr, sizeof(data_hdr));
- memcpy(data_part->dat+sizeof(data_hdr), msgb_l2(msg), msgb_l2len(msg));
- llist_add_tail(&data_part->entry, &xua->headers);
- /* Correlation Id: Optional */
-
- return xua;
+ return m3ua_xfer_from_data(&data_hdr, msgb_l2(msg), msgb_l2len(msg));
}
/* delivery given XUA message to given SS7 user */
diff --git a/src/xua_internal.h b/src/xua_internal.h
index 31c941e..3831f56 100644
--- a/src/xua_internal.h
+++ b/src/xua_internal.h
@@ -25,6 +25,8 @@
int m3ua_rx_msg(struct osmo_ss7_asp *asp, struct msgb *msg);
struct msgb *m3ua_msgb_alloc(const char *name);
+struct xua_msg *m3ua_xfer_from_data(const struct m3ua_data_hdr *data_hdr,
+ const uint8_t *data, unsigned int data_len);
struct m3ua_data_hdr *data_hdr_from_m3ua(struct xua_msg *xua);
void m3ua_dh_to_xfer_param(struct osmo_mtp_transfer_param *param,
const struct m3ua_data_hdr *mdh);
--
To view, visit https://gerrit.osmocom.org/2360
To unsubscribe, visit https://gerrit.osmocom.org/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: If82956317ec703341514ad81057eceb3d0714f47
Gerrit-PatchSet: 2
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