UE Category is the set of information (parameters) that defines the maximum throughput for a UE. As LTE evolves, the length of UE category list gets longer and longer, and the interpretation of the category gets more complicated, you will need to go through many tables listed below to figure out the exact throughput capability of a UE. Followings are the list of tables you would need to go through for the detailed understanding. The tables reproduced here were captured between Release 12 and Release 14 of 36.306, and the list has kept growing since. The last section on this page sets them against 36.306 v19.3.0, so you can see which rows are missing and which table titles have changed.
- RRC Message that defines UE Category
- UE Category Tables
- 36.306 Table 4.1-1: Downlink physical layer parameter values set by the field ue-Category
- 36.306 Table 4.1-2: Uplink physical layer parameter values set by the field ue-Category
- 36.306 Table 4.1A-1: Downlink physical layer parameter values set by the field ue-CategoryDL
- 36.306 Table 4.1A-2: Uplink physical layer parameter values set by the field ue-CategoryUL
- 36.306 Table 4.1A-6: supported DL/UL Categories combinations set by the fields ue-CategoryDL and ue-CategoryUL
- 36.306 Table 4.1-3: Total layer 2 buffer sizes set by the field ue-Category
- 36.306 Table 4.1A-3: Total layer 2 buffer sizes set by the fields ue-CategoryDL and ue-CategoryUL
- 36.306 Table 4.1-4: Maximum number of bits of a MCH transport block received within a TTI set by the field ue-Category
- 36.306 Table 4.1-5: Half-duplex FDD operation type set by the field ue-Category
- 36.306 Table A-1: Maximum values for DL PDCP SDUs per TTI
- What 36.306 v19.3.0 adds to the tables above
- Reference
RRC Message that defines UE Category
The category that UE support is indicated in UE Capability Information message as shown below. Notice that ue-Category can specify only up to Cat 4. The category higher than 4 should be assinged to another IE (Information Element) ue-Category-v1020. (Here we are having similar confusing IEs as in WCDMA/HSPA. So many different places to check to figure out exact category)
The block below is a decode taken from a protocol analyser, not text copied out of a specification. It records one UE Capability Information message as one network received it, so the values in it belong to that UE and none of them has been corrected against a later release.
Example 1 >
ueCapabilityInformation-r8
ue-CapabilityRAT-ContainerList: 1 item
Item 0
UE-CapabilityRAT-Container
rat-Type: eutra (0)
ueCapabilityRAT-Container: ....
UE-EUTRA-Capability
accessStratumRelease: rel11 (3)
ue-Category: 4
...
phyLayerParameters
.... 0... ue-TxAntennaSelectionSupported: False
.... .0.. ue-SpecificRefSigsSupported: False
rf-Parameters
supportedBandListEUTRA: 15 items...
measParameters
bandListEUTRA: 15 items
...
featureGroupIndicators: ...
...
interRAT-Parameters
...
nonCriticalExtension
phyLayerParameters-v920
...
interRAT-ParametersGERAN-v920
...
interRAT-ParametersUTRA-v920
...
csg-ProximityIndicationParameters-r9
neighCellSI-AcquisitionParameters-r9
...
son-Parameters-r9
...
nonCriticalExtension
lateNonCriticalExtension:...
UE-EUTRA-Capability-v9a0-IEs
featureGroupIndRel9Add-r9: ...
...
fdd-Add-UE-EUTRA-Capabilities-r9
phyLayerParameters-r9
...
featureGroupIndicators-r9: ...
...
featureGroupIndRel9Add-r9: ...
...
tdd-Add-UE-EUTRA-Capabilities-r9
phyLayerParameters-r9
...
featureGroupIndicators-r9: ...
...
featureGroupIndRel9Add-r9: ...
...
nonCriticalExtension
ue-Category-v1020: 6
phyLayerParameters-v1020
multiClusterPUSCH-WithinCC-r10: supported (0)
nonContiguousUL-RA-WithinCC-List-r10: ...
...
rf-Parameters-v1020
supportedBandCombination-r10: ...
...
measParameters-v1020
bandCombinationListEUTRA-r10: ...
...
featureGroupIndRel10-r10: ...
...
ue-BasedNetwPerfMeasParameters-r10
...
nonCriticalExtension
fdd-Add-UE-EUTRA-Capabilities-v1060
featureGroupIndRel10-v1060: ...
...
tdd-Add-UE-EUTRA-Capabilities-v1060
featureGroupIndRel10-v1060: ...
...
rf-Parameters-v1060
supportedBandCombinationExt-r10: ...
...
nonCriticalExtension
nonCriticalExtension
pdcp-Parameters-v1130
phyLayerParameters-v1130
crs-InterfHandl-r11: supported (0)
tdd-SpecialSubframe-r11: supported (0)
rf-Parameters-v1130
supportedBandCombination-v1130: ...
...
measParameters-v1130
interRAT-ParametersCDMA2000-v1130
otherParameters-r11
nonCriticalExtension
ue-Category-v1170: 9
nonCriticalExtension
The same message appears below in the ASN.1 tree form that the analyser also produces. This is the same capture seen from the other end: every field name carries its ASN.1 type and its value range, and the OPTIONAL:Exist marks say which optional fields the UE actually included.
Example 2 >
UE-EUTRA-Capability ::= SEQUENCE [11]
+-accessStratumRelease ::= ENUMERATED [rel11]
+-ue-Category ::= INTEGER (1..5) [4]
+-pdcp-Parameters ::= SEQUENCE [0]
+-phyLayerParameters ::= SEQUENCE
+-rf-Parameters ::= SEQUENCE
+-measParameters ::= SEQUENCE
+-featureGroupIndicators ::= BIT STRING SIZE(32) OPTIONAL:Exist
+-interRAT-Parameters ::= SEQUENCE [0000000]
+-nonCriticalExtension ::= SEQUENCE [0001] OPTIONAL:Exist
+-nonCriticalExtension ::= SEQUENCE [11] OPTIONAL:Exist
+-lateNonCriticalExtension ::= OCTET STRING CONSTRAINTED
+-nonCriticalExtension ::= SEQUENCE [111110101] OPTIONAL:Exist
+-ue-Category-v1020 ::= INTEGER (6..8) [7] OPTIONAL:Exist
+-phyLayerParameters-v1020 ::= SEQUENCE [0000011] OPTIONAL:Exist
+-rf-Parameters-v1020 ::= SEQUENCE OPTIONAL:Exist
+-measParameters-v1020 ::= SEQUENCE OPTIONAL:Exist
+-featureGroupIndRel10-r10 ::= BIT STRING SIZE(32)
+-interRAT-ParametersCDMA2000-v1020 ::= SEQUENCE OPTIONAL:Omit
+-ue-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE [11] OPTIONAL:Exist
+-interRAT-ParametersUTRA-TDD-v1020 ::= SEQUENCE OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [0011] OPTIONAL:Exist
+-fdd-Add-UE-EUTRA-Capabilities-v1060 ::= SEQUENCE OPTIONAL:Omit
+-tdd-Add-UE-EUTRA-Capabilities-v1060 ::= SEQUENCE OPTIONAL:Omit
+-rf-Parameters-v1060 ::= SEQUENCE OPTIONAL:Exist
+-nonCriticalExtension ::= SEQUENCE [01] OPTIONAL:Exist
+-rf-Parameters-v1090 ::= SEQUENCE OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [1001] OPTIONAL:Exist
+-nonCriticalExtension ::= SEQUENCE [011] OPTIONAL:Exist
+-phyLayerParameters-v1170 ::= SEQUENCE OPTIONAL:Omit
+-ue-Category-v1170 ::= INTEGER (9..10) [10] OPTIONAL:Exist
+-nonCriticalExtension ::= SEQUENCE [10001] OPTIONAL:Exist
+-rf-Parameters-v1180 ::= SEQUENCE [100] OPTIONAL:Exist
+-mbms-Parameters-r11 ::= SEQUENCE OPTIONAL:Omit
+-fdd-Add-UE-EUTRA-Capabilities-v1180 ::= SEQUENCE OPTIONAL:Omit
+-tdd-Add-UE-EUTRA-Capabilities-v1180 ::= SEQUENCE OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [101] OPTIONAL:Exist
+-ue-Category-v11a0 ::= INTEGER (11..12) [12] OPTIONAL:Exist
+-measParameters-v11a0 ::= SEQUENCE OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [010011000000001] OPTIONAL:Exist
+-phyLayerParameters-v1250 ::= SEQUENCE OPTIONAL:Omit
+-rf-Parameters-v1250 ::= SEQUENCE [1000] OPTIONAL:Exist
+-rlc-Parameters-r12 ::= SEQUENCE OPTIONAL:Omit
+-ue-BasedNetwPerfMeasParameters-v1250 ::= SEQUENCE OPTIONAL:Omit
+-ue-CategoryDL-r12 ::= INTEGER (0..14) [12] OPTIONAL:Exist
+-ue-CategoryUL-r12 ::= INTEGER (0..13) [13] OPTIONAL:Exist
+-wlan-IW-Parameters-r12 ::= SEQUENCE OPTIONAL:Omit
+-measParameters-v1250 ::= SEQUENCE OPTIONAL:Omit
+-dc-Parameters-r12 ::= SEQUENCE OPTIONAL:Omit
+-mbms-Parameters-v1250 ::= SEQUENCE OPTIONAL:Omit
+-mac-Parameters-r12 ::= SEQUENCE OPTIONAL:Omit
+-fdd-Add-UE-EUTRA-Capabilities-v1250 ::= SEQUENCE OPTIONAL:Omit
+-tdd-Add-UE-EUTRA-Capabilities-v1250 ::= SEQUENCE OPTIONAL:Omit
+-sl-Parameters-r12 ::= SEQUENCE OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [11] OPTIONAL:Exist
+-ue-CategoryDL-v1260 ::= INTEGER (15..16) [16] OPTIONAL:Exist
+-nonCriticalExtension ::= SEQUENCE [10] OPTIONAL:Exist
+-rf-Parameters-v1270 ::= SEQUENCE [10] OPTIONAL:Exist
+-nonCriticalExtension ::= SEQUENCE OPTIONAL:Omit
UE Category Tables
36.306 defines the maximum throughput for each category as follows : The tables below fall into two groups. The first pair is indexed by the single ue-Category field, and the ones after it by the ue-CategoryDL and ue-CategoryUL pair that Release 12 introduced. Each table carries its own version stamp, and the stamps are not all the same.
Note : Following throughput does not make difference about the number of Carriers. When you are talking about Categories about Carrier Aggregation throughput, you would be clear on whether you are talking about the category for each component carrier or categories of aggregated carriers.
This tables tells you only about the maximum throughput, it doesn't tell in detail about how you achieve it. Many people tries to associate this table to a specific MIMO configuration or Carrier Aggregation(CA) configuration. But there is no direction connection between this table and MIMO/CA condition.
The table below is the one that ue-Category points into. It gives four numbers per category: the transport block bits a UE can receive in one TTI, the largest single transport block, the soft channel bit budget behind the HARQ buffer, and the number of spatial layers.
< 36.306 v12.6 Table 4.1-1: Downlink physical layer parameter values set by the field ue-Category >

