blob: e804e2628df8867d75667a314df8e422e2172a1b [file] [log] [blame]
William A. Kennington III031f6a62024-09-05 02:22:15 -07001SUMMARY = "Configured gBMC non-NCSI interface"
2PR = "r1"
3LICENSE = "Apache-2.0"
4LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
5
6GBMC_EXT_NICS ?= ""
7GBMC_DHCP_RELAY ??= "${@'' if int(d.getVar('FLASH_SIZE')) < 65536 else '1'}"
8
9inherit systemd
10
11SRC_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 "
24S = "${WORKDIR}"
25
26FILES:${PN} += " \
27 ${systemd_unitdir}/network \
28 ${sysconfdir}/nftables \
29 ${systemd_system_unitdir} \
30 ${datadir}/gbmc-ip-monitor \
31 "
32
33RDEPENDS:${PN}:append = " \
34 bash \
35 gbmc-ip-monitor \
36 gbmc-net-common \
37 nftables-systemd \
38 "
39
40do_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