aboutsummaryrefslogtreecommitdiffstats
path: root/src/gb/gprs_bssgp.c
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2021-01-26 12:57:13 +0100
committerlaforge <laforge@osmocom.org>2021-01-29 21:27:18 +0000
commit4d40047c50ef916e6b1a38bd77567bc1b4857122 (patch)
treee891fe92fa3ec223e5861289ff4441a102cfc661 /src/gb/gprs_bssgp.c
parent3e3f3777493530bf086c791a19bb6face43e40cd (diff)
gprs_bssgp: agregate RIM related code in gprs_bssgp_rim.c
gprs_bssgp and gprs_bssgp_util.c also contains code related to send and receive RIM PDUs via BSSGP and also code to encode and decode RAN INFORMATION PDUs. Lets move this to gprs_bssgp_rim.c Change-Id: Icda279452962b06e552cb1361d2a27b7dc8a6b04 Related: SYS#5103
Diffstat (limited to 'src/gb/gprs_bssgp.c')
-rw-r--r--src/gb/gprs_bssgp.c41
1 files changed, 1 insertions, 40 deletions
diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c
index 4154c4b5..926b0efa 100644
--- a/src/gb/gprs_bssgp.c
+++ b/src/gb/gprs_bssgp.c
@@ -41,6 +41,7 @@
#include <osmocom/gprs/gprs_ns.h>
#include "osmocom/gsm/gsm48.h"
+#include "gprs_bssgp_internal.h"
void *bssgp_tall_ctx = NULL;
@@ -647,46 +648,6 @@ int bssgp_rx_status(struct msgb *msg, struct tlv_parsed *tp,
return bssgp_prim_cb(&nmp.oph, NULL);
}
-static int bssgp_rx_rim(struct msgb *msg, struct tlv_parsed *tp, uint16_t bvci)
-{
- struct osmo_bssgp_prim nmp;
- uint16_t nsei = msgb_nsei(msg);
- struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *)msgb_bssgph(msg);
- enum bssgp_prim prim;
- char ri_src_str[64];
- char ri_dest_str[64];
-
- /* Specify PRIM type based on the RIM PDU */
- switch (bgph->pdu_type) {
- case BSSGP_PDUT_RAN_INFO:
- case BSSGP_PDUT_RAN_INFO_REQ:
- case BSSGP_PDUT_RAN_INFO_ACK:
- case BSSGP_PDUT_RAN_INFO_ERROR:
- case BSSGP_PDUT_RAN_INFO_APP_ERROR:
- prim = PRIM_BSSGP_RIM_PDU_TRANSFER;
- break;
- default:
- /* Caller already makes sure that this can't happen. */
- OSMO_ASSERT(false);
- }
-
- /* Send BSSGP RIM indication to NM */
- memset(&nmp, 0, sizeof(nmp));
- nmp.nsei = nsei;
- nmp.bvci = bvci;
- nmp.tp = tp;
- if (bssgp_parse_rim_pdu(&nmp.u.rim_pdu, msg) < 0)
- return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg);
- DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx RIM-PDU:%s, src=%s, dest=%s\n",
- bvci, bssgp_pdu_str(bgph->pdu_type),
- bssgp_rim_ri_name_buf(ri_src_str, sizeof(ri_src_str), &nmp.u.rim_pdu.routing_info_src),
- bssgp_rim_ri_name_buf(ri_dest_str, sizeof(ri_dest_str), &nmp.u.rim_pdu.routing_info_dest));
- osmo_prim_init(&nmp.oph, SAP_BSSGP_RIM, prim, PRIM_OP_INDICATION, msg);
- bssgp_prim_cb(&nmp.oph, NULL);
-
- return 0;
-}
-
/* One element (msgb) in a BSSGP Flow Control queue */
struct bssgp_fc_queue_element {
/* linked list of queue elements */