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