osmo-pcu/src
Pau Espin bd54205475 Optimize PAGING-CS PDCH set selection when target MS is known
Before this patch, when a PAGING-GS was received in PCU from SGSN, it
would always forward the paging request to all PDCHs in all TRXs of all
BTS (well, it did some heuristics to avoid sending it in some PDCHs
where onyl repeated TBFs would be listening).

The previous behavior, didn't make much sense in the case where the PCU
is asked to page an MS which it knows (ie in which PDCHs is listening
to). Hence, in that case it makes sense to simply send the paging
request on 1 PDCH where the MS is listening, instead of sending it in a
big set of different PDCHs.

This commit also splits the old get_paging_mi() helper which was
erroneously created to parseboth CS/PS-PAGING requesst, since they
actually use a different set of target subscriber information (for
instance, CS-PAGING provides optionally a TLLI, and one provides P-TMSI
while the other provides TMSI).

In this patch, the handling of CS paging request is split into 2 parts:
1- A new helper "struct paging_req_cs" is introduced, where incoming
CS-PAGING requests (from both SGSN over BSSGP and BTS/BSC over PCUIF)
are parsed and information stored. Then, from available information, it
tries to find a target MS if avaialable
2- bts_add_paging() is called from both BSSGP and PCUIF paths with the
helper struct and the target MS (NULL if not found). If MS exists,
paging is forwarding only on 1 PDCH that MS is attached to. If no MS
exists, then the old heursitics are used to forward the request to all
MS.

Change-Id: Iea46d5321a29d800813b1aa2bf4ce175ce45e2cf
2021-05-19 12:46:00 +02:00
..
osmo-bts-litecell15 direct_phy: Fix condition dropping rx DATA.ind payload in in 2021-03-18 14:03:35 +01:00
osmo-bts-oc2g direct_phy: Fix condition dropping rx DATA.ind payload in in 2021-03-18 14:03:35 +01:00
osmo-bts-sysmo direct_phy: Fix condition dropping rx DATA.ind payload in in 2021-03-18 14:03:35 +01:00
.gitignore Adding .gitignore to source directory 2012-06-27 17:45:15 +02:00
Makefile.am Replace PollController with newly added PDCH UL Controller 2021-03-15 19:32:36 +01:00
bts.cpp Optimize PAGING-CS PDCH set selection when target MS is known 2021-05-19 12:46:00 +02:00
bts.h Optimize PAGING-CS PDCH set selection when target MS is known 2021-05-19 12:46:00 +02: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 Clean false positive in newer GCC version checking guard of else clause 2021-05-19 11:58:57 +02:00
egprs_rlc_compression.h egprs_rlc_compression: fix white spaces 2019-06-17 02:04:09 +02:00
encoding.cpp encoding: Encode TA in UL ACK/NACK if available 2021-05-11 13:24:13 +02:00
encoding.h Make WaitIndication T3172 configurable 2021-04-26 17:53:09 +02:00
gprs_bssgp_pcu.c Optimize PAGING-CS PDCH set selection when target MS is known 2021-05-19 12:46:00 +02:00
gprs_bssgp_pcu.h gprs_bssgp_pcu: add comments to the pcu states 2021-03-23 17:47:22 +00:00
gprs_bssgp_rim.c RIM: Refactor Rx path to decode stack in proper order 2021-05-17 14:21:21 +02: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 gprs_ms: Use standarized logging on more messages 2021-03-03 20:37:38 +01:00
gprs_ms.h nacc: Implement Pkt Cell Change Continue retransmission 2021-02-03 08:34:04 +00: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 Implement T3141 2021-05-11 11:32:44 +02:00
gprs_pcu.h vty: Add configuration for Gb DSCP and socket priority 2021-04-29 22:13:05 +02:00
gprs_rlcmac.cpp Allow multiple bts objects in PCU 2021-01-20 12:36:21 +01:00
gprs_rlcmac.h Remove uneeded ms param from alloc_algorithm_func_t func 2021-02-26 11:50: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 sched: Clean up param passing and improve logging 2021-05-12 14:24:02 +02:00
gprs_rlcmac_ts_alloc.cpp alloc_algorithm_b: Rearrange variable initialization 2021-05-10 12:25:24 +02:00
gsm_rlcmac.c cosmetic: fix typo in comment 2021-02-08 18:35:13 +01:00
gsm_rlcmac.h gsm_rlcmac: use consistent naming for [Extended] Packet Timing Advance 2020-08-24 10:53:08 +00:00
llc.cpp llc: use memset to fill llc dummy frame padding 2021-03-02 12:28:32 +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 pdch_ulc: Store TBF poll reason 2021-03-31 17:39:50 +02:00
nacc_fsm.h nacc: Implement Pkt Cell Change Continue retransmission 2021-02-03 08:34:04 +00:00
neigh_cache.c nacc_fsm: Support receiving Pkt Cell Change Notify in state WAIT_RESOLVE_RAC_CI 2021-02-11 13:17:16 +01:00
neigh_cache.h nacc_fsm: Support receiving Pkt Cell Change Notify in state WAIT_RESOLVE_RAC_CI 2021-02-11 13:17:16 +01:00
osmobts_sock.c Allow multiple bts objects in PCU 2021-01-20 12:36:21 +01:00
pcu_l1_if.cpp Optimize PAGING-CS PDCH set selection when target MS is known 2021-05-19 12:46:00 +02:00
pcu_l1_if.h sysmo: fix wrong FN jumps in rx RA.ind 2021-03-17 15:58:16 +01:00
pcu_main.cpp gprs_ns2: migrate to the new vty syntax 2021-01-28 19:55:14 +01:00
pcu_utils.h pdch_ulc: Support picking RRBP other than N+13 2021-03-31 17:39:50 +02:00
pcu_vty.c vty: Add configuration for Gb DSCP and socket priority 2021-04-29 22:13:05 +02: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 pdch: Use llist_first_entry() API 2021-05-13 15:58:55 +02:00
pdch.h Add new PDCH UL Controller, drop SBAllocator class 2021-03-15 19:32:26 +01:00
pdch_ul_controller.c tbf: Get rid of attribute poll_ts 2021-03-31 17:39:50 +02:00
pdch_ul_controller.h pdch: rcv_resource_request: Improve robustness 2021-04-22 20:28:40 +02:00
rlc.cpp Unify BTS into a C usable structure 2021-01-19 16:28:10 +01:00
rlc.h rlc.h: Fix struct bit fields on big endian systems 2021-02-04 12:59:40 +01:00
sba.c sba: Drop unused function find_sba_rts 2021-04-22 19:46:54 +02:00
sba.h sba: Drop unused function find_sba_rts 2021-04-22 19:46:54 +02:00
tbf.cpp Implement T3141 2021-05-11 11:32:44 +02:00
tbf.h Implement T3141 2021-05-11 11:32:44 +02:00
tbf_dl.cpp Implement T3141 2021-05-11 11:32:44 +02:00
tbf_dl.h Convert gprs_bssgp_pcu.cpp to C 2021-01-19 16:28:13 +01:00
tbf_ul.cpp ul_tbf: Fix accessing zeroed block when checking if transfer is complete 2021-05-12 14:24:02 +02:00
tbf_ul.h Implement T3141 2021-05-11 11:32:44 +02:00
wireshark_compat.h Move gsm_rlcmac.cpp -> .c 2020-03-30 10:08:02 +00:00