Change in osmo-msc[master]: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

2019-01-11 Thread Vadim Yanitskiy
Vadim Yanitskiy has submitted this change and it was merged. ( 
https://gerrit.osmocom.org/11920 )

Change subject: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP
..

libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

Change-Id: I57357982ca0e51f6722c24a4aa1d0fb3e6caef88
Depends-on: (core) Ibe325c64ae2d6c626b232533bb4cbc65fc2b5d71
Depends-on: (OsmoHLR) I0589ff27933e9bca2bcf93b8259004935778db8f
Related Change-Id: (TTCN) I63a25c8366cce0852df6b628365151661a22a25f
Related: OS#3587
---
M include/osmocom/msc/gsm_04_11.h
M include/osmocom/msc/gsm_04_11_gsup.h
M src/libmsc/gsm_04_08.c
M src/libmsc/gsm_04_11.c
M src/libmsc/gsm_04_11_gsup.c
5 files changed, 164 insertions(+), 4 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified

Objections:
  Max: I would prefer this is not merged as is



diff --git a/include/osmocom/msc/gsm_04_11.h b/include/osmocom/msc/gsm_04_11.h
index b739918..4297cdb 100644
--- a/include/osmocom/msc/gsm_04_11.h
+++ b/include/osmocom/msc/gsm_04_11.h
@@ -42,6 +42,10 @@
 int gsm411_send_sms(struct gsm_network *net,
struct vlr_subscr *vsub,
struct gsm_sms *sms);
+int gsm411_send_rp_data(struct gsm_network *net, struct vlr_subscr *vsub,
+   size_t sm_rp_oa_len, const uint8_t *sm_rp_oa,
+   size_t sm_rp_ud_len, const uint8_t *sm_rp_ud);
+
 void gsm411_sapi_n_reject(struct ran_conn *conn);

 int gsm411_send_rp_ack(struct gsm_trans *trans, uint8_t msg_ref);
diff --git a/include/osmocom/msc/gsm_04_11_gsup.h 
b/include/osmocom/msc/gsm_04_11_gsup.h
index 94ff8f6..969eaba 100644
--- a/include/osmocom/msc/gsm_04_11_gsup.h
+++ b/include/osmocom/msc/gsm_04_11_gsup.h
@@ -12,3 +12,9 @@
uint8_t sm_rp_mr, uint8_t *sm_rp_da, uint8_t sm_rp_da_len);
 int gsm411_gsup_mo_handler(struct vlr_subscr *vsub,
struct osmo_gsup_message *gsup_msg);
+
+int gsm411_gsup_mt_fwd_sm_res(struct gsm_trans *trans, uint8_t sm_rp_mr);
+int gsm411_gsup_mt_fwd_sm_err(struct gsm_trans *trans,
+   uint8_t sm_rp_mr, uint8_t cause);
+int gsm411_gsup_mt_handler(struct vlr_subscr *vsub,
+   struct osmo_gsup_message *gsup_msg);
diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c
index 7ff8681..686194f 100644
--- a/src/libmsc/gsm_04_08.c
+++ b/src/libmsc/gsm_04_08.c
@@ -1810,6 +1810,11 @@
DEBUGP(DMSC, "Routed to GSM 04.11 MO handler\n");
return gsm411_gsup_mo_handler(vsub, gsup_msg);

+   /* GSM 04.11 code implementing MT SMS */
+   case OSMO_GSUP_MSGT_MT_FORWARD_SM_REQUEST:
+   DEBUGP(DMSC, "Routed to GSM 04.11 MT handler\n");
+   return gsm411_gsup_mt_handler(vsub, gsup_msg);
+
default:
LOGP(DMM, LOGL_ERROR, "No handler found for %s, dropping 
message...\n",
osmo_gsup_message_type_name(gsup_msg->message_type));
diff --git a/src/libmsc/gsm_04_11.c b/src/libmsc/gsm_04_11.c
index 788a0a9..15a92d4 100644
--- a/src/libmsc/gsm_04_11.c
+++ b/src/libmsc/gsm_04_11.c
@@ -158,10 +158,13 @@
gsm411_smc_recv(>sms.smc_inst,
GSM411_MMSMS_REL_IND, NULL, 0);

