Add SSIF in service config manager

Why we want to control ssifbridge:
It is a requirement to allow user enabling/disabling.
To enhance security, SSIF should be disabled before entering the OS
environment. This can be easily achieved through service configuration.

Add SSIF to map table and set it as false.
true → This service is started through a systemd socket.
false → This service is a regular systemd service.

Verification:
Validated SSIF device presence and ssifbridge DBus service behavior
under both enabled and disabled configurations using QEMU-based
evb-ast2600 simulation.

Test Steps:
[Case 1] No SSIF device present:
- Boot QEMU without SSIF
- Verified that /dev/ipmi-ssif-host does NOT exist
- Confirmed ssifbridge is NOT registered under
/xyz/openbmc_project/control/service

[Case 2] SSIF device present:
- Boot QEMU with SSIF enabled
- Verified that /dev/ipmi-ssif-host exists
- Confirmed ssifbridge registered under
/xyz/openbmc_project/control/service
- Validated ssifbridge properties: Enabled=true, Running=true

[Case 3] Disable ssifbridge service:
- Set Enabled=false and Running=false via busctl
- Verified systemctl shows ssifbridge.service is inactive (dead)

[Case 4] Re-enable ssifbridge service:
- Set Enabled=true and Running=true via busctl
- Verified systemctl shows ssifbridge.service is active and running

Result:
PASS: All expected behaviors observed in each case
PASS: DBus properties reflect correct service state
PASS: systemd service state matches DBus setting

Tested on:
- evb-ast2600 QEMU environment (with/without SSIF)

Change-Id: I7e6f642403721a020cdd33940b2d05d33a026175
Signed-off-by: Leon Huang <leonhuang@nvidia.com>
1 file changed
tree: 0d235c1ba662b63b2a42b61fa96ac8e7c4f3f844
  1. inc/
  2. src/
  3. subprojects/
  4. .clang-format
  5. .gitignore
  6. LICENSE
  7. meson.build
  8. meson.options
  9. OWNERS
  10. README.md
  11. srvcfg-manager.service
README.md

Service config manager

The service config manager provides a D-Bus interface to manage BMC services as described by the service management D-Bus interfaces.

The configuration settings are intended to persist across BMC reboots.

An example use case for this service is BMCWeb's implementation of the Redfish NetworkProtocol schema.

Design

Implementation details are described in the D-Bus interface README.

The service config manager generally makes configuration changes to systemd units via D-Bus interfaces.

The design pattern to add new services or controls is:

  • Determine if the service you want to control is socket activated.
  • To control the Running and Enabled properties of a service:
    • For a service which uses socket activation, control the socket.
    • For other services, control the service unit itself.