Restrictions in UL/DL/flexible slot and symbol configuration
In 5G/NR TDD, slots have more configuration possibilities than in LTE.
Slots can be either DL, UL, or DL/UL. Symbols within DL slots are all DL, within UL slots are all UL, within flex slots are flavoured with DL, UL or flexible symbols depending on slot location (first flex slot is made up of DL and flexible symbols, last flex slot is made up of flexible and UL symbols). Within a slot configuration period, first slots are DL, last slots are UL, and inbetween there are flexible slots. The number of slots per flavour is given by the TDD-UL-DL-Pattern.
According to TS 38.213 v15.3, 11.1 Slot configuration:
The higher layer parameter TDD-UL-DL-ConfigDedicated provides [...]
- a set of symbols for a slot by higher layer parameter symbols where [...]
- if symbols = explicit and higher layer parameter nrofDownlinkSymbols provides a number of downlink first symbols in the slot and higher layer parameter nrofUplinkSymbols provides a number of uplink last symbols in the slot. If nrofDownlinkSymbols is not provided, there are no downlink first symbols in the slot and if nrofUplinkSymbols is not provided, there are no uplink last symbols in the slot. The remaining symbols in the slot are flexible
With:
maxNrofSymbols-1 INTEGER ::= 13 -- Maximum index identifying a symbol within a slot (14 symbols, indexed from 0..13)
nrofDownlinkSymbols INTEGER (0..maxNrofSymbols-1)
nrofUplinkSymbols INTEGER (0..maxNrofSymbols-1)
- First slot after last DL slot (first Flexible slot) can have DL symbols
- Last slot before first UL slot (last Flexible slot) can have UL symbols
- Remaining symbols of both slots, and all symbols of slots inbetween are flexible symbols
- first flex slot can have up to 13 symbols as DL
- last flex slot can have up to 13 symbols as UL
- first and last flex slot symbol configuration don't impact each other as long as there are more than one flex slot
- if only one flex slot, nrofUplinkSymbols + nrofDownlinkSymbols <= maxNrofSymbols (the flex slot can be made up of only UL and DL symbols without any flex symbol)
Let's assume that configuration enables 10 slots. I want to have 4 DL slots, 1 flex slot, 5 UL slot. I want the flex slot to be half UL half DL:
nrofDownlinkSlots = 4;
nrofDownlinkSymbols = 7;
nrofUplinkSlots = 5;
nrofUplinkSymbols = 7;
I cannot, because of
AssertFatal(nrofDownlinkSymbols + nrofUplinkSymbols < 14,"illegal symbol configuration DL %d, UL %d\n",nrofDownlinkSymbols,nrofUplinkSymbols);
It is neither possible to have more than one flexible slot:
AssertFatal(nb_slots_per_period == (nrofDownlinkSlots + nrofUplinkSlots + 1),
"set_tdd_configuration_nr: given period is inconsistent with current tdd configuration, nrofDownlinkSlots %d, nrofUplinkSlots %d, nrofMixed slots 1, nb_slots_per_period %d \n",
nrofDownlinkSlots,nrofUplinkSlots,nb_slots_per_period);
I believe that those limitations are here until TDD dedicated configuration implementation is done (add_tdd_dedicated_configuration_nr and set_tdd_configuration_dedicated_nr)?