The uplink half of the same pair is much shorter. Before Release 12 only three things varied from one category to the next. They are how many bits the UE can send in a TTI, how large a single transport block may be, and whether it may use 64QAM.
< 36.306 v12.6 Table 4.1-2: Uplink physical layer parameter values set by the field ue-Category >

Note 1 : The number shown in this table is the number of bits that can be transmitted in 1 TTI (1 ms). So you have to multiply this number by 1000 to get the rate in 'bps'. For example, Table 4.1-1 Category 3 says 102048. If you convert this number into bps, it is 102048 x 1000 = 102,048,000 bps.
Note 2 : You should be very careful when you talk about the throughput in Kbps, Mbps unit. A lot of people do the conversion by dividing the number by 1000, 1000000. But in digital theory (especially in computer world) 1 Kbps is 2^10 bits and 1 Mbps is 2^20 bits. When the number is small, you don't see much difference, however when the number is very big, the difference between the two different conversion would give you huge difference. For bit rates, though, the usual convention in telecom is decimal. So 1 kbps is 1000 bit/s and 1 Mbps is 1 000 000 bit/s. The binary 210 and 220 belong to memory sizes, such as a buffer size in bytes.
Note 3 : The number shows in this table is based on the assumption that all the DL/UL TTI carries only user data (U-Plane Data), but in really you cannot allocate 100% of resources for user data only. There should be a certain portion of overhead (like SIBs, MAC CE, Signaling etc). So real throughput you get will be less than the one listed in this table.
In Release 12, there are other categories in which we can specify DL category and UL category separately as shown below.
The decode below comes from a UE that fills in the Release 12 fields. It is the same message type as the two above, and it is left exactly as it was captured.
ueCapabilityInformation-r8
ue-CapabilityRAT-ContainerList: 1 item
Item 0
UE-CapabilityRAT-Container
rat-Type: eutra (0)
ueCapabilityRAT-Container: ....
UE-EUTRA-Capability
accessStratumRelease: ...
ue-Category: 4
...
nonCriticalExtension
...
nonCriticalExtension
lateNonCriticalExtension:...
....
nonCriticalExtension
ue-Category-v1020: 6
...
nonCriticalExtension
...
nonCriticalExtension
nonCriticalExtension
....
nonCriticalExtension
ue-Category-v1170: 9
nonCriticalExtension
phyLayerParameters-v1250
rf-Parameters-v1250
rlc-Parameters-r12
ue-BasedNetwPerMeasParameters-v1250
ue-CategoryDL-r12 : 14
ue-CategoryUL-r12 : 13
wlan-IW-Parameters-r12
measParameters-r1250
dc-Parameters-r12
mbms-Parameters-r12
mac-Parameters-r12
fdd-Add-UE-EUTRA-Capabilities-v1250
fdd-Add-UE-EUTRA-Capabilities-v1250
sl-Parameters-r12
nonCriticalExtension
< 36.306 v14.5 - Table 4.1A-1: Downlink physical layer parameter values set by the field ue-CategoryDL >
|
UE DL Category |
Maximum number of DL-SCH transport block bits received within a TTI |
Maximum number of bits of a DL-SCH transport block received within a TTI |
Total number of soft channel bits |
Maximum number of supported layers for spatial multiplexing in DL |
DL Category M1 |
1,000 |
1,000 |
25,344 |
1 |
DL Category M2 |
4,008 |
4,008 |
73,152 |
1 |
DL Category 0 |
1,000 |
1,000 |
25,344 |
1 |
DL Category 1bis |
10,296 |
10,296 |
250,368 |
1 |
DL Category 4 |
150,752 |
75,376 |
1,827,072 |
2 |
DL Category 6 |
301,504 |
149,776 (4 layers, 64QAM) |
3,654,144 |
2 or 4 |
DL Category 7 |
301,504 |
149,776 (4 layers, 64QAM) |
3,654,144 |
2 or 4 |
DL Category 9 |
452,256 |
149,776 (4 layers, 64QAM) |
5,481,216 |
2 or 4 |
DL Category 10 |
452,256 |
149,776 (4 layers, 64QAM) |
5,481,216 |
2 or 4 |
DL Category 11 |
603,008 |
149,776 (4 layers, 64QAM) |
7,308,288 |
2 or 4 |
DL Category 12 |
603,008 |
149,776 (4 layers, 64QAM) |
7,308,288 |
2 or 4 |
DL Category 13 |
391,632 |
195,816 (4 layers, 256QAM) |
3,654,144 |
2 or 4 |
DL Category 14 |
3,916,560 |
391,656 (8 layers, 256QAM) |
47,431,680 |
8 |
DL Category 15 |
749,856-807,744
|
149,776 (4 layers, 64QAM) 195,816 (4 layers, 256QAM, if alternativeTBS-Index-r14 is not supported) 201,936 (4 layers, 256QAM, if alternativeTBS-Index-r14 is supported) 75,376 (2 layers, 64QAM) 97,896 (2 layers, 256QAM, if alternativeTBS-Index-r14 is not supported) 100,752 (2 layers, 256QAM, if alternativeTBS-Index-r14 is supported) |
9,744,384 |
2 or 4 |
DL Category 16 |
978,960 -1,051,360 |
149,776 (4 layers, 64QAM) 195,816 (4 layers, 256QAM, if alternativeTBS-Index-r14 is not supported) 201,936 (4 layers, 256QAM, if alternativeTBS-Index-r14 is supported) 75,376 (2 layers, 64QAM) 97,896 (2 layers, 256QAM, if alternativeTBS-Index-r14 is not supported) 100,752 (2 layers, 256QAM, if alternativeTBS-Index-r14 is supported) |
12,789,504 |
2 or 4 |
DL Category 17 |
25,065,984 |
391,656 (8 layers, 256QAM) |
303,562,752 |
8 |
DL Category 18 |
1,174,752-1,211,616 |
299,856 (8 layers, 64QAM) 391,656 (8 layers, 256QAM) 149,776 (4 layers, 64QAM) 195,816 (4 layers, 256QAM, if alternativeTBS-Index-r14 is not supported) 201,936 (4 layers, 256QAM, if alternativeTBS-Index-r14 is supported) 75,376 (2 layers, 64QAM) 97,896 (2 layers, 256QAM, if alternativeTBS-Index-r14 is not supported) 100,752 (2 layers, 256QAM, if alternativeTBS-Index-r14 is supported) |
14,616,576 |
2 or 4 [or 8] |
DL Category 19 |
1,566,336 -1,658,272 |
299,856 (8 layers, 64QAM) 391,656 (8 layers, 256QAM)] 149,776 (4 layers, 64QAM) 195,816 (4 layers, 256QAM, if alternativeTBS-Index-r14 is not supported) 201,936 (4 layers, 256QAM, if alternativeTBS-Index-r14 is supported) 75,376 (2 layers, 64QAM) 97,896 (2 layers, 256QAM, if alternativeTBS-Index-r14 is not supported) 100,752 (2 layers, 256QAM, if alternativeTBS-Index-r14 is supported) |
19,488,768 |
2 or 4 [or 8] |
DL Category 20 |
1,948,064 - 2,019,360 |
299,856 (8 layers, 64QAM, 391,656 (8 layers, 256QAM)] 149,776 (4 layers, 64QAM) 195,816 (4 layers, 256QAM, if alternativeTBS-Index-r14 is not supported) 201,936 (4 layers, 256QAM, if alternativeTBS-Index-r14 is supported) 75,376 (2 layers, 64QAM) 97,896 (2 layers, 256QAM, if alternativeTBS-Index-r14 is not supported) 100,752 (2 layers, 256QAM, if alternativeTBS-Index-r14 is supported) |
24,360,960 |
2 or 4 [or 8] |
Release 12 gives the uplink a category list of its own, and the picture below is the uplink counterpart of the table above it. The stamp on it is v13.4, one release earlier than the v14.5 stamp on the table above it.
< 36.306 v13.4 - Table 4.1A-2: Uplink physical layer parameter values set by the field ue-CategoryUL >

