-
Story
-
Resolution: Done
-
Medium
-
None
-
RICP_T4 Sprint B.D6
Requirements
Configuration
The Global RIC ID in the configuration includes both the PLMN ID and the Near-RT RIC ID. Since the string isn't straight forward to read it, and since the PLMN ID - cancatination of USA Code - Mobile Country Codes (MCC) and AT&T Code - Mobile Network Codes (MNC) - isn't going to be changed in the PIZ - we decide to split them to 3 parameters
- MCC - Mobile Country Code - here the User will put 3 digits of the Country - 310.
- MNC Mobile Network Code - here the User will put up 2 or 3 digits of the Operator 411.
- RIC ID - String Alpha Numeric in Hex (0-F) Only the least 20 bits are actual, so it should be only 5 characters, each if 0-F.
Validation
Upon Initialization
- Check that the MCC parameter exist and it is only 3 digits (0-999). Otherwise - Log Error and stop
- Check that the MNC parameter exist and it is 2 or 3 digits (0-999). Otherwise - Log Error and stop
- Check that RIC ID parameter exist and it is only 5 Hex Characters. Otherwise - Log and stop
Build the PLMN Identity
This is what Adi wrote -
examples of MCC MNC translation
MCC 310 MNC 311 PLMN_ID 13 20 84
MCC 327 MNC 94 PLMN_ID 23 F7 49
Taken from the standard -
9.2.4 PLMN Identity
This information element indicates the PLMN Identity.
IE/Group Name | IE type and reference |
Semantics description |
PLMN Identity | OCTET STRING (3) |
|
PLMN-ID is built from 2 parameters MCC and MNC but is encoded as buffer of 3 bytes in the following way:
Each byte 8 bits divided to 2 nibbles of 4 bits and each nibble contain one digit.
Byte 0 lower 4 bits contain the hundred digits of MCC -> 3
Byte 0 higher 4 bits contains the tens digit of mcc -> 1
Byte 1 lower 4 bits contain the once digits of MCC -> 0
So the MCC is 310
And the MNC is:
If Byte 1 higher 4 bits contain ‘F’ (15) then MNC is 2 digit size 10 – 99 ( like the standard- 1111 used as filler digit...)
If Byte 1 higher 4 bits contain 0 - 9 then MNC is 3 digits and this digit is the once MCC -> 1
Byte 2 lower 4 bits contain the hundred digits of MNC -> 4 or F if
Byte 2 higher 4 bits contains the tents digit of MNC -> 1
MNC = 411
So the result is either 3 HEX bytes with blank <pLMN-Identity>13 10 14</pLMN-Identity> (I put the MMC in Red and the MNC in Purple)
or without blank <pLMN-Identity>131014</pLMN-Identity>
The <ric-ID>10101010110011001110</ric-ID> is bits string
and this is example of the entire RMR
<E2AP-PDU><successfulOutcome><procedureCode>1</procedureCode><criticality><reject/></criticality><value><E2setupResponse><protocolIEs><E2setupResponseIEs><id>4</id><criticality><reject/></criticality><value><GlobalRIC-ID> <pLMN-Identity>13 10 14</pLMN-Identity><ric-ID>10101010110011001110</ric-ID></GlobalRIC-ID></value></E2setupResponseIEs><E2setupResponseIEs><id>9</id><criticality><reject/></criticality><value><RANfunctionsID-List><ProtocolIE-SingleContainer><id>6</id><criticality><ignore/></criticality><value><RANfunctionID-Item><ranFunctionID>1</ranFunctionID><ranFunctionRevision>1</ranFunctionRevision></RANfunctionID-Item></value></ProtocolIE-SingleContainer><ProtocolIE-SingleContainer><id>6</id><criticality><ignore/></criticality><value><RANfunctionID-Item><ranFunctionID>2</ranFunctionID><ranFunctionRevision>1</ranFunctionRevision></RANfunctionID-Item></value></ProtocolIE-SingleContainer><ProtocolIE-SingleContainer><id>6</id><criticality><ignore/></criticality><value><RANfunctionID-Item><ranFunctionID>3</ranFunctionID><ranFunctionRevision>1</ranFunctionRevision></RANfunctionID-Item></value></ProtocolIE-SingleContainer></RANfunctionsID-List></value></E2setupResponseIEs></protocolIEs></E2setupResponse></value></successfulOutcome></E2AP-PDU>
Acceptance
- Validate happy scenatio - no panic is thrown and setup response as expected
- Validate mnc, mmc and ricId according to the above - see panic is thrown
- Automation is passed successfully
Test Plan
Given | When | Then |
E2M is initialized and parsing the configuration (happy scenario) | MCC = 310 MNC = 411 ricID = AACCE |
Validation is passed successfully and setup response includes the right values |
E2M is initialized and parsing the configuration (happy scenario) | MCC = 026 MNC = 09 ricID = AACCE |
Validation is passed successfully and setup response includes the right values |
E2M is initialized and parsing the configuration | globalRicId is missing | Panic is thrown |
E2M is initialized and parsing the configuration | ricId is missing | Panic is thrown |
E2M is initialized and parsing the configuration | ricId is empty | Panic is thrown |
E2M is initialized and parsing the configuration | ricId is not hex string (TEST1) | Panic is thrown |
E2M is initialized and parsing the configuration | ricId with wrong length (AA43) | Panic is thrown |
E2M is initialized and parsing the configuration | MCC is missing | Panic is thrown |
E2M is initialized and parsing the configuration | MCC is empty | Panic is thrown |
E2M is initialized and parsing the configuration | MCC is not 3 digits (31) | Panic is thrown |
E2M is initialized and parsing the configuration | MCC is negative (-31) | Panic is thrown |
E2M is initialized and parsing the configuration | MCC is alphnumeric (1W2) | Panic is thrown |
E2M is initialized and parsing the configuration | MNC is missing | Panic is thrown |
E2M is initialized and parsing the configuration | MNC is empty | Panic is thrown |
E2M is initialized and parsing the configuration | MNC is over the length (6794) | Panic is thrown |
E2M is initialized and parsing the configuration | MNC is less than 2 digits (4) | Panic is thrown |
E2M is initialized and parsing the configuration | MCC is negative (-2) | Panic is thrown |
E2M is initialized and parsing the configuration | MNC is alphnumeric (2A) | Panic is thrown |
- is cloned by
-
RIC-442 Split the Global RIC ID Configuration to - change MCC, MNC and RIC ID Configuration in helm chart
- Done
1.
|
Configuration (model): Split PLMNID into MCC+MNC | Done | Shuky Har-Noy |
|
||||||||
2.
|
Validate and Transform MCC+MNC decimals into Hex (3 bytes) | Done | Unassigned |
|
||||||||
3.
|
Unit tests + coverage | Done | Unassigned |
|
||||||||
4.
|
Code review | Done | Unassigned |
# | Subject | Branch | Project | Status | CR | V |
---|---|---|---|---|---|---|
3885,2 | [RIC-306] Split configuration of globalRicId to mmc, mnc and ric id | PI5 | ric-plt/e2mgr | Status: MERGED | +2 | +1 |
3971,1 | [RIC-306] - Fix bug with parsing | PI5 | ric-plt/e2mgr | Status: MERGED | +2 | +1 |
3995,1 | [RIC-306] Fix globalRicId properties type | PI5 | ric-plt/e2mgr | Status: MERGED | +2 | +1 |