summaryrefslogtreecommitdiff
path: root/meta-google/recipes-google/ncsi/gbmc-ncsi-config.bb
diff options
context:
space:
mode:
Diffstat (limited to 'meta-google/recipes-google/ncsi/gbmc-ncsi-config.bb')
-rw-r--r--meta-google/recipes-google/ncsi/gbmc-ncsi-config.bb63
1 files changed, 63 insertions, 0 deletions
diff --git a/meta-google/recipes-google/ncsi/gbmc-ncsi-config.bb b/meta-google/recipes-google/ncsi/gbmc-ncsi-config.bb
new file mode 100644
index 000000000..ecdda2cb6
--- /dev/null
+++ b/meta-google/recipes-google/ncsi/gbmc-ncsi-config.bb
@@ -0,0 +1,63 @@
+SUMMARY = "Configures ncsi for a gBMC system"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit systemd
+
+SRC_URI += " \
+ file://50-gbmc-ncsi.rules.in \
+ file://gbmc-ncsi-sslh.socket.in \
+ file://gbmc-ncsi-sslh.service \
+ "
+
+S = "${WORKDIR}"
+
+RDEPENDS_${PN} += " \
+ ncsid \
+ nftables-systemd \
+ sslh \
+ "
+
+FILES_${PN} += "${systemd_unitdir}"
+
+SYSTEMD_SERVICE_${PN} += " \
+ gbmc-ncsi-sslh.service \
+ gbmc-ncsi-sslh.socket \
+ "
+
+do_install_append() {
+ if_name='${GBMC_NCSI_IF_NAME}'
+ if [ -z "$if_name" ]; then
+ echo "Missing if_name" >&2
+ exit 1
+ fi
+
+ install -d -m0755 ${D}${sysconfdir}/sysctl.d
+ echo "net.ipv6.conf.$if_name.accept_dad=0" \
+ >>${D}${sysconfdir}/sysctl.d/25-gbmc-ncsi.conf
+ echo "net.ipv6.conf.$if_name.dad_transmits=0" \
+ >>${D}${sysconfdir}/sysctl.d/25-gbmc-ncsi.conf
+
+ netdir=${D}${systemd_unitdir}/network/00-bmc-$if_name.network.d
+ install -d -m0755 "$netdir"
+ echo '[Network]' >>"$netdir"/gbmc-ncsi.conf
+ echo 'DHCP=false' >>"$netdir"/gbmc-ncsi.conf
+ echo 'IPv6AcceptRA=false' >>"$netdir"/gbmc-ncsi.conf
+ echo 'LLMNR=false' >>"$netdir"/gbmc-ncsi.conf
+ echo 'MulticastDNS=false' >>"$netdir"/gbmc-ncsi.conf
+ echo 'LinkLocalAddressing=ipv6' >>"$netdir"/gbmc-ncsi.conf
+
+ nftdir=${D}${sysconfdir}/nftables
+ install -d -m0755 "$nftdir"
+ sed "s,@NCSI_IF@,$if_name," ${WORKDIR}/50-gbmc-ncsi.rules.in \
+ >"$nftdir"/50-gbmc-ncsi.rules
+
+ wantdir=${D}${systemd_system_unitdir}/multi-user.target.wants
+ install -d -m0755 "$wantdir"
+ ln -sv ../ncsid@.service "$wantdir"/ncsid@$if_name.service
+
+ install -m 0644 ${WORKDIR}/gbmc-ncsi-sslh.service ${D}${systemd_system_unitdir}
+ sed "s,@NCSI_IF@,$if_name," ${WORKDIR}/gbmc-ncsi-sslh.socket.in \
+ >${D}${systemd_system_unitdir}/gbmc-ncsi-sslh.socket
+}