Skip to content

hyp-nw-mgr: Add support for hypervisor nw config #186

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: 1120
Choose a base branch
from

Conversation

asmithakarun
Copy link

@asmithakarun asmithakarun commented Apr 8, 2025

  • ibm/hyp-nw-mgr: Add ip objects for ethernet intf

In this commit, ip address dbus objects are created under the hypervisor network service.

busctl tree xyz.openbmc_project.Network.Hypervisor └─/xyz
└─/xyz/openbmc_project
└─/xyz/openbmc_project/network
└─/xyz/openbmc_project/network/hypervisor
├─/xyz/openbmc_project/network/hypervisor/config
├─/xyz/openbmc_project/network/hypervisor/eth0
│ └─/xyz/openbmc_project/network/hypervisor/eth0/ipv4
│ └─/xyz/openbmc_project/network/hypervisor/eth0/ipv4/addr0
└─/xyz/openbmc_project/network/hypervisor/eth1
└─/xyz/openbmc_project/network/hypervisor/eth1/ipv4
└─/xyz/openbmc_project/network/hypervisor/eth1/ipv4/addr0

The values for the properties of IP interfaces will be initialized by parsing the bios table.

  • ibm/hyp-nw-mgr: IP create, delete & sync with bios

This commit adds:

  1. support for creation and deletion of an ip address object
  2. update the bios table as and when there is a change in the dbus object
  • ibm/hyp-nw-mgr: Sync BIOStable with hypervisor app

This change would listen on the properties changed signal on BaseBIOSTable property of bios config manager. Whenever there is a signal, the change would be updated on the corresponding ethernet and ip address dbus objects.

  • ibm/hyp-nw-mgr: Persist Enabled property on reboot

The "Enabled" property of xyz.openbmc_project.Object.Enable interface of the ip address object
(eg: /xyz/openbmc_project/network/hypervisor/eth<0/1>/ipv4/addr0) will be set by pldm once the host consumes the ip address set by the user. When the system reboots, this value is not persisted and is defaulted to false.
Pldm will not be updating this value on reboot, it only sets it when phyp sends the sensor event when the ip is consumed and pldm receives this and sets the "Enabled" property.

  • ibm/hyp-nw-mgr: Add ipv6 support in hypervisor app

Currently, there is no support for ipv6 in the hypervisor application.
This commit adds ipv6 support, and the changes mainly includes creation of ipv4 & ipv6 dbus objects when the application starts; adding support in watch method where ipv6 property changes are also monitored; setting default values for ipv6 properties in the bios.

  • ibm/hyp-nw-mgr: Add Hypervisor IPv6 SLAAC support

This commit adds "StatelessAddressAutoConfig" support in the hypervisor app. Earlier there were only 4 values - none, both, v4, v6. Now with the latest dbus interfaces change, there are 2 more values introduced - v6Stateless, v4v6Stateless.

v4v6stateless: Enable IPv4 DHCP and IPv6 SLAAC
v6stateless: Enable IPv6 SLAAC

  • ibm/hyp-nw-mgr: Add dependency on pldm service

The hypervisor app depends on the bios service currently, that comes up with the bios table. But it is pldm that populates the bios table values.

There are cases, where hypervisor app comes up first before pldm populates the bios table, causing the app to have default values (0.0.0.0 ip) in the dbus even when hypervisor network ip has been configured.

This commit adds a dependency on pldm service for the hypervisor app to start.

bmcweb commit: ibm-openbmc/bmcweb#1232

Tested By:

busctl tree xyz.openbmc_project.Network.Hypervisor

  • configure static ip and the same has been updated on the biostable

'''
PATCH -D patch.txt -d '{"IPv4StaticAddresses":[{"Address": "10.6.6.2", "SubnetMask": "255.255.252.0","Gateway":"10.6.6.1"}]}' https://${bmc}/redfish/v1/Systems/hypervisor/EthernetInterfaces/eth0 '''

  • update ip properties on the bios table and the same has reflected on the dbus object
  • enable dhcp, bios table will be updated with the dhcp server sent ip and the same reflects on the dbus object
  • Checked both reboot and code update scenarios

