From 3985d5fe0843ea3898dfbb57fa57cb6cb545e80d Mon Sep 17 00:00:00 2001 From: Alexander Filippov Date: Mon, 8 Jun 2020 12:51:56 +0300 Subject: nicole: Add default network configs for Tatlin This adds VLAN4004 configuration to the nicole firmware image. The IPv6 address will be chosen depending on the BMC position. During the firmware upgrade the stored previous version of `/etc/systemd/network/00-bmc-eth0.network` may prevent to start new VLAN4004 interface. This commit also adds a service which should fix this issue on the first boot time after upgrade by adding necessary option to the interface configuration file if it is not present yet. Tested: BMC now has additional `eth0.4004` interface use static IPv6 address and this address depend on BMC position. (From meta-yadro rev: 83aa32ac997e6dc66cc5e2041a0a3cb723e950d9) Change-Id: I5fc6663ddee67aafcfa9f2004083d8a4a528950f Signed-off-by: Alexander Filippov Signed-off-by: Andrew Geissler --- .../network/phosphor-network_%.bbappend | 1 + .../network/vlan-4004/00-bmc-eth0.4004.0.network | 8 +++++ .../network/vlan-4004/00-bmc-eth0.4004.1.network | 8 +++++ .../network/vlan-4004/00-bmc-eth0.network | 9 +++++ .../network/vlan-4004/eth0.4004.netdev | 5 +++ .../network/vlan-4004/setup-vlan4004.service | 15 ++++++++ .../network/vlan-4004/setup-vlan4004.sh | 8 +++++ .../recipes-phosphor/network/vlan-4004_1.0.bb | 40 ++++++++++++++++++++++ 8 files changed, 94 insertions(+) create mode 100644 meta-yadro/meta-nicole/recipes-phosphor/network/phosphor-network_%.bbappend create mode 100644 meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/00-bmc-eth0.4004.0.network create mode 100644 meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/00-bmc-eth0.4004.1.network create mode 100644 meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/00-bmc-eth0.network create mode 100644 meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/eth0.4004.netdev create mode 100644 meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/setup-vlan4004.service create mode 100755 meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/setup-vlan4004.sh create mode 100644 meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004_1.0.bb diff --git a/meta-yadro/meta-nicole/recipes-phosphor/network/phosphor-network_%.bbappend b/meta-yadro/meta-nicole/recipes-phosphor/network/phosphor-network_%.bbappend new file mode 100644 index 000000000..99d30312c --- /dev/null +++ b/meta-yadro/meta-nicole/recipes-phosphor/network/phosphor-network_%.bbappend @@ -0,0 +1 @@ +RDEPENDS_${PN}_append = " vlan-4004" diff --git a/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/00-bmc-eth0.4004.0.network b/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/00-bmc-eth0.4004.0.network new file mode 100644 index 000000000..534cbe9b1 --- /dev/null +++ b/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/00-bmc-eth0.4004.0.network @@ -0,0 +1,8 @@ +[Match] +Name=eth0.4004 +KernelCommandLine=bmcposition=0 +[Network] +LinkLocalAddressing=yes +IPv6AcceptRA=true +DHCP=no +Address=fd59:4144:524f:5441:544c:494e:3:1/122 diff --git a/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/00-bmc-eth0.4004.1.network b/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/00-bmc-eth0.4004.1.network new file mode 100644 index 000000000..83a48eee7 --- /dev/null +++ b/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/00-bmc-eth0.4004.1.network @@ -0,0 +1,8 @@ +[Match] +Name=eth0.4004 +KernelCommandLine=bmcposition=1 +[Network] +LinkLocalAddressing=yes +IPv6AcceptRA=true +DHCP=no +Address=fd59:4144:524f:5441:544c:494e:3:2/122 diff --git a/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/00-bmc-eth0.network b/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/00-bmc-eth0.network new file mode 100644 index 000000000..f7c670743 --- /dev/null +++ b/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/00-bmc-eth0.network @@ -0,0 +1,9 @@ +[Match] +Name=eth0 +[Network] +VLAN=eth0.4004 +DHCP=true +LinkLocalAddressing=yes +IPv6AcceptRA=false +[DHCP] +ClientIdentifier=mac diff --git a/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/eth0.4004.netdev b/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/eth0.4004.netdev new file mode 100644 index 000000000..e315f5e8a --- /dev/null +++ b/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/eth0.4004.netdev @@ -0,0 +1,5 @@ +[NetDev] +Name=eth0.4004 +Kind=vlan +[VLAN] +Id=4004 diff --git a/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/setup-vlan4004.service b/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/setup-vlan4004.service new file mode 100644 index 000000000..871462480 --- /dev/null +++ b/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/setup-vlan4004.service @@ -0,0 +1,15 @@ +[Unit] +Description=Setup VLAN 4004 +DefaultDependencies=no +Conflicts=shutdown.target +After=systemd-remount-fs.service +Before=sysinit.target shutdown.target systemd-update-done.service +ConditionNeedsUpdate=/etc + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/setup-vlan4004.sh + +[Install] +WantedBy=sysinit.target diff --git a/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/setup-vlan4004.sh b/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/setup-vlan4004.sh new file mode 100755 index 000000000..1278769d1 --- /dev/null +++ b/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004/setup-vlan4004.sh @@ -0,0 +1,8 @@ +#!/bin/sh -eu + +VLAN='VLAN=eth0.4004' +ETH0_CFG='/etc/systemd/network/00-bmc-eth0.network' + +if ( ! grep -q "${VLAN}" ${ETH0_CFG} ); then + sed -i "/^\[Network\]$/a ${VLAN}" ${ETH0_CFG} +fi diff --git a/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004_1.0.bb b/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004_1.0.bb new file mode 100644 index 000000000..c7dcb3beb --- /dev/null +++ b/meta-yadro/meta-nicole/recipes-phosphor/network/vlan-4004_1.0.bb @@ -0,0 +1,40 @@ +SUMMARY = "Tatlin network configuration" +DESCRIPTION = "This is default network configuration for the Tatlin's node." +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +PR = "r1" + +inherit allarch +inherit systemd + +RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_base-utils}" +SYSTEMD_SERVICE_${PN} = "setup-vlan4004.service" + +S = "${WORKDIR}" +SRC_URI = " \ + file://00-bmc-eth0.4004.0.network \ + file://00-bmc-eth0.4004.1.network \ + file://00-bmc-eth0.network \ + file://eth0.4004.netdev \ + file://setup-vlan4004.service \ + file://setup-vlan4004.sh \ +" + +do_install() { + mkdir -p ${D}${sysconfdir}/systemd/network + install -m 0644 eth0.4004.netdev 00-bmc-eth0.network \ + 00-bmc-eth0.4004.0.network 00-bmc-eth0.4004.1.network \ + ${D}${sysconfdir}/systemd/network/ + mkdir -p ${D}${bindir} ${D}${systemd_system_unitdir} + install setup-vlan4004.sh ${D}${bindir}/ + install -m 0644 setup-vlan4004.service ${D}${systemd_system_unitdir}/ +} + +FILES_${PN} = " \ + ${sysconfdir}/systemd/network/00-bmc-eth0.4004.0.network \ + ${sysconfdir}/systemd/network/00-bmc-eth0.4004.1.network \ + ${sysconfdir}/systemd/network/00-bmc-eth0.network \ + ${sysconfdir}/systemd/network/eth0.4004.netdev \ + ${bindir}/setup-vlan4004.sh \ +" -- cgit v1.2.3