CGI and eCGI
The CGI or Cell Global Identification is used in GSM/UMTS standard and it is defined as the concatenation of the MCC (Mobile Country Code), MNC (Mobile Network Code), LAC (Location Area Code) , and the CI (Cell Identity). Cell Identity shall be unique within a location area.
The eCGI or extendend CGI, is used in LTE/LTE-A standards and it defined as the concatenation of MCC, MNC and the eCI. The MCC and MNC are the same as included in the CGI, while the eCI is build by a concatenation of the eNodeB and the CI
Both lengths are 15 decimal digit code and for 2G, 3G & 4G Networks the first 5 digits are always the MCC (Mobile Country Code) and the MNC (Mobile Network Code)
CGI
The CGI structure is shown in the following figure. For 2G and 3G networks the next 5 digits are the LAC (Location Area Code) and the last five the Cell ID within the LAC. Note that the LAC/CI can be represented by 4 hexadecimal bytes (eventually BCD converted), but in some systems they are separated out into two 5-digit decimal numbers. This will give a very different result depending on which method is used. Any user should first know exactly which presentation is being used.
eCGI
For 4G Networks the CGI is named eCGI and, while first 5 digits are still MCC & MNC, the last digits are split in eNB-ID (6 digits) and CI (max 3 digits).
The binary size of the eNB-ID is 20 bit while that of CI is 8 bit.
The point is that some systems or applications works with the whole CGI or eCGI and other systems works with the separate blocks: MCC-MNC-LAC-CID or MCC-MNC-eNB. In order to translate the 15 digit code received into blocks it is a need to know the right cell technology to correctly split the digits.
17 Responses
You have failed at explaining the very basic and an important thing.
ECGI = PLMN (MCC+MNC) + CellIdentity (28-bits)
MCC is 3 digits and MNC can be of either 2 or 3 digits.
So PLMN can be of either 5 or 6 digits depending on the MNC.
CellIdentity in ECGI is not classified as eNB-ID & CellID, it is always the 28-bits. So if we represent it in digits it will be of max 9 digits.
And ECGI is not represented as concatenation of PLMN & CellIdentity.
EUTRAN-CGI ::= SEQUENCE {
pLMNidentity PLMNidentity,
cell-ID CellIdentity,
iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL,
…
}
CellIdentity ::= BIT STRING (SIZE (28))
Hi Vivek,
Thanks for your valuable contribution! We are very grateful to receive any feedback!
This is exactly the scope of our BLOG & TRAINING section: explain and discuss!
We will update the article ASAP to integrate your explanation!
Stay tuned and feel free to comment us!
Hi Michele,
Can you verify and update the article based on Vivek’s inputs? It’s been almost 4 months for now!
Thanks!
Hello Srihari, Michele is looking into it but he worked hard during last months. He will update the article ASAP!
Amazingly this article comes up quite high within the google searches. I think that warrants a cleanup to avoid misinformation. Either that – or delete the article.
Note that for CGI, the LAC/CI can be combined into 4 octets, but for the purpose of some systems is separated out into two 5-digit decimal numbers. This will give a very different result depending on which method is used. Any user of that data should first examine and determine exactly which presentation is being used.
Then for eCGI – I also believe that the eNB + CI should be maximum a 9-digit decimal number, I am not sure about its binary size, and I am not sure if it is to be combined decimal wise or binary wise. That would require more research from my side to answer (which I was hoping to find here).
Hi Jo,
thank you for your useful observations!!
We have added an indication about the hexadecimal representation for LAC/CI in CGI.
We also corrected the mistakes, since as you wrote the eNB+CI is maximum a 9-digit decimal number.
Finally, note that the binary size for eNB-ID (20 bit) and CI (8 bit) has been pointed up in order to answer your question.
Thanks for finally talking about >CGI & eCGI <Liked it!
Where is the TAC in this explanation?
Hello Amandi, the TAC is the Tracking Area Code of a TA (Tracking Area).
A Tracking Area is a logical concept of an area where a user can move around without updating the MME. The network allocates a list with one or more TAs to the user. In certain operation modes, the UE may move freely in all TAs of the list without updating the MME. You can think of ‘Tracking Area’ as ‘Routing Area’ in UMTS.
Each eNobe broadcasts a special tracking area code (TAC) to indicate to which Tracking Area the eNodeB belong to and the TAC is unique within a PLMN.
I hope it is clear.
Like and share!
Unquestionably believe that which you stated. Your favorite reason seemed to be
on the web the simplest thing to be aware of. I say to you,
I definitely get annoyed while people consider worries that they just don’t
know about. You managed to hit the nail upon the top and
defined out the whole thing without having side effect
, people could take a signal. Will likely be back to get more.
Thanks
Hi everyone. Can someone kindly tell me how to extract mcc, mnc, lac and cid from CGI and ECGI both. If we have values in hexadecimal format, How could we extract all stuff manually.
Correct explanation would be highly appreciated.
Hello Najeeb, you can directly refer to the 3GPP TS 48.008 V10.8.0 (2013-11) specification. Please have a look at the specific section 3.2.2.17.
Of course, in case of more needs, do not hesitate to contact us again.
appreciate your efforts maurizio. I have trying to converting it from hexa to decimal manually, and the result I am getting is not what i already have. If this needs software or any program or code or anything that resolve my problem, then kindly suggest me. Highly appreciated
Dear Najeeb, please explain more what you are trying to achieve. If you are looking to simply convert from HEX to DEC, you can just us any simple converter. Instead, if you are trying to find CGI you have just to follow our guide.
Answering to your message I juts found that picture was not here. Please have a look.
@Najeeb, Normally , Manual extraction is not working but if someone have information of command which are using for same…
Yes dear Ali. I am facing this issue. The result is matching the actual result I already have. Is there any other way? I am fed up
Yes dear Ali. I am facing this issue in manual method The result is not matching the actual result I already have. Is there any other way? I am fed up