Commit 3d13ccaa authored by Joanne Hugé's avatar Joanne Hugé

software/ors-amarisoft: add 4G inter eNB handover

parent 68c9f331
...@@ -64,7 +64,7 @@ md5sum = dcaac06553a3222b14c0013a13f4a149 ...@@ -64,7 +64,7 @@ md5sum = dcaac06553a3222b14c0013a13f4a149
[enb.jinja2.cfg] [enb.jinja2.cfg]
filename = config/enb.jinja2.cfg filename = config/enb.jinja2.cfg
md5sum = 269ac61b9e0fe283c4995b53714af63e md5sum = 1490a80f446c8a9e18ea268350dc8a35
[sib23.jinja2.asn] [sib23.jinja2.asn]
filename = config/sib23.jinja2.asn filename = config/sib23.jinja2.asn
......
...@@ -151,8 +151,24 @@ ...@@ -151,8 +151,24 @@
cell_id: {{ cell_list[k].get('cell_id', slapparameter_dict.get('cell_id', '0x0' + i|string)) }}, cell_id: {{ cell_list[k].get('cell_id', slapparameter_dict.get('cell_id', '0x0' + i|string)) }},
tac: {{ cell_list[k].get('tac', slapparameter_dict.get('tac', '0x0001')) }}, tac: {{ cell_list[k].get('tac', slapparameter_dict.get('tac', '0x0001')) }},
n_id_cell: {{ cell_list[k].get('pci', slapparameter_dict.get('pci', i)) }}, n_id_cell: {{ cell_list[k].get('pci', slapparameter_dict.get('pci', i)) }},
root_sequence_index: 204, root_sequence_index: {{ cell_list[k].get('root_sequence_index', slapparameter_dict.get('root_sequence_index', 204 + i)) }},
dl_earfcn: {{ cell_list[k].get('dl_earfcn', slapparameter_dict.get('dl_earfcn', earfcn)) }}, dl_earfcn: {{ cell_list[k].get('dl_earfcn', slapparameter_dict.get('dl_earfcn', earfcn)) }},
{%- if slapparameter_dict.get('ncell_list', '') %}
ncell_list: [
{%- for i, k in enumerate(slapparameter_dict['ncell_list']) %}
{%- if i == 0 -%}
{
{%- else -%}
, {
{%- endif %}
n_id_cell: {{ slapparameter_dict['ncell_list'][k].get('pci', '') }},
dl_earfcn: {{ slapparameter_dict['ncell_list'][k].get('dl_earfcn', '') }},
cell_id: {{ slapparameter_dict['ncell_list'][k].get('cell_id', '') }},
tac: {{ slapparameter_dict['ncell_list'][k].get('tac', 1) }},
}
{%- endfor -%}
],
{% endif %}
{%- set scell_list = [] %} {%- set scell_list = [] %}
{%- for j, l in enumerate(cell_list) %} {%- for j, l in enumerate(cell_list) %}
{%- if j != i %} {%- if j != i %}
...@@ -847,7 +863,23 @@ ...@@ -847,7 +863,23 @@
logicalChannelSR_Prohibit: false, logicalChannelSR_Prohibit: false,
}, },
}, },
] ],
meas_config_desc: {
a1_report_type: "rsrp",
a1_rsrp: -70,
a1_hysteresis: 0,
a1_time_to_trigger: 640,
a2_report_type: "rsrp",
a2_rsrp: -80,
a2_hysteresis: 0,
a2_time_to_trigger: 640,
a3_report_type: "rsrp",
a3_offset: {{ slapparameter_dict.get('lte_handover_a3_offset', 6) }},
a3_hysteresis: 0,
a3_time_to_trigger: {{ slapparameter_dict.get('lte_handover_a3_time_to_trigger', 480) }},
},
meas_gap_config: "gp0",
ho_from_meas: true,
}, },
} }
...@@ -95,6 +95,12 @@ ...@@ -95,6 +95,12 @@
"default": "0x0001", "default": "0x0001",
"type": "string" "type": "string"
}, },
"root_sequence_index": {
"title": "Root Sequence Index",
"description": "Range: 0 to 837. Set the PRACH root sequence index (SIB2.rootSequenceIndex field). It must be different for each neighbour cell operating on the same frequency and sharing the same PRACH configuration.",
"type": "number",
"default": 204
},
{%- else %} {%- else %}
"cell_list": { "cell_list": {
"title": "Cell List", "title": "Cell List",
...@@ -290,6 +296,69 @@ ...@@ -290,6 +296,69 @@
"type": "object", "type": "object",
"default": {} "default": {}
}, },
"lte_handover_a3_offset": {
"title": "A3 offset for LTE handover",
"description": "RSRP gain offset between gNBs which will trigger handover",
"type": "number",
"default": 6
},
"lte_handover_time_to_trigger": {
"title": "Time to Trigger for LTE handover",
"description": "Time to triger after which LTE handover will be triggered if A3 offset is reached",
"type": "number",
"enum": [
0,
40,
64,
80,
100,
128,
160,
256,
320,
480,
512,
640,
1024,
1280,
2560,
5120
],
"default": 480
},
"ncell_list": {
"title": "Neighbour Cell Info",
"description": "Neighbour Cell Info",
"patternProperties": {
".*": {
"properties": {
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the neighbour cell",
"type": "number"
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell ID of the neighbour cell",
"type": "number"
},
"cell_id": {
"title": "Cell ID",
"description": "Concatenation of enb_id and cell_id of the neighbour cell",
"type": "string"
},
"tac": {
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"inactivity_timer": { "inactivity_timer": {
"title": "Inactivity Timer", "title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.", "description": "Send RRC connection release after this time (in ms) of network inactivity.",
......
...@@ -128,6 +128,69 @@ ...@@ -128,6 +128,69 @@
"type": "object", "type": "object",
"default": {} "default": {}
}, },
"lte_handover_a3_offset": {
"title": "A3 offset for LTE handover",
"description": "RSRP gain offset between gNBs which will trigger handover",
"type": "number",
"default": 6
},
"lte_handover_time_to_trigger": {
"title": "Time to Trigger for LTE handover",
"description": "Time to triger after which LTE handover will be triggered if A3 offset is reached",
"type": "number",
"enum": [
0,
40,
64,
80,
100,
128,
160,
256,
320,
480,
512,
640,
1024,
1280,
2560,
5120
],
"default": 480
},
"ncell_list": {
"title": "Neighbour Cell Info",
"description": "Neighbour Cell Info",
"patternProperties": {
".*": {
"properties": {
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the neighbour cell",
"type": "number"
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell ID of the neighbour cell",
"type": "number"
},
"cell_id": {
"title": "Cell ID",
"description": "Concatenation of enb_id and cell_id of the neighbour cell",
"type": "string"
},
"tac": {
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"inactivity_timer": { "inactivity_timer": {
"title": "Inactivity Timer", "title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.", "description": "Send RRC connection release after this time (in ms) of network inactivity.",
......
...@@ -222,6 +222,69 @@ ...@@ -222,6 +222,69 @@
"type": "object", "type": "object",
"default": {} "default": {}
}, },
"lte_handover_a3_offset": {
"title": "A3 offset for LTE handover",
"description": "RSRP gain offset between gNBs which will trigger handover",
"type": "number",
"default": 6
},
"lte_handover_time_to_trigger": {
"title": "Time to Trigger for LTE handover",
"description": "Time to triger after which LTE handover will be triggered if A3 offset is reached",
"type": "number",
"enum": [
0,
40,
64,
80,
100,
128,
160,
256,
320,
480,
512,
640,
1024,
1280,
2560,
5120
],
"default": 480
},
"ncell_list": {
"title": "Neighbour Cell Info",
"description": "Neighbour Cell Info",
"patternProperties": {
".*": {
"properties": {
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the neighbour cell",
"type": "number"
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell ID of the neighbour cell",
"type": "number"
},
"cell_id": {
"title": "Cell ID",
"description": "Concatenation of enb_id and cell_id of the neighbour cell",
"type": "string"
},
"tac": {
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"inactivity_timer": { "inactivity_timer": {
"title": "Inactivity Timer", "title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.", "description": "Send RRC connection release after this time (in ms) of network inactivity.",
......
...@@ -52,6 +52,12 @@ ...@@ -52,6 +52,12 @@
"default": "0x0001", "default": "0x0001",
"type": "string" "type": "string"
}, },
"root_sequence_index": {
"title": "Root Sequence Index",
"description": "Range: 0 to 837. Set the PRACH root sequence index (SIB2.rootSequenceIndex field). It must be different for each neighbour cell operating on the same frequency and sharing the same PRACH configuration.",
"type": "number",
"default": 204
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -117,6 +123,69 @@ ...@@ -117,6 +123,69 @@
"type": "object", "type": "object",
"default": {} "default": {}
}, },
"lte_handover_a3_offset": {
"title": "A3 offset for LTE handover",
"description": "RSRP gain offset between gNBs which will trigger handover",
"type": "number",
"default": 6
},
"lte_handover_time_to_trigger": {
"title": "Time to Trigger for LTE handover",
"description": "Time to triger after which LTE handover will be triggered if A3 offset is reached",
"type": "number",
"enum": [
0,
40,
64,
80,
100,
128,
160,
256,
320,
480,
512,
640,
1024,
1280,
2560,
5120
],
"default": 480
},
"ncell_list": {
"title": "Neighbour Cell Info",
"description": "Neighbour Cell Info",
"patternProperties": {
".*": {
"properties": {
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the neighbour cell",
"type": "number"
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell ID of the neighbour cell",
"type": "number"
},
"cell_id": {
"title": "Cell ID",
"description": "Concatenation of enb_id and cell_id of the neighbour cell",
"type": "string"
},
"tac": {
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"inactivity_timer": { "inactivity_timer": {
"title": "Inactivity Timer", "title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.", "description": "Send RRC connection release after this time (in ms) of network inactivity.",
......
...@@ -138,6 +138,69 @@ ...@@ -138,6 +138,69 @@
"type": "object", "type": "object",
"default": {} "default": {}
}, },
"lte_handover_a3_offset": {
"title": "A3 offset for LTE handover",
"description": "RSRP gain offset between gNBs which will trigger handover",
"type": "number",
"default": 6
},
"lte_handover_time_to_trigger": {
"title": "Time to Trigger for LTE handover",
"description": "Time to triger after which LTE handover will be triggered if A3 offset is reached",
"type": "number",
"enum": [
0,
40,
64,
80,
100,
128,
160,
256,
320,
480,
512,
640,
1024,
1280,
2560,
5120
],
"default": 480
},
"ncell_list": {
"title": "Neighbour Cell Info",
"description": "Neighbour Cell Info",
"patternProperties": {
".*": {
"properties": {
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the neighbour cell",
"type": "number"
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell ID of the neighbour cell",
"type": "number"
},
"cell_id": {
"title": "Cell ID",
"description": "Concatenation of enb_id and cell_id of the neighbour cell",
"type": "string"
},
"tac": {
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"inactivity_timer": { "inactivity_timer": {
"title": "Inactivity Timer", "title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.", "description": "Send RRC connection release after this time (in ms) of network inactivity.",
......
...@@ -176,6 +176,69 @@ ...@@ -176,6 +176,69 @@
"type": "object", "type": "object",
"default": {} "default": {}
}, },
"lte_handover_a3_offset": {
"title": "A3 offset for LTE handover",
"description": "RSRP gain offset between gNBs which will trigger handover",
"type": "number",
"default": 6
},
"lte_handover_time_to_trigger": {
"title": "Time to Trigger for LTE handover",
"description": "Time to triger after which LTE handover will be triggered if A3 offset is reached",
"type": "number",
"enum": [
0,
40,
64,
80,
100,
128,
160,
256,
320,
480,
512,
640,
1024,
1280,
2560,
5120
],
"default": 480
},
"ncell_list": {
"title": "Neighbour Cell Info",
"description": "Neighbour Cell Info",
"patternProperties": {
".*": {
"properties": {
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the neighbour cell",
"type": "number"
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell ID of the neighbour cell",
"type": "number"
},
"cell_id": {
"title": "Cell ID",
"description": "Concatenation of enb_id and cell_id of the neighbour cell",
"type": "string"
},
"tac": {
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"inactivity_timer": { "inactivity_timer": {
"title": "Inactivity Timer", "title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.", "description": "Send RRC connection release after this time (in ms) of network inactivity.",
......
...@@ -62,6 +62,12 @@ ...@@ -62,6 +62,12 @@
"default": "0x0001", "default": "0x0001",
"type": "string" "type": "string"
}, },
"root_sequence_index": {
"title": "Root Sequence Index",
"description": "Range: 0 to 837. Set the PRACH root sequence index (SIB2.rootSequenceIndex field). It must be different for each neighbour cell operating on the same frequency and sharing the same PRACH configuration.",
"type": "number",
"default": 204
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -127,6 +133,69 @@ ...@@ -127,6 +133,69 @@
"type": "object", "type": "object",
"default": {} "default": {}
}, },
"lte_handover_a3_offset": {
"title": "A3 offset for LTE handover",
"description": "RSRP gain offset between gNBs which will trigger handover",
"type": "number",
"default": 6
},
"lte_handover_time_to_trigger": {
"title": "Time to Trigger for LTE handover",
"description": "Time to triger after which LTE handover will be triggered if A3 offset is reached",
"type": "number",
"enum": [
0,
40,
64,
80,
100,
128,
160,
256,
320,
480,
512,
640,
1024,
1280,
2560,
5120
],
"default": 480
},
"ncell_list": {
"title": "Neighbour Cell Info",
"description": "Neighbour Cell Info",
"patternProperties": {
".*": {
"properties": {
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the neighbour cell",
"type": "number"
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell ID of the neighbour cell",
"type": "number"
},
"cell_id": {
"title": "Cell ID",
"description": "Concatenation of enb_id and cell_id of the neighbour cell",
"type": "string"
},
"tac": {
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"inactivity_timer": { "inactivity_timer": {
"title": "Inactivity Timer", "title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.", "description": "Send RRC connection release after this time (in ms) of network inactivity.",
......
...@@ -54,6 +54,7 @@ param_dict = { ...@@ -54,6 +54,7 @@ param_dict = {
'enb_id': '0x17', 'enb_id': '0x17',
'pci': 250, 'pci': 250,
'tac': '0x1717', 'tac': '0x1717',
'root_sequence_index': '1',
'mme_list': { 'mme_list': {
'10.0.0.1': {'mme_addr': '10.0.0.1'}, '10.0.0.1': {'mme_addr': '10.0.0.1'},
'2001:db8::1': {'mme_addr': '2001:db8::1'}, '2001:db8::1': {'mme_addr': '2001:db8::1'},
...@@ -78,19 +79,23 @@ param_dict = { ...@@ -78,19 +79,23 @@ param_dict = {
'nr_handover_a3_offset': 10, 'nr_handover_a3_offset': 10,
'ncell_list': { 'ncell_list': {
'ORS1': { 'ORS1': {
'dl_earfcn': 100000,
'dl_nr_arfcn': 100000, 'dl_nr_arfcn': 100000,
'ssb_nr_arfcn': 100000, 'ssb_nr_arfcn': 100000,
'pci': 1, 'pci': 1,
'nr_cell_id': '0x0000001', 'nr_cell_id': '0x0000001',
'cell_id': '0x0000001',
'gnb_id_bits': 28, 'gnb_id_bits': 28,
'nr_band': 1, 'nr_band': 1,
'tac': 1 'tac': 1
}, },
'ORS2': { 'ORS2': {
'dl_earfcn': 200000,
'dl_nr_arfcn': 200000, 'dl_nr_arfcn': 200000,
'ssb_nr_arfcn': 200000, 'ssb_nr_arfcn': 200000,
'pci': 2, 'pci': 2,
'nr_cell_id': '0x0000002', 'nr_cell_id': '0x0000002',
'cell_id': '0x0000001',
'gnb_id_bits': 30, 'gnb_id_bits': 30,
'nr_band': 2, 'nr_band': 2,
'tac': 2 'tac': 2
...@@ -145,12 +150,23 @@ def test_enb_conf(self): ...@@ -145,12 +150,23 @@ def test_enb_conf(self):
self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16)) self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16))
self.assertEqual(conf['cell_list'][0]['n_id_cell'], enb_param_dict['pci']) self.assertEqual(conf['cell_list'][0]['n_id_cell'], enb_param_dict['pci'])
self.assertEqual(conf['cell_list'][0]['tac'], int(enb_param_dict['tac'], 16)) self.assertEqual(conf['cell_list'][0]['tac'], int(enb_param_dict['tac'], 16))
self.assertEqual(conf['cell_list'][0]['root_sequence_index'], int(enb_param_dict['root_sequence_index']))
for p in conf['cell_default']['plmn_list']: for p in conf['cell_default']['plmn_list']:
for n in "plmn attach_without_pdn reserved".split(): for n in "plmn attach_without_pdn reserved".split():
self.assertEqual(p[n], enb_param_dict['plmn_list'][p['plmn']][n]) self.assertEqual(p[n], enb_param_dict['plmn_list'][p['plmn']][n])
for p in conf['mme_list']: for p in conf['mme_list']:
self.assertEqual(p['mme_addr'], enb_param_dict['mme_list'][p['mme_addr']]['mme_addr']) self.assertEqual(p['mme_addr'], enb_param_dict['mme_list'][p['mme_addr']]['mme_addr'])
for p in conf['cell_list'][0]['ncell_list']:
for k in enb_param_dict['ncell_list']:
if p['dl_earfcn'] == gnb_param_dict1['ncell_list'][k]['dl_earfcn']:
break
conf_ncell = enb_param_dict['ncell_list'][k]
self.assertEqual(p['dl_earfcn'], conf_ncell['dl_earfcn'])
self.assertEqual(p['n_id_cell'], conf_ncell['pci'])
self.assertEqual(p['cell_id'], int(conf_ncell['cell_id'], 16))
self.assertEqual(p['tac'], conf_ncell['tac'])
with open(conf_file, 'r') as f: with open(conf_file, 'r') as f:
for l in f: for l in f:
if l.startswith('#define N_RB_DL'): if l.startswith('#define N_RB_DL'):
......
...@@ -54,6 +54,7 @@ param_dict = { ...@@ -54,6 +54,7 @@ param_dict = {
'enb_id': '0x17', 'enb_id': '0x17',
'pci': 250, 'pci': 250,
'tac': '0x1717', 'tac': '0x1717',
'root_sequence_index': '1',
'mme_list': { 'mme_list': {
'10.0.0.1': {'mme_addr': '10.0.0.1'}, '10.0.0.1': {'mme_addr': '10.0.0.1'},
'2001:db8::1': {'mme_addr': '2001:db8::1'}, '2001:db8::1': {'mme_addr': '2001:db8::1'},
...@@ -78,19 +79,23 @@ param_dict = { ...@@ -78,19 +79,23 @@ param_dict = {
'nr_handover_a3_offset': 10, 'nr_handover_a3_offset': 10,
'ncell_list': { 'ncell_list': {
'ORS1': { 'ORS1': {
'dl_earfcn': 100000,
'dl_nr_arfcn': 100000, 'dl_nr_arfcn': 100000,
'ssb_nr_arfcn': 100000, 'ssb_nr_arfcn': 100000,
'pci': 1, 'pci': 1,
'nr_cell_id': '0x0000001', 'nr_cell_id': '0x0000001',
'cell_id': '0x0000001',
'gnb_id_bits': 28, 'gnb_id_bits': 28,
'nr_band': 1, 'nr_band': 1,
'tac': 1 'tac': 1
}, },
'ORS2': { 'ORS2': {
'dl_earfcn': 200000,
'dl_nr_arfcn': 200000, 'dl_nr_arfcn': 200000,
'ssb_nr_arfcn': 200000, 'ssb_nr_arfcn': 200000,
'pci': 2, 'pci': 2,
'nr_cell_id': '0x0000002', 'nr_cell_id': '0x0000002',
'cell_id': '0x0000001',
'gnb_id_bits': 30, 'gnb_id_bits': 30,
'nr_band': 2, 'nr_band': 2,
'tac': 2 'tac': 2
...@@ -145,12 +150,23 @@ def test_enb_conf(self): ...@@ -145,12 +150,23 @@ def test_enb_conf(self):
self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16)) self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16))
self.assertEqual(conf['cell_list'][0]['n_id_cell'], enb_param_dict['pci']) self.assertEqual(conf['cell_list'][0]['n_id_cell'], enb_param_dict['pci'])
self.assertEqual(conf['cell_list'][0]['tac'], int(enb_param_dict['tac'], 16)) self.assertEqual(conf['cell_list'][0]['tac'], int(enb_param_dict['tac'], 16))
self.assertEqual(conf['cell_list'][0]['root_sequence_index'], int(enb_param_dict['root_sequence_index']))
for p in conf['cell_default']['plmn_list']: for p in conf['cell_default']['plmn_list']:
for n in "plmn attach_without_pdn reserved".split(): for n in "plmn attach_without_pdn reserved".split():
self.assertEqual(p[n], enb_param_dict['plmn_list'][p['plmn']][n]) self.assertEqual(p[n], enb_param_dict['plmn_list'][p['plmn']][n])
for p in conf['mme_list']: for p in conf['mme_list']:
self.assertEqual(p['mme_addr'], enb_param_dict['mme_list'][p['mme_addr']]['mme_addr']) self.assertEqual(p['mme_addr'], enb_param_dict['mme_list'][p['mme_addr']]['mme_addr'])
for p in conf['cell_list'][0]['ncell_list']:
for k in enb_param_dict['ncell_list']:
if p['dl_earfcn'] == gnb_param_dict1['ncell_list'][k]['dl_earfcn']:
break
conf_ncell = enb_param_dict['ncell_list'][k]
self.assertEqual(p['dl_earfcn'], conf_ncell['dl_earfcn'])
self.assertEqual(p['n_id_cell'], conf_ncell['pci'])
self.assertEqual(p['cell_id'], int(conf_ncell['cell_id'], 16))
self.assertEqual(p['tac'], conf_ncell['tac'])
with open(conf_file, 'r') as f: with open(conf_file, 'r') as f:
for l in f: for l in f:
if l.startswith('#define N_RB_DL'): if l.startswith('#define N_RB_DL'):
......
...@@ -54,6 +54,7 @@ param_dict = { ...@@ -54,6 +54,7 @@ param_dict = {
'enb_id': '0x17', 'enb_id': '0x17',
'pci': 250, 'pci': 250,
'tac': '0x1717', 'tac': '0x1717',
'root_sequence_index': '1',
'mme_list': { 'mme_list': {
'10.0.0.1': {'mme_addr': '10.0.0.1'}, '10.0.0.1': {'mme_addr': '10.0.0.1'},
'2001:db8::1': {'mme_addr': '2001:db8::1'}, '2001:db8::1': {'mme_addr': '2001:db8::1'},
...@@ -78,19 +79,23 @@ param_dict = { ...@@ -78,19 +79,23 @@ param_dict = {
'nr_handover_a3_offset': 10, 'nr_handover_a3_offset': 10,
'ncell_list': { 'ncell_list': {
'ORS1': { 'ORS1': {
'dl_earfcn': 100000,
'dl_nr_arfcn': 100000, 'dl_nr_arfcn': 100000,
'ssb_nr_arfcn': 100000, 'ssb_nr_arfcn': 100000,
'pci': 1, 'pci': 1,
'nr_cell_id': '0x0000001', 'nr_cell_id': '0x0000001',
'cell_id': '0x0000001',
'gnb_id_bits': 28, 'gnb_id_bits': 28,
'nr_band': 1, 'nr_band': 1,
'tac': 1 'tac': 1
}, },
'ORS2': { 'ORS2': {
'dl_earfcn': 200000,
'dl_nr_arfcn': 200000, 'dl_nr_arfcn': 200000,
'ssb_nr_arfcn': 200000, 'ssb_nr_arfcn': 200000,
'pci': 2, 'pci': 2,
'nr_cell_id': '0x0000002', 'nr_cell_id': '0x0000002',
'cell_id': '0x0000001',
'gnb_id_bits': 30, 'gnb_id_bits': 30,
'nr_band': 2, 'nr_band': 2,
'tac': 2 'tac': 2
...@@ -145,12 +150,23 @@ def test_enb_conf(self): ...@@ -145,12 +150,23 @@ def test_enb_conf(self):
self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16)) self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16))
self.assertEqual(conf['cell_list'][0]['n_id_cell'], enb_param_dict['pci']) self.assertEqual(conf['cell_list'][0]['n_id_cell'], enb_param_dict['pci'])
self.assertEqual(conf['cell_list'][0]['tac'], int(enb_param_dict['tac'], 16)) self.assertEqual(conf['cell_list'][0]['tac'], int(enb_param_dict['tac'], 16))
self.assertEqual(conf['cell_list'][0]['root_sequence_index'], int(enb_param_dict['root_sequence_index']))
for p in conf['cell_default']['plmn_list']: for p in conf['cell_default']['plmn_list']:
for n in "plmn attach_without_pdn reserved".split(): for n in "plmn attach_without_pdn reserved".split():
self.assertEqual(p[n], enb_param_dict['plmn_list'][p['plmn']][n]) self.assertEqual(p[n], enb_param_dict['plmn_list'][p['plmn']][n])
for p in conf['mme_list']: for p in conf['mme_list']:
self.assertEqual(p['mme_addr'], enb_param_dict['mme_list'][p['mme_addr']]['mme_addr']) self.assertEqual(p['mme_addr'], enb_param_dict['mme_list'][p['mme_addr']]['mme_addr'])
for p in conf['cell_list'][0]['ncell_list']:
for k in enb_param_dict['ncell_list']:
if p['dl_earfcn'] == gnb_param_dict1['ncell_list'][k]['dl_earfcn']:
break
conf_ncell = enb_param_dict['ncell_list'][k]
self.assertEqual(p['dl_earfcn'], conf_ncell['dl_earfcn'])
self.assertEqual(p['n_id_cell'], conf_ncell['pci'])
self.assertEqual(p['cell_id'], int(conf_ncell['cell_id'], 16))
self.assertEqual(p['tac'], conf_ncell['tac'])
with open(conf_file, 'r') as f: with open(conf_file, 'r') as f:
for l in f: for l in f:
if l.startswith('#define N_RB_DL'): if l.startswith('#define N_RB_DL'):
......
...@@ -54,6 +54,7 @@ param_dict = { ...@@ -54,6 +54,7 @@ param_dict = {
'enb_id': '0x17', 'enb_id': '0x17',
'pci': 250, 'pci': 250,
'tac': '0x1717', 'tac': '0x1717',
'root_sequence_index': '1',
'mme_list': { 'mme_list': {
'10.0.0.1': {'mme_addr': '10.0.0.1'}, '10.0.0.1': {'mme_addr': '10.0.0.1'},
'2001:db8::1': {'mme_addr': '2001:db8::1'}, '2001:db8::1': {'mme_addr': '2001:db8::1'},
...@@ -78,19 +79,23 @@ param_dict = { ...@@ -78,19 +79,23 @@ param_dict = {
'nr_handover_a3_offset': 10, 'nr_handover_a3_offset': 10,
'ncell_list': { 'ncell_list': {
'ORS1': { 'ORS1': {
'dl_earfcn': 100000,
'dl_nr_arfcn': 100000, 'dl_nr_arfcn': 100000,
'ssb_nr_arfcn': 100000, 'ssb_nr_arfcn': 100000,
'pci': 1, 'pci': 1,
'nr_cell_id': '0x0000001', 'nr_cell_id': '0x0000001',
'cell_id': '0x0000001',
'gnb_id_bits': 28, 'gnb_id_bits': 28,
'nr_band': 1, 'nr_band': 1,
'tac': 1 'tac': 1
}, },
'ORS2': { 'ORS2': {
'dl_earfcn': 200000,
'dl_nr_arfcn': 200000, 'dl_nr_arfcn': 200000,
'ssb_nr_arfcn': 200000, 'ssb_nr_arfcn': 200000,
'pci': 2, 'pci': 2,
'nr_cell_id': '0x0000002', 'nr_cell_id': '0x0000002',
'cell_id': '0x0000001',
'gnb_id_bits': 30, 'gnb_id_bits': 30,
'nr_band': 2, 'nr_band': 2,
'tac': 2 'tac': 2
...@@ -145,12 +150,23 @@ def test_enb_conf(self): ...@@ -145,12 +150,23 @@ def test_enb_conf(self):
self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16)) self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16))
self.assertEqual(conf['cell_list'][0]['n_id_cell'], enb_param_dict['pci']) self.assertEqual(conf['cell_list'][0]['n_id_cell'], enb_param_dict['pci'])
self.assertEqual(conf['cell_list'][0]['tac'], int(enb_param_dict['tac'], 16)) self.assertEqual(conf['cell_list'][0]['tac'], int(enb_param_dict['tac'], 16))
self.assertEqual(conf['cell_list'][0]['root_sequence_index'], int(enb_param_dict['root_sequence_index']))
for p in conf['cell_default']['plmn_list']: for p in conf['cell_default']['plmn_list']:
for n in "plmn attach_without_pdn reserved".split(): for n in "plmn attach_without_pdn reserved".split():
self.assertEqual(p[n], enb_param_dict['plmn_list'][p['plmn']][n]) self.assertEqual(p[n], enb_param_dict['plmn_list'][p['plmn']][n])
for p in conf['mme_list']: for p in conf['mme_list']:
self.assertEqual(p['mme_addr'], enb_param_dict['mme_list'][p['mme_addr']]['mme_addr']) self.assertEqual(p['mme_addr'], enb_param_dict['mme_list'][p['mme_addr']]['mme_addr'])
for p in conf['cell_list'][0]['ncell_list']:
for k in enb_param_dict['ncell_list']:
if p['dl_earfcn'] == gnb_param_dict1['ncell_list'][k]['dl_earfcn']:
break
conf_ncell = enb_param_dict['ncell_list'][k]
self.assertEqual(p['dl_earfcn'], conf_ncell['dl_earfcn'])
self.assertEqual(p['n_id_cell'], conf_ncell['pci'])
self.assertEqual(p['cell_id'], int(conf_ncell['cell_id'], 16))
self.assertEqual(p['tac'], conf_ncell['tac'])
with open(conf_file, 'r') as f: with open(conf_file, 'r') as f:
for l in f: for l in f:
if l.startswith('#define N_RB_DL'): if l.startswith('#define N_RB_DL'):
......
...@@ -54,6 +54,7 @@ param_dict = { ...@@ -54,6 +54,7 @@ param_dict = {
'enb_id': '0x17', 'enb_id': '0x17',
'pci': 250, 'pci': 250,
'tac': '0x1717', 'tac': '0x1717',
'root_sequence_index': '1',
'mme_list': { 'mme_list': {
'10.0.0.1': {'mme_addr': '10.0.0.1'}, '10.0.0.1': {'mme_addr': '10.0.0.1'},
'2001:db8::1': {'mme_addr': '2001:db8::1'}, '2001:db8::1': {'mme_addr': '2001:db8::1'},
...@@ -78,19 +79,23 @@ param_dict = { ...@@ -78,19 +79,23 @@ param_dict = {
'nr_handover_a3_offset': 10, 'nr_handover_a3_offset': 10,
'ncell_list': { 'ncell_list': {
'ORS1': { 'ORS1': {
'dl_earfcn': 100000,
'dl_nr_arfcn': 100000, 'dl_nr_arfcn': 100000,
'ssb_nr_arfcn': 100000, 'ssb_nr_arfcn': 100000,
'pci': 1, 'pci': 1,
'nr_cell_id': '0x0000001', 'nr_cell_id': '0x0000001',
'cell_id': '0x0000001',
'gnb_id_bits': 28, 'gnb_id_bits': 28,
'nr_band': 1, 'nr_band': 1,
'tac': 1 'tac': 1
}, },
'ORS2': { 'ORS2': {
'dl_earfcn': 200000,
'dl_nr_arfcn': 200000, 'dl_nr_arfcn': 200000,
'ssb_nr_arfcn': 200000, 'ssb_nr_arfcn': 200000,
'pci': 2, 'pci': 2,
'nr_cell_id': '0x0000002', 'nr_cell_id': '0x0000002',
'cell_id': '0x0000001',
'gnb_id_bits': 30, 'gnb_id_bits': 30,
'nr_band': 2, 'nr_band': 2,
'tac': 2 'tac': 2
...@@ -145,12 +150,23 @@ def test_enb_conf(self): ...@@ -145,12 +150,23 @@ def test_enb_conf(self):
self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16)) self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16))
self.assertEqual(conf['cell_list'][0]['n_id_cell'], enb_param_dict['pci']) self.assertEqual(conf['cell_list'][0]['n_id_cell'], enb_param_dict['pci'])
self.assertEqual(conf['cell_list'][0]['tac'], int(enb_param_dict['tac'], 16)) self.assertEqual(conf['cell_list'][0]['tac'], int(enb_param_dict['tac'], 16))
self.assertEqual(conf['cell_list'][0]['root_sequence_index'], int(enb_param_dict['root_sequence_index']))
for p in conf['cell_default']['plmn_list']: for p in conf['cell_default']['plmn_list']:
for n in "plmn attach_without_pdn reserved".split(): for n in "plmn attach_without_pdn reserved".split():
self.assertEqual(p[n], enb_param_dict['plmn_list'][p['plmn']][n]) self.assertEqual(p[n], enb_param_dict['plmn_list'][p['plmn']][n])
for p in conf['mme_list']: for p in conf['mme_list']:
self.assertEqual(p['mme_addr'], enb_param_dict['mme_list'][p['mme_addr']]['mme_addr']) self.assertEqual(p['mme_addr'], enb_param_dict['mme_list'][p['mme_addr']]['mme_addr'])
for p in conf['cell_list'][0]['ncell_list']:
for k in enb_param_dict['ncell_list']:
if p['dl_earfcn'] == gnb_param_dict1['ncell_list'][k]['dl_earfcn']:
break
conf_ncell = enb_param_dict['ncell_list'][k]
self.assertEqual(p['dl_earfcn'], conf_ncell['dl_earfcn'])
self.assertEqual(p['n_id_cell'], conf_ncell['pci'])
self.assertEqual(p['cell_id'], int(conf_ncell['cell_id'], 16))
self.assertEqual(p['tac'], conf_ncell['tac'])
with open(conf_file, 'r') as f: with open(conf_file, 'r') as f:
for l in f: for l in f:
if l.startswith('#define N_RB_DL'): if l.startswith('#define N_RB_DL'):
......
...@@ -54,6 +54,7 @@ param_dict = { ...@@ -54,6 +54,7 @@ param_dict = {
'enb_id': '0x17', 'enb_id': '0x17',
'pci': 250, 'pci': 250,
'tac': '0x1717', 'tac': '0x1717',
'root_sequence_index': '1',
'mme_list': { 'mme_list': {
'10.0.0.1': {'mme_addr': '10.0.0.1'}, '10.0.0.1': {'mme_addr': '10.0.0.1'},
'2001:db8::1': {'mme_addr': '2001:db8::1'}, '2001:db8::1': {'mme_addr': '2001:db8::1'},
...@@ -78,19 +79,23 @@ param_dict = { ...@@ -78,19 +79,23 @@ param_dict = {
'nr_handover_a3_offset': 10, 'nr_handover_a3_offset': 10,
'ncell_list': { 'ncell_list': {
'ORS1': { 'ORS1': {
'dl_earfcn': 100000,
'dl_nr_arfcn': 100000, 'dl_nr_arfcn': 100000,
'ssb_nr_arfcn': 100000, 'ssb_nr_arfcn': 100000,
'pci': 1, 'pci': 1,
'nr_cell_id': '0x0000001', 'nr_cell_id': '0x0000001',
'cell_id': '0x0000001',
'gnb_id_bits': 28, 'gnb_id_bits': 28,
'nr_band': 1, 'nr_band': 1,
'tac': 1 'tac': 1
}, },
'ORS2': { 'ORS2': {
'dl_earfcn': 200000,
'dl_nr_arfcn': 200000, 'dl_nr_arfcn': 200000,
'ssb_nr_arfcn': 200000, 'ssb_nr_arfcn': 200000,
'pci': 2, 'pci': 2,
'nr_cell_id': '0x0000002', 'nr_cell_id': '0x0000002',
'cell_id': '0x0000001',
'gnb_id_bits': 30, 'gnb_id_bits': 30,
'nr_band': 2, 'nr_band': 2,
'tac': 2 'tac': 2
...@@ -145,12 +150,23 @@ def test_enb_conf(self): ...@@ -145,12 +150,23 @@ def test_enb_conf(self):
self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16)) self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16))
self.assertEqual(conf['cell_list'][0]['n_id_cell'], enb_param_dict['pci']) self.assertEqual(conf['cell_list'][0]['n_id_cell'], enb_param_dict['pci'])
self.assertEqual(conf['cell_list'][0]['tac'], int(enb_param_dict['tac'], 16)) self.assertEqual(conf['cell_list'][0]['tac'], int(enb_param_dict['tac'], 16))
self.assertEqual(conf['cell_list'][0]['root_sequence_index'], int(enb_param_dict['root_sequence_index']))
for p in conf['cell_default']['plmn_list']: for p in conf['cell_default']['plmn_list']:
for n in "plmn attach_without_pdn reserved".split(): for n in "plmn attach_without_pdn reserved".split():
self.assertEqual(p[n], enb_param_dict['plmn_list'][p['plmn']][n]) self.assertEqual(p[n], enb_param_dict['plmn_list'][p['plmn']][n])
for p in conf['mme_list']: for p in conf['mme_list']:
self.assertEqual(p['mme_addr'], enb_param_dict['mme_list'][p['mme_addr']]['mme_addr']) self.assertEqual(p['mme_addr'], enb_param_dict['mme_list'][p['mme_addr']]['mme_addr'])
for p in conf['cell_list'][0]['ncell_list']:
for k in enb_param_dict['ncell_list']:
if p['dl_earfcn'] == gnb_param_dict1['ncell_list'][k]['dl_earfcn']:
break
conf_ncell = enb_param_dict['ncell_list'][k]
self.assertEqual(p['dl_earfcn'], conf_ncell['dl_earfcn'])
self.assertEqual(p['n_id_cell'], conf_ncell['pci'])
self.assertEqual(p['cell_id'], int(conf_ncell['cell_id'], 16))
self.assertEqual(p['tac'], conf_ncell['tac'])
with open(conf_file, 'r') as f: with open(conf_file, 'r') as f:
for l in f: for l in f:
if l.startswith('#define N_RB_DL'): if l.startswith('#define N_RB_DL'):
......
...@@ -54,6 +54,7 @@ param_dict = { ...@@ -54,6 +54,7 @@ param_dict = {
'enb_id': '0x17', 'enb_id': '0x17',
'pci': 250, 'pci': 250,
'tac': '0x1717', 'tac': '0x1717',
'root_sequence_index': '1',
'mme_list': { 'mme_list': {
'10.0.0.1': {'mme_addr': '10.0.0.1'}, '10.0.0.1': {'mme_addr': '10.0.0.1'},
'2001:db8::1': {'mme_addr': '2001:db8::1'}, '2001:db8::1': {'mme_addr': '2001:db8::1'},
...@@ -78,19 +79,23 @@ param_dict = { ...@@ -78,19 +79,23 @@ param_dict = {
'nr_handover_a3_offset': 10, 'nr_handover_a3_offset': 10,
'ncell_list': { 'ncell_list': {
'ORS1': { 'ORS1': {
'dl_earfcn': 100000,
'dl_nr_arfcn': 100000, 'dl_nr_arfcn': 100000,
'ssb_nr_arfcn': 100000, 'ssb_nr_arfcn': 100000,
'pci': 1, 'pci': 1,
'nr_cell_id': '0x0000001', 'nr_cell_id': '0x0000001',
'cell_id': '0x0000001',
'gnb_id_bits': 28, 'gnb_id_bits': 28,
'nr_band': 1, 'nr_band': 1,
'tac': 1 'tac': 1
}, },
'ORS2': { 'ORS2': {
'dl_earfcn': 200000,
'dl_nr_arfcn': 200000, 'dl_nr_arfcn': 200000,
'ssb_nr_arfcn': 200000, 'ssb_nr_arfcn': 200000,
'pci': 2, 'pci': 2,
'nr_cell_id': '0x0000002', 'nr_cell_id': '0x0000002',
'cell_id': '0x0000001',
'gnb_id_bits': 30, 'gnb_id_bits': 30,
'nr_band': 2, 'nr_band': 2,
'tac': 2 'tac': 2
...@@ -145,12 +150,23 @@ def test_enb_conf(self): ...@@ -145,12 +150,23 @@ def test_enb_conf(self):
self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16)) self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16))
self.assertEqual(conf['cell_list'][0]['n_id_cell'], enb_param_dict['pci']) self.assertEqual(conf['cell_list'][0]['n_id_cell'], enb_param_dict['pci'])
self.assertEqual(conf['cell_list'][0]['tac'], int(enb_param_dict['tac'], 16)) self.assertEqual(conf['cell_list'][0]['tac'], int(enb_param_dict['tac'], 16))
self.assertEqual(conf['cell_list'][0]['root_sequence_index'], int(enb_param_dict['root_sequence_index']))
for p in conf['cell_default']['plmn_list']: for p in conf['cell_default']['plmn_list']:
for n in "plmn attach_without_pdn reserved".split(): for n in "plmn attach_without_pdn reserved".split():
self.assertEqual(p[n], enb_param_dict['plmn_list'][p['plmn']][n]) self.assertEqual(p[n], enb_param_dict['plmn_list'][p['plmn']][n])
for p in conf['mme_list']: for p in conf['mme_list']:
self.assertEqual(p['mme_addr'], enb_param_dict['mme_list'][p['mme_addr']]['mme_addr']) self.assertEqual(p['mme_addr'], enb_param_dict['mme_list'][p['mme_addr']]['mme_addr'])
for p in conf['cell_list'][0]['ncell_list']:
for k in enb_param_dict['ncell_list']:
if p['dl_earfcn'] == gnb_param_dict1['ncell_list'][k]['dl_earfcn']:
break
conf_ncell = enb_param_dict['ncell_list'][k]
self.assertEqual(p['dl_earfcn'], conf_ncell['dl_earfcn'])
self.assertEqual(p['n_id_cell'], conf_ncell['pci'])
self.assertEqual(p['cell_id'], int(conf_ncell['cell_id'], 16))
self.assertEqual(p['tac'], conf_ncell['tac'])
with open(conf_file, 'r') as f: with open(conf_file, 'r') as f:
for l in f: for l in f:
if l.startswith('#define N_RB_DL'): if l.startswith('#define N_RB_DL'):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment