From 9bd4fd601a25481bf6163d226bb653929d060282 Mon Sep 17 00:00:00 2001 From: Ivan Kluchnikov Date: Mon, 21 Dec 2015 12:05:56 +0300 Subject: libmsc/transaction: introduce trans_find_by_sm_rp_mr() According to GSM TS 04.11, section 8.2.3, the RP Message Reference is a mandatory field for all messages on the SM-RL (SM Relay Layer), that is used to link an RP-ACK or RP-ERROR message to the associated (preceding) RP-DATA or RP-SMMA message transfer attempt. This change extends the transaction state structure with SM-RP-MR, and introduces a new function for matching transactions within a given connection by this reference. Change-Id: Ice47c37ecef4416e65ecee8931d946c915316791 --- include/osmocom/msc/transaction.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'include/osmocom/msc/transaction.h') diff --git a/include/osmocom/msc/transaction.h b/include/osmocom/msc/transaction.h index b7d7971fe..762eeea28 100644 --- a/include/osmocom/msc/transaction.h +++ b/include/osmocom/msc/transaction.h @@ -76,6 +76,9 @@ struct gsm_trans { struct gsm411_smc_inst smc_inst; struct gsm411_smr_inst smr_inst; + /* SM-RP-MR, Message Reference (see GSM TS 04.11, section 8.2.3) */ + uint8_t sm_rp_mr; + struct gsm_sms *sms; } sms; struct { @@ -99,6 +102,8 @@ struct gsm_trans *trans_find_by_id(struct gsm_subscriber_connection *conn, uint8_t proto, uint8_t trans_id); struct gsm_trans *trans_find_by_callref(struct gsm_network *net, uint32_t callref); +struct gsm_trans *trans_find_by_sm_rp_mr(struct gsm_subscriber_connection *conn, + uint8_t sm_rp_mr); struct gsm_trans *trans_alloc(struct gsm_network *net, struct vlr_subscr *vsub, -- cgit v1.2.3