Not every downlink category may be paired with every uplink category. The three pictures below carry the table that lists the pairs a UE is allowed to signal, together with the plain UE Category it has to indicate alongside them.
< 36.306 v12.6 - Table 4.1A-6: supported DL/UL Categories combinations set by the fields ue-CategoryDL and ue-CategoryUL and UE categories to be indicated >



To implement the specified UE category, we need to consider various factors along the full stack. Followings are some parameters above Physical layer.
Throughput on its own does not size a UE. The layer 2 buffer has to hold what the HARQ and reordering windows have in flight, and 36.306 sets that per category as well.
< 36.306 v12.6 Table 4.1-3: Total layer 2 buffer sizes set by the field ue-Category >

The Release 13 version of the same table is indexed by the DL and UL category pair rather than by a single category, which is what the split into ue-CategoryDL and ue-CategoryUL forces.
< 36.306 v13.4 Table 4.1A-3: Total layer 2 buffer sizes set by the fields ue-CategoryDL and ue-CategoryUL >

A UE that receives MBMS over MBSFN needs a separate number, because the MCH transport block is not the DL-SCH one and it is not covered by the tables above.
< 36.306 v12.6 Table 4.1-4: Maximum number of bits of a MCH transport block received within a TTI set by the field ue-Category for an MBMS capable UE >

