William A. Kennington III | 031f6a6 | 2024-09-05 02:22:15 -0700 | [diff] [blame] | 1 | SUMMARY = "Configured gBMC non-NCSI interface" |
| 2 | PR = "r1" |
| 3 | LICENSE = "Apache-2.0" |
| 4 | LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" |
| 5 | |
| 6 | GBMC_EXT_NICS ?= "" |
| 7 | GBMC_DHCP_RELAY ??= "${@'' if int(d.getVar('FLASH_SIZE')) < 65536 else '1'}" |
| 8 | |
| 9 | inherit systemd |
| 10 | |
| 11 | SRC_URI += " \ |
| 12 | file://50-gbmc-nic.rules \ |
| 13 | file://50-gbmc-nic.rules.in \ |
| 14 | file://-bmc-nic.network.in \ |
| 15 | file://gbmc-nic-neigh.sh.in \ |
| 16 | file://gbmc-nic-ra.sh \ |
| 17 | file://gbmc-nic-ra@.service \ |
| 18 | ${@'' if d.getVar('GBMC_DHCP_RELAY') != '1' else 'file://-bmc-gbmcbrnicdhcp.netdev'} \ |
| 19 | ${@'' if d.getVar('GBMC_DHCP_RELAY') != '1' else 'file://-bmc-gbmcbrnicdhcp.network'} \ |
| 20 | ${@'' if d.getVar('GBMC_DHCP_RELAY') != '1' else 'file://-bmc-gbmcnicdhcp.netdev'} \ |
| 21 | ${@'' if d.getVar('GBMC_DHCP_RELAY') != '1' else 'file://-bmc-gbmcnicdhcp.network'} \ |
| 22 | ${@'' if d.getVar('GBMC_DHCP_RELAY') != '1' else 'file://gbmc-nic-dhcrelay.service.in'} \ |
| 23 | " |
| 24 | S = "${WORKDIR}" |
| 25 | |
| 26 | FILES:${PN} += " \ |
| 27 | ${systemd_unitdir}/network \ |
| 28 | ${sysconfdir}/nftables \ |
| 29 | ${systemd_system_unitdir} \ |
| 30 | ${datadir}/gbmc-ip-monitor \ |
| 31 | " |
| 32 | |
| 33 | RDEPENDS:${PN}:append = " \ |
| 34 | bash \ |
| 35 | gbmc-ip-monitor \ |
| 36 | gbmc-net-common \ |
| 37 | nftables-systemd \ |
| 38 | " |
| 39 | |
| 40 | do_install() { |
| 41 | netdir=${D}${systemd_unitdir}/network |
| 42 | install -d -m0755 $netdir |
| 43 | nftdir=${D}${sysconfdir}/nftables |
| 44 | install -d -m0755 $nftdir |
| 45 | unitdir=${D}${systemd_system_unitdir} |
| 46 | install -d -m0755 $unitdir |
| 47 | wantdir=$unitdir/multi-user.target.wants |
| 48 | install -d -m0755 $wantdir |
| 49 | |
| 50 | install -d -m0755 ${D}${libexecdir} |
| 51 | install -m0755 ${WORKDIR}/gbmc-nic-ra.sh ${D}${libexecdir}/ |
| 52 | install -m0644 ${WORKDIR}/gbmc-nic-ra@.service $unitdir/ |
| 53 | |
| 54 | mondir=${D}${datadir}/gbmc-ip-monitor |
| 55 | install -d -m0755 $mondir |
| 56 | sed 's,@IFS@,${GBMC_EXT_NICS},g' <${WORKDIR}/gbmc-nic-neigh.sh.in \ |
| 57 | >$mondir/gbmc-nic-neigh.sh |
| 58 | |
| 59 | uppers= |
| 60 | for intf in ${GBMC_EXT_NICS}; do |
| 61 | sed "s,@IF@,$intf,g" <${WORKDIR}/50-gbmc-nic.rules.in >$nftdir/50-gbmc-$intf.rules |
| 62 | sed "s,@IF@,$intf,g" <${WORKDIR}/-bmc-nic.network.in >$netdir/-bmc-$intf.network |
| 63 | uppers="$uppers -u ff02::1:2%%$intf" |
| 64 | ln -sv ../gbmc-nic-ra@.service $wantdir/gbmc-nic-ra@$intf.service |
| 65 | done |
| 66 | |
| 67 | if [ "${GBMC_DHCP_RELAY}" = 1 ]; then |
| 68 | install -m0644 ${WORKDIR}/-bmc-gbmcbrnicdhcp.network $netdir/ |
| 69 | install -m0644 ${WORKDIR}/-bmc-gbmcbrnicdhcp.netdev $netdir/ |
| 70 | install -m0644 ${WORKDIR}/-bmc-gbmcnicdhcp.network $netdir/ |
| 71 | install -m0644 ${WORKDIR}/-bmc-gbmcnicdhcp.netdev $netdir/ |
| 72 | install -m0644 ${WORKDIR}/50-gbmc-nic.rules $nftdir/ |
| 73 | |
| 74 | sed "s,@UPPERS@,$uppers,g" <${WORKDIR}/gbmc-nic-dhcrelay.service.in \ |
| 75 | >$unitdir/gbmc-nic-dhcrelay.service |
| 76 | ln -sv ../gbmc-nic-dhcrelay.service $wantdir/ |
| 77 | fi |
| 78 | } |
| 79 | |