clearfog: velia-hardware: support current PCB revision
Change-Id: Ia08a72b3cdaa07cfea27cb927a022eddc8f266ba
Depends-on: https://cesnet-gerrit-czechlight/c/CzechLight/velia/+/3692
Depends-on: https://gerrit.cesnet.cz/c/CzechLight/velia/+/3692
diff --git a/board/czechlight/clearfog/overlay/usr/lib/systemd/system-generators/osc b/board/czechlight/clearfog/overlay/usr/lib/systemd/system-generators/osc
index fe12698..d9a5ffd 100755
--- a/board/czechlight/clearfog/overlay/usr/lib/systemd/system-generators/osc
+++ b/board/czechlight/clearfog/overlay/usr/lib/systemd/system-generators/osc
@@ -5,9 +5,9 @@
mkdir -p /run/systemd/network
# custom names for OSC channels
-if grep -q '\<czechlight=sdn-roadm-line\>' /proc/cmdline; then
+if grep -q '\<czechlight=sdn-roadm-line.*\>' /proc/cmdline; then
ETH2_NAME=osc
-elif grep -q '\<czechlight=sdn-inline\>' /proc/cmdline; then
+elif grep -q '\<czechlight=sdn-inline.*\>' /proc/cmdline; then
ETH2_NAME=oscW
ETH3_NAME=oscE
fi
diff --git a/package/cla-sysrepo/cla-appliance.service.in b/package/cla-sysrepo/cla-appliance.service.in
index 548d189..2cf20b0 100644
--- a/package/cla-sysrepo/cla-appliance.service.in
+++ b/package/cla-sysrepo/cla-appliance.service.in
@@ -1,11 +1,12 @@
[Unit]
Description=CzechLight __MODEL__ driver
After=syslog.target network.target czechlight-install-yang.service cfg-restore-sysrepo.service
-Before=rauc-mark-good.service velia-hardware.service
+Before=rauc-mark-good.service velia-hardware-g1.service velia-hardware-g2.service
PartOf=netopeer2.service
Requires=czechlight-install-yang.service cfg-restore-sysrepo.service
StartLimitIntervalSec=0
-ConditionKernelCommandLine=czechlight=__MODEL__
+ConditionKernelCommandLine=|czechlight=__MODEL__
+ConditionKernelCommandLine=|czechlight=__MODEL__-g2
[Service]
Type=notify
@@ -24,4 +25,4 @@
[Install]
WantedBy=multi-user.target
-RequiredBy=velia-hardware.service
+RequiredBy=velia-hardware-g1.service velia-hardware-g2.service
diff --git a/package/cla-sysrepo/czechlight-install-yang.sh b/package/cla-sysrepo/czechlight-install-yang.sh
index 37bc349..f0d26fa 100755
--- a/package/cla-sysrepo/czechlight-install-yang.sh
+++ b/package/cla-sysrepo/czechlight-install-yang.sh
@@ -19,22 +19,30 @@
esac
done
+INITIAL_DATA=${CZECHLIGHT%%-g2}
+
case "${CZECHLIGHT}" in
- sdn-roadm-line)
+ sdn-roadm-line*)
YANG_ROADM=1
WITH_FEATURE=hw-line-9
IETF_HW_STATE=1
;;
- sdn-roadm-add-drop)
+ sdn-roadm-add-drop*)
YANG_ROADM=1
WITH_FEATURE=hw-add-drop-20
IETF_HW_STATE=1
;;
- sdn-roadm-coherent-a-d)
+ sdn-roadm-hires-add-drop*)
+ YANG_ROADM=1
+ WITH_FEATURE=hw-add-drop-20
+ IETF_HW_STATE=1
+ INITIAL_DATA=sdn-roadm-add-drop
+ ;;
+ sdn-roadm-coherent-a-d*)
IETF_HW_STATE=1
YANG_COHERENT=1
;;
- sdn-inline)
+ sdn-inline*)
IETF_HW_STATE=1
YANG_INLINE=1
;;
@@ -69,24 +77,24 @@
if [[ ${WITH_FEATURE} ]]; then
sysrepoctl --change czechlight-roadm-device --enable-feature ${WITH_FEATURE}
fi
- sysrepocfg --datastore=startup --format=json --module=czechlight-roadm-device --import="${YANG_DIR}/${CZECHLIGHT}.json"
+ sysrepocfg --datastore=startup --format=json --module=czechlight-roadm-device --import="${YANG_DIR}/${INITIAL_DATA}.json"
fi
if [[ ${YANG_COHERENT} == 1 && ! -f ${REPO}/czechlight-coherent-add-drop@2019-09-30.yang ]]; then
sysrepoctl --search-dirs ${YANG_DIR} --install ${YANG_DIR}/czechlight-coherent-add-drop@2019-09-30.yang
- sysrepocfg --datastore=startup --format=json --module=czechlight-coherent-add-drop --new-data="${YANG_DIR}/${CZECHLIGHT}.json"
+ sysrepocfg --datastore=startup --format=json --module=czechlight-coherent-add-drop --new-data="${YANG_DIR}/${INITIAL_DATA}.json"
sysrepoctl --change czechlight-coherent-add-drop --group optics --permissions 0664 --apply
fi
if [[ ${YANG_INLINE} == 1 && ! -f ${REPO}/czechlight-inline-amp@2019-09-30.yang ]]; then
sysrepoctl --search-dirs ${YANG_DIR} --install ${YANG_DIR}/czechlight-inline-amp@2019-09-30.yang
- sysrepocfg --datastore=startup --format=json --module=czechlight-inline-amp --import="${YANG_DIR}/${CZECHLIGHT}.json"
+ sysrepocfg --datastore=startup --format=json --module=czechlight-inline-amp --import="${YANG_DIR}/${INITIAL_DATA}.json"
sysrepoctl --change czechlight-inline-amp --group optics --permissions 0664 --apply
fi
if [[ ${YANG_CALIBRATION} == 1 && ! -f ${REPO}/czechlight-calibration-device@2019-06-25.yang ]]; then
sysrepoctl --search-dirs ${YANG_DIR} --install ${YANG_DIR}/czechlight-calibration-device@2019-06-25.yang
- sysrepocfg --datastore=startup --format=json --module=czechlight-calibration-device --import="${YANG_DIR}/${CZECHLIGHT}.json"
+ sysrepocfg --datastore=startup --format=json --module=czechlight-calibration-device --import="${YANG_DIR}/${INITIAL_DATA}.json"
sysrepoctl --change czechlight-calibration-device --group optics --permissions 0664 --apply
fi
diff --git a/package/reset-sysrepo/reset-sysrepo.mk b/package/reset-sysrepo/reset-sysrepo.mk
index 8fd3976..89e653c 100644
--- a/package/reset-sysrepo/reset-sysrepo.mk
+++ b/package/reset-sysrepo/reset-sysrepo.mk
@@ -23,7 +23,8 @@
netopeer2.service \
sysrepo-persistent-cfg.service \
velia-system.service \
- velia-hardware.service \
+ velia-hardware-g1.service \
+ velia-hardware-g2.service \
; do \
echo "Adding systemd drop-ins $${UNIT} <-> /run/sysrepo"; \
$(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/lib/systemd/system/$${UNIT}.d/ ; \
diff --git a/package/velia/velia-hardware.service b/package/velia/velia-hardware-g1.service
similarity index 71%
rename from package/velia/velia-hardware.service
rename to package/velia/velia-hardware-g1.service
index d84140f..52e020f 100644
--- a/package/velia/velia-hardware.service
+++ b/package/velia/velia-hardware-g1.service
@@ -4,7 +4,10 @@
Before=rauc-mark-good.service
PartOf=netopeer2.service
Requires=czechlight-install-yang.service cfg-restore-sysrepo.service
-ConditionKernelCommandLine=czechlight
+ConditionKernelCommandLine=|czechlight=sdn-inline
+ConditionKernelCommandLine=|czechlight=sdn-roadm-add-drop
+ConditionKernelCommandLine=|czechlight=sdn-roadm-coherent-a-d
+ConditionKernelCommandLine=|czechlight=sdn-roadm-line
[Service]
Type=simple
diff --git a/package/velia/velia-hardware.service b/package/velia/velia-hardware-g2.service
similarity index 63%
copy from package/velia/velia-hardware.service
copy to package/velia/velia-hardware-g2.service
index d84140f..9e30f39 100644
--- a/package/velia/velia-hardware.service
+++ b/package/velia/velia-hardware-g2.service
@@ -4,11 +4,15 @@
Before=rauc-mark-good.service
PartOf=netopeer2.service
Requires=czechlight-install-yang.service cfg-restore-sysrepo.service
-ConditionKernelCommandLine=czechlight
+ConditionKernelCommandLine=|czechlight=sdn-inline-g2
+ConditionKernelCommandLine=|czechlight=sdn-roadm-add-drop-g2
+ConditionKernelCommandLine=|czechlight=sdn-roadm-coherent-a-d-g2
+ConditionKernelCommandLine=|czechlight=sdn-roadm-line-g2
+ConditionKernelCommandLine=|czechlight=sdn-roadm-hires-add-drop-g2
[Service]
Type=simple
-ExecStart=/usr/bin/veliad-hardware --log-level=4 --appliance=czechlight-clearfog
+ExecStart=/usr/bin/veliad-hardware --log-level=4 --appliance=czechlight-clearfog-g2
PrivateTmp=yes
PrivateDevices=no
ProtectSystem=yes
diff --git a/package/velia/velia.mk b/package/velia/velia.mk
index a32c38e..232a962 100644
--- a/package/velia/velia.mk
+++ b/package/velia/velia.mk
@@ -21,7 +21,8 @@
$(TARGET_DIR)/usr/share/dbus-1/system.d/
$(call VELIA_PREPARE_SERVICE,velia-health)
- $(call VELIA_PREPARE_SERVICE,velia-hardware)
+ $(call VELIA_PREPARE_SERVICE,velia-hardware-g1)
+ $(call VELIA_PREPARE_SERVICE,velia-hardware-g2)
$(call VELIA_PREPARE_SERVICE,velia-system)
endef