Reading specs from 3GPP can be sometimes very difficult as there are so many specs and navigating through each of them can be a daunting task and there is no definitive and clear guide on how to use the specs and navigate through all the technical jargon and find what you are looking for.
In this short article, I will try to highlight how to navigate and read 3GPP Specs.
First things first, 3GPP releases Technical specifications in Multiple release cycles and these specifications are updated with version numbers if there are any changes or updates, More about his in a later section of the article.
3GPP has Multiple release cycles and they have different spec numbers for each technology.
- LTE — 36.xxx Series
- 5G-NR — 38.xxx series
Where Can I download the 3GPP Specifications from?
I have given the below links which have a list of all 3GPP Specifications for 5G-NR and LTE.
All 5G-NR specifications start from Release-15 and later whereas all LTE Specifications start from Release-8 and later as LTE was introduced in Rel-8.
If you are new and getting started initially, I would advise not to start reading the specifications as you would find the specifications sometimes go in very detail and some topics look vague and might not have a further explanation except with some reference to another document and while trying to find the references it becomes a Jigsaw puzzle quickly and you lose track of what initially you were looking for. But if you have a good basic understanding of the technology then please explore the different spec documents as it gives more exposure and information related to different protocol layers.
There are different elements in the network there is a User Equipment, there is a Radio network and then there is the Core Network. 3GPP Specifies guidelines and defines protocols that interact with each other in the Network ecosystem. So there are specifications written for each of the Elements in the Ecosystem.
Link for 5G-NR Specfication series : https://www.3gpp.org/DynaReport/38-series.htm
Link to LTE Specfication series : https://www.3gpp.org/DynaReport/36-series.htm
There are usually two types of documents available once you go in the XX Series (eg. 38 Series for NR)
TS: Technical Specification [These are the final versions of the specifications that are published]
TR: Technical report [ TR Contains discussion related to a specific topic which needs to be finalized in the TS]
Here is a brief high-level list of specifications for 5G-NR
For the scope of this article, I will be guiding with the help of 5G-NR 3GPP Specification documents i.e 38.XXX Series.
I believe below three items should help you navigate through the specifications.
- Decoding the Specification Numbering
- How to Navigate through the Specifications and Referencing
- How to read ASN.1 Encoding for RRC Messages
1. Decoding the Specification Numbering
- Decoding Specification numbering can be simple but might also quickly turn into complex decoding, lets get started with the basics of the spec numbering.
- All 3GPP specifications(UMTS and later release) have a specification number consisting of 5 digits. (e.g. 36.101).
- The first two digits define the series followed by 3 more digits that relate to different specifications within the series.
- The 3GPP Specifications are stored on the file server as zipped MS-Word files. So when you go and download a specification you will get a zipped document with an alphanumeric.zip file.
- Those filenames have a reason behind them and are named as per the following defined structure by 3GPP
Each character fields have the following significance …
- S = series number – 2 characters (see the table above)
- M = mantissa (the part of the spec number after the series number) – 2 or 3 characters (see above)
- P = optional part number – 1 or 2 digits if present
- Q = optional sub-part number – 1 or 2 digits if present
- V = – see the fifth example below)
So for example, I will use RRC RRC Specification for 5G-NR as an example to navigate the specs.
First Lets download the Specs for NR RRC from the link below, I will download the latest spec available at the time of the writing, once I clicked the version number it will download a zip file and it should look similar to 38331-g10.zip, and after unzipping 38331-g10.docx now it’s easier to understand when you download once since you know which version of the specification it is, but if you have a number of versions it will get difficult to understand which folder belongs to which specification.
As per the above structure shown above, it will translate into 38.331- V 16.1.0
Once you have downloaded the spec, and open it we will see a version number associated with each specification, number, for example
3GPP TS 38.331 V16.1.0
There is a pattern for the version number i.e V x.y.z
X – First digit :
- 1 presented to TSG for information;
- 2 presented to TSG for approval;
- 3 or greater indicates TSG approved document under change control.
- y the second digit is incremented for all changes of substance, i.e. technical enhancements, corrections, updates, etc.
- z the third digit is incremented when editorial only changes have been incorporated in the document.
2. How to Navigate through the Specifications and Referencing
3GPP speciations have a lot of references to other specifications, it’s always a good idea to go through the topic in the specification first and then go to the referring specifications for more details and clarifications on that topics. Specifications are interconnected with other specs.
There are two ways how references are made in the specs
- Same document with reference of a section number.
- External document Specification number with or without a section number.
Below is an example from the 38.331 Specification referring to the reference number with Section number in the same document and with a Clause and section number in an external document.
Almost every Topic in the specification has local references or references pointing to external documents. So just need to have multiple documents open to read through a topic.
3. How to read ASN.1 Encoding for RRC Messages
I have discussed in detail ASN.1 in another article here.