meta-gbmc-staging: Add a udev rule for gbmcbr

This is a short-term solution to fix the issue where the virtual
device gbmcbr cannot meet the service requirement of
phosphor-ipmi-net@gbmcbr.socket when the system reaches
socket.target.
Add a udev rule for gbmcbr to start phosphor-ipmi-net@gbmcbr.socket
and phosphor-ipmi-net@gbmcbr.service.

Tested:
BMC side:
root@gsp:~# systemctl status phosphor-ipmi-net@*
● phosphor-ipmi-net@gbmcbr.socket
     Loaded: loaded (/usr/lib/systemd/system/phosphor-ipmi-net@.socket; disabled; preset: disabled)
     Active: active (running) since Wed 2023-09-20 04:24:48 PDT; 4min 33s ago
   Triggers: ● phosphor-ipmi-net@gbmcbr.service
     Listen: [::]:623 (Datagram)
     CGroup: /system.slice/system-phosphor\x2dipmi\x2dnet.slice/phosphor-ipmi-net@gbmcbr.socket

Sep 20 04:24:48 gsp systemd[1]: Listening on phosphor-ipmi-net@gbmcbr.socket.

● phosphor-ipmi-net@gbmcbr.service - Network IPMI daemon
     Loaded: loaded (/usr/lib/systemd/system/phosphor-ipmi-net@.service; disabled; preset: disabled)
     Active: active (running) since Wed 2023-09-20 04:24:48 PDT; 4min 33s ago
TriggeredBy: ● phosphor-ipmi-net@gbmcbr.socket
   Main PID: 1579 (netipmid)
      Tasks: 1 (limit: 836)
     Memory: 1.9M
        CPU: 216ms
     CGroup: /system.slice/system-phosphor\x2dipmi\x2dnet.slice/phosphor-ipmi-net@gbmcbr.service
             mq1579 /usr/bin/netipmid -c gbmcbr

Sep 20 04:24:48 gsp systemd[1]: Started Network IPMI daemon.
Sep 20 04:24:48 gsp netipmid[1579]: Bind to interface: gbmcbr
root@gsp:~# ps | grep ipmi
  949 root     27088 S    ipmid
 1526 root      8376 S    /usr/libexec/kcsbridged -c ipmi-kcs1
 1579 root     18200 S    /usr/bin/netipmid -c gbmcbr
 2093 root      3388 S    grep ipmi

Host site:

localhost:~# ipmitool -H fe80::a0d5:9dff:fe6c:6f07%gbmcbr -I lanplus -U root -P 0penBmc mc info
Device ID                 : 32
Device Revision           : 1
Firmware Revision         : 10.05
IPMI Version              : 2.0
Manufacturer ID           : 11129
Manufacturer Name         : Google
Product ID                : 14426 (0x385a)
Product Name              : Unknown (0x385A)
Device Available          : yes
Provides Device SDRs      : yes
Additional Device Support :
    Sensor Device
    SEL Device
    FRU Inventory Device
    Chassis Device
Aux Firmware Rev Info     :
    0x16
    0x00
    0x00
    0x00

Google-Bug-Id: 327688645
Fusion-Link:fusion2/8b1f3b24-6f42-3a80-8b1d-a70f6d028ef7
Change-Id: I4cb74b9113ba42fd70dbb9c7f6423f9abbb24cfd
Signed-off-by: franhsu <fran.hsu@quanta.corp-partner.google.com>
diff --git a/recipes-phosphor/ipmi/phosphor-ipmi-net/99-gbmcbr-interface.rules b/recipes-phosphor/ipmi/phosphor-ipmi-net/99-gbmcbr-interface.rules
new file mode 100644
index 0000000..aff2e1c
--- /dev/null
+++ b/recipes-phosphor/ipmi/phosphor-ipmi-net/99-gbmcbr-interface.rules
@@ -0,0 +1 @@
+SUBSYSTEM=="net", ACTION=="add", KERNEL=="gbmcbr", TAG+="systemd", ENV{SYSTEMD_WANTS}="phosphor-ipmi-net@gbmcbr.socket phosphor-ipmi-net@gbmcbr.service"
diff --git a/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend b/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend
index 4407615..19a49d7 100644
--- a/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend
+++ b/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend
@@ -4,4 +4,12 @@
 
 SRC_URI += " \
   file://0001-Revert-Remove-HMAC-SHA1-from-Authentication-Integrit.patch \
+  file://99-gbmcbr-interface.rules \
 "
+# Set the RMCPP_IFACE to empty string to disable the default phosphor-ipmi-net@.service/.socket
+RMCPP_IFACE = ""
+
+do_install:append:gbmc() {
+        install -d ${D}/${libdir}/udev/rules.d
+        install -m 0644 ${WORKDIR}/99-gbmcbr-interface.rules ${D}/${libdir}/udev/rules.d
+}