Commit 206f486e authored by Kirill Smelkov's avatar Kirill Smelkov

software/ors-amarisoft: enb: Push Lopcomm-specific parameters to be per-RU

Like e.g. txa0cc00_center_frequency, rxa0cc00_center_frequency_earfcn, etc -
because different units needs to use different parameters.

cron_schedule is renamed to -> reset_schedule to better reflect its meaning.

user-authorized-key remains to be global as this is per-eNB nor per-RU
property, but is likely unneded in the future. Corresponding FIXME is added to
highlight this.

Backward compatibility: no change for ORS; lopcomm parameters become per-cell and need adaptation.
parent 0a285a34
...@@ -136,41 +136,6 @@ ...@@ -136,41 +136,6 @@
"description": "RU MAC address used for NETCONF", "description": "RU MAC address used for NETCONF",
"type": "string" "type": "string"
}, },
{%- endif %}
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell IDs",
"type": "number"
},
"cell_id": {
"title": "Cell ID",
"description": "Cell IDs",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
{%- endif %}
{%- if trx == 'sdr' %}
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number"
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number"
},
{%- endif %} {%- endif %}
{%- if ru == 'lopcomm' %} {%- if ru == 'lopcomm' %}
"txa0cc00_active": { "txa0cc00_active": {
...@@ -217,17 +182,54 @@ ...@@ -217,17 +182,54 @@
"type": "number", "type": "number",
"default": -20 "default": -20
}, },
"reset_schedule": {
"title": "Cron schedule for RRH reset",
"description": "Refer https://crontab.guru/ to make a reset schedule for RRH, for example, '0 1 * * *' means the RRH will reset every day at 1 am",
"type": "string"
},
{%- endif %}
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell IDs",
"type": "number"
},
"cell_id": {
"title": "Cell ID",
"description": "Cell IDs",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
{%- endif %}
{%- if trx == 'sdr' %}
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number"
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number"
},
{%- endif %}
{%- if bbu != 'ors' %}
"user-authorized-key": { "user-authorized-key": {
"title": "User Authorized Key", "title": "User Authorized Key",
"description": "SSH public key in order to connect to the SSH server of this instance.", "description": "SSH public key in order to connect to the SSH server of this instance.",
"textarea": true, "textarea": true,
"type": "string" "type": "string"
}, },
"cron_schedule": {
"title": "Cron schedule for RRH reset",
"description": "Refer https://crontab.guru/ to make a reset schedule for RRH, for example, '0 1 * * *' means the RRH will reset every day at 1 am",
"type": "string"
},
{%- endif %} {%- endif %}
"enb_id": { "enb_id": {
"title": "eNB ID", "title": "eNB ID",
......
...@@ -67,6 +67,12 @@ ...@@ -67,6 +67,12 @@
"description": "Rx gain (in dB)", "description": "Rx gain (in dB)",
"type": "number" "type": "number"
}, },
"user-authorized-key": {
"title": "User Authorized Key",
"description": "SSH public key in order to connect to the SSH server of this instance.",
"textarea": true,
"type": "string"
},
"enb_id": { "enb_id": {
"title": "eNB ID", "title": "eNB ID",
"description": "eNB ID", "description": "eNB ID",
......
...@@ -72,6 +72,12 @@ ...@@ -72,6 +72,12 @@
"description": "Rx gain (in dB)", "description": "Rx gain (in dB)",
"type": "number" "type": "number"
}, },
"user-authorized-key": {
"title": "User Authorized Key",
"description": "SSH public key in order to connect to the SSH server of this instance.",
"textarea": true,
"type": "string"
},
"gnb_id": { "gnb_id": {
"title": "gNB ID", "title": "gNB ID",
"description": "gNB ID", "description": "gNB ID",
......
...@@ -82,28 +82,6 @@ ...@@ -82,28 +82,6 @@
"description": "RU MAC address used for NETCONF", "description": "RU MAC address used for NETCONF",
"type": "string" "type": "string"
}, },
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell IDs",
"type": "number"
},
"cell_id": {
"title": "Cell ID",
"description": "Cell IDs",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"txa0cc00_active": { "txa0cc00_active": {
"title": "Lopcomm ORAN TX array carriers (TXA0CC00)", "title": "Lopcomm ORAN TX array carriers (TXA0CC00)",
"description": "Activate or inactivate Lopcomm ORAN TX array carriers (TXA0CC00)", "description": "Activate or inactivate Lopcomm ORAN TX array carriers (TXA0CC00)",
...@@ -148,17 +126,39 @@ ...@@ -148,17 +126,39 @@
"type": "number", "type": "number",
"default": -20 "default": -20
}, },
"reset_schedule": {
"title": "Cron schedule for RRH reset",
"description": "Refer https://crontab.guru/ to make a reset schedule for RRH, for example, '0 1 * * *' means the RRH will reset every day at 1 am",
"type": "string"
},
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell IDs",
"type": "number"
},
"cell_id": {
"title": "Cell ID",
"description": "Cell IDs",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"user-authorized-key": { "user-authorized-key": {
"title": "User Authorized Key", "title": "User Authorized Key",
"description": "SSH public key in order to connect to the SSH server of this instance.", "description": "SSH public key in order to connect to the SSH server of this instance.",
"textarea": true, "textarea": true,
"type": "string" "type": "string"
}, },
"cron_schedule": {
"title": "Cron schedule for RRH reset",
"description": "Refer https://crontab.guru/ to make a reset schedule for RRH, for example, '0 1 * * *' means the RRH will reset every day at 1 am",
"type": "string"
},
"enb_id": { "enb_id": {
"title": "eNB ID", "title": "eNB ID",
"description": "eNB ID", "description": "eNB ID",
......
...@@ -102,13 +102,6 @@ ...@@ -102,13 +102,6 @@
"description": "RU MAC address used for NETCONF", "description": "RU MAC address used for NETCONF",
"type": "string" "type": "string"
}, },
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"txa0cc00_active": { "txa0cc00_active": {
"title": "Lopcomm ORAN TX array carriers (TXA0CC00)", "title": "Lopcomm ORAN TX array carriers (TXA0CC00)",
"description": "Activate or inactivate Lopcomm ORAN TX array carriers (TXA0CC00)", "description": "Activate or inactivate Lopcomm ORAN TX array carriers (TXA0CC00)",
...@@ -153,17 +146,24 @@ ...@@ -153,17 +146,24 @@
"type": "number", "type": "number",
"default": -20 "default": -20
}, },
"reset_schedule": {
"title": "Cron schedule for RRH reset",
"description": "Refer https://crontab.guru/ to make a reset schedule for RRH, for example, '0 1 * * *' means the RRH will reset every day at 1 am",
"type": "string"
},
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"user-authorized-key": { "user-authorized-key": {
"title": "User Authorized Key", "title": "User Authorized Key",
"description": "SSH public key in order to connect to the SSH server of this instance.", "description": "SSH public key in order to connect to the SSH server of this instance.",
"textarea": true, "textarea": true,
"type": "string" "type": "string"
}, },
"cron_schedule": {
"title": "Cron schedule for RRH reset",
"description": "Refer https://crontab.guru/ to make a reset schedule for RRH, for example, '0 1 * * *' means the RRH will reset every day at 1 am",
"type": "string"
},
"gnb_id": { "gnb_id": {
"title": "gNB ID", "title": "gNB ID",
"description": "gNB ID", "description": "gNB ID",
......
...@@ -127,26 +127,6 @@ ...@@ -127,26 +127,6 @@
"description": "RU MAC address used for NETCONF", "description": "RU MAC address used for NETCONF",
"type": "string" "type": "string"
}, },
{%- endif %}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
{%- endif %}
{%- if trx == 'sdr' %}
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number"
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number"
},
{%- endif %} {%- endif %}
{%- if ru == 'lopcomm' %} {%- if ru == 'lopcomm' %}
"txa0cc00_active": { "txa0cc00_active": {
...@@ -193,17 +173,39 @@ ...@@ -193,17 +173,39 @@
"type": "number", "type": "number",
"default": -20 "default": -20
}, },
"reset_schedule": {
"title": "Cron schedule for RRH reset",
"description": "Refer https://crontab.guru/ to make a reset schedule for RRH, for example, '0 1 * * *' means the RRH will reset every day at 1 am",
"type": "string"
},
{%- endif %}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
{%- endif %}
{%- if trx == 'sdr' %}
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number"
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number"
},
{%- endif %}
{%- if bbu != 'ors' %}
"user-authorized-key": { "user-authorized-key": {
"title": "User Authorized Key", "title": "User Authorized Key",
"description": "SSH public key in order to connect to the SSH server of this instance.", "description": "SSH public key in order to connect to the SSH server of this instance.",
"textarea": true, "textarea": true,
"type": "string" "type": "string"
}, },
"cron_schedule": {
"title": "Cron schedule for RRH reset",
"description": "Refer https://crontab.guru/ to make a reset schedule for RRH, for example, '0 1 * * *' means the RRH will reset every day at 1 am",
"type": "string"
},
{%- endif %} {%- endif %}
"gnb_id": { "gnb_id": {
"title": "gNB ID", "title": "gNB ID",
......
...@@ -77,6 +77,12 @@ ...@@ -77,6 +77,12 @@
"description": "Rx gain (in dB)", "description": "Rx gain (in dB)",
"type": "number" "type": "number"
}, },
"user-authorized-key": {
"title": "User Authorized Key",
"description": "SSH public key in order to connect to the SSH server of this instance.",
"textarea": true,
"type": "string"
},
"enb_id": { "enb_id": {
"title": "eNB ID", "title": "eNB ID",
"description": "eNB ID", "description": "eNB ID",
......
...@@ -83,6 +83,12 @@ ...@@ -83,6 +83,12 @@
"description": "Rx gain (in dB)", "description": "Rx gain (in dB)",
"type": "number" "type": "number"
}, },
"user-authorized-key": {
"title": "User Authorized Key",
"description": "SSH public key in order to connect to the SSH server of this instance.",
"textarea": true,
"type": "string"
},
"gnb_id": { "gnb_id": {
"title": "gNB ID", "title": "gNB ID",
"description": "gNB ID", "description": "gNB ID",
......
...@@ -114,6 +114,12 @@ ...@@ -114,6 +114,12 @@
"type": "object", "type": "object",
"default": {} "default": {}
}, },
"user-authorized-key": {
"title": "User Authorized Key",
"description": "SSH public key in order to connect to the SSH server of this instance.",
"textarea": true,
"type": "string"
},
"enb_id": { "enb_id": {
"title": "eNB ID", "title": "eNB ID",
"description": "eNB ID", "description": "eNB ID",
......
...@@ -120,6 +120,12 @@ ...@@ -120,6 +120,12 @@
"type": "object", "type": "object",
"default": {} "default": {}
}, },
"user-authorized-key": {
"title": "User Authorized Key",
"description": "SSH public key in order to connect to the SSH server of this instance.",
"textarea": true,
"type": "string"
},
"gnb_id": { "gnb_id": {
"title": "gNB ID", "title": "gNB ID",
"description": "gNB ID", "description": "gNB ID",
......
...@@ -91,21 +91,21 @@ ...@@ -91,21 +91,21 @@
<tx-array-carriers> <tx-array-carriers>
<name>{{ TxCarrier }}</name> <name>{{ TxCarrier }}</name>
<absolute-frequency-center>{{ slapparameter_dict.get('dl_earfcn', 300) }}</absolute-frequency-center> <absolute-frequency-center>{{ slapparameter_dict.get('dl_earfcn', 300) }}</absolute-frequency-center>
<center-of-channel-bandwidth>{{ 1000000*slapparameter_dict.get('txa0cc00_center_frequency', 2140) }}</center-of-channel-bandwidth> <center-of-channel-bandwidth>{{ 1000000*ru.get('txa0cc00_center_frequency', 2140) }}</center-of-channel-bandwidth>
<channel-bandwidth>{{ {'1.4 MHz': 1400000, '3 MHz': 3000000, '5 MHz': 5000000, '10 MHz': 10000000, '15 MHz': 15000000, '20 MHz': 20000000}.get(slapparameter_dict.get('bandwidth'), '20 MHz') }}</channel-bandwidth> <channel-bandwidth>{{ {'1.4 MHz': 1400000, '3 MHz': 3000000, '5 MHz': 5000000, '10 MHz': 10000000, '15 MHz': 15000000, '20 MHz': 20000000}.get(slapparameter_dict.get('bandwidth'), '20 MHz') }}</channel-bandwidth>
<active>{{ slapparameter_dict.get('txa0cc00_active', 'INACTIVE') }}</active> <active>{{ ru.get('txa0cc00_active', 'INACTIVE') }}</active>
<rw-type>LTE</rw-type> <rw-type>LTE</rw-type>
<rw-duplex-scheme>FDD</rw-duplex-scheme> <rw-duplex-scheme>FDD</rw-duplex-scheme>
<gain>{{ slapparameter_dict.get('txa0cc00_gain', '-20') }}</gain> <gain>{{ ru.get('txa0cc00_gain', '-20') }}</gain>
<downlink-radio-frame-offset>0</downlink-radio-frame-offset> <downlink-radio-frame-offset>0</downlink-radio-frame-offset>
<downlink-sfn-offset>0</downlink-sfn-offset> <downlink-sfn-offset>0</downlink-sfn-offset>
</tx-array-carriers> </tx-array-carriers>
<rx-array-carriers> <rx-array-carriers>
<name>{{ RxCarrier }}</name> <name>{{ RxCarrier }}</name>
<absolute-frequency-center>{{ slapparameter_dict.get('rxa0cc00_center_frequency_earfcn', 18300) }}</absolute-frequency-center> <absolute-frequency-center>{{ ru.get('rxa0cc00_center_frequency_earfcn', 18300) }}</absolute-frequency-center>
<center-of-channel-bandwidth>{{ 1000000*slapparameter_dict.get('rxa0cc00_center_frequency', 1950) }}</center-of-channel-bandwidth> <center-of-channel-bandwidth>{{ 1000000*ru.get('rxa0cc00_center_frequency', 1950) }}</center-of-channel-bandwidth>
<channel-bandwidth>{{ {'1.4 MHz': 1400000, '3 MHz': 3000000, '5 MHz': 5000000, '10 MHz': 10000000, '15 MHz': 15000000, '20 MHz': 20000000}.get(slapparameter_dict.get('bandwidth'), '20 MHz') }}</channel-bandwidth> <channel-bandwidth>{{ {'1.4 MHz': 1400000, '3 MHz': 3000000, '5 MHz': 5000000, '10 MHz': 10000000, '15 MHz': 15000000, '20 MHz': 20000000}.get(slapparameter_dict.get('bandwidth'), '20 MHz') }}</channel-bandwidth>
<active>{{ slapparameter_dict.get('rxa0cc00_active', 'INACTIVE') }}</active> <active>{{ ru.get('rxa0cc00_active', 'INACTIVE') }}</active>
<downlink-radio-frame-offset>0</downlink-radio-frame-offset> <downlink-radio-frame-offset>0</downlink-radio-frame-offset>
<downlink-sfn-offset>0</downlink-sfn-offset> <downlink-sfn-offset>0</downlink-sfn-offset>
<gain-correction>0.0</gain-correction> <gain-correction>0.0</gain-correction>
......
...@@ -48,18 +48,18 @@ config-command = [ -f ${ {{-ru_ref}}-software-template:is_firmware_updated} ] ...@@ -48,18 +48,18 @@ config-command = [ -f ${ {{-ru_ref}}-software-template:is_firmware_updated} ]
{#- push config to RU #} {#- push config to RU #}
{% if slapparameter_dict.get("cu_config_link", None) %} {% if ru.get("cu_config_link", None) %}
[cu-config-dl] [{{ ru_ref }}-cu-config-dl }}]
recipe = slapos.recipe.build:download recipe = slapos.recipe.build:download
url = {{ slapparameter_dict.get("cu_config_link") }} url = {{ ru.cu_config_link }}
version = {{ slapparameter_dict.get("cu_config_version") }} version = {{ ru.get("cu_config_version") }}
offline = false offline = false
{% endif %} {% endif %}
[{{ru_ref}}-cu-config] [{{ru_ref}}-cu-config]
<= config-base <= config-base
{% if slapparameter_dict.get("cu_config_link", None) %} {% if ru.get("cu_config_link", None) %}
url = ${cu-config-dl:target} url = ${ {{-ru_ref}}-cu-config-dl:target}
{% else %} {% else %}
url = {{ ru_lopcomm_cu_config_template }} url = {{ ru_lopcomm_cu_config_template }}
{% endif %} {% endif %}
...@@ -169,7 +169,7 @@ config-stats-log = ${ {{- ru_ref}}-stats-template:log-output} ...@@ -169,7 +169,7 @@ config-stats-log = ${ {{- ru_ref}}-stats-template:log-output}
{#- reset RU periodically #} {#- reset RU periodically #}
{%- if slapparameter_dict.get("cron_schedule") %} {%- if ru.get("reset_schedule") %}
[{{ru_ref}}-reset-info-template] [{{ru_ref}}-reset-info-template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
...@@ -209,7 +209,7 @@ output = ${directory:etc}/{{ru_ref}}-reset.py ...@@ -209,7 +209,7 @@ output = ${directory:etc}/{{ru_ref}}-reset.py
recipe = slapos.cookbook:cron.d recipe = slapos.cookbook:cron.d
cron-entries = ${cron:cron-entries} cron-entries = ${cron:cron-entries}
name = {{ru_ref}}-reset name = {{ru_ref}}-reset
frequency = {{ slapparameter_dict.get("cron_schedule", "") }} frequency = {{ ru.reset_schedule }}
command = {{ buildout_directory}}/bin/pythonwitheggs ${ {{- ru_ref}}-reset-template:output} command = {{ buildout_directory}}/bin/pythonwitheggs ${ {{- ru_ref}}-reset-template:output}
{{ part('%s-reset-info-service' % ru_ref) }} {{ part('%s-reset-info-service' % ru_ref) }}
...@@ -237,6 +237,10 @@ ru-ipv6 = ${slap-configuration:tap-ipv6-gateway} ...@@ -237,6 +237,10 @@ ru-ipv6 = ${slap-configuration:tap-ipv6-gateway}
{%- macro buildout() %} {%- macro buildout() %}
# deploy openssh-server for software upgrade # deploy openssh-server for software upgrade
#
# FIXME user-authorized-key is global for eNB. Either we need to put SSH server
# to be also global, or unroll an SSH server via paramiko inside
# ru/lopcomm/software.py just to handle software upgrades there.
[user-info] [user-info]
recipe = slapos.cookbook:userinfo recipe = slapos.cookbook:userinfo
......
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