pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-sgsn/+/30785 )


Change subject: Move some functions gprs_gb.[c,h] -> gprs_gmm.[c,h]
......................................................................

Move some functions gprs_gb.[c,h] -> gprs_gmm.[c,h]

This leaves only NS protocol related code in gprs_gb.[c,h], which will
be renamed to gprs_ns.[c,h] in a follow up patch.

Change-Id: I3dcbe1d0f75cb91ec8b700e239e2ba16fff030a2
---
M include/osmocom/sgsn/gprs_gb.h
M include/osmocom/sgsn/gprs_gmm.h
M src/sgsn/gprs_gb.c
M src/sgsn/gprs_gmm.c
M src/sgsn/gprs_sndcp.c
5 files changed, 54 insertions(+), 56 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/85/30785/1

diff --git a/include/osmocom/sgsn/gprs_gb.h b/include/osmocom/sgsn/gprs_gb.h
index e39ebc6..235b118 100644
--- a/include/osmocom/sgsn/gprs_gb.h
+++ b/include/osmocom/sgsn/gprs_gb.h
@@ -5,10 +5,5 @@
 #include <osmocom/core/msgb.h>
 #include <osmocom/sgsn/gprs_llc.h>

-int gsm0408_gprs_rcvmsg_gb(struct msgb *msg, struct gprs_llc_llme *llme,
-                          bool drop_cipherable);
-/* Has to be called whenever any PDU (signaling, data, ...) has been received 
*/
-void gprs_gb_recv_pdu(struct sgsn_mm_ctx *mmctx, const struct msgb *msg);
-
 /* called by the ns layer */
 int gprs_ns_prim_cb(struct osmo_prim_hdr *oph, void *ctx);
diff --git a/include/osmocom/sgsn/gprs_gmm.h b/include/osmocom/sgsn/gprs_gmm.h
index e2b17d2..0d04280 100644
--- a/include/osmocom/sgsn/gprs_gmm.h
+++ b/include/osmocom/sgsn/gprs_gmm.h
@@ -28,6 +28,11 @@
 int gprs_gmm_rx_resume(struct gprs_ra_id *raid, uint32_t tlli,
                       uint8_t suspend_ref);

+int gsm0408_gprs_rcvmsg_gb(struct msgb *msg, struct gprs_llc_llme *llme,
+                          bool drop_cipherable);
+/* Has to be called whenever any PDU (signaling, data, ...) has been received 
*/
+void gprs_gb_recv_pdu(struct sgsn_mm_ctx *mmctx, const struct msgb *msg);
+
 time_t gprs_max_time_to_idle(void);
 
 int gsm48_tx_gmm_id_req(struct sgsn_mm_ctx *mm, uint8_t id_type);
diff --git a/src/sgsn/gprs_gb.c b/src/sgsn/gprs_gb.c
index 703223f..b676917 100644
--- a/src/sgsn/gprs_gb.c
+++ b/src/sgsn/gprs_gb.c
@@ -31,59 +31,9 @@

 #include "bscconfig.h"

-#include <osmocom/sgsn/gprs_mm_state_gb_fsm.h>
 #include <osmocom/sgsn/gprs_sgsn.h>
-#include <osmocom/sgsn/gprs_gmm.h>
-#include <osmocom/sgsn/gprs_sm.h>
 #include <osmocom/sgsn/debug.h>