Half-duplex FDD is the last thing the category settles. A half-duplex UE cannot transmit and receive at the same time, and the operation type says how the guard period between the two is taken.
< 36.306 v12.6 Table 4.1-5: Half-duplex FDD operation type set by the field ue-Category for a half-duplex FDD capable UE >

Following table represents the max number of PDCP SDUs for each Category. I think this is just enough to achieve the phy/mac max throughput (Table 4.1-1) when the packet size of user data (e.g, IP data) is very large. If the packet size is very small, you would not achieve the maximum throughput at IP level with this number of PDCP SDUs.
The last table is informative. It does not set a limit the UE has to meet; it gives the PDCP SDU count a designer can dimension for, and 36.306 introduces it as a help to the dimensioning of the UE design.
< 36.306 v14.5 Table A-1: Maximum values for DL PDCP SDUs per TTI >
|
UE Category / ue-CategoryDL |
Maximum number of PDCP SDUs per TTI |
|
Category 1 |
10 |
|
Category 1bis |
10 |
|
Category 2 |
10 |
|
Category 3 |
20 |
|
Category 4 / DL Category 4 |
30 |
|
Category 5 |
50 |
|
Category 6 / DL Category 6 |
50 |
|
Category 7 / DL Category 7 |
50 |
|
Category 9 / DL Category 9 |
80 |
|
Category 10 / DL Category 10 |
80 |
|
Category 11 / DL Category 11 |
100 |
|
Category 12 / DL Category 12 |
100 |
|
DL Category 13 |
65 |
|
DL Category 15 |
130 |
|
DL Category 16 |
180 |
|
DL Category 18 |
200 |
|
DL Category 19 |
280 |
|
DL Category 20 |
360 |
What 36.306 v19.3.0 adds to the tables above
Every table above carries its own version stamp, and not one of them is current. 36.306 has reached v19.3.0, and the category list has been extended in almost every release since Release 14. This section says what has changed, so the tables above can be read for what they are, which is a snapshot rather than the present state.
Reference
The specifications below are the ones this page reads from. 36.306 and 36.331 were both resolved at v19.3.0, which is the latest published version at the time of writing.
- 3GPP TS 36.306 v19.3.0, E-UTRA User Equipment radio access capabilities. Clause 4.1 for ue-Category, clause 4.1A for ue-CategoryDL and ue-CategoryUL, clause 4.1B for the sidelink categories, clause 4.1C for ue-Category-NB, and Annex A for Table A-1.
- 3GPP TS 36.331 v19.3.0, E-UTRA Radio Resource Control protocol specification. UE-EUTRA-Capability and the ue-Category extension chain.
- 3GPP TS 36.101, E-UTRA User Equipment radio transmission and reception. The per band channel bandwidth that Table 4.1A-6 defers to.