* ibm/hyp-nw-mgr: Add ip objects for ethernet intf

In this commit, ip address dbus objects are created
under the hypervisor network service.

busctl tree xyz.openbmc_project.Network.Hypervisor
└─/xyz
  └─/xyz/openbmc_project
    └─/xyz/openbmc_project/network
      └─/xyz/openbmc_project/network/hypervisor
        ├─/xyz/openbmc_project/network/hypervisor/config
        ├─/xyz/openbmc_project/network/hypervisor/eth0
        │ └─/xyz/openbmc_project/network/hypervisor/eth0/ipv4
        │   └─/xyz/openbmc_project/network/hypervisor/eth0/ipv4/addr0
        └─/xyz/openbmc_project/network/hypervisor/eth1
          └─/xyz/openbmc_project/network/hypervisor/eth1/ipv4
            └─/xyz/openbmc_project/network/hypervisor/eth1/ipv4/addr0

The values for the properties of IP interfaces will be initialized
by parsing the bios table.

* ibm/hyp-nw-mgr: IP create, delete & sync with bios

This commit adds:
1. support for creation and deletion of an ip address object
2. update the bios table as and when there is a change in the
dbus object

* ibm/hyp-nw-mgr: Sync BIOStable with hypervisor app

This change would listen on the properties changed signal on
BaseBIOSTable property of bios config manager. Whenever there
is a signal, the change would be updated on the corresponding
ethernet and ip address dbus objects.

* ibm/hyp-nw-mgr: Persist Enabled property on reboot

The "Enabled" property of xyz.openbmc_project.Object.Enable
interface of the ip address object
(eg: /xyz/openbmc_project/network/hypervisor/eth<0/1>/ipv4/addr0)
will be set by pldm once the host consumes the ip address set by
the user. When the system reboots, this value is not persisted
and is defaulted to false.
Pldm will not be updating this value on reboot, it only sets it
when phyp sends the sensor event when the ip is consumed and
pldm receives this and sets the "Enabled" property.

* ibm/hyp-nw-mgr: Add ipv6 support in hypervisor app

Currently, there is no support for ipv6 in the hypervisor
application.
This commit adds ipv6 support, and the changes mainly includes
creation of ipv4 & ipv6 dbus objects when the application starts;
adding support in watch method where ipv6 property changes are
also monitored; setting default values for ipv6 properties in
the bios.

* ibm/hyp-nw-mgr: Add Hypervisor IPv6 SLAAC support

This commit adds "StatelessAddressAutoConfig" support in
the hypervisor app. Earlier there were only 4 values - none,
both, v4, v6. Now with the latest dbus interfaces change, there
are 2 more values introduced - v6Stateless, v4v6Stateless.

v4v6stateless: Enable IPv4 DHCP and IPv6 SLAAC
v6stateless: Enable IPv6 SLAAC

* ibm/hyp-nw-mgr: Add dependency on pldm service

The hypervisor app depends on the bios service currently,
that comes up with the bios table. But it is pldm that
populates the bios table values.

There are cases, where hypervisor app comes up first before
pldm populates the bios table, causing the app to have default values
(0.0.0.0 ip) in the dbus even when hypervisor network ip has been
configured.

This commit adds a dependency on pldm service for the
hypervisor app to start.

Tested By:

busctl tree xyz.openbmc_project.Network.Hypervisor

* configure static ip and the same has been updated on the biostable

'''
PATCH -D patch.txt -d '{"IPv4StaticAddresses":[{"Address": "10.6.6.2", "SubnetMask": "255.255.252.0","Gateway":"10.6.6.1"}]}' https://${bmc}/redfish/v1/Systems/hypervisor/EthernetInterfaces/eth0
'''

* update ip properties on the bios table and the same has reflected on
  the dbus object
* enable dhcp, bios table will be updated with the dhcp server sent ip
  and the same reflects on the dbus object
* Checked both reboot and code update scenarios

Signed-off-by: Asmitha Karunanithi <[email protected]>
@asmithakarun asmithakarun force-pushed the hypervisor_1120_rebase branch from a7ad2d0 to 9226adc Compare April 24, 2025 07:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant