osmo-pcu/src
Pau Espin c0a250d17d Introduce NACC support
A new nacc_fsm is introduced per MS object, with its partner priv
structure struct nacc_fsm_ctx, which exists and is available in the MS
object only during the duration of the NACC procedure.

The NACC context is created on an MS whenever a Pkt Cell Change
Notification is received on Uplink RLCMAC, which asks for neighbor
information of a given ARFCN+BSIC.

First, the target ARFCN+BSIC needs to be translated into a CGI-PS
(RAC+CI) address. That's done by asking the BSC through the Neighbour
Resolution Service available in osmo-bsc using the CTRL interface.

Once the CGI-PS of the target cell is known, PCU starts a RIM RAN-INFO
request against the SGSN (which will route the request as needed), and
wait for a response containing the SI bits from the target cell.

After the SI are received, the scheduler is instructed to eventually
poll a TBF for the MS originating the CCN, so that we can send the SI
encapsulated into multiple Packet Neighbor Cell Data messages on the
downlink.

One all the SI bits are sent, the scheduler is instructed to send a
Packet Cell Change Continue message.

Once the message above has been sent, the FSM autodestroys itself.

Caches are also introduced in this patch which allows for re-using
recently known translations ARFCN+BSIC -> CGI-PS and CGI-PS -> SI_INFO
respectively.

Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca
2021-01-29 12:59:30 +01:00
..
osmo-bts-litecell15 Allow multiple bts objects in PCU 2021-01-20 12:36:21 +01:00
osmo-bts-oc2g Allow multiple bts objects in PCU 2021-01-20 12:36:21 +01:00
osmo-bts-sysmo Allow multiple bts objects in PCU 2021-01-20 12:36:21 +01:00
.gitignore Adding .gitignore to source directory 2012-06-27 17:45:15 +02:00
Makefile.am Introduce NACC support 2021-01-29 12:59:30 +01:00
bts.cpp Introduce NACC support 2021-01-29 12:59:30 +01:00
bts.h Introduce NACC support 2021-01-29 12:59:30 +01:00
coding_scheme.c Fix mcs_is_valid(): UNKNOWN value is not a valid (M)CS 2020-11-05 15:48:04 +01:00
coding_scheme.h Move dl_arq_type field from BTS to PCU 2021-01-18 11:54:53 +01:00
csn1.c csn1: Log CSN_VARIABLE_ARRAY values as hex 2020-11-24 11:24:11 +01:00
csn1.h csn1: fix: never use enumerated types in codec structures 2020-05-23 19:26:58 +07:00
cxx_linuxlist.h llist: Add missing const qualifier in llist cast method 2015-08-24 12:23:50 +02:00
decoding.cpp Convert gprs_bssgp_pcu.cpp to C 2021-01-19 16:28:13 +01:00
decoding.h Convert gprs_bssgp_pcu.cpp to C 2021-01-19 16:28:13 +01:00
egprs_rlc_compression.cpp decompress_crbb: add length argument for search_runlen 2019-06-24 13:51:06 +00:00
egprs_rlc_compression.h egprs_rlc_compression: fix white spaces 2019-06-17 02:04:09 +02:00
encoding.cpp Introduce NACC support 2021-01-29 12:59:30 +01:00
encoding.h Introduce NACC support 2021-01-29 12:59:30 +01:00
gprs_bssgp_pcu.c follow gprs_ns2 API enum changes 2021-01-28 12:55:41 +00:00
gprs_bssgp_pcu.h Get rid of singleton gprs_bssgp_pcu_current_bctx() 2021-01-21 18:02:57 +01:00
gprs_bssgp_rim.c Introduce NACC support 2021-01-29 12:59:30 +01:00
gprs_bssgp_rim.h Initial handling support for RIM messages 2021-01-22 16:37:12 +01:00
gprs_codel.c Use clock_gettime(CLOCK_MONOTONIC) and timespec everywhere 2020-03-16 10:31:56 +00:00
gprs_codel.h Use clock_gettime(CLOCK_MONOTONIC) and timespec everywhere 2020-03-16 10:31:56 +00:00
gprs_debug.cpp Introduce NACC support 2021-01-29 12:59:30 +01:00
gprs_debug.h Introduce NACC support 2021-01-29 12:59:30 +01:00
gprs_ms.c Introduce NACC support 2021-01-29 12:59:30 +01:00
gprs_ms.h Introduce NACC support 2021-01-29 12:59:30 +01:00
gprs_ms_storage.cpp Unify BTS into a C usable structure 2021-01-19 16:28:10 +01:00
gprs_ms_storage.h Unify BTS into a C usable structure 2021-01-19 16:28:10 +01:00
gprs_pcu.c Introduce NACC support 2021-01-29 12:59:30 +01:00
gprs_pcu.h Introduce NACC support 2021-01-29 12:59:30 +01:00
gprs_rlcmac.cpp Allow multiple bts objects in PCU 2021-01-20 12:36:21 +01:00
gprs_rlcmac.h Allow multiple bts objects in PCU 2021-01-20 12:36:21 +01:00
gprs_rlcmac_meas.cpp pdch: rcv pkt meas rep: Allocate MS object early in path and use it 2020-08-24 07:50:49 +00:00
gprs_rlcmac_sched.cpp Introduce NACC support 2021-01-29 12:59:30 +01:00
gprs_rlcmac_ts_alloc.cpp Rename 'bts_data' leftovers to 'bts' 2021-01-19 16:28:13 +01:00
gsm_rlcmac.c rlcmac: Fix typo in MT_PACKET_CELL_CHANGE_NOTIFICATION value_string 2020-12-11 19:57:29 +00:00
gsm_rlcmac.h gsm_rlcmac: use consistent naming for [Extended] Packet Timing Advance 2020-08-24 10:53:08 +00:00
llc.cpp Unify BTS into a C usable structure 2021-01-19 16:28:10 +01:00
llc.h Unify BTS into a C usable structure 2021-01-19 16:28:10 +01:00
mslot_class.c mslot_class: two more: use uint32_t to shift 1 << 31 2018-03-28 14:44:47 +02:00
mslot_class.h Simplify TS alloc: move slot check into functions 2018-02-21 12:08:40 +00:00
nacc_fsm.c Introduce NACC support 2021-01-29 12:59:30 +01:00
nacc_fsm.h Introduce NACC support 2021-01-29 12:59:30 +01:00
neigh_cache.c Introduce NACC support 2021-01-29 12:59:30 +01:00
neigh_cache.h Introduce NACC support 2021-01-29 12:59:30 +01:00
osmobts_sock.c Allow multiple bts objects in PCU 2021-01-20 12:36:21 +01:00
pcu_l1_if.cpp Get rid of singleton gprs_bssgp_pcu_current_bctx() 2021-01-21 18:02:57 +01:00
pcu_l1_if.h Allow multiple bts objects in PCU 2021-01-20 12:36:21 +01:00
pcu_main.cpp gprs_ns2: migrate to the new vty syntax 2021-01-28 19:55:14 +01:00
pcu_utils.h Convert GprsMS and helpers classes to C 2021-01-05 10:34:25 +00:00
pcu_vty.c Introduce NACC support 2021-01-29 12:59:30 +01:00
pcu_vty.h vty: add attributes to VTY commands indicating when they apply 2020-10-08 07:16:31 +00:00
pcu_vty_functions.cpp Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs 2021-01-25 16:56:59 +01:00
pcu_vty_functions.h Rename 'bts_data' leftovers to 'bts' 2021-01-19 16:28:13 +01:00
pdch.cpp Introduce NACC support 2021-01-29 12:59:30 +01:00
pdch.h Introduce NACC support 2021-01-29 12:59:30 +01:00
poll_controller.cpp Unify BTS into a C usable structure 2021-01-19 16:28:10 +01:00
poll_controller.h Unify BTS into a C usable structure 2021-01-19 16:28:10 +01:00
rlc.cpp Unify BTS into a C usable structure 2021-01-19 16:28:10 +01:00
rlc.h Convert gprs_bssgp_pcu.cpp to C 2021-01-19 16:28:13 +01:00
sba.cpp Unify BTS into a C usable structure 2021-01-19 16:28:10 +01:00
sba.h Unify BTS into a C usable structure 2021-01-19 16:28:10 +01:00
tbf.cpp Introduce NACC support 2021-01-29 12:59:30 +01:00
tbf.h Introduce NACC support 2021-01-29 12:59:30 +01:00
tbf.txt Doc: Update on README and tbf.txt 2012-12-18 10:04:03 +01:00
tbf_dl.cpp Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs 2021-01-25 16:56:59 +01:00
tbf_dl.h Convert gprs_bssgp_pcu.cpp to C 2021-01-19 16:28:13 +01:00
tbf_ul.cpp Get rid of singleton gprs_bssgp_pcu_current_bctx() 2021-01-21 18:02:57 +01:00
tbf_ul.h Unify BTS into a C usable structure 2021-01-19 16:28:10 +01:00
wireshark_compat.h Move gsm_rlcmac.cpp -> .c 2020-03-30 10:08:02 +00:00