-/* Has to be called whenever any PDU (signaling, data, ...) has been received 
*/
-void gprs_gb_recv_pdu(struct sgsn_mm_ctx *mmctx, const struct msgb *msg) {
-       msgid2mmctx(mmctx, msg);
-       if (mmctx->gb.llme)
-               osmo_fsm_inst_dispatch(mmctx->gb.mm_state_fsm, 
E_MM_PDU_RECEPTION, NULL);
-}
-
-/* Main entry point for incoming 04.08 GPRS messages from Gb */
-int gsm0408_gprs_rcvmsg_gb(struct msgb *msg, struct gprs_llc_llme *llme,
-                          bool drop_cipherable)
-{
-       struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_gmmh(msg);
-       uint8_t pdisc = gsm48_hdr_pdisc(gh);
-       struct sgsn_mm_ctx *mmctx;
-       struct gprs_ra_id ra_id;
-       int rc = -EINVAL;
-
-       bssgp_parse_cell_id(&ra_id, msgb_bcid(msg));
-       mmctx = sgsn_mm_ctx_by_tlli(msgb_tlli(msg), &ra_id);
-       if (mmctx) {
-               rate_ctr_inc(rate_ctr_group_get_ctr(mmctx->ctrg, 
GMM_CTR_PKTS_SIG_IN));
-               mmctx->gb.llme = llme;
-               gprs_gb_recv_pdu(mmctx, msg);
-       }
-
-       /* MMCTX can be NULL */
-
-       switch (pdisc) {
-       case GSM48_PDISC_MM_GPRS:
-               rc = gsm0408_rcv_gmm(mmctx, msg, llme, drop_cipherable);
-               break;
-       case GSM48_PDISC_SM_GPRS:
-               rc = gsm0408_rcv_gsm(mmctx, msg, llme);
-               break;
-       default:
-               LOGMMCTXP(LOGL_NOTICE, mmctx,
-                       "Unknown GSM 04.08 discriminator 0x%02x: %s\n",
-                       pdisc, osmo_hexdump((uint8_t *)gh, msgb_l3len(msg)));
-               /* FIXME: return status message */
-               break;
-       }
-
-       /* MMCTX can be invalid */
-
-       return rc;
-}
-
 void gprs_ns_prim_status_cb(struct osmo_gprs_ns2_prim *nsp)
 {
        switch (nsp->u.status.cause) {
diff --git a/src/sgsn/gprs_gmm.c b/src/sgsn/gprs_gmm.c
index 09a058d..c6a30e6 100644
--- a/src/sgsn/gprs_gmm.c
+++ b/src/sgsn/gprs_gmm.c
@@ -60,6 +60,7 @@
 #include <osmocom/sgsn/signal.h>
 #include <osmocom/sgsn/gprs_sndcp.h>
 #include <osmocom/sgsn/gprs_ranap.h>
+#include <osmocom/sgsn/gprs_sm.h>

 #include <pdp.h>

@@ -2313,3 +2314,50 @@
        osmo_fsm_inst_dispatch(mmctx->gmm_fsm, E_GMM_RESUME, NULL);
        return 0;
 }
+
+/* Has to be called whenever any PDU (signaling, data, ...) has been received 
*/
+void gprs_gb_recv_pdu(struct sgsn_mm_ctx *mmctx, const struct msgb *msg) {
+       msgid2mmctx(mmctx, msg);
+       if (mmctx->gb.llme)
+               osmo_fsm_inst_dispatch(mmctx->gb.mm_state_fsm, 
E_MM_PDU_RECEPTION, NULL);
+}
+
+/* Main entry point for incoming 04.08 GPRS messages from Gb */
+int gsm0408_gprs_rcvmsg_gb(struct msgb *msg, struct gprs_llc_llme *llme,
+                          bool drop_cipherable)
+{
+       struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_gmmh(msg);
+       uint8_t pdisc = gsm48_hdr_pdisc(gh);
+       struct sgsn_mm_ctx *mmctx;
+       struct gprs_ra_id ra_id;
+       int rc = -EINVAL;
+
+       bssgp_parse_cell_id(&ra_id, msgb_bcid(msg));
+       mmctx = sgsn_mm_ctx_by_tlli(msgb_tlli(msg), &ra_id);
+       if (mmctx) {
+               rate_ctr_inc(rate_ctr_group_get_ctr(mmctx->ctrg, 
GMM_CTR_PKTS_SIG_IN));
+               mmctx->gb.llme = llme;
+               gprs_gb_recv_pdu(mmctx, msg);
+       }
+
+       /* MMCTX can be NULL */
+
+       switch (pdisc) {
+       case GSM48_PDISC_MM_GPRS:
+               rc = gsm0408_rcv_gmm(mmctx, msg, llme, drop_cipherable);
+               break;
+       case GSM48_PDISC_SM_GPRS:
+               rc = gsm0408_rcv_gsm(mmctx, msg, llme);
+               break;
+       default:
+               LOGMMCTXP(LOGL_NOTICE, mmctx,
+                       "Unknown GSM 04.08 discriminator 0x%02x: %s\n",
+                       pdisc, osmo_hexdump((uint8_t *)gh, msgb_l3len(msg)));
+               /* FIXME: return status message */
+               break;
+       }
+
+       /* MMCTX can be invalid */
+
+       return rc;
+}
\ No newline at end of file
diff --git a/src/sgsn/gprs_sndcp.c b/src/sgsn/gprs_sndcp.c
index 83aec0c..0a12b90 100644
--- a/src/sgsn/gprs_sndcp.c
+++ b/src/sgsn/gprs_sndcp.c
@@ -41,7 +41,7 @@
 #include <osmocom/sgsn/gprs_sndcp_pcomp.h>
 #include <osmocom/sgsn/gprs_sndcp_dcomp.h>
 #include <osmocom/sgsn/gprs_sndcp_comp.h>
-
+#include <osmocom/sgsn/gprs_gmm.h>
 #define DEBUG_IP_PACKETS 0     /* 0=Disabled, 1=Enabled */

 #if DEBUG_IP_PACKETS == 1

--
To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/30785
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-sgsn
Gerrit-Branch: master
Gerrit-Change-Id: I3dcbe1d0f75cb91ec8b700e239e2ba16fff030a2
Gerrit-Change-Number: 30785
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>
Gerrit-MessageType: newchange

Reply via email to