blob: cb547b1be84078bf83c49f62e7b72c5bf252f3b5 [file] [log] [blame]
William A. Kennington IIIf19a8382021-02-16 14:16:47 -08001SUMMARY = "Configures ncsi for a gBMC system"
2PR = "r1"
3LICENSE = "Apache-2.0"
4LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
5
6inherit systemd
7
William A. Kennington IIId8122302023-10-16 18:25:18 -07008GBMC_NCSI_IF_OLD ??= ""
9
William A. Kennington III7f11d1f2021-02-16 14:57:41 -080010SRC_URI += " \
William A. Kennington III96745092021-08-06 00:06:42 -070011 file://-bmc-gbmcbrncsidhcp.netdev \
12 file://-bmc-gbmcbrncsidhcp.network \
13 file://-bmc-gbmcncsidhcp.netdev \
14 file://-bmc-gbmcncsidhcp.network \
William A. Kennington III7f11d1f2021-02-16 14:57:41 -080015 file://50-gbmc-ncsi.rules.in \
William A. Kennington III96745092021-08-06 00:06:42 -070016 file://gbmc-ncsi-dhcrelay.service.in \
William A. Kennington IIIc7454fb2021-09-14 16:01:37 -070017 file://gbmc-ncsi-ip-from-ra.service.in \
18 file://gbmc-ncsi-ip-from-ra.sh.in \
William A. Kennington III71fc1892021-12-13 14:32:20 -080019 file://gbmc-ncsi-smartnic-wa.sh.in \
William A. Kennington III7f11d1f2021-02-16 14:57:41 -080020 file://gbmc-ncsi-sslh.socket.in \
21 file://gbmc-ncsi-sslh.service \
William A. Kennington III1ef795b2021-03-10 18:59:12 -080022 file://gbmc-ncsi-nft.sh.in \
William A. Kennington IIIe99168a2021-03-10 23:40:47 -080023 file://gbmc-ncsi-br-pub-addr.sh.in \
William A. Kennington III21e7e452021-11-05 01:31:59 -070024 file://gbmc-ncsi-br-deprecated-ips.sh.in \
Vivekanand Veeracholane3f33702021-06-16 15:29:15 -070025 file://gbmc-ncsi-set-nicenabled.service.in \
William A. Kennington III9f57cee2022-11-03 14:17:35 -070026 file://gbmc-ncsi-alias.service.in \
William A. Kennington III37e6f392022-05-16 16:19:11 -070027 file://50-gbmc-ncsi-clear-ip.sh.in \
William A. Kennington IIId8122302023-10-16 18:25:18 -070028 file://gbmc-ncsi-old.service.in \
William A. Kennington III7f11d1f2021-02-16 14:57:41 -080029 "
William A. Kennington IIIf19a8382021-02-16 14:16:47 -080030
31S = "${WORKDIR}"
32
Willy Tu4dd03ca2021-08-06 09:37:35 -070033RDEPENDS:${PN} += " \
William A. Kennington IIIb03ef8c2021-10-01 01:16:24 -070034 bash \
William A. Kennington III96745092021-08-06 00:06:42 -070035 dhcp-relay \
William A. Kennington III1ef795b2021-03-10 18:59:12 -080036 gbmc-ip-monitor \
William A. Kennington III7f11d1f2021-02-16 14:57:41 -080037 ncsid \
William A. Kennington III5aa84b52021-11-15 15:20:13 -080038 network-sh \
William A. Kennington III7f11d1f2021-02-16 14:57:41 -080039 nftables-systemd \
40 sslh \
William A. Kennington III5aa84b52021-11-15 15:20:13 -080041 ndisc6-rdisc6 \
William A. Kennington III7f11d1f2021-02-16 14:57:41 -080042 "
William A. Kennington IIIf19a8382021-02-16 14:16:47 -080043
Willy Tu4dd03ca2021-08-06 09:37:35 -070044FILES:${PN} += " \
William A. Kennington III37e6f392022-05-16 16:19:11 -070045 ${datadir}/gbmc-br-lib \
William A. Kennington III1ef795b2021-03-10 18:59:12 -080046 ${datadir}/gbmc-ip-monitor \
47 ${systemd_unitdir} \
48 "
William A. Kennington IIIf19a8382021-02-16 14:16:47 -080049
Willy Tu4dd03ca2021-08-06 09:37:35 -070050SYSTEMD_SERVICE:${PN} += " \
William A. Kennington III96745092021-08-06 00:06:42 -070051 gbmc-ncsi-dhcrelay.service \
William A. Kennington III7f11d1f2021-02-16 14:57:41 -080052 gbmc-ncsi-sslh.service \
53 gbmc-ncsi-sslh.socket \
Vivekanand Veeracholane3f33702021-06-16 15:29:15 -070054 gbmc-ncsi-set-nicenabled.service \
William A. Kennington IIIc7454fb2021-09-14 16:01:37 -070055 gbmc-ncsi-ip-from-ra.service \
William A. Kennington IIId8122302023-10-16 18:25:18 -070056 ${@'' if d.getVar('GBMC_NCSI_IF_OLD') == '' else 'gbmc-ncsi-old.service'} \
William A. Kennington III7f11d1f2021-02-16 14:57:41 -080057 "
58
Willy Tu4dd03ca2021-08-06 09:37:35 -070059do_install:append() {
William A. Kennington IIIf19a8382021-02-16 14:16:47 -080060 if_name='${GBMC_NCSI_IF_NAME}'
William A. Kennington IIIf19a8382021-02-16 14:16:47 -080061 if [ -z "$if_name" ]; then
62 echo "Missing if_name" >&2
63 exit 1
64 fi
65
66 install -d -m0755 ${D}${sysconfdir}/sysctl.d
67 echo "net.ipv6.conf.$if_name.accept_dad=0" \
68 >>${D}${sysconfdir}/sysctl.d/25-gbmc-ncsi.conf
69 echo "net.ipv6.conf.$if_name.dad_transmits=0" \
70 >>${D}${sysconfdir}/sysctl.d/25-gbmc-ncsi.conf
71
William A. Kennington III96745092021-08-06 00:06:42 -070072 install -d -m0755 ${D}${systemd_unitdir}/network
73 install -m0644 ${WORKDIR}/-bmc-gbmcbrncsidhcp.netdev \
74 ${D}${systemd_unitdir}/network/
75 install -m0644 ${WORKDIR}/-bmc-gbmcbrncsidhcp.network \
76 ${D}${systemd_unitdir}/network/
77 install -m0644 ${WORKDIR}/-bmc-gbmcncsidhcp.netdev \
78 ${D}${systemd_unitdir}/network/
79 install -m0644 ${WORKDIR}/-bmc-gbmcncsidhcp.network \
80 ${D}${systemd_unitdir}/network/
81
William A. Kennington IIIf19a8382021-02-16 14:16:47 -080082 netdir=${D}${systemd_unitdir}/network/00-bmc-$if_name.network.d
83 install -d -m0755 "$netdir"
84 echo '[Network]' >>"$netdir"/gbmc-ncsi.conf
85 echo 'DHCP=false' >>"$netdir"/gbmc-ncsi.conf
86 echo 'IPv6AcceptRA=false' >>"$netdir"/gbmc-ncsi.conf
87 echo 'LLMNR=false' >>"$netdir"/gbmc-ncsi.conf
88 echo 'MulticastDNS=false' >>"$netdir"/gbmc-ncsi.conf
89 echo 'LinkLocalAddressing=ipv6' >>"$netdir"/gbmc-ncsi.conf
90
91 nftdir=${D}${sysconfdir}/nftables
92 install -d -m0755 "$nftdir"
William A. Kennington III1ef795b2021-03-10 18:59:12 -080093 sed "s,@NCSI_IF@,$if_name,g" ${WORKDIR}/50-gbmc-ncsi.rules.in \
William A. Kennington IIIf19a8382021-02-16 14:16:47 -080094 >"$nftdir"/50-gbmc-ncsi.rules
95
96 wantdir=${D}${systemd_system_unitdir}/multi-user.target.wants
97 install -d -m0755 "$wantdir"
98 ln -sv ../ncsid@.service "$wantdir"/ncsid@$if_name.service
William A. Kennington III7f11d1f2021-02-16 14:57:41 -080099
William A. Kennington III9f57cee2022-11-03 14:17:35 -0700100 sed "s,@NCSI_IF@,$if_name,g" ${WORKDIR}/gbmc-ncsi-alias.service.in \
101 >${D}${systemd_system_unitdir}/gbmc-ncsi-alias.service
102 install -d -m0755 "${D}${systemd_system_unitdir}/nic-hostless@$if_name.target.wants"
103 ln -sv ../gbmc-ncsi-alias.service "${D}${systemd_system_unitdir}/nic-hostless@$if_name.target.wants"/
104 install -d -m0755 "${D}${systemd_system_unitdir}/nic-hostful@$if_name.target.wants"
105 ln -sv ../gbmc-ncsi-alias.service "${D}${systemd_system_unitdir}/nic-hostful@$if_name.target.wants"/
106
William A. Kennington III7f11d1f2021-02-16 14:57:41 -0800107 install -m 0644 ${WORKDIR}/gbmc-ncsi-sslh.service ${D}${systemd_system_unitdir}
William A. Kennington III1ef795b2021-03-10 18:59:12 -0800108 sed "s,@NCSI_IF@,$if_name,g" ${WORKDIR}/gbmc-ncsi-sslh.socket.in \
William A. Kennington III7f11d1f2021-02-16 14:57:41 -0800109 >${D}${systemd_system_unitdir}/gbmc-ncsi-sslh.socket
William A. Kennington III1ef795b2021-03-10 18:59:12 -0800110
111 mondir=${D}${datadir}/gbmc-ip-monitor/
112 install -d -m0755 $mondir
113 sed "s,@NCSI_IF@,$if_name,g" ${WORKDIR}/gbmc-ncsi-nft.sh.in \
114 >${WORKDIR}/gbmc-ncsi-nft.sh
115 install -m644 ${WORKDIR}/gbmc-ncsi-nft.sh $mondir
William A. Kennington IIIe99168a2021-03-10 23:40:47 -0800116 sed "s,@NCSI_IF@,$if_name,g" ${WORKDIR}/gbmc-ncsi-br-pub-addr.sh.in \
117 >${WORKDIR}/gbmc-ncsi-br-pub-addr.sh
118 install -m644 ${WORKDIR}/gbmc-ncsi-br-pub-addr.sh $mondir
William A. Kennington III21e7e452021-11-05 01:31:59 -0700119 sed "s,@NCSI_IF@,$if_name,g" ${WORKDIR}/gbmc-ncsi-br-deprecated-ips.sh.in \
120 >${WORKDIR}/gbmc-ncsi-br-deprecated-ips.sh
121 install -m644 ${WORKDIR}/gbmc-ncsi-br-deprecated-ips.sh $mondir
Vivekanand Veeracholane3f33702021-06-16 15:29:15 -0700122
William A. Kennington III37e6f392022-05-16 16:19:11 -0700123 brlibdir=${D}${datadir}/gbmc-br-lib/
124 install -d -m0755 $brlibdir
125 sed "s,@NCSI_IF@,$if_name,g" ${WORKDIR}/50-gbmc-ncsi-clear-ip.sh.in \
126 >${WORKDIR}/50-gbmc-ncsi-clear-ip.sh
127 install -m644 ${WORKDIR}/50-gbmc-ncsi-clear-ip.sh $brlibdir
William A. Kennington IIIb174c182021-11-03 14:54:51 -0700128
Vivekanand Veeracholane3f33702021-06-16 15:29:15 -0700129 sed "s,@NCSI_IF@,$if_name,g" ${WORKDIR}/gbmc-ncsi-set-nicenabled.service.in \
130 >${D}${systemd_system_unitdir}/gbmc-ncsi-set-nicenabled.service
William A. Kennington III96745092021-08-06 00:06:42 -0700131
132 sed "s,@NCSI_IF@,$if_name,g" ${WORKDIR}/gbmc-ncsi-dhcrelay.service.in \
133 >${D}${systemd_system_unitdir}/gbmc-ncsi-dhcrelay.service
William A. Kennington IIIc7454fb2021-09-14 16:01:37 -0700134
William A. Kennington IIId8122302023-10-16 18:25:18 -0700135 if [ -n "${GBMC_NCSI_IF_OLD}" ]; then
136 sed -e "s,@NCSI_IF@,$if_name,g" -e "s,@OLD_IF@,${GBMC_NCSI_IF_OLD},g" ${WORKDIR}/gbmc-ncsi-old.service.in \
137 >${D}${systemd_system_unitdir}/gbmc-ncsi-old.service
138 fi
139
William A. Kennington IIIc7454fb2021-09-14 16:01:37 -0700140 sed "s,@NCSI_IF@,$if_name,g" ${WORKDIR}/gbmc-ncsi-ip-from-ra.service.in \
141 >${WORKDIR}/gbmc-ncsi-ip-from-ra.service
142 install -m0644 ${WORKDIR}/gbmc-ncsi-ip-from-ra.service ${D}${systemd_system_unitdir}
143 sed "s,@NCSI_IF@,$if_name,g" ${WORKDIR}/gbmc-ncsi-ip-from-ra.sh.in \
144 >${WORKDIR}/gbmc-ncsi-ip-from-ra.sh
145 install -d -m0755 ${D}${libexecdir}
146 install -m0755 ${WORKDIR}/gbmc-ncsi-ip-from-ra.sh ${D}${libexecdir}/
William A. Kennington III71fc1892021-12-13 14:32:20 -0800147
148 sed "s,@NCSI_IF@,$if_name,g" ${WORKDIR}/gbmc-ncsi-smartnic-wa.sh.in \
149 >${WORKDIR}/gbmc-ncsi-smartnic-wa.sh
150 install -d -m0755 ${D}${bindir}
151 install -m0755 ${WORKDIR}/gbmc-ncsi-smartnic-wa.sh ${D}${bindir}/
William A. Kennington III96745092021-08-06 00:06:42 -0700152}
153
154do_rm_work:prepend() {
155 # HACK: Work around broken do_rm_work not properly calling rm with `--`
156 # It doesn't like filenames that start with `-`
157 rm -rf -- ${WORKDIR}/-*
William A. Kennington IIIf19a8382021-02-16 14:16:47 -0800158}