-   /* Notify the SMSqueue and free stored SMS */
-   send_signal(S_SMS_UNKNOWN_ERROR, NULL, sms, event);
-   trans->sms.sms = NULL;
-   sms_free(sms);
+   /* gsm411_send_rp_data() doesn't set trans->sms.sms */
+   if (sms != NULL) {
+   /* Notify the SMSqueue and free stored SMS */
+   send_signal(S_SMS_UNKNOWN_ERROR, NULL, sms, event);
+   trans->sms.sms = NULL;
+   sms_free(sms);
+   }

/* Destroy this transaction */
trans_free(trans);
@@ -794,6 +797,11 @@
 * successfully received a SMS.  We can now safely mark it as
 * transmitted */

+   if (trans->net->sms_over_gsup) {
+   /* Forward towards SMSC via GSUP */
+   return gsm411_gsup_mt_fwd_sm_res(trans, rph->msg_ref);
+   }
+
if (!sms) {
LOGP(DLSMS, LOGL_ERROR, "RX RP-ACK but no sms in 
transaction?!?\n");
return gsm411_send_rp_error(trans, rph->msg_ref,
@@ -830,6 +838,11 @@
 vlr_subscr_name(trans->conn->vsub), cause_len, cause,
 get_value_string(gsm411_rp_cause_strs, cause));

+   if (trans->net->sms_over_gsup) {
+   /* Forward towards SMSC via GSUP */
+   return gsm411_gsup_mt_fwd_sm_err(trans, rph->msg_ref, cause);
+   }
+
if (!sms) {
LOGP(DLSMS, LOGL_ERROR,
"RX RP-ERR, but no sms in transaction?!?\n");
@@ -1112,6 +1125,42 @@
GSM411_SM_RL_DATA_REQ);
 }

+/* Low-level function to send raw RP-DATA to a given subscriber */
+int gsm411_send_rp_data(struct gsm_network *net, 

Change in osmo-msc[master]: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

2019-01-11 Thread Vadim Yanitskiy
Vadim Yanitskiy has posted comments on this change. ( 
https://gerrit.osmocom.org/11920 )

Change subject: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP
..


Patch Set 12:

I really need to move this work forward, so feel free to submit a patch
that makes everything const. Personally, I don't think it really deserves -1.


--
To view, visit https://gerrit.osmocom.org/11920
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I57357982ca0e51f6722c24a4aa1d0fb3e6caef88
Gerrit-Change-Number: 11920
Gerrit-PatchSet: 12
Gerrit-Owner: Vadim Yanitskiy 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder (102)
Gerrit-Reviewer: Max 
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-Reviewer: Vadim Yanitskiy 
Gerrit-CC: Stefan Sperling 
Gerrit-Comment-Date: Fri, 11 Jan 2019 21:42:37 +
Gerrit-HasComments: No
Gerrit-HasLabels: No


Change in osmo-msc[master]: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

2019-01-08 Thread Max
Max has posted comments on this change. ( https://gerrit.osmocom.org/11920 )

Change subject: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP
..


Patch Set 12:

> Is there any rule in Osmocom that we have to use 'const' everywhere?

If there isn't than we should make one: I don't see any advantage in making 
code less readable by not using const for const pointers.


--
To view, visit https://gerrit.osmocom.org/11920
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I57357982ca0e51f6722c24a4aa1d0fb3e6caef88
Gerrit-Change-Number: 11920
Gerrit-PatchSet: 12
Gerrit-Owner: Vadim Yanitskiy 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder (102)
Gerrit-Reviewer: Max 
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-Reviewer: Vadim Yanitskiy 
Gerrit-CC: Stefan Sperling 
Gerrit-Comment-Date: Tue, 08 Jan 2019 12:26:29 +
Gerrit-HasComments: No
Gerrit-HasLabels: No


Change in osmo-msc[master]: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

2019-01-08 Thread Vadim Yanitskiy
Vadim Yanitskiy has posted comments on this change. ( 
https://gerrit.osmocom.org/11920 )

Change subject: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP
..


Patch Set 12:

> Patch Set 12: Code-Review-1

Sorry, but I don't think that missing 'const' is critical here.
Is there any rule in Osmocom that we have to use 'const' everywhere?


--
To view, visit https://gerrit.osmocom.org/11920
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I57357982ca0e51f6722c24a4aa1d0fb3e6caef88
Gerrit-Change-Number: 11920
Gerrit-PatchSet: 12
Gerrit-Owner: Vadim Yanitskiy 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder (102)
Gerrit-Reviewer: Max 
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-Reviewer: Vadim Yanitskiy 
Gerrit-CC: Stefan Sperling 
Gerrit-Comment-Date: Tue, 08 Jan 2019 12:21:05 +
Gerrit-HasComments: No
Gerrit-HasLabels: No


Change in osmo-msc[master]: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

2019-01-08 Thread Max
Max has posted comments on this change. ( https://gerrit.osmocom.org/11920 )

Change subject: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP
..


Patch Set 12: Code-Review-1

(2 comments)

https://gerrit.osmocom.org/#/c/11920/12/src/libmsc/gsm_04_11_gsup.c
File src/libmsc/gsm_04_11_gsup.c:

https://gerrit.osmocom.org/#/c/11920/12/src/libmsc/gsm_04_11_gsup.c@205
PS12, Line 205: int gsm411_gsup_mt_fwd_sm_res(struct gsm_trans *trans, uint8_t 
sm_rp_mr)
trans is not modified by this function so it should be const.


https://gerrit.osmocom.org/#/c/11920/12/src/libmsc/gsm_04_11_gsup.c@221
PS12, Line 221: int gsm411_gsup_mt_fwd_sm_err(struct gsm_trans *trans,
Here as well.



--
To view, visit https://gerrit.osmocom.org/11920
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I57357982ca0e51f6722c24a4aa1d0fb3e6caef88
Gerrit-Change-Number: 11920
Gerrit-PatchSet: 12
Gerrit-Owner: Vadim Yanitskiy 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder (102)
Gerrit-Reviewer: Max 
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-Reviewer: Vadim Yanitskiy 
Gerrit-CC: Stefan Sperling 
Gerrit-Comment-Date: Tue, 08 Jan 2019 12:00:06 +
Gerrit-HasComments: Yes
Gerrit-HasLabels: Yes


Change in osmo-msc[master]: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

2019-01-07 Thread Harald Welte
Harald Welte has posted comments on this change. ( 
https://gerrit.osmocom.org/11920 )

Change subject: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP
..


Patch Set 12: Code-Review+2


--
To view, visit https://gerrit.osmocom.org/11920
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I57357982ca0e51f6722c24a4aa1d0fb3e6caef88
Gerrit-Change-Number: 11920
Gerrit-PatchSet: 12
Gerrit-Owner: Vadim Yanitskiy 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder (102)
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-Reviewer: Vadim Yanitskiy 
Gerrit-CC: Stefan Sperling 
Gerrit-Comment-Date: Mon, 07 Jan 2019 15:16:32 +
Gerrit-HasComments: No
Gerrit-HasLabels: Yes


Change in osmo-msc[master]: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

2019-01-05 Thread Vadim Yanitskiy
Vadim Yanitskiy has posted comments on this change. ( 
https://gerrit.osmocom.org/11920 )

Change subject: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP
..


Patch Set 11:

(7 comments)

https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_11.c
File src/libmsc/gsm_04_11.c:

https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_11.c@162
PS11, Line 162: if (sms != NULL) { /* gsm411_send_rp_data() 
doesn't set trans->sms.sms */
> put the "doesn't set" above the 'if', and the 'Notify... […]
Done


https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_11.c@1147
PS11, Line 1147:
> hmm, I sort of expected a TLV structure, but there are no Ts... too late for 
> that I guess.
Please see GSM TS 04.11, Table 7.4/3GPP TS 04.11: RP-DATA message content.


https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_11.c@1148
PS11, Line 1148:/* Encode RP-DA length */
> OA?
Sure, thanks!


https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_11.c@1154
PS11, Line 1154:memcpy(ptr, sm_rp_oa, sm_rp_oa_len);
> Rather use msgb_lv_put()?
Done


https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_11.c@1158
PS11, Line 1158:ptr[0] = 0x00;
> msgb_put_u8()? msgb_v_put()?
Done


https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_11.c@1166
PS11, Line 1166:memcpy(ptr, sm_rp_ud, sm_rp_ud_len);
> msgb_lv_put()?
Done


https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_11.c@1170
PS11, Line 1170:return gsm411_rp_sendmsg(>sms.smr_inst, msg,
> API wise it would be better to have separate functions that encode and send. 
> […]
I think we can split it later. At the moment I don't see
any use cases for a separate encoding function...



--
To view, visit https://gerrit.osmocom.org/11920
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I57357982ca0e51f6722c24a4aa1d0fb3e6caef88
Gerrit-Change-Number: 11920
Gerrit-PatchSet: 11
Gerrit-Owner: Vadim Yanitskiy 
Gerrit-Reviewer: Jenkins Builder (102)
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-Reviewer: Vadim Yanitskiy 
Gerrit-CC: Stefan Sperling 
Gerrit-Comment-Date: Sat, 05 Jan 2019 13:46:59 +
Gerrit-HasComments: Yes
Gerrit-HasLabels: No


Change in osmo-msc[master]: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

2019-01-05 Thread Vadim Yanitskiy
Hello Neels Hofmeyr, Jenkins Builder,

I'd like you to reexamine a change. Please visit

https://gerrit.osmocom.org/11920

to look at the new patch set (#12).

Change subject: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP
..

libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

Change-Id: I57357982ca0e51f6722c24a4aa1d0fb3e6caef88
Depends-on: (core) Ibe325c64ae2d6c626b232533bb4cbc65fc2b5d71
Depends-on: (OsmoHLR) I0589ff27933e9bca2bcf93b8259004935778db8f
Related Change-Id: (TTCN) I63a25c8366cce0852df6b628365151661a22a25f
Related: OS#3587
---
M include/osmocom/msc/gsm_04_11.h
M include/osmocom/msc/gsm_04_11_gsup.h
M src/libmsc/gsm_04_08.c
M src/libmsc/gsm_04_11.c
M src/libmsc/gsm_04_11_gsup.c
5 files changed, 164 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/20/11920/12
--
To view, visit https://gerrit.osmocom.org/11920
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I57357982ca0e51f6722c24a4aa1d0fb3e6caef88
Gerrit-Change-Number: 11920
Gerrit-PatchSet: 12
Gerrit-Owner: Vadim Yanitskiy 
Gerrit-Reviewer: Jenkins Builder (102)
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-Reviewer: Vadim Yanitskiy 
Gerrit-CC: Stefan Sperling 


Change in osmo-msc[master]: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

2019-01-04 Thread Neels Hofmeyr
Neels Hofmeyr has posted comments on this change. ( 
https://gerrit.osmocom.org/11920 )

Change subject: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP
..


Patch Set 11: Code-Review-1

(8 comments)

(in general, I think you can still drop a lot of comments ... if you can be 
bothered)

https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_08.c
File src/libmsc/gsm_04_08.c:

https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_08.c@1802
PS11, Line 1802:/* GSM 04.11 code implementing MT SMS */
(a comment is always about "code implementing")


https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_11.c
File src/libmsc/gsm_04_11.c:

https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_11.c@162
PS11, Line 162: if (sms != NULL) { /* gsm411_send_rp_data() 
doesn't set trans->sms.sms */
put the "doesn't set" above the 'if', and the 'Notify...' inside the 'if {' body


https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_11.c@1147
PS11, Line 1147:
hmm, I sort of expected a TLV structure, but there are no Ts... too late for 
that I guess.


https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_11.c@1148
PS11, Line 1148:/* Encode RP-DA length */
OA?


https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_11.c@1154
PS11, Line 1154:memcpy(ptr, sm_rp_oa, sm_rp_oa_len);
Rather use msgb_lv_put()?


https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_11.c@1158
PS11, Line 1158:ptr[0] = 0x00;
msgb_put_u8()? msgb_v_put()?


https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_11.c@1166
PS11, Line 1166:memcpy(ptr, sm_rp_ud, sm_rp_ud_len);
msgb_lv_put()?


https://gerrit.osmocom.org/#/c/11920/11/src/libmsc/gsm_04_11.c@1170
PS11, Line 1170:return gsm411_rp_sendmsg(>sms.smr_inst, msg,
API wise it would be better to have separate functions that encode and send. I 
often faced inflexibility with code that cannot encode without also sending, 
for example during unit testing.



--
To view, visit https://gerrit.osmocom.org/11920
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I57357982ca0e51f6722c24a4aa1d0fb3e6caef88
Gerrit-Change-Number: 11920
Gerrit-PatchSet: 11
Gerrit-Owner: Vadim Yanitskiy 
Gerrit-Reviewer: Jenkins Builder (102)
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-Reviewer: Vadim Yanitskiy 
Gerrit-CC: Stefan Sperling 
Gerrit-Comment-Date: Sat, 05 Jan 2019 04:28:14 +
Gerrit-HasComments: Yes
Gerrit-HasLabels: Yes


Change in osmo-msc[master]: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

2018-12-20 Thread Vadim Yanitskiy
Vadim Yanitskiy has posted comments on this change. ( 
https://gerrit.osmocom.org/11920 )

Change subject: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP
..


Patch Set 8:

(3 comments)

https://gerrit.osmocom.org/#/c/11920/8/src/libmsc/gsm_04_11.c
File src/libmsc/gsm_04_11.c:

https://gerrit.osmocom.org/#/c/11920/8/src/libmsc/gsm_04_11.c@802
PS8, Line 802:  goto sms_over_gsup;
> Could put this right here on this line: return 
> gsm411_gsup_mt_fwd_sm_res(trans, rph->msg_ref); […]
Done


https://gerrit.osmocom.org/#/c/11920/8/src/libmsc/gsm_04_11.c@825
PS8, Line 825:  return gsm411_gsup_mt_fwd_sm_res(trans, rph->msg_ref);
> And then we could remove this part.
Done


https://gerrit.osmocom.org/#/c/11920/8/src/libmsc/gsm_04_11.c@845
PS8, Line 845:  goto sms_over_gsup;
> Same here, just use the patern if (.. […]
Done



--
To view, visit https://gerrit.osmocom.org/11920
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I57357982ca0e51f6722c24a4aa1d0fb3e6caef88
Gerrit-Change-Number: 11920
Gerrit-PatchSet: 8
Gerrit-Owner: Vadim Yanitskiy 
Gerrit-Reviewer: Jenkins Builder (102)
Gerrit-Reviewer: Vadim Yanitskiy 
Gerrit-CC: Stefan Sperling 
Gerrit-Comment-Date: Thu, 20 Dec 2018 16:00:25 +
Gerrit-HasComments: Yes
Gerrit-HasLabels: No


Change in osmo-msc[master]: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

2018-12-20 Thread Vadim Yanitskiy
Hello Jenkins Builder,

I'd like you to reexamine a change. Please visit

https://gerrit.osmocom.org/11920

to look at the new patch set (#9).

Change subject: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP
..

libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

Change-Id: I57357982ca0e51f6722c24a4aa1d0fb3e6caef88
Depends-on: (core) Ibe325c64ae2d6c626b232533bb4cbc65fc2b5d71
Depends-on: (OsmoHLR) I0589ff27933e9bca2bcf93b8259004935778db8f
Related Change-Id: (TTCN) I63a25c8366cce0852df6b628365151661a22a25f
Related: OS#3587
---
M include/osmocom/msc/gsm_04_11.h
M include/osmocom/msc/gsm_04_11_gsup.h
M src/libmsc/gsm_04_08.c
M src/libmsc/gsm_04_11.c
M src/libmsc/gsm_04_11_gsup.c
5 files changed, 174 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/20/11920/9
--
To view, visit https://gerrit.osmocom.org/11920
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I57357982ca0e51f6722c24a4aa1d0fb3e6caef88
Gerrit-Change-Number: 11920
Gerrit-PatchSet: 9
Gerrit-Owner: Vadim Yanitskiy 
Gerrit-Reviewer: Jenkins Builder (102)
Gerrit-CC: Stefan Sperling 


Change in osmo-msc[master]: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

2018-12-20 Thread Stefan Sperling
Stefan Sperling has posted comments on this change. ( 
https://gerrit.osmocom.org/11920 )

Change subject: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP
..


Patch Set 8:

(3 comments)

https://gerrit.osmocom.org/#/c/11920/8/src/libmsc/gsm_04_11.c
File src/libmsc/gsm_04_11.c:

https://gerrit.osmocom.org/#/c/11920/8/src/libmsc/gsm_04_11.c@802
PS8, Line 802:  goto sms_over_gsup;
Could put this right here on this line: return gsm411_gsup_mt_fwd_sm_res(trans, 
rph->msg_ref);
Instead of using 'goto'.


https://gerrit.osmocom.org/#/c/11920/8/src/libmsc/gsm_04_11.c@825
PS8, Line 825:  return gsm411_gsup_mt_fwd_sm_res(trans, rph->msg_ref);
And then we could remove this part.


https://gerrit.osmocom.org/#/c/11920/8/src/libmsc/gsm_04_11.c@845
PS8, Line 845:  goto sms_over_gsup;
Same here, just use the patern if (..) return foo();



--
To view, visit https://gerrit.osmocom.org/11920
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I57357982ca0e51f6722c24a4aa1d0fb3e6caef88
Gerrit-Change-Number: 11920
Gerrit-PatchSet: 8
Gerrit-Owner: Vadim Yanitskiy 
Gerrit-Reviewer: Jenkins Builder (102)
Gerrit-CC: Stefan Sperling 
Gerrit-Comment-Date: Thu, 20 Dec 2018 11:35:22 +
Gerrit-HasComments: Yes
Gerrit-HasLabels: No


Change in osmo-msc[master]: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

2018-12-19 Thread Vadim Yanitskiy
Vadim Yanitskiy has posted comments on this change. ( 
https://gerrit.osmocom.org/11920 )

Change subject: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP
..


Set Ready For Review


--
To view, visit https://gerrit.osmocom.org/11920
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I57357982ca0e51f6722c24a4aa1d0fb3e6caef88
Gerrit-Change-Number: 11920
Gerrit-PatchSet: 7
Gerrit-Owner: Vadim Yanitskiy 
Gerrit-Reviewer: Jenkins Builder (102)
Gerrit-Comment-Date: Wed, 19 Dec 2018 18:47:30 +
Gerrit-HasComments: No
Gerrit-HasLabels: No


Change in osmo-msc[master]: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

2018-11-25 Thread Vadim Yanitskiy
Vadim Yanitskiy has uploaded this change for review. ( 
https://gerrit.osmocom.org/11920


Change subject: libmsc/gsm_04_11.c: accept MT SMS messages over GSUP
..

libmsc/gsm_04_11.c: accept MT SMS messages over GSUP

Change-Id: I57357982ca0e51f6722c24a4aa1d0fb3e6caef88
Depends-on: (core) Ic37f3b2114b8095cfce22977e67133b9103942e3
Related: OS#3587
---
M include/osmocom/msc/gsm_04_11.h
M include/osmocom/msc/gsm_04_11_gsup.h
M src/libmsc/gsm_04_08.c
M src/libmsc/gsm_04_11.c
M src/libmsc/gsm_04_11_gsup.c
5 files changed, 177 insertions(+), 3 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/20/11920/1

diff --git a/include/osmocom/msc/gsm_04_11.h b/include/osmocom/msc/gsm_04_11.h
index 3997ab2..4310115 100644
--- a/include/osmocom/msc/gsm_04_11.h
+++ b/include/osmocom/msc/gsm_04_11.h
@@ -42,6 +42,10 @@
 int gsm411_send_sms(struct gsm_network *net,
struct vlr_subscr *vsub,
struct gsm_sms *sms);
+int gsm411_send_rp_data(struct gsm_network *net, struct vlr_subscr *vsub,
+   size_t sm_rp_oa_len, const uint8_t *sm_rp_oa,
+   size_t sm_rp_ud_len, const uint8_t *sm_rp_ud);
+
 void gsm411_sapi_n_reject(struct gsm_subscriber_connection *conn);

 int gsm411_send_rp_ack(struct gsm_trans *trans, uint8_t msg_ref);
diff --git a/include/osmocom/msc/gsm_04_11_gsup.h 
b/include/osmocom/msc/gsm_04_11_gsup.h
index 82f575d..9c6f2fb 100644
--- a/include/osmocom/msc/gsm_04_11_gsup.h
+++ b/include/osmocom/msc/gsm_04_11_gsup.h
@@ -13,3 +13,9 @@
uint8_t sm_rp_mr, uint8_t *sm_rp_da, uint8_t sm_rp_da_len);
 int gsm411_gsup_mo_handler(struct vlr_subscr *vsub,
struct osmo_gsup_message *gsup_msg);
+
+int gsm411_gsup_mt_fwd_sm_res(struct gsm_trans *trans, uint8_t sm_rp_mr);
+int gsm411_gsup_mt_fwd_sm_err(struct gsm_trans *trans,
+   uint8_t sm_rp_mr, uint8_t cause);
+int gsm411_gsup_mt_handler(struct vlr_subscr *vsub,
+   struct osmo_gsup_message *gsup_msg);
diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c
index 161585c..87e4cb1 100644
--- a/src/libmsc/gsm_04_08.c
+++ b/src/libmsc/gsm_04_08.c
@@ -1792,6 +1792,11 @@
DEBUGP(DMSC, "Routed to GSM 04.11 MO handler\n");
return gsm411_gsup_mo_handler(vsub, gsup_msg);

+   /* GSM 04.11 code implementing MT SMS */
+   case OSMO_GSUP_MSGT_MT_FORWARD_SM_REQUEST:
+   DEBUGP(DMSC, "Routed to GSM 04.11 MT handler\n");
+   return gsm411_gsup_mt_handler(vsub, gsup_msg);
+
default:
LOGP(DMM, LOGL_ERROR, "No handler found for %s, dropping 
message...\n",
osmo_gsup_message_type_name(gsup_msg->message_type));
diff --git a/src/libmsc/gsm_04_11.c b/src/libmsc/gsm_04_11.c
index 93c2ea7..efaf2ae 100644
--- a/src/libmsc/gsm_04_11.c
+++ b/src/libmsc/gsm_04_11.c
@@ -159,9 +159,11 @@
GSM411_MMSMS_REL_IND, NULL, 0);

/* Notify the SMSqueue and free stored SMS */
-   send_signal(S_SMS_UNKNOWN_ERROR, NULL, sms, event);
-   trans->sms.sms = NULL;
-   sms_free(sms);
+   if (sms != NULL) { /* gsm411_send_rp_data() doesn't set 
trans->sms.sms */
+   send_signal(S_SMS_UNKNOWN_ERROR, NULL, sms, event);
+   trans->sms.sms = NULL;
+   sms_free(sms);
+   }

/* Destroy this transaction */
trans_free(trans);
@@ -798,6 +800,9 @@
 * successfully received a SMS.  We can now safely mark it as
 * transmitted */

+   if (trans->net->enable_sms_over_gsup)
+   goto sms_over_gsup;
+
if (!sms) {
LOGP(DLSMS, LOGL_ERROR, "RX RP-ACK but no sms in 
transaction?!?\n");
return gsm411_send_rp_error(trans, rph->msg_ref,
@@ -816,6 +821,10 @@
trans->sms.sms = NULL;

return 0;
+
+sms_over_gsup:
+   /* Forward towards ESME via GSUP */
+   return gsm411_gsup_mt_fwd_sm_res(trans, rph->msg_ref);
 }

 static int gsm411_rx_rp_error(struct gsm_trans *trans,
@@ -834,6 +843,9 @@
 vlr_subscr_name(trans->conn->vsub), cause_len, cause,
 get_value_string(gsm411_rp_cause_strs, cause));

+   if (trans->net->enable_sms_over_gsup)
+   goto sms_over_gsup;
+
if (!sms) {
LOGP(DLSMS, LOGL_ERROR,
"RX RP-ERR, but no sms in transaction?!?\n");
@@ -859,6 +871,10 @@
trans->sms.sms = NULL;

return 0;
+
+sms_over_gsup:
+   /* Forward towards ESME via GSUP */
+   return gsm411_gsup_mt_fwd_sm_err(trans, rph->msg_ref, cause);
 }

 static int gsm411_rx_rp_smma(struct msgb *msg, struct gsm_trans *trans,
@@ -1115,6 +1131,54 @@
GSM411_SM_RL_DATA_REQ);
 }
 
+/* Low-level function to send raw RP-DATA to a given subscriber */
+int gsm411_send_rp_data(struct