summaryrefslogtreecommitdiff
path: root/meta-google/recipes-google/networking/gbmc-mac-config.bb
diff options
context:
space:
mode:
Diffstat (limited to 'meta-google/recipes-google/networking/gbmc-mac-config.bb')
-rw-r--r--meta-google/recipes-google/networking/gbmc-mac-config.bb50
1 files changed, 50 insertions, 0 deletions
diff --git a/meta-google/recipes-google/networking/gbmc-mac-config.bb b/meta-google/recipes-google/networking/gbmc-mac-config.bb
new file mode 100644
index 000000000..6ca4c798b
--- /dev/null
+++ b/meta-google/recipes-google/networking/gbmc-mac-config.bb
@@ -0,0 +1,50 @@
+SUMMARY = "Configures MAC addresses on 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://gbmc-mac-config.service \
+ file://gbmc-mac-config.sh.in \
+ "
+
+S = "${WORKDIR}"
+
+RDEPENDS_${PN} += " \
+ bash \
+ ipmi-fru-sh \
+ "
+
+FILES_${PN} += "${systemd_unitdir}"
+
+SYSTEMD_SERVICE_${PN} += "gbmc-mac-config.service"
+
+GBMC_MAC_EEPROM_OF_NAME ?= ""
+
+# Maps the MAC address offset from the base address to an interface name
+# in bash associative array syntax.
+# Ex. "[0]=eth0 [2]=eth2"
+GBMC_MAC_IF_MAP ?= ""
+
+do_install_append() {
+ if [ -z '${GBMC_MAC_EEPROM_OF_NAME}' ]; then
+ echo 'Missing GBMC_MAC_EEPROM_OF_NAME' >&2
+ exit 1
+ fi
+
+ # Build time dictionary sanity check
+ bash -c 'declare -A dict=(${GBMC_MAC_IF_MAP})'
+
+ sed gbmc-mac-config.sh.in \
+ -e 's#@EEPROM@#${GBMC_MAC_EEPROM_OF_NAME}#' \
+ -e 's#@NUM_TO_IF@#${GBMC_MAC_IF_MAP}#' \
+ >gbmc-mac-config.sh
+
+ install -d -m0755 ${D}${libexecdir}
+ install -m0755 gbmc-mac-config.sh ${D}${libexecdir}/
+
+ install -d -m0755 ${D}${systemd_system_unitdir}
+ install -m0644 gbmc-mac-config.service ${D}${systemd_system_unitdir}/
+}