Commit b32b4a8e authored by Lu Xu's avatar Lu Xu 👀

software/ors-amarisoft: general improvement for RU (logs/promises/input parameters)

parent 48db30d9
...@@ -54,7 +54,7 @@ class enbWebSocket: ...@@ -54,7 +54,7 @@ class enbWebSocket:
"rf": True "rf": True
}) })
r = self.recv('stats') r = self.recv('stats')
self.logger.info('Samples stats', extra={'data': r}) self.logger.info('Samples stats', extra={'data': json.dumps(r)})
if __name__ == '__main__': if __name__ == '__main__':
ws = enbWebSocket() ws = enbWebSocket()
......
...@@ -16,31 +16,43 @@ ...@@ -16,31 +16,43 @@
[template] [template]
filename = instance.cfg filename = instance.cfg
md5sum = 50e83105328c6434ba94f77c5753cbf8 md5sum = bc60058a9407fc481b1a652b2f3b5498
[amarisoft-stats.jinja2.py] [amarisoft-stats.jinja2.py]
_update_hash_filename_ = amarisoft-stats.jinja2.py _update_hash_filename_ = amarisoft-stats.jinja2.py
md5sum = 6e0a052bd0ca08cc0c7b4880d3deffcc md5sum = c4d5e9fcf460d88bc2b4bcfbdfe554f7
[amarisoft-rf-info.jinja2.py] [amarisoft-rf-info.jinja2.py]
_update_hash_filename_ = amarisoft-rf-info.jinja2.py _update_hash_filename_ = amarisoft-rf-info.jinja2.py
md5sum = c930c28365c685a6066f382c9b5d8893 md5sum = c930c28365c685a6066f382c9b5d8893
[ncclient_common]
_update_hash_filename_ = ncclient_common.py
md5sum = f34a196e947fa58b141431a00cc744df
[lopcomm-rrh-stats.jinja2.py] [lopcomm-rrh-stats.jinja2.py]
_update_hash_filename_ = lopcomm-rrh-stats.jinja2.py _update_hash_filename_ = lopcomm-rrh-stats.jinja2.py
md5sum = f0451b3c2494f103042bda04433c943d md5sum = b861ef43beba4a0a2904e8c2aee04723
[lopcomm-rrh-config.jinja2.py] [lopcomm-rrh-config.jinja2.py]
_update_hash_filename_ = lopcomm-rrh-config.jinja2.py _update_hash_filename_ = lopcomm-rrh-config.jinja2.py
md5sum = b34fe47a73890097fbc6ea6374aeb38d md5sum = f2f550b68c8ab243ce1a4bb73a9abc1c
[lopcomm-rrh-software.jinja2.py]
_update_hash_filename_ = lopcomm-rrh-software.jinja2.py
md5sum = 860fa5e5bab65f414535c7e25f622a6c
[lopcomm-rrh-supervision.jinja2.py]
_update_hash_filename_ = lopcomm-rrh-supervision.jinja2.py
md5sum = a2ba0343ddb7f9cf2904a4c5c751f68a
[template-enb] [template-enb]
_update_hash_filename_ = instance-enb.jinja2.cfg _update_hash_filename_ = instance-enb.jinja2.cfg
md5sum = 62252527eb4998de5bb23058dbbdbd75 md5sum = 453bb68d97be3f60d807113add9c291f
[template-gnb] [template-gnb]
_update_hash_filename_ = instance-gnb.jinja2.cfg _update_hash_filename_ = instance-gnb.jinja2.cfg
md5sum = b4d7406d9d7df7fafbbf0ddbc792f5fb md5sum = 75caea34c4436688a8d54ec335c4f0ef
[template-core-network] [template-core-network]
_update_hash_filename_ = instance-core-network.jinja2.cfg _update_hash_filename_ = instance-core-network.jinja2.cfg
...@@ -64,15 +76,15 @@ md5sum = dcaac06553a3222b14c0013a13f4a149 ...@@ -64,15 +76,15 @@ md5sum = dcaac06553a3222b14c0013a13f4a149
[enb.jinja2.cfg] [enb.jinja2.cfg]
filename = config/enb.jinja2.cfg filename = config/enb.jinja2.cfg
md5sum = 1680fde9d6d5f8c1678fb11d7a891191 md5sum = e33bf40dfdb32d91d3a1b3f3a10ede34
[sib23.jinja2.asn] [sib23.jinja2.asn]
filename = config/sib23.jinja2.asn filename = config/sib23.jinja2.asn
md5sum = 0af07bba51f8d4e773f9bfef4f2ca535 md5sum = a1973ba6e43d40e510d61d461c2d13ac
[gnb.jinja2.cfg] [gnb.jinja2.cfg]
filename = config/gnb.jinja2.cfg filename = config/gnb.jinja2.cfg
md5sum = f1e7f37a9c0866c08237b03cecdcd2c7 md5sum = 2f7b70b6225ca94feaf1ba512643b0d1
[ltelogs.jinja2.sh] [ltelogs.jinja2.sh]
filename = ltelogs.jinja2.sh filename = ltelogs.jinja2.sh
...@@ -84,7 +96,7 @@ md5sum = 48b577daa5b53c2cf7fe2d30ea9c0235 ...@@ -84,7 +96,7 @@ md5sum = 48b577daa5b53c2cf7fe2d30ea9c0235
[dnsmasq.jinja2.cfg] [dnsmasq.jinja2.cfg]
filename = config/dnsmasq.jinja2.cfg filename = config/dnsmasq.jinja2.cfg
md5sum = 5f67c7f750e7c7bd9b9839c527a06853 md5sum = ecf6081d1fc76a60ba57f042446bc161
[ims.jinja2.cfg] [ims.jinja2.cfg]
filename = config/ims.jinja2.cfg filename = config/ims.jinja2.cfg
...@@ -104,7 +116,7 @@ md5sum = e435990eb0a0d4be41efa9bd16dce09b ...@@ -104,7 +116,7 @@ md5sum = e435990eb0a0d4be41efa9bd16dce09b
[cu_config.jinja2.xml] [cu_config.jinja2.xml]
filename = netconf/cu_config.jinja2.xml filename = netconf/cu_config.jinja2.xml
md5sum = 39ef850c68ea6cb1282176e718819c4a md5sum = d10b063ad4edc760e154f7a8d63bea47
[software.cfg.html] [software.cfg.html]
_update_hash_filename_ = gadget/software.cfg.html _update_hash_filename_ = gadget/software.cfg.html
......
{% if slapparameter_dict.get('rrh', '') == "Lopcomm ORAN" %} {% if ru == "lopcomm" %}
dhcp-leasefile={{ directory['etc'] }}/dnsmasq.leases dhcp-leasefile={{ directory['etc'] }}/dnsmasq.leases
port=5354 port=5354
dhcp-range=::1,::1,constructor:{{ slap_configuration.get('tap-name', '') }},ra-names,64,12h dhcp-range=::1,::1,constructor:{{ slap_configuration.get('tap-name', '') }},ra-names,64,5m
dhcp-host={{ slapparameter_dict.get('rrh_mac_addr', '00:0a:00:00:10:20') }},[{{ netaddr.IPAddress(slap_configuration.get('tap-ipv6-gateway', '')) }}] dhcp-host={{ slapparameter_dict.get('rrh_mac_addr', '00:0a:00:00:10:20') }},[{{ netaddr.IPAddress(slap_configuration.get('tap-ipv6-gateway', '')) }}]
dhcp-option=option6:dns-server,[{{ netaddr.IPAddress(slap_configuration.get('tap-ipv6-gateway', '')) + 1 }}],[{{ netaddr.IPAddress(slap_configuration.get('tap-ipv6-gateway', '')) + 2 }}] dhcp-option=option6:dns-server,[{{ netaddr.IPAddress(slap_configuration.get('tap-ipv6-gateway', '')) + 1 }}],[{{ netaddr.IPAddress(slap_configuration.get('tap-ipv6-gateway', '')) + 2 }}]
dhcp-option=option6:domain-search,bbu.local dhcp-option=option6:domain-search,bbu.local
# option 17 used for RU callhome
# dhcp-option=option6:17,[{{ netaddr.IPAddress(slap_configuration.get('tap-ipv6-addr', '')) }}]
log-queries
log-dhcp
log-facility={{ directory['home'] }}/var/log/dnsmasq.log
enable-ra enable-ra
ra-param=adv-send-advert ra-param=adv-send-advert
ra-param=adv-managed-flag ra-param=adv-managed-flag
......
...@@ -35,14 +35,14 @@ ...@@ -35,14 +35,14 @@
{% endif %} {% endif %}
log_filename: "{{ directory['log'] }}/enb.log", log_filename: "{{ directory['log'] }}/enb.log",
{% if slapparameter_dict.get('rrh', 'ORS') == "Lopcomm ORAN" %} {% if ru == "lopcomm" %}
rf_driver: { rf_driver: {
{%- if slapparameter_dict.get('disable_sdr', False) %} {%- if slapparameter_dict.get('disable_sdr', False) %}
name: "dummy", name: "dummy",
{%- else %} {%- else %}
name: "sdr", name: "sdr",
{%- endif %} {%- endif %}
args: "dev0= args: "dev0=
{%- for i, k in enumerate(cell_list) %} {%- for i, k in enumerate(cell_list) %}
{%- set cpri_port = cell_list[k].get('cpri_port_number', i) %} {%- set cpri_port = cell_list[k].get('cpri_port_number', i) %}
{%- if i != 0 -%} {%- if i != 0 -%}
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
}, },
tx_gain: 0, tx_gain: 0,
rx_gain: 0, rx_gain: 0,
{% elif slapparameter_dict.get('rrh', 'ORS') == "ORS" %} {% elif bbu == "ors" %}
rf_driver: { rf_driver: {
{%- if slapparameter_dict.get('disable_sdr', False) %} {%- if slapparameter_dict.get('disable_sdr', False) %}
name: "dummy", name: "dummy",
...@@ -136,11 +136,15 @@ ...@@ -136,11 +136,15 @@
{% endif %} {% endif %}
], ],
{% if slapparameter_dict.get('mme_list', '') %} {% if slapparameter_dict.get('mme_list', '') %}
{% if slapparameter_dict.get('use_ipv4', False) %} {% if slapparameter_dict.get('gtp_addr') %}
gtp_addr: "{{ gtp_addr_v4 }}", gtp_addr: "{{ slapparameter_dict.get('gtp_addr') }}",
{% else %} {% else %}
gtp_addr: "{{ gtp_addr_v6 }}", {% if slapparameter_dict.get('use_ipv4', False) %}
{% endif %} gtp_addr: "{{ gtp_addr_v6 }}",
{% else %}
gtp_addr: "{{ gtp_addr_v4 }}",
{% endif %}
{% endif %}
{% else %} {% else %}
gtp_addr: "127.0.1.1", gtp_addr: "127.0.1.1",
{% endif %} {% endif %}
...@@ -218,7 +222,7 @@ ...@@ -218,7 +222,7 @@
], ],
n_antenna_dl: N_ANTENNA_DL, n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: N_ANTENNA_UL, n_antenna_ul: N_ANTENNA_UL,
{% if slapparameter_dict.get('rrh', 'ORS') == "ORS" %} {% if bbu == "ors" %}
manual_ref_signal_power: true, manual_ref_signal_power: true,
{% endif %} {% endif %}
#if TDD == 1 #if TDD == 1
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
{%- endif %} {%- endif %}
#define N_ANTENNA_DL {{ slapparameter_dict.get('n_antenna_dl', slap_configuration['configuration.default_n_antenna_dl']) }} #define N_ANTENNA_DL {{ slapparameter_dict.get('n_antenna_dl', slap_configuration['configuration.default_n_antenna_dl']) }}
{% if slapparameter_dict.get('rrh', 'ORS') == "M2RU Sunwave" %} {% if ru == "m2ru" %}
#define N_ANTENNA_UL {{ slapparameter_dict.get('n_antenna_ul', 1) }} #define N_ANTENNA_UL {{ slapparameter_dict.get('n_antenna_ul', 1) }}
{% else %} {% else %}
#define N_ANTENNA_UL {{ slapparameter_dict.get('n_antenna_ul', slap_configuration['configuration.default_n_antenna_dl']) }} #define N_ANTENNA_UL {{ slapparameter_dict.get('n_antenna_ul', slap_configuration['configuration.default_n_antenna_dl']) }}
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,ngap.level=debug,ngap.max_size=1,xnap.level=debug,xnap.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,ngap.level=debug,ngap.max_size=1,xnap.level=debug,xnap.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=info,file.rotate=1G,file.path=/dev/null",
{% endif %} {% endif %}
log_filename: "{{ directory['log'] }}/gnb.log", log_filename: "{{ directory['log'] }}/gnb.log",
{% if slapparameter_dict.get('rrh', 'ORS') == "M2RU Sunwave" %} {% if ru == "m2ru" %}
rf_driver: { rf_driver: {
{%- if slapparameter_dict.get('disable_sdr', False) %} {%- if slapparameter_dict.get('disable_sdr', False) %}
name: "dummy", name: "dummy",
...@@ -140,7 +140,7 @@ ...@@ -140,7 +140,7 @@
bandwidth: {{ slapparameter_dict.get('nr_bandwidth', slap_configuration['configuration.default_nr_bandwidth']) }}, bandwidth: {{ slapparameter_dict.get('nr_bandwidth', slap_configuration['configuration.default_nr_bandwidth']) }},
n_antenna_dl: N_ANTENNA_DL, n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: N_ANTENNA_UL, n_antenna_ul: N_ANTENNA_UL,
{%- if slapparameter_dict.get('rrh', 'ORS') == "ORS" %} {%- if bbu == "ors" %}
manual_ref_signal_power: true, manual_ref_signal_power: true,
{%- if one_watt == "True" %} {%- if one_watt == "True" %}
ss_pbch_block_power: {{ (tx_gain | int) - 54 }}, ss_pbch_block_power: {{ (tx_gain | int) - 54 }},
...@@ -257,7 +257,7 @@ ...@@ -257,7 +257,7 @@
prach_config_index: 160, prach_config_index: 160,
msg1_subcarrier_spacing: 30, msg1_subcarrier_spacing: 30,
msg1_fdm: 1, msg1_fdm: 1,
{% if slapparameter_dict.get('rrh', 'ORS') == "M2RU Sunwave" %} {% if ru == "m2ru" %}
msg1_frequency_start: 0, msg1_frequency_start: 0,
{% else %} {% else %}
msg1_frequency_start: -1, msg1_frequency_start: -1,
...@@ -273,7 +273,7 @@ ...@@ -273,7 +273,7 @@
cb_preambles_per_ssb: 8, cb_preambles_per_ssb: 8,
}, },
pdcch: { pdcch: {
{% if slapparameter_dict.get('rrh', 'ORS') == "M2RU Sunwave" %} {% if ru == "m2ru" %}
n_rb_coreset0: 48, n_rb_coreset0: 48,
n_symb_coreset0: 1, n_symb_coreset0: 1,
{% endif %} {% endif %}
...@@ -281,7 +281,7 @@ ...@@ -281,7 +281,7 @@
dedicated_coreset: { dedicated_coreset: {
rb_start: -1, rb_start: -1,
l_crb: -1, l_crb: -1,
{% if slapparameter_dict.get('rrh', 'ORS') == "M2RU Sunwave" %} {% if ru == "m2ru" %}
duration: 1, duration: 1,
{% else %} {% else %}
duration: 0, duration: 0,
...@@ -311,7 +311,7 @@ ...@@ -311,7 +311,7 @@
dmrs_add_pos: 1, dmrs_add_pos: 1,
dmrs_type: 1, dmrs_type: 1,
dmrs_max_len: 1, dmrs_max_len: 1,
{% if slapparameter_dict.get('rrh', 'ORS') == "M2RU Sunwave" %} {% if ru == "m2ru" %}
k0: 0, k0: 0,
k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ], k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ],
{% elif tdd_config == 3 %} {% elif tdd_config == 3 %}
...@@ -553,7 +553,7 @@ ...@@ -553,7 +553,7 @@
mcs_table: "qam256", mcs_table: "qam256",
mcs_table_tp: "qam256", mcs_table_tp: "qam256",
ldpc_max_its: 5, ldpc_max_its: 5,
{% if slapparameter_dict.get('rrh', 'ORS') == "M2RU Sunwave" %} {% if ru == "m2ru" %}
k2: 4, k2: 4,
msg3_k2: 7, msg3_k2: 7,
{% elif tdd_config == 3 %} {% elif tdd_config == 3 %}
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
} }
}, },
pdsch-ConfigCommon { pdsch-ConfigCommon {
{% if slapparameter_dict.get('rrh', 'ORS') == "ORS" %} {% if bbu == "ors" %}
{%- if one_watt == "True" %} {%- if one_watt == "True" %}
referenceSignalPower {{ (tx_gain | int) - 54 }}, /* patched by eNB */ referenceSignalPower {{ (tx_gain | int) - 54 }}, /* patched by eNB */
{%- else %} {%- else %}
......
...@@ -56,10 +56,16 @@ ...@@ -56,10 +56,16 @@
"type": "number", "type": "number",
"default": 0 "default": 0
}, },
"cpri_port": {
"title": "CPRI Port Number",
"description": "CPRI Port Number",
"type": "number",
"default": 0
},
{%- endif %} {%- endif %}
{%- if trx == 'cpri' %} {%- if trx == 'cpri' %}
"cpri_mult": { "cpri_mult": {
"title": "cpri_mult", "title": "CPRI Mult",
"description": "Select the CPRI line bit rate in terms of multiple of option 1 (614.4 Mbps). E.g set 4 for option 3, 8 for option 5 and 16 for option 7.", "description": "Select the CPRI line bit rate in terms of multiple of option 1 (614.4 Mbps). E.g set 4 for option 3, 8 for option 5 and 16 for option 7.",
"type": "number", "type": "number",
"default": 16, "default": 16,
...@@ -113,19 +119,19 @@ ...@@ -113,19 +119,19 @@
"title": "CPRI RX Delay", "title": "CPRI RX Delay",
"description": "Delays between TX and RX position in CPRI frame. This should be set to the value of (T2a + T3a - Toffset) provided by the RRH specification.", "description": "Delays between TX and RX position in CPRI frame. This should be set to the value of (T2a + T3a - Toffset) provided by the RRH specification.",
"type": "number", "type": "number",
"default": 0 "default": 25.11
}, },
"cpri_tx_delay": { "cpri_tx_delay": {
"title": "CPRI TX Delay", "title": "CPRI TX Delay",
"description": "Advances Start of Frame relative to PPS to compensate for delays in transmit line and RRH. This should be set to T12 + T2a.", "description": "Advances Start of Frame relative to PPS to compensate for delays in transmit line and RRH. This should be set to T12 + T2a.",
"type": "number", "type": "number",
"default": 0 "default": 14.71
}, },
"cpri_tx_dbm": { "cpri_tx_dbm": {
"title": "CPRI TX dBm", "title": "CPRI TX dBm",
"description": "Optional floating points value in dBm (default 0). Needed by ENB/GNB to have a notion of actual output power. Computed from maximum power output of the RRH for a 0dBFS input signal (full scale). ", "description": "Optional floating points value in dBm (default 0). Needed by ENB/GNB to have a notion of actual output power. Computed from maximum power output of the RRH for a 0dBFS input signal (full scale). ",
"type": "number", "type": "number",
"default": 0 "default": 63
}, },
"cpri_port_number": { "cpri_port_number": {
"title": "CPRI Port Number", "title": "CPRI Port Number",
...@@ -204,41 +210,35 @@ ...@@ -204,41 +210,35 @@
"INACTIVE" "INACTIVE"
] ]
}, },
"txa0cc00_center_frequency_earfcn": {
"title": "Lopcomm ORAN Center Frequency EARFCN (TXA0CC00)",
"description": "Lopcomm ORAN Center Frequency EARFCN (TXA0CC00)",
"type": "number",
"default": 300
},
"txa0cc00_center_frequency": { "txa0cc00_center_frequency": {
"title": "Lopcomm ORAN Center Frequency in Hz (TXA0CC00)", "title": "Lopcomm ORAN DL Center Frequency in MHz (TXA0CC00)",
"description": "Lopcomm ORAN Center Frequency in Hz (TXA0CC00)", "description": "Lopcomm ORAN Center Frequency in MHz (TXA0CC00)",
"type": "number",
"default": 2140000000
},
"txa0cc00_bandwidth": {
"title": "Lopcomm ORAN bandwidth in Hz (TXA0CC00)",
"description": "Lopcomm ORAN bandwidth in Hz (TXA0CC00)",
"type": "number", "type": "number",
"default": 20000000 "default": 2140
}, },
"rxa0cc00_center_frequency_earfcn": { "rxa0cc00_center_frequency_earfcn": {
"title": "Lopcomm ORAN Center Frequency EARFCN (RXA0CC00)", "title": "Lopcomm ORAN UL Center Frequency EARFCN (RXA0CC00)",
"description": "Lopcomm ORAN Center Frequency EARFCN (RXA0CC00)", "description": "Lopcomm ORAN Center Frequency EARFCN (RXA0CC00)",
"type": "number", "type": "number",
"default": 18300 "default": 18300
}, },
"rxa0cc00_center_frequency": { "rxa0cc00_center_frequency": {
"title": "Lopcomm ORAN Center Frequency in Hz (RXA0CC00)", "title": "Lopcomm ORAN UL Center Frequency in MHz (RXA0CC00)",
"description": "Lopcomm ORAN Center Frequency in Hz (RXA0CC00)", "description": "Lopcomm ORAN Center Frequency in MHz (RXA0CC00)",
"type": "number", "type": "number",
"default": 1950000000 "default": 1950
}, },
"rxa0cc00_bandwidth": { "txa0cc00_gain": {
"title": "Lopcomm ORAN bandwidth in Hz (RXA0CC00)", "title": "ORAN Gain",
"description": "Lopcomm ORAN bandwidth in Hz (RXA0CC00)", "description": "Lopcomm ORAN Gain (TXA0CC00)",
"type": "number", "type": "number",
"default": 20000000 "default": -20
},
"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"
}, },
{%- endif %} {%- endif %}
"enb_id": { "enb_id": {
...@@ -247,6 +247,12 @@ ...@@ -247,6 +247,12 @@
"type": "string", "type": "string",
"default": "0x1A2D0" "default": "0x1A2D0"
}, },
"gtp_addr": {
"title": "GTP Address",
"description": "String. Set the IP address (and optional port) on which the GTP-U packets are received. The default port is 2152. It is normally the IP address of the network interface connected to the core network.",
"type": "string",
"default": "127.0.1.1"
},
"mme_list": { "mme_list": {
"title": "MME list", "title": "MME list",
"description": "Optionnal. List of MME to which the gNodeB is connected", "description": "Optionnal. List of MME to which the gNodeB is connected",
......
...@@ -10,12 +10,22 @@ parts = ...@@ -10,12 +10,22 @@ parts =
{% endif %} {% endif %}
amarisoft-stats-service amarisoft-stats-service
amarisoft-rf-info-service amarisoft-rf-info-service
{% if slapparameter_dict.get('rrh', '') == "Lopcomm ORAN" %} {% if ru == "lopcomm" %}
lopcomm-firmware-dl
lopcomm-rrh-stats-service lopcomm-rrh-stats-service
lopcomm-rrh-supervision-service
lopcomm-rrh-config-template lopcomm-rrh-config-template
lopcomm-rrh-software-template
netconf-connection-promise
firmware-update-promise
rrh-netconf-socket-promise
lopcomm-cu-config lopcomm-cu-config
sshd-service
sshd-add-authorized-key
sshd-promise
check-lopcomm-vswr.py check-lopcomm-vswr.py
check-lopcomm-pa-current.py check-lopcomm-pa-current.py
check-lopcomm-pa-output-power.py
check-lopcomm-lof.py check-lopcomm-lof.py
check-lopcomm-rssi.py check-lopcomm-rssi.py
check-lopcomm-sync.py check-lopcomm-sync.py
...@@ -29,7 +39,9 @@ parts = ...@@ -29,7 +39,9 @@ parts =
check-sdr-busy.py check-sdr-busy.py
check-baseband-latency.py check-baseband-latency.py
check-amarisoft-stats-log.py check-amarisoft-stats-log.py
{% if not ru == "lopcomm" %}
check-rx-saturated.py check-rx-saturated.py
{% endif %}
monitor-base monitor-base
publish-connection-information publish-connection-information
...@@ -267,6 +279,7 @@ json-log-output = ${directory:var}/log/lopcomm-rrh-stats.json.log ...@@ -267,6 +279,7 @@ json-log-output = ${directory:var}/log/lopcomm-rrh-stats.json.log
cfg-json-log-output = ${directory:var}/log/lopcomm-rrh-config.json.log cfg-json-log-output = ${directory:var}/log/lopcomm-rrh-config.json.log
supervision-json-log-output = ${directory:var}/log/lopcomm-rrh-supervision.json.log supervision-json-log-output = ${directory:var}/log/lopcomm-rrh-supervision.json.log
ncsession-json-log-output = ${directory:var}/log/lopcomm-rrh-ncsession.json.log ncsession-json-log-output = ${directory:var}/log/lopcomm-rrh-ncsession.json.log
software-json-log-output = ${directory:var}/log/lopcomm-rrh-software.json.log
context = context =
section directory directory section directory directory
section slap_configuration slap-configuration section slap_configuration slap-configuration
...@@ -276,8 +289,10 @@ context = ...@@ -276,8 +289,10 @@ context =
key cfg_json_log_file :cfg-json-log-output key cfg_json_log_file :cfg-json-log-output
key supervision_json_log_file :supervision-json-log-output key supervision_json_log_file :supervision-json-log-output
key ncsession_json_log_file :ncsession-json-log-output key ncsession_json_log_file :ncsession-json-log-output
key software_json_log_file :software-json-log-output
raw testing {{ slapparameter_dict.get("testing", False) }} raw testing {{ slapparameter_dict.get("testing", False) }}
raw python_path {{ buildout_directory}}/bin/pythonwitheggs raw python_path {{ buildout_directory}}/bin/pythonwitheggs
raw buildout_directory_path {{ buildout_directory }}
import netaddr netaddr import netaddr netaddr
mode = 0775 mode = 0775
url = {{ lopcomm_rrh_stats_template }} url = {{ lopcomm_rrh_stats_template }}
...@@ -303,6 +318,7 @@ context = ...@@ -303,6 +318,7 @@ context =
key log_file :log-output key log_file :log-output
raw testing {{ slapparameter_dict.get("testing", False) }} raw testing {{ slapparameter_dict.get("testing", False) }}
raw python_path {{ buildout_directory}}/bin/pythonwitheggs raw python_path {{ buildout_directory}}/bin/pythonwitheggs
raw buildout_directory_path {{ buildout_directory }}
raw CreateProcessingEle_template {{ CreateProcessingEle_template }} raw CreateProcessingEle_template {{ CreateProcessingEle_template }}
key cu_config_template lopcomm-cu-config:output key cu_config_template lopcomm-cu-config:output
import netaddr netaddr import netaddr netaddr
...@@ -310,6 +326,68 @@ mode = 0775 ...@@ -310,6 +326,68 @@ mode = 0775
url = {{ lopcomm_rrh_config_template }} url = {{ lopcomm_rrh_config_template }}
output = ${directory:script}/lopcomm-rrh-config.py output = ${directory:script}/lopcomm-rrh-config.py
[lopcomm-rrh-software-template]
recipe = slapos.recipe.template:jinja2
extensions = jinja2.ext.do
log-output = ${directory:var}/log/lopcomm-rrh-software.log
software-reply-json-log-output = ${directory:var}/log/lopcomm-rrh-software-reply.json.log
remote-file-path = sftp://${user-info:pw-name}@[${slap-configuration:ipv6-random}]:${sshd-port:port}${lopcomm-firmware-dl:destination}
context =
section directory directory
section slap_configuration slap-configuration
key slapparameter_dict slap-configuration:configuration
key log_file :log-output
key software_reply_json_log_file :software-reply-json-log-output
key remote_file_path :remote-file-path
raw testing {{ slapparameter_dict.get("testing", False) }}
raw python_path {{ buildout_directory}}/bin/pythonwitheggs
raw buildout_directory_path {{ buildout_directory }}
raw etc_path ${directory:etc}
raw firmware_name ${lopcomm-firmware-dl:filename}
import netaddr netaddr
mode = 0775
url = {{ lopcomm_rrh_software_template }}
output = ${directory:script}/lopcomm-rrh-software.py
[lopcomm-rrh-supervision-template]
recipe = slapos.recipe.template:jinja2
extensions = jinja2.ext.do
log-output = ${directory:var}/log/lopcomm-rrh-supervision.log
supervision-reply-json-log-output = ${directory:var}/log/lopcomm-rrh-supervision-reply.json.log
context =
section directory directory
section slap_configuration slap-configuration
key slapparameter_dict slap-configuration:configuration
key log_file :log-output
key supervision_reply_json_log_file :supervision-reply-json-log-output
raw testing {{ slapparameter_dict.get("testing", False) }}
raw python_path {{ buildout_directory}}/bin/pythonwitheggs
raw buildout_directory_path {{ buildout_directory }}
raw etc_path ${directory:etc}
import netaddr netaddr
mode = 0775
url = {{ lopcomm_rrh_supervision_template }}
output = ${directory:bin}/lopcomm-rrh-supervision.py
[netconf-connection-promise]
<= monitor-promise-base
promise = check_command_execute
name = netconf-connection-promise.py
config-command = [ -f ${directory:etc}/is_netconf_connected ]
[firmware-update-promise]
<= monitor-promise-base
promise = check_command_execute
name = firmware-update-promise.py
config-command = [ -f ${directory:etc}/is_firmware_updated ]
[rrh-netconf-socket-promise]
<= monitor-promise-base
promise = check_socket_listening
name = rrh-netconf-socket-promise.py
config-host = ${slap-configuration:tap-ipv6-gateway}
config-port = 830
[amarisoft-stats-service] [amarisoft-stats-service]
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
command-line = ${amarisoft-stats-template:output} command-line = ${amarisoft-stats-template:output}
...@@ -334,6 +412,81 @@ mode = 0775 ...@@ -334,6 +412,81 @@ mode = 0775
hash-files = hash-files =
${lopcomm-rrh-stats-template:output} ${lopcomm-rrh-stats-template:output}
[lopcomm-rrh-supervision-service]
recipe = slapos.cookbook:wrapper
command-line = ${lopcomm-rrh-supervision-template:output}
wrapper-path = ${directory:service}/lopcomm-rrh-supervision
mode = 0775
hash-files =
${lopcomm-rrh-supervision-template:output}
[lopcomm-firmware-dl]
recipe = slapos.recipe.build:download
url = https://lab.nexedi.com/nexedi/ors-utils/raw/master/lopcomm-firmware/${:filename}
filename = PR.PRM61C70V1004.002.tar.gz
md5sum = 4e06fd62968f9f53fd819ef8d880a8f4
destination = ${directory:etc}/${:filename}
offline = false
[user-info]
recipe = slapos.cookbook:userinfo
# Deploy openssh-server
[sshd-port]
recipe = slapos.cookbook:free_port
minimum = 22222
maximum = 22231
ip = ${slap-configuration:ipv6-random}
[sshd-config]
recipe = slapos.recipe.template:jinja2
output = ${directory:etc}/sshd.conf
path_pid = ${directory:run}/sshd.pid
inline =
PidFile ${:path_pid}
Port ${sshd-port:port}
ListenAddress ${slap-configuration:ipv6-random}
Protocol 2
HostKey ${sshd-ssh-host-rsa-key:output}
HostKey ${sshd-ssh-host-ecdsa-key:output}
PasswordAuthentication no
PubkeyAuthentication yes
HostKeyAlgorithms ssh-rsa,ssh-dss,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp521
AuthorizedKeysFile ${buildout:directory}/.ssh/authorized_keys
Subsystem sftp {{ openssh_location }}/libexec/sftp-server
[sshd-service]
recipe = slapos.cookbook:wrapper
command-line = {{ openssh_location }}/sbin/sshd -D -e -f ${sshd-config:output}
wrapper-path = ${directory:service}/sshd
hash-files = ${sshd-config:output}
environment =
HOME=${directory:home}
[sshd-add-authorized-key]
recipe = slapos.cookbook:dropbear.add_authorized_key
home = ${buildout:directory}
key = {{ slapparameter_dict.get("user-authorized-key", '') }}
[sshd-ssh-keygen-base]
recipe = plone.recipe.command
output = ${directory:etc}/${:_buildout_section_name_}
command = {{ openssh_output_keygen }} -f ${:output} -N '' ${:extra-args}
[sshd-ssh-host-rsa-key]
<=sshd-ssh-keygen-base