diff options
author | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2021-05-18 22:43:23 +0200 |
---|---|---|
committer | fixeria <vyanitskiy@sysmocom.de> | 2021-05-23 12:10:38 +0000 |
commit | 97193ced54da7435e87d692285d77abbec9865ca (patch) | |
tree | 7e4a522c4bffa955c80498b4bc4bbb678da3674a /include | |
parent | bdc50953687d1177327dda8782a11b779fda8a54 (diff) |
[VAMOS] osmo-bts-trx: rework and split up bts_sched_fn()
Currently, in bts_sched_fn() we send a Downlink burst to the PHY
immediately after calling the associated logical channel handler.
Together with the obvious performance advantages, this approach
imposes some serious limitations. The code has already become
quite complex with the introduction of the baseband frequency
hopping, and now it's not possible anymore to extend it further.
TRXD PDU batching, which is essential for VAMOS implementation,
requires us to make the scheduler more flexible at the expense of
increased memory consumption and additional CPU cycles. This patch
splits up Downlink burst scheduling into 3 main steps:
1. bts_sched_init_buffers(): initialization of per-TRX Downlink
burst buffers allocated by phy_instance_create(). For C0/TRX0
all timeslots are pre-initialized with dummy burst.
2. bts_sched_fn(): generating burst bits for all active lchans.
3. bts_sched_flush_buffers(): sending everything to the PHY.
This approach allows us to a) get rid of the ugly tail in bts_sched_fn()
that was responsible for sending dummy bursts on C0/TRX0; b) implement
the PDU batching and have several variants of bts_sched_flush_buffers()
providing the alternative batching approaches later on; c) implement
PDU merging for the upcoming shadow transceivers.
Change-Id: Iec78989517865b3275a9784d1042a5ebd1d2815f
Related: SYS#4895, OS#4941
Diffstat (limited to 'include')
-rw-r--r-- | include/osmo-bts/phy_link.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h index bd1a0c33..4b8a8633 100644 --- a/include/osmo-bts/phy_link.h +++ b/include/osmo-bts/phy_link.h @@ -113,6 +113,7 @@ struct phy_instance { struct { struct trx_l1h *hdl; bool sw_act_reported; + struct trx_dl_burst_req br[TRX_NR_TS]; } osmotrx; struct { /* logical transceiver number within one PHY */ |