diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2021-01-26 12:57:13 +0100 |
---|---|---|
committer | laforge <laforge@osmocom.org> | 2021-01-29 21:27:18 +0000 |
commit | 4d40047c50ef916e6b1a38bd77567bc1b4857122 (patch) | |
tree | e891fe92fa3ec223e5861289ff4441a102cfc661 /src/gb/gprs_bssgp.c | |
parent | 3e3f3777493530bf086c791a19bb6face43e40cd (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.c | 41 |
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 */ |