Difference between revisions of "DISH gNB Issue"

Jump to navigation Jump to search
Alternate is now primary, primary is deprecated
(Add alternate explanation)
(Alternate is now primary, primary is deprecated)
 
Line 5: Line 5:
''First and foremost this solution provided may not be 100% correct. The gNB may not be official but it does solve all of the major problems that is preventing normal usage.''
''First and foremost this solution provided may not be 100% correct. The gNB may not be official but it does solve all of the major problems that is preventing normal usage.''


[[File:math-20240203(6).png|276px]]
<code>''gNB'' = floor(''cellID'' / 2<sup>12</sup>)_floor(''cellID'' mod 2<sup>12</sup>) / 21)</code>


[[File:dish_proposed-gnb_cellnum.png|239px]]
<code>''cellNum'' = (''cellID'' mod 2<sup>12</sup>) mod 21</code>
 
An alternate has been brought to my attention. It's similar but instead of multiplying by 256 and adding the <code>cid mod 2^12 / 21</code>, we're just placing it after the first calculated section. Example: 111010-6. Cell numbers will be the same.


==Background==
==Background==
The definition of the gNB is beyond the scope of this document, but simply, it's a 36-bit number. Part of the binary number is the gNB and the rest is the cell number. For example, T-Mobile uses a 24-bit gNB, which gives it a 12-bit cell number, or a potential of 4096 cells! The method that Cellmapper is calculating the gNB is a 32-bit gNB and a 4-bit cell number: [[File:math-20240203(4).png|79px]] and its cell number [[File:math-20240203(3).png|163px]]. This gives 16 cells per gNB. At this point we already know this isn't correct.
The definition of the gNB is beyond the scope of this document, but simply, it's a 36-bit number. Part of the binary number is the gNB and the rest is the cell number. For example, T-Mobile uses a 24-bit gNB, which gives it a 12-bit cell number, or a potential of 4096 cells! The method that Cellmapper is calculating the gNB is a 32-bit gNB and a 4-bit cell number: <code>''gNB'' = floor(''cellID'' / 2<sup>4</sup>)</code> and its cell number <code>''cellNum'' = ''cellID'' mod 2<sup>4</sup></code>. This gives 16 cells per gNB. At this point we already know this isn't correct.


After sifting through a lot of the data available on Cellmapper, a pattern was found which gave 21 cells per site. If we're slicing a 36-bit you realize you can't use 21. So we have to look for another way.
After sifting through a lot of the data available on Cellmapper, a pattern was found which gave 21 cells per site. If we're slicing a 36-bit you realize you can't use 21. So we have to look for another way.
Line 18: Line 16:
This [https://www.reddit.com/r/cellmapper/comments/109p22x/all_gnb_starting_with_the_number_1_on_5g_sa/j415pmn/ post] on Reddit was found, stating that ''"Just got confirmation back that DISH is using 24/12 bit structure for their gNBs."'' If this is true, this would produce 4096 cells, way more than the 21 needed for DISH. We need to dig deeper.
This [https://www.reddit.com/r/cellmapper/comments/109p22x/all_gnb_starting_with_the_number_1_on_5g_sa/j415pmn/ post] on Reddit was found, stating that ''"Just got confirmation back that DISH is using 24/12 bit structure for their gNBs."'' If this is true, this would produce 4096 cells, way more than the 21 needed for DISH. We need to dig deeper.


The result came by complete accident while just plugging numbers. Basically, what we're doing is using the 24/12 method, multiplying 256 to make it unique while finding the remainder of dividing the result by 21 and adding them together. We're now left with a number that actually looks similar to the current 32/4 method that's being used and data is consistent. All n71 cells now fall under cells 6, 7, 8, gNBs don't split between sites, and no sites have unnecessary multiple gNBs. Again, this may not be 100% correct, but it does work, and it has worked with all data throughout the United States.  
What we found out is DISH is indeed using 24/12 format, but going a step further. A group of sites in an area can have  the same gNB. To break it down even further, the number 21 comes into play. Take a cell ID, divide it by 2<sup>12</sup>, or 4096. This gives the base gNB. Now we append a secondary number with a separator with <code>floor(''cellID'' mod(2<sup>12</sup>) / 21)</code>, such as a dash or underscore.
 
Here's a quick example for a cell ID of 1011724336, which is a site at 38.217800, -85.625314 Louisville, KY.
 
<pre>
gNB = floor(cellID / 2^12)_floor(cellID mod 2^12) / 21)
gNB = floor(1011724336 / 4096)_floor(1011724336 mod 4096 / 21
gNB = 247003_floor(48 / 21)
gNB = 247003_2
</pre>
<pre>
cellNum = (cellID mod 2^12) mod 21
cellNum = (1011724336 mod 4096) mod 21
cellNum = 48 mod 21
cellNum = 48 mod 21
cellNum = 6
</pre>
 
Therefore, a DISH Wireless cell ID of 1011724336 belongs to a gNB of 247003_2 and it's cell number is 6.
 
==History==
Previously it was thought that due to many using 32/4 that the gNBs should be similar numbers, so in order to create a similar number, a more complex formula was used. Basically, the primary gNB was multiplied by 256 and the secondary was then added. Using the example above, 247003 was the primary, so we're multiply it by 256 which the result will be 63232768. Add the 2 and we get 63232770. Cellmapper's 32/4 calculation gives us 63232771, which is very close. Although this could still be a viable option, its usage has been deprecated due to its complexity.


==Bands==
Using the formula posted above, you'll find that the bands all match these cell numbers:
Using the formula posted above, you'll find that the bands all match these cell numbers:


Line 72: Line 92:
An easy way to see how this works is to try it for yourself. The best and easiest way is to use a spreadsheet such as Excel or Google Sheets.  
An easy way to see how this works is to try it for yourself. The best and easiest way is to use a spreadsheet such as Excel or Google Sheets.  


'''gNB''': <code>=(FLOOR.MATH(A1/2^12)*256)+FLOOR.MATH(MOD(A1,2^12)/21)</code>, where A1 is the full Cell Identifier, in decimal.
'''gNB''': <code>=FLOOR.MATH(A1/2^12)&"_"&FLOOR.MATH(MOD(A1,2^12)/21)</code>, where A1 is the full Cell Identifier, in decimal.


'''cellNumber''': <code>=MOD(MOD(A1,2^12),21)</code>
'''cellNumber''': <code>=MOD(MOD(A1,2^12),21)</code>
3,715

edits

Navigation menu