meta-google: Netboot: Provide command to trigger dhcp

Installer needs to trigger dhcp process when
netboot starts. Currently it just powercycles
the machine, which is not efficient.
This provides a script that installer can
invoke without powercycle machine.

Tested: tested manually on the machine and
verified that dhcp has started.

Change-Id: I6e596e3695f88543ad864eb431587a5f974f81b4
Signed-off-by: Yuxiao Zhang <yuxiaozhang@google.com>
diff --git a/meta-google/recipes-google/networking/gbmc-bridge.bb b/meta-google/recipes-google/networking/gbmc-bridge.bb
index 3f2857b..494fbef 100644
--- a/meta-google/recipes-google/networking/gbmc-bridge.bb
+++ b/meta-google/recipes-google/networking/gbmc-bridge.bb
@@ -27,6 +27,7 @@
   file://gbmc-br-dhcp-term.service \
   file://gbmc-br-lib.sh \
   file://gbmc-br-load-ip.service \
+  file://gbmc-start-dhcp.sh \
   "
 
 FILES:${PN}:append = " \
@@ -120,6 +121,9 @@
   install -m0644 ${WORKDIR}/50-gbmc-psu-hardreset.sh ${D}${datadir}/gbmc-br-dhcp/
 
   install -m0644 ${WORKDIR}/gbmc-br-lib.sh ${D}${datadir}/
+
+  install -d ${D}/${bindir}
+  install -m0755 ${WORKDIR}/gbmc-start-dhcp.sh ${D}${bindir}/
 }
 
 do_rm_work:prepend() {
diff --git a/meta-google/recipes-google/networking/gbmc-bridge/gbmc-start-dhcp.sh b/meta-google/recipes-google/networking/gbmc-bridge/gbmc-start-dhcp.sh
new file mode 100644
index 0000000..d90b724
--- /dev/null
+++ b/meta-google/recipes-google/networking/gbmc-bridge/gbmc-start-dhcp.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# stop dhcp term service to prevent race condition
+systemctl is-active --quiet gbmc-br-dhcp-term && systemctl stop gbmc-br-dhcp-term
+
+# start the dhcp service
+systemctl start gbmc-br-dhcp