Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kirill Smelkov
slapos
Commits
e8848e07
Commit
e8848e07
authored
Oct 04, 2023
by
Joanne Hugé
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
.
parent
92edc976
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
621 additions
and
48 deletions
+621
-48
software/ors-amarisoft/config/enb.cfg
software/ors-amarisoft/config/enb.cfg
+585
-9
software/ors-amarisoft/config/ue.cfg
software/ors-amarisoft/config/ue.cfg
+3
-3
software/ors-amarisoft/config/ue.jinja2.cfg
software/ors-amarisoft/config/ue.jinja2.cfg
+2
-2
software/ors-amarisoft/slapos-render-config.py
software/ors-amarisoft/slapos-render-config.py
+31
-34
No files found.
software/ors-amarisoft/config/enb.cfg
View file @
e8848e07
...
@@ -8,17 +8,18 @@
...
@@ -8,17 +8,18 @@
rf_driver: {
rf_driver: {
name: "sdr",
name: "sdr",
// RU_0002 1T1R
// RU_0002 1T1R
args: "dev0=/dev/sdr0@0",
// RU_0004 1T1R
cpri_mapping: "hw",
args: "dev0=/dev/sdr0@0,dev1=/dev/sdr0@1",
cpri_mult: "8",
cpri_mapping: "hw,hw",
cpri_rx_delay: "25.11",
cpri_mult: "8,8",
cpri_tx_delay: "14.71",
cpri_rx_delay: "25.11,25.11",
cpri_tx_dbm: "63",
cpri_tx_delay: "14.71,14.71",
ifname: "slaptap9",
cpri_tx_dbm: "63,63",
ifname: "slaptap9-0,slaptap9-1",
cpri_debug: 2,
cpri_debug: 2,
},
},
tx_gain: [0],
tx_gain: [0
, 0
],
rx_gain: [0],
rx_gain: [0
, 0
],
com_addr: "127.0.1.2:9001",
com_addr: "127.0.1.2:9001",
// XXX only if slapparameter_dict.get('mme_list') || has LTE cell ?
// XXX only if slapparameter_dict.get('mme_list') || has LTE cell ?
...
@@ -63,6 +64,13 @@
...
@@ -63,6 +64,13 @@
// Handover XXX same code for both LTE and NR
// Handover XXX same code for both LTE and NR
ncell_list: [
ncell_list: [
// Intra-ENB HO
// Intra-ENB HO
{
rat: "eutra",
cell_id: 0x1A2D022, // -> CELL4
n_id_cell: 22,
dl_earfcn: 500,
tac: 0x0001,
},
// Inter-ENB HO
// Inter-ENB HO
...
@@ -70,6 +78,574 @@
...
@@ -70,6 +78,574 @@
// Carrier Aggregation // XXX + CA LTE-NR
// Carrier Aggregation // XXX + CA LTE-NR
scell_list: [
scell_list: [
{
cell_id: 0x22, // + CELL4
cross_carrier_scheduling: false,
},
],
// tune LTE parameters for the cell
n_rb_dl: 100,
si_coderate: 0.2,
pdsch_dedicated: {
p_a: 0,
p_b: -1,
},
pdcch_format: 2,
prach_config_index: 4,
initial_cqi: 3,
pucch_dedicated: {
n1_pucch_sr_count: 11,
cqi_pucch_n_rb: 1,
n1_pucch_an_cs_count: 8,
n3_pucch_an_n_rb: 3,
},
srs_dedicated: {
srs_bandwidth_config: 2,
srs_bandwidth: 3,
srs_subframe_config: 3,
srs_period: 40,
srs_hopping_bandwidth: 0,
},
drb_config:
[
{
qci: 1,
ims_dedicated_bearer: true,
pdcp_config: {
discardTimer: 100,
pdcp_SN_Size: 7,
},
nr_pdcp_config: {
discardTimer: 0,
pdcp_SN_SizeUL: 12,
pdcp_SN_SizeDL: 12,
statusReportRequired: false,
outOfOrderDelivery: false,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_um: {
sn_FieldLength: 5,
},
dl_um: {
sn_FieldLength: 5,
t_Reordering: 35,
},
},
logical_channel_config: {
priority: 7,
prioritisedBitRate: 0,
bucketSizeDuration: 100,
logicalChannelGroup: 1,
logicalChannelSR_Mask: false,
logicalChannelSR_Prohibit: false,
},
},
{
qci: 2,
ims_dedicated_bearer: true,
pdcp_config: {
discardTimer: 150,
pdcp_SN_Size: 12,
},
nr_pdcp_config: {
discardTimer: 150,
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: false,
outOfOrderDelivery: false,
t_Reordering: 0,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_um: {
sn_FieldLength: 10,
},
dl_um: {
sn_FieldLength: 10,
t_Reordering: 35,
},
},
logical_channel_config: {
priority: 9,
prioritisedBitRate: 0,
bucketSizeDuration: 100,
logicalChannelGroup: 1,
logicalChannelSR_Mask: false,
logicalChannelSR_Prohibit: false,
},
},
{
qci: 3,
pdcp_config: {
discardTimer: 100,
pdcp_SN_Size: 12,
},
nr_pdcp_config: {
discardTimer: 100,
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: false,
outOfOrderDelivery: false,
t_Reordering: 0,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_um: {
sn_FieldLength: 10,
},
dl_um: {
sn_FieldLength: 10,
t_Reordering: 35,
},
},
logical_channel_config: {
priority: 8,
prioritisedBitRate: 0,
bucketSizeDuration: 100,
logicalChannelGroup: 1,
logicalChannelSR_Mask: false,
logicalChannelSR_Prohibit: false,
},
},
{
qci: 4,
pdcp_config: {
discardTimer: 0,
statusReportRequired: true,
},
nr_pdcp_config: {
discardTimer: 0,
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: true,
outOfOrderDelivery: false,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80,
pollPDU: 64,
pollByte: 125,
maxRetxThreshold: 32,
},
dl_am: {
t_Reordering: 35,
t_StatusProhibit: 10,
},
},
logical_channel_config: {
priority: 10,
prioritisedBitRate: 8,
bucketSizeDuration: 100,
logicalChannelGroup: 1,
logicalChannelSR_Mask: false,
logicalChannelSR_Prohibit: false,
},
},
{
qci: 65,
ims_dedicated_bearer: true,
pdcp_config: {
discardTimer: 100,
pdcp_SN_Size: 7,
},
nr_pdcp_config: {
discardTimer: 100,
pdcp_SN_SizeUL: 12,
pdcp_SN_SizeDL: 12,
statusReportRequired: false,
outOfOrderDelivery: false,
t_Reordering: 0,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_um: {
sn_FieldLength: 5,
},
dl_um: {
sn_FieldLength: 5,
t_Reordering: 35,
},
},
logical_channel_config: {
priority: 5,
prioritisedBitRate: 0,
bucketSizeDuration: 100,
logicalChannelGroup: 1,
logicalChannelSR_Mask: false,
logicalChannelSR_Prohibit: false,
},
},
{
qci: 66,
ims_dedicated_bearer: true,
pdcp_config: {
discardTimer: 150,
pdcp_SN_Size: 12,
},
nr_pdcp_config: {
discardTimer: 150,
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: false,
outOfOrderDelivery: false,
t_Reordering: 0,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_um: {
sn_FieldLength: 10,
},
dl_um: {
sn_FieldLength: 10,
t_Reordering: 35,
},
},
logical_channel_config: {
priority: 7,
prioritisedBitRate: 0,
bucketSizeDuration: 100,
logicalChannelGroup: 1,
logicalChannelSR_Mask: false,
logicalChannelSR_Prohibit: false,
},
},
{
qci: 67,
ims_dedicated_bearer: true,
pdcp_config: {
discardTimer: 100,
pdcp_SN_Size: 12,
},
nr_pdcp_config: {
discardTimer: 100,
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: false,
outOfOrderDelivery: false,
t_Reordering: 0,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_um: {
sn_FieldLength: 10,
},
dl_um: {
sn_FieldLength: 10,
t_Reordering: 35,
},
},
logical_channel_config: {
priority: 6,
prioritisedBitRate: 0,
bucketSizeDuration: 100,
logicalChannelGroup: 1,
logicalChannelSR_Mask: false,
logicalChannelSR_Prohibit: false,
},
},
{
qci: 5,
pdcp_config: {
discardTimer: 0,
statusReportRequired: true,
},
nr_pdcp_config: {
discardTimer: 0,
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: true,
outOfOrderDelivery: false,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80,
pollPDU: 64,
pollByte: 125,
maxRetxThreshold: 32,
},
dl_am: {
t_Reordering: 35,
t_StatusProhibit: 10,
},
},
logical_channel_config: {
priority: 6,
prioritisedBitRate: 8,
bucketSizeDuration: 100,
logicalChannelGroup: 1,
logicalChannelSR_Mask: false,
logicalChannelSR_Prohibit: false,
},
},
{
qci: 6,
pdcp_config: {
discardTimer: 0,
statusReportRequired: true,
},
nr_pdcp_config: {
discardTimer: 0,
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: true,
outOfOrderDelivery: false,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80,
pollPDU: 64,
pollByte: 125,
maxRetxThreshold: 32,
},
dl_am: {
t_Reordering: 35,
t_StatusProhibit: 10,
},
},
logical_channel_config: {
priority: 12,
prioritisedBitRate: 8,
bucketSizeDuration: 100,
logicalChannelGroup: 2,
logicalChannelSR_Mask: false,
logicalChannelSR_Prohibit: false,
},
},
{
qci: 7,
pdcp_config: {
discardTimer: 100,
pdcp_SN_Size: 12,
},
nr_pdcp_config: {
discardTimer: 100,
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: false,
outOfOrderDelivery: false,
t_Reordering: 0,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_um: {
sn_FieldLength: 10,
},
dl_um: {
sn_FieldLength: 10,
t_Reordering: 35,
},
},
logical_channel_config: {
priority: 13,
prioritisedBitRate: 0,
bucketSizeDuration: 100,
logicalChannelGroup: 2,
logicalChannelSR_Mask: false,
logicalChannelSR_Prohibit: false,
},
},
{
qci: 8,
pdcp_config: {
discardTimer: 0,
statusReportRequired: true,
},
nr_pdcp_config: {
discardTimer: 0,
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: true,
outOfOrderDelivery: false,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80,
pollPDU: 64,
pollByte: 125,
maxRetxThreshold: 32,
},
dl_am: {
t_Reordering: 35,
t_StatusProhibit: 10,
},
},
logical_channel_config: {
priority: 14,
prioritisedBitRate: 8,
bucketSizeDuration: 100,
logicalChannelGroup: 2,
logicalChannelSR_Mask: false,
logicalChannelSR_Prohibit: false,
},
},
{
qci: 9,
pdcp_config: {
discardTimer: 0,
statusReportRequired: true,
},
nr_pdcp_config: {
discardTimer: 0,
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: true,
outOfOrderDelivery: false,
},
en_dc_split: {
type: "scg",
ul_data_threshold: 0
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80,
pollPDU: 64,
pollByte: 125,
maxRetxThreshold: 32,
},
dl_am: {
t_Reordering: 35,
t_StatusProhibit: 10,
},
},
logical_channel_config: {
priority: 15,
prioritisedBitRate: 8,
bucketSizeDuration: 100,
logicalChannelGroup: 3,
logicalChannelSR_Mask: false,
logicalChannelSR_Prohibit: false,
},
},
{
qci: 69,
pdcp_config: {
discardTimer: 0,
statusReportRequired: true,
},
nr_pdcp_config: {
discardTimer: 0,
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: true,
outOfOrderDelivery: false,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80,
pollPDU: 64,
pollByte: 125,
maxRetxThreshold: 32,
},
dl_am: {
t_Reordering: 35,
t_StatusProhibit: 10,
},
},
logical_channel_config: {
priority: 4,
prioritisedBitRate: 8,
bucketSizeDuration: 100,
logicalChannelGroup: 1,
logicalChannelSR_Mask: false,
logicalChannelSR_Prohibit: false,
},
},
{
qci: 70,
pdcp_config: {
discardTimer: 0,
statusReportRequired: true,
},
nr_pdcp_config: {
discardTimer: 0,
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: true,
outOfOrderDelivery: false,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80,
pollPDU: 64,
pollByte: 125,
maxRetxThreshold: 32,
},
dl_am: {
t_Reordering: 35,
t_StatusProhibit: 10,
},
},
logical_channel_config: {
priority: 11,
prioritisedBitRate: 8,
bucketSizeDuration: 100,
logicalChannelGroup: 2,
logicalChannelSR_Mask: false,
logicalChannelSR_Prohibit: false,
},
},
]
},
// CELL4
{
rf_port: 1,
n_antenna_dl: 1,
n_antenna_ul: 1,
cell_id: 0x22,
tac: 0x0001,
n_id_cell: 22,
dl_earfcn: 500,
root_sequence_index: 205,
// Handover XXX same code for both LTE and NR
ncell_list: [
// Intra-ENB HO
{
rat: "eutra",
cell_id: 0x1A2D021, // -> CELL2
n_id_cell: 21,
dl_earfcn: 100,
tac: 0x0001,
},
// Inter-ENB HO
],
// Carrier Aggregation // XXX + CA LTE-NR
scell_list: [
{
cell_id: 0x21, // + CELL2
cross_carrier_scheduling: false,
},
],
],
...
...
software/ors-amarisoft/config/ue.cfg
View file @
e8848e07
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=info,file.rotate=1G,file.path=/dev/null",
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=info,file.rotate=1G,file.path=/dev/null",
log_filename: "log/ue.log",
log_filename: "log/ue.log",
rue_bind_addr: "::1",
//
rue_bind_addr: "::1",
com_addr: "[::1]:9002",
com_addr: "[::1]:9002",
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
name: "sdr",
name: "sdr",
// _UCELL1_ru 1T1R
// _UCELL1_ru 1T1R
// _UCELL2_ru 1T1R
// _UCELL2_ru 1T1R
args: "dev0=/dev/sdr
0,dev1=/dev/sdr2
",
args: "dev0=/dev/sdr
4,dev1=/dev/sdr6
",
rx_antenna:"tx_rx",
rx_antenna:"tx_rx",
tdd_tx_mod: 1,
tdd_tx_mod: 1,
},
},
...
@@ -74,7 +74,7 @@
...
@@ -74,7 +74,7 @@
impi: "",
impi: "",
imsi: "001010123456789",
imsi: "001010123456789",
K: "00112233445566778899aabbccddeeff",
K: "00112233445566778899aabbccddeeff",
rue_addr: "host1",
//
rue_addr: "host1",
ue_category: 12,
ue_category: 12,
tun_setup_script: "ue-ifup",
tun_setup_script: "ue-ifup",
apn: "internet",
apn: "internet",
...
...
software/ors-amarisoft/config/ue.jinja2.cfg
View file @
e8848e07
...
@@ -36,7 +36,7 @@
...
@@ -36,7 +36,7 @@
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=info,file.rotate=1G,file.path=/dev/null",
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=info,file.rotate=1G,file.path=/dev/null",
log_filename: "{{ directory['log'] }}/ue.log",
log_filename: "{{ directory['log'] }}/ue.log",
rue_bind_addr: "{{ pub_info['rue_bind_addr'] }}",
//
rue_bind_addr: "{{ pub_info['rue_bind_addr'] }}",
com_addr: "{{ pub_info['com_addr'] }}",
com_addr: "{{ pub_info['com_addr'] }}",
{# instantiate radio units #}
{# instantiate radio units #}
...
@@ -116,7 +116,7 @@
...
@@ -116,7 +116,7 @@
impi: "{{ ue.impi }}",
impi: "{{ ue.impi }}",
imsi: "{{ ue.imsi }}",
imsi: "{{ ue.imsi }}",
K: "{{ ue.k }}",
K: "{{ ue.k }}",
rue_addr: "{{ ue.rue_addr }}",
//
rue_addr: "{{ ue.rue_addr }}",
{%- if ue.ue_type == 'lte' %}
{%- if ue.ue_type == 'lte' %}
ue_category: 12,
ue_category: 12,
{%- elif ue.ue_type == 'nr' %}
{%- elif ue.ue_type == 'nr' %}
...
...
software/ors-amarisoft/slapos-render-config.py
View file @
e8848e07
...
@@ -235,38 +235,35 @@ def iRU2_LOPCOMM_fLTE2(ienb):
...
@@ -235,38 +235,35 @@ def iRU2_LOPCOMM_fLTE2(ienb):
# RU_0004['mac_addr'] = 'YYY'
# RU_0004['mac_addr'] = 'YYY'
RU_0004
[
'cpri_link'
][
'sfp_port'
]
=
1
RU_0004
[
'cpri_link'
][
'sfp_port'
]
=
1
ienb
.
ishared
(
'Radio Unit 2a'
,
'_RU_0002'
,
RU_0002
)
if
1
:
# ienb.ishared('Radio Unit 2b', '_RU_0004', RU_0004)
ienb
.
ishared
(
'Radio Unit 2a'
,
'_RU_0002'
,
RU_0002
)
ienb
.
ishared
(
'Cell 2'
,
'_CELL2'
,
{
#"""
'cell_type'
:
'lte'
,
ienb
.
ishared
(
'Cell 2'
,
'_CELL2'
,
{
'rf_mode'
:
'fdd'
,
'cell_type'
:
'lte'
,
'bandwidth'
:
'20 MHz'
,
'rf_mode'
:
'fdd'
,
'dl_earfcn'
:
100
,
# 2120 MHz @ B1
'bandwidth'
:
'20 MHz'
,
'pci'
:
21
,
'dl_earfcn'
:
100
,
# 2120 MHz @ B1
'cell_id'
:
'0x21'
,
'pci'
:
21
,
'ru'
:
{
'cell_id'
:
'0x21'
,
'ru_type'
:
'ru_ref'
,
'ru'
:
{
'ru_ref'
:
'RU_0002'
'ru_type'
:
'ru_ref'
,
}
'ru_ref'
:
'RU_0002'
})
}
})
if
1
:
#"""
ienb
.
ishared
(
'Radio Unit 2b'
,
'_RU_0004'
,
RU_0004
)
ienb
.
ishared
(
'Cell 4'
,
'_CELL4'
,
{
"""
'cell_type'
:
'lte'
,
ienb.ishared('Cell 4', '_CELL4', {
'rf_mode'
:
'fdd'
,
'cell_type': 'lte',
'bandwidth'
:
'20 MHz'
,
'rf_mode': 'fdd',
'dl_earfcn'
:
500
,
# 2160 MHz @ B1
'bandwidth': '20 MHz',
'pci'
:
22
,
'dl_earfcn': 500, # 2160 MHz @ B1
'cell_id'
:
'0x22'
,
'pci': 22,
'ru'
:
{
'cell_id': '0x22',
'ru_type'
:
'ru_ref'
,
'ru': {
'ru_ref'
:
'RU_0004'
'ru_type': 'ru_ref',
}
'ru_ref': 'RU_0004'
})
}
})
"""
def
do_enb
():
def
do_enb
():
ienb
=
Instance
(
'enb'
)
ienb
=
Instance
(
'enb'
)
...
@@ -310,7 +307,7 @@ def do_ue():
...
@@ -310,7 +307,7 @@ def do_ue():
'ru'
:
{
'ru'
:
{
'ru_type'
:
'sdr'
,
'ru_type'
:
'sdr'
,
'ru_link_type'
:
'sdr'
,
'ru_link_type'
:
'sdr'
,
'sdr_dev_list'
:
[
0
],
'sdr_dev_list'
:
[
4
],
'n_antenna_dl'
:
1
,
'n_antenna_dl'
:
1
,
'n_antenna_ul'
:
1
,
'n_antenna_ul'
:
1
,
'tx_gain'
:
60
,
'tx_gain'
:
60
,
...
@@ -325,7 +322,7 @@ def do_ue():
...
@@ -325,7 +322,7 @@ def do_ue():
'ru'
:
{
# NOTE contrary to eNB UEsim cannot share one RU in between several cells
'ru'
:
{
# NOTE contrary to eNB UEsim cannot share one RU in between several cells
'ru_type'
:
'sdr'
,
'ru_type'
:
'sdr'
,
'ru_link_type'
:
'sdr'
,
'ru_link_type'
:
'sdr'
,
'sdr_dev_list'
:
[
2
],
'sdr_dev_list'
:
[
6
],
'n_antenna_dl'
:
1
,
'n_antenna_dl'
:
1
,
'n_antenna_ul'
:
1
,
'n_antenna_ul'
:
1
,
'tx_gain'
:
60
,
'tx_gain'
:
60
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment