From 18f97faa411078b95d042d207f5fff32bc8ece1d Mon Sep 17 00:00:00 2001
From: P Dheeraj Srujan Kumar
Date: Thu, 31 Mar 2022 02:50:48 +0530
Subject: Update to internal 1-0.91
Signed-off-by: P Dheeraj Srujan Kumar
---
...-allow-drive-sensors-on-bus-2-for-ast2500.patch | 28 +-
...sabling-serial-console-if-FFUJ-is-enabled.patch | 51 ++
.../u-boot/u-boot-aspeed-sdk_%.bbappend | 1 +
.../0005-Add-sample-i3c-slave-driver.patch | 150 ++++
.../recipes-kernel/linux/linux-aspeed_%.bbappend | 1 +
.../0001-ADCSensor-Fix-for-P3V3-sensor.patch | 59 ++
.../sensors/dbus-sensors_%.bbappend | 3 +
.../at-scale-debug/at-scale-debug_git.bb | 6 +-
...rintf_s-compilation-issue-for-safec-3.5.1.patch | 35 +
.../recipes-core/interfaces/libmctp_git.bb | 2 +-
.../recipes-core/ipmi/intel-ipmi-oem_%.bbappend | 2 +-
...001-Fix-heap-buffer-overflow-in-captoinfo.patch | 47 ++
.../recipes-core/ncurses/ncurses_%.bbappend | 2 +
.../recipes-core/safec/safec_%.bbappend | 11 -
.../meta-common/recipes-core/safec/safec_3.4.bb | 15 -
.../boost-url/boost-url_%.bbappend | 4 -
.../recipes-devtools/mtd-util/mtd-util.bb | 2 +-
...er-Check-return-code-for-sd_bus_add_objec.patch | 21 +-
.../sdbusplus/sdbusplus_%.bbappend | 2 +-
.../libvncserver/libvncserver_%.bbappend | 2 +-
.../obmc-ikvm/obmc-ikvm_%.bbappend | 2 +-
.../host-misc-comm-manager_git.bb | 2 +-
.../recipes-intel/hsbp/hsbp-manager_git.bb | 2 +-
.../intel-pfr/intel-pfr-signing-utility-native.bb | 4 +-
.../recipes-intel/intel-pfr/pfr-manager_%.bbappend | 2 +-
.../recipes-intel/psu-manager/psu-manager.bb | 2 +-
.../recipes-intel/smbios/smbios-mdrv1.bb | 31 -
.../smbios/smbios-mdrv1/smbios-mdrv1.service | 13 -
.../recipes-intel/smbios/smbios-mdrv2.bb | 2 +-
.../recipes-kernel/linux/linux-aspeed_%.bbappend | 6 +-
.../recipes-network/network/ncsi-monitor.bb | 2 +
.../network/ncsi-monitor/check-for-host-in-reset | 14 +-
...ing-channel-specific-privilege-to-network.patch | 36 +-
...Fix-for-updating-MAC-address-from-RedFish.patch | 109 ---
.../network/phosphor-network_%.bbappend | 3 +-
.../recipes-network/network/static-mac-addr.bb | 4 +-
.../network/static-mac-addr/mac-check | 27 +-
.../biosconfig-manager/biosconfig-manager_git.bb | 2 +-
...ty-manager-Add-support-to-update-assetTag.patch | 51 +-
.../configuration/entity-manager_%.bbappend | 2 +-
.../dbus/phosphor-dbus-interfaces_%.bbappend | 2 +-
.../fans/phosphor-pid-control_%.bbappend | 2 +-
.../host/phosphor-host-postd_git.bbappend | 2 +-
...001-Firmware-update-configuration-changes.patch | 288 ++-----
...5-Add-Model-CoreCount-to-ProcessorSummary.patch | 288 -------
.../0025-Add-Model-to-ProcessorSummary.patch | 108 +++
...elete-the-copy-constructor-on-the-Request.patch | 30 +
...27-Convert-VariantType-to-DbusVariantType.patch | 50 ++
...fix-for-broken-feature-Pending-Attributes.patch | 89 ++-
...osAttributeRegistry-node-under-Registries.patch | 76 ++
...d-unmerged-changes-for-http-retry-support.patch | 172 ++--
.../0002-EventService-https-client-support.patch | 243 +++---
.../0004-Add-Server-Sent-Events-support.patch | 14 +-
...tyle-subscription-support-to-eventservice.patch | 70 +-
.../0006-Add-EventService-SSE-filter-support.patch | 24 +-
...rvice-Log-events-for-subscription-actions.patch | 21 +-
...ks-on-Event-Subscription-input-parameters.patch | 33 +-
...cture-Redifsh-EventLog-Transmit-code-flow.patch | 18 +-
...010-Remove-Terminated-Event-Subscriptions.patch | 71 +-
...h-while-deleting-terminated-subscriptions.patch | 12 +-
...ort-for-deleting-terminated-subscriptions.patch | 45 ++
...rvice-fix-added-Context-field-to-response.patch | 33 +
.../interfaces/bmcweb/eventservice/README | 10 +-
...dd-asyncResp-support-during-handleUpgrade.patch | 2 +-
...port-for-privilege-check-in-handleUpgrade.patch | 2 +-
.../0004-Add-Privileges-to-Websockets.patch | 6 +-
...1-Add-support-for-MetricDefinition-scheme.patch | 619 --------------
...dd-support-for-POST-on-TriggersCollection.patch | 889 +++++++++++++++++++++
...1-Sync-Telmetry-service-with-EventService.patch | 284 +++++++
...t-Remove-LogService-from-TelemetryService.patch | 26 +
...2-Sync-Telmetry-service-with-EventService.patch | 295 -------
...d-bmcweb-to-use-new-telemetry-service-API.patch | 513 ++++++++----
...MetricDefinition-property-in-MetricReport.patch | 268 -------
...0005-Add-GET-method-for-TriggerCollection.patch | 313 --------
...t-Remove-LogService-from-TelemetryService.patch | 26 -
...rvice-fix-added-Context-field-to-response.patch | 29 -
...ort-for-deleting-terminated-subscriptions.patch | 46 --
.../interfaces/bmcweb/telemetry/README | 28 +-
...1-Revert-Disable-nbd-proxy-from-the-build.patch | 30 +-
...status-code-from-InsertMedia-REST-methods.patch | 24 +-
.../recipes-phosphor/interfaces/bmcweb_%.bbappend | 47 +-
.../0062-Update-IPMI-Chassis-Control-command.patch | 292 -------
.../ipmi/phosphor-ipmi-host_%.bbappend | 3 +-
.../ipmi/phosphor-ipmi-net_%.bbappend | 2 +-
.../ipmi/phosphor-node-manager-proxy_git.bb | 2 +-
.../network/phosphor-snmp_%.bbappend | 2 +-
.../recipes-phosphor/peci/peci-pcie_%.bbappend | 2 +-
.../recipes-phosphor/pmci/libmctp-intel_git.bb | 2 +-
.../recipes-phosphor/pmci/libpldm-intel_git.bb | 6 +-
.../recipes-phosphor/pmci/mctp-emulator.bb | 6 +-
.../recipes-phosphor/pmci/mctp-wrapper.bb | 6 +-
.../meta-common/recipes-phosphor/pmci/mctpd.bb | 8 +-
.../meta-common/recipes-phosphor/pmci/mctpwplus.bb | 6 +-
.../recipes-phosphor/pmci/nvmemi-daemon.bb | 4 +-
.../meta-common/recipes-phosphor/pmci/pldmd.bb | 6 +-
.../recipes-phosphor/pmci/pmci-launcher.bb | 6 +-
.../prov-mode-mgr/prov-mode-mgr_git.bb | 2 +-
.../security-manager/security-manager_git.bb | 6 +-
...eck-for-min-max-received-from-hwmon-files.patch | 8 +-
.../0002-Fix-PECI-client-creation-flow.patch | 34 +-
...-threshold-de-assert-event-when-threshold.patch | 24 +-
...004-Fan-Tach-Sensor-Threshold-Ignore-Zero.patch | 20 +-
.../dbus-sensors/0005-Fix-PECI-ioctl-number.patch | 4 +-
...sor-create-RequirediTempSensor-if-defined.patch | 22 +-
...007-Add-support-for-the-energy-hwmon-type.patch | 33 +-
.../0008-CPUSensor-additional-debug-message.patch | 12 +-
...or-Create-CPUConfig-for-each-PECI-adapter.patch | 6 +-
.../sensors/dbus-sensors_%.bbappend | 2 +-
.../recipes-phosphor/settings/settings_git.bb | 2 +-
.../special-mode-mgr/special-mode-mgr_git.bb | 4 +-
.../state/phosphor-post-code-manager_git.bbappend | 2 +-
.../recipes-phosphor/system/callback-manager.bb | 2 +-
.../telemetry/telemetry_%.bbappend | 2 +-
...suport-for-multiple-user-manager-services.patch | 48 +-
.../users/phosphor-user-manager_%.bbappend | 6 +-
.../virtual-media/virtual-media.bb | 6 +-
.../webui/phosphor-webui_%.bbappend | 2 +-
.../recipes-phosphor/webui/webui-vue_%.bbappend | 2 +-
.../CVE-2021-43618-Avoid-bit-size-overflows.patch | 25 +
.../meta-common/recipes-support/gmp/gmp_%.bbappend | 4 +
.../chassis/x86-power-control_%.bbappend | 2 +-
.../meta-wht/conf/bblayers.conf.sample | 1 -
.../meta-wolfpass/conf/bblayers.conf.sample | 1 -
123 files changed, 3117 insertions(+), 3426 deletions(-)
create mode 100644 meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0038-Disabling-serial-console-if-FFUJ-is-enabled.patch
create mode 100644 meta-openbmc-mods/meta-ast2600/recipes-kernel/linux/linux-aspeed/0005-Add-sample-i3c-slave-driver.patch
create mode 100644 meta-openbmc-mods/meta-ast2600/recipes-phosphor/sensors/dbus-sensors/0001-ADCSensor-Fix-for-P3V3-sensor.patch
create mode 100644 meta-openbmc-mods/meta-ast2600/recipes-phosphor/sensors/dbus-sensors_%.bbappend
create mode 100644 meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/files/0001-ASD-Fix-sprintf_s-compilation-issue-for-safec-3.5.1.patch
create mode 100644 meta-openbmc-mods/meta-common/recipes-core/ncurses/ncurses/0001-Fix-heap-buffer-overflow-in-captoinfo.patch
create mode 100644 meta-openbmc-mods/meta-common/recipes-core/ncurses/ncurses_%.bbappend
delete mode 100644 meta-openbmc-mods/meta-common/recipes-core/safec/safec_%.bbappend
delete mode 100644 meta-openbmc-mods/meta-common/recipes-core/safec/safec_3.4.bb
delete mode 100644 meta-openbmc-mods/meta-common/recipes-devtools/boost-url/boost-url_%.bbappend
delete mode 100644 meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv1.bb
delete mode 100644 meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv1/smbios-mdrv1.service
delete mode 100644 meta-openbmc-mods/meta-common/recipes-network/network/phosphor-network/0004-Fix-for-updating-MAC-address-from-RedFish.patch
delete mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0025-Add-Model-CoreCount-to-ProcessorSummary.patch
create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0025-Add-Model-to-ProcessorSummary.patch
create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0026-Revert-Delete-the-copy-constructor-on-the-Request.patch
create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0027-Convert-VariantType-to-DbusVariantType.patch
create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/biosconfig/0007-Add-BiosAttributeRegistry-node-under-Registries.patch
create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0012-Add-support-for-deleting-terminated-subscriptions.patch
create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0013-event-service-fix-added-Context-field-to-response.patch
delete mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0001-Add-support-for-MetricDefinition-scheme.patch
create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0001-Add-support-for-POST-on-TriggersCollection.patch
create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0001-Sync-Telmetry-service-with-EventService.patch
create mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0002-Revert-Remove-LogService-from-TelemetryService.patch
delete mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0002-Sync-Telmetry-service-with-EventService.patch
delete mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0004-Add-support-for-MetricDefinition-property-in-MetricReport.patch
delete mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0005-Add-GET-method-for-TriggerCollection.patch
delete mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0006-Revert-Remove-LogService-from-TelemetryService.patch
delete mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0007-event-service-fix-added-Context-field-to-response.patch
delete mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0009-Add-support-for-deleting-terminated-subscriptions.patch
delete mode 100644 meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0062-Update-IPMI-Chassis-Control-command.patch
create mode 100644 meta-openbmc-mods/meta-common/recipes-support/gmp/gmp/CVE-2021-43618-Avoid-bit-size-overflows.patch
create mode 100644 meta-openbmc-mods/meta-common/recipes-support/gmp/gmp_%.bbappend
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/sensors/dbus-sensors/0001-Only-allow-drive-sensors-on-bus-2-for-ast2500.patch b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/sensors/dbus-sensors/0001-Only-allow-drive-sensors-on-bus-2-for-ast2500.patch
index ea7ca092c..c28ae6126 100644
--- a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/sensors/dbus-sensors/0001-Only-allow-drive-sensors-on-bus-2-for-ast2500.patch
+++ b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/sensors/dbus-sensors/0001-Only-allow-drive-sensors-on-bus-2-for-ast2500.patch
@@ -1,7 +1,7 @@
-From d06d0a8fabd699fc1cab4fbd6e4572ce0b22a905 Mon Sep 17 00:00:00 2001
+From 8f6c6f3a23c002f5247c407205f3a62dcd0e0c8c Mon Sep 17 00:00:00 2001
From: James Feist
Date: Thu, 23 Apr 2020 14:01:38 -0700
-Subject: [PATCH 1/1] Only allow drive sensors on bus 2 for ast2500
+Subject: [PATCH] Only allow drive sensors on bus 2 for ast2500
CPLD doesn't allow multi-master, so readings wont work.
Put in a work-around to only allow bus 2 transactions.
@@ -15,22 +15,22 @@ Signed-off-by: James Feist
1 file changed, 6 insertions(+)
diff --git a/src/NVMeSensorMain.cpp b/src/NVMeSensorMain.cpp
-index 1858ea9..844f061 100644
+index 8eaeb57..25edf01 100644
--- a/src/NVMeSensorMain.cpp
+++ b/src/NVMeSensorMain.cpp
-@@ -111,6 +111,12 @@ void createSensors(boost::asio::io_service& io,
- rootBus = std::stoi(rootName.substr(0, dash));
- }
+@@ -154,6 +154,12 @@ static void handleSensorConfigurations(
+ << "\n";
+ }
-+ // HACK: cpld on current products doesn't allow multi-master
-+ if (rootBus != 2)
-+ {
-+ continue;
-+ }
++ // HACK: cpld on current products doesn't allow multi-master
++ if (rootBus != 2)
++ {
++ continue;
++ }
+
- std::shared_ptr context;
- auto findRoot = nvmeDeviceMap.find(rootBus);
- if (findRoot != nvmeDeviceMap.end())
+ std::shared_ptr sensorPtr =
+ std::make_shared(
+ objectServer, io, dbusConnection, *sensorName,
--
2.17.1
diff --git a/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0038-Disabling-serial-console-if-FFUJ-is-enabled.patch b/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0038-Disabling-serial-console-if-FFUJ-is-enabled.patch
new file mode 100644
index 000000000..372d69e26
--- /dev/null
+++ b/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0038-Disabling-serial-console-if-FFUJ-is-enabled.patch
@@ -0,0 +1,51 @@
+From a9f5d0357701c817106cd158d377ef645309ccc2 Mon Sep 17 00:00:00 2001
+From: gokulsanker
+Date: Wed, 8 Dec 2021 01:44:19 +0530
+Subject: [PATCH] If FFUJ is enabled serial console must be disabled
+
+FFUJ mode user is not allowed to enter uboot command
+line interface. Serial console is disabled by creating
+an indefinite sleep if FFUJ is enabled, same
+functionality is used in whitely platforms
+
+Tested:
+Serial console is disabled in FFUJ mode
+
+Signed-off-by: gokulsanker
+---
+ common/autoboot.c | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/common/autoboot.c b/common/autoboot.c
+index 8a99780423..21e59feea7 100644
+--- a/common/autoboot.c
++++ b/common/autoboot.c
+@@ -19,6 +19,7 @@ DECLARE_GLOBAL_DATA_PTR;
+
+ #define MAX_DELAY_STOP_STR 32
+
++#define WAIT_STATE_TIMEOUT 10000
+ #ifndef DEBUG_BOOTKEYS
+ #define DEBUG_BOOTKEYS 0
+ #endif
+@@ -271,9 +272,14 @@ static int abortboot(int bootdelay)
+ {
+ int abort = 0;
+
+- abort = gpio_abort();
+- if (abort)
+- goto exit;
++ if (gpio_abort())
++ {
++ printf("#### BMC is in disabled state(FFU Jumper is asserted), "
++ "So BMC serial console disabled. ####\n");
++ while (1) {
++ mdelay(WAIT_STATE_TIMEOUT);
++ }
++ }
+
+ if (bootdelay >= 0)
+ abort = __abortboot(bootdelay);
+--
+2.17.1
+
diff --git a/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/u-boot-aspeed-sdk_%.bbappend b/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/u-boot-aspeed-sdk_%.bbappend
index 1e20585bc..fdc83fce1 100644
--- a/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/u-boot-aspeed-sdk_%.bbappend
+++ b/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/u-boot-aspeed-sdk_%.bbappend
@@ -41,6 +41,7 @@ SRC_URI:append:intel-ast2600 = " \
file://0034-Implement-the-IPMI-commands-in-FFUJ-mode-in-u-boot.patch \
file://0036-Disable-BMC-MMIO-Decode-on-VGA-SCU-register-bit.patch \
file://0037-Enable-I2C-clock-stretching-and-multi-master-support.patch \
+ file://0038-Disabling-serial-console-if-FFUJ-is-enabled.patch \
"
# CVE-2020-10648 vulnerability fix
diff --git a/meta-openbmc-mods/meta-ast2600/recipes-kernel/linux/linux-aspeed/0005-Add-sample-i3c-slave-driver.patch b/meta-openbmc-mods/meta-ast2600/recipes-kernel/linux/linux-aspeed/0005-Add-sample-i3c-slave-driver.patch
new file mode 100644
index 000000000..8f548c2e5
--- /dev/null
+++ b/meta-openbmc-mods/meta-ast2600/recipes-kernel/linux/linux-aspeed/0005-Add-sample-i3c-slave-driver.patch
@@ -0,0 +1,150 @@
+From 4987202965423fafd5c704d4e68a51a4167a4414 Mon Sep 17 00:00:00 2001
+From: Oleksandr Shulzhenko
+Date: Thu, 30 Sep 2021 16:28:26 +0200
+Subject: [PATCH] Add sample i3c slave driver
+
+The aim of the driver is to debug various i3c solutions implemented
+for DesignWare master I3C driver.
+The driver is bound to the I3C device that corresponds to I3C slave
+emulated by Prodigy with manufacturer ID 0xAC and part ID 0x55AA.
+It is enough to fill the I3C_DEVICE macro with the corresponding data
+to adjust the driver with another I3C slave device
+
+Signed-off-by: Oleksandr Shulzhenko
+---
+ drivers/i3c/Kconfig | 2 +
+ drivers/i3c/Makefile | 1 +
+ drivers/i3c/sample/Kconfig | 7 +++
+ drivers/i3c/sample/Makefile | 2 +
+ drivers/i3c/sample/dw-i3c-sample.c | 75 ++++++++++++++++++++++++++++++
+ 5 files changed, 87 insertions(+)
+ create mode 100644 drivers/i3c/sample/Kconfig
+ create mode 100644 drivers/i3c/sample/Makefile
+ create mode 100644 drivers/i3c/sample/dw-i3c-sample.c
+
+diff --git a/drivers/i3c/Kconfig b/drivers/i3c/Kconfig
+index 01642768ab5f..202b0d091631 100644
+--- a/drivers/i3c/Kconfig
++++ b/drivers/i3c/Kconfig
+@@ -36,4 +36,6 @@ config I3CDEV
+ and hence SUBJECT TO CHANGE WITHOUT NOTICE while it stabilizes.
+
+ source "drivers/i3c/master/Kconfig"
++
++source "drivers/i3c/sample/Kconfig"
+ endif # I3C
+diff --git a/drivers/i3c/Makefile b/drivers/i3c/Makefile
+index 606d422841b2..8048a9a793c6 100644
+--- a/drivers/i3c/Makefile
++++ b/drivers/i3c/Makefile
+@@ -3,3 +3,4 @@ i3c-y := device.o master.o
+ obj-$(CONFIG_I3C) += i3c.o
+ obj-$(CONFIG_I3CDEV) += i3cdev.o
+ obj-$(CONFIG_I3C) += master/
++obj-$(CONFIG_I3C) += sample/
+diff --git a/drivers/i3c/sample/Kconfig b/drivers/i3c/sample/Kconfig
+new file mode 100644
+index 000000000000..6376c9891795
+--- /dev/null
++++ b/drivers/i3c/sample/Kconfig
+@@ -0,0 +1,7 @@
++# SPDX-License-Identifier: GPL-2.0-only
++config DW_I3C_SAMPLE
++ tristate "Synopsys DesignWare I3C sample driver"
++ depends on I3C
++help
++ Say yes here to enable the driver for DesignWare
++ I3C Sample driver.
+diff --git a/drivers/i3c/sample/Makefile b/drivers/i3c/sample/Makefile
+new file mode 100644
+index 000000000000..c73bb34fce0e
+--- /dev/null
++++ b/drivers/i3c/sample/Makefile
+@@ -0,0 +1,2 @@
++# SPDX-License-Identifier: GPL-2.0-only
++obj-$(CONFIG_DW_I3C_SAMPLE) += dw-i3c-sample.o
+\ No newline at end of file
+diff --git a/drivers/i3c/sample/dw-i3c-sample.c b/drivers/i3c/sample/dw-i3c-sample.c
+new file mode 100644
+index 000000000000..1993b9fdb32b
+--- /dev/null
++++ b/drivers/i3c/sample/dw-i3c-sample.c
+@@ -0,0 +1,75 @@
++// SPDX-License-Identifier: GPL-2.0
++/* Copyright (C) 2021 Intel Corporation.*/
++
++#include
++#include
++
++#define IBI_QUEUE_STATUS_IBI_ID(x) (((x) & GENMASK(15, 8)) >> 8)
++#define IBI_QUEUE_IBI_ADDR(x) (IBI_QUEUE_STATUS_IBI_ID(x) >> 1)
++#define IBI_QUEUE_STATUS_DATA_LEN(x) ((x) & GENMASK(7, 0))
++
++static void ibi_handler(struct i3c_device *dev,
++ const struct i3c_ibi_payload *payload)
++{
++ unsigned int i = 0;
++ u32 ibi_status;
++ u8 addr;
++ const u8 *buf;
++
++ dev_info(i3cdev_to_dev(dev), "%s:%d\n", __func__, __LINE__);
++ if (payload) {
++ ibi_status = *((u32 *)payload->data);
++ addr = IBI_QUEUE_IBI_ADDR(ibi_status);
++ dev_info(i3cdev_to_dev(dev), "%s, dynamic address = 0x%02x\n",
++ __func__, addr);
++ /* We need to read only IBI Paylod data - so shift for IBI_QUEUE_STATUS
++ * length which is 32 bits
++ */
++ buf = payload->data + sizeof(u32);
++ for (i = 0; i < IBI_QUEUE_STATUS_DATA_LEN(ibi_status); i++)
++ dev_info(i3cdev_to_dev(dev), "%s payload[%d] = 0x%02x\n",
++ __func__, i, *(buf + sizeof(u8) * i));
++ }
++}
++
++static int dw_i3c_sample_probe(struct i3c_device *i3cdev)
++{
++ int ret;
++ struct i3c_ibi_setup ibireq = {
++ .handler = ibi_handler,
++ .max_payload_len = 2,
++ .num_slots = 10,
++ };
++
++ ret = i3c_device_request_ibi(i3cdev, &ibireq);
++ if (ret)
++ return ret;
++ ret = i3c_device_enable_ibi(i3cdev);
++ if (ret)
++ i3c_device_free_ibi(i3cdev);
++
++ return ret;
++}
++
++static void dw_i3c_sample_remove(struct i3c_device *i3cdev)
++{
++ i3c_device_disable_ibi(i3cdev);
++ i3c_device_free_ibi(i3cdev);
++}
++
++static const struct i3c_device_id dw_i3c_sample_ids[] = {
++ I3C_DEVICE(0x2AC /*manufid*/, 0x55AA /*partid*/, NULL /*driver-data*/),
++ { /* sentinel */ },
++};
++
++static struct i3c_driver dw_i3c_sample = {
++ .driver.name = "dw-i3c-sample",
++ .id_table = dw_i3c_sample_ids,
++ .probe = dw_i3c_sample_probe,
++ .remove = dw_i3c_sample_remove,
++};
++
++module_i3c_driver(dw_i3c_sample);
++MODULE_AUTHOR("Oleksandr Shulzhenko ");
++MODULE_DESCRIPTION("DesignWare I3C sample driver");
++MODULE_LICENSE("GPL");
+--
+2.25.1
+
diff --git a/meta-openbmc-mods/meta-ast2600/recipes-kernel/linux/linux-aspeed_%.bbappend b/meta-openbmc-mods/meta-ast2600/recipes-kernel/linux/linux-aspeed_%.bbappend
index df3901d77..94d22381f 100644
--- a/meta-openbmc-mods/meta-ast2600/recipes-kernel/linux/linux-aspeed_%.bbappend
+++ b/meta-openbmc-mods/meta-ast2600/recipes-kernel/linux/linux-aspeed_%.bbappend
@@ -7,4 +7,5 @@ SRC_URI += " \
file://0002-serial-8250-Fix-RX-DMA-time-out-property.patch \
file://0003-serial-8250_aspeed-Make-port-type-fixed.patch \
file://0004-Add-a-workaround-to-cover-UART-interrupt-bug-in-AST2.patch \
+ file://0005-Add-sample-i3c-slave-driver.patch \
"
diff --git a/meta-openbmc-mods/meta-ast2600/recipes-phosphor/sensors/dbus-sensors/0001-ADCSensor-Fix-for-P3V3-sensor.patch b/meta-openbmc-mods/meta-ast2600/recipes-phosphor/sensors/dbus-sensors/0001-ADCSensor-Fix-for-P3V3-sensor.patch
new file mode 100644
index 000000000..458f234b6
--- /dev/null
+++ b/meta-openbmc-mods/meta-ast2600/recipes-phosphor/sensors/dbus-sensors/0001-ADCSensor-Fix-for-P3V3-sensor.patch
@@ -0,0 +1,59 @@
+From 9923811a2880ad4a8289af666b63adfd1807b5bd Mon Sep 17 00:00:00 2001
+From: Jayaprakash Mutyala
+Date: Mon, 22 Nov 2021 22:12:00 +0000
+Subject: [PATCH] ADCSensor: Fix for P3V3 sensor
+
+Issue: As part of adapting to upstream ADC driver change for all the
+platforms of AST2600, ADC scale factor settings in board configurations
+is adjusted.
+Patch: https://gerrit.openbmc-project.xyz/c/openbmc/openbmc/+/47086
+Due to this change set sensor threshold is not updating for critical
+threshold value of P3V3 sensor.
+
+Fix: Updating pre sensor scaling of "maxVoltageReading" to 2.5 can fix
+this issue.
+
+Tested:
+Verified using IPMI set sensor threshold command for P3V3 sensor and for
+other sensors as well.
+Before fix:
+//Get sensor threshold for P3V3 sensor
+Command : ipmitool raw 0x04 0x27 0x83
+Response: 1b d6 d0 00 f8 ff 00
+//Set sensor threshold for P3V3 sensor
+Command : ipmitool raw 0x04 0x26 0x83 0x10 0x00 0x00 0x00 0x00 0xfd 0x00
+Response: //Success
+Command : ipmitool raw 0x04 0x27 0x83
+Response: 1b d8 d1 00 f9 ff 00
+
+After fix:
+//Get sensor threshold for P3V3 sensor
+Command : ipmitool raw 0x04 0x27 0x81
+Response: 1b b2 ad 00 ce d4 00
+//Set sensor threshold for P3V3 sensor
+Command : ipmitool raw 0x04 0x26 0x81 0x10 0x00 0x00 0x00 0x00 0xfd 0x00
+Response: //Success
+Command : ipmitool raw 0x04 0x27 0x81
+Response: 1b b2 ad 00 ce fd 00
+
+Signed-off-by: Jayaprakash Mutyala
+---
+ src/ADCSensor.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/ADCSensor.cpp b/src/ADCSensor.cpp
+index 9758168..2f3c66f 100644
+--- a/src/ADCSensor.cpp
++++ b/src/ADCSensor.cpp
+@@ -37,7 +37,7 @@
+ static constexpr unsigned int sensorScaleFactor = 1000;
+
+ static constexpr double roundFactor = 10000; // 3 decimal places
+-static constexpr double maxVoltageReading = 1.8; // pre sensor scaling
++static constexpr double maxVoltageReading = 2.5; // pre sensor scaling
+ static constexpr double minVoltageReading = 0;
+
+ ADCSensor::ADCSensor(const std::string& path,
+--
+2.17.1
+
diff --git a/meta-openbmc-mods/meta-ast2600/recipes-phosphor/sensors/dbus-sensors_%.bbappend b/meta-openbmc-mods/meta-ast2600/recipes-phosphor/sensors/dbus-sensors_%.bbappend
new file mode 100644
index 000000000..7f412bfa4
--- /dev/null
+++ b/meta-openbmc-mods/meta-ast2600/recipes-phosphor/sensors/dbus-sensors_%.bbappend
@@ -0,0 +1,3 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+SRC_URI += "file://0001-ADCSensor-Fix-for-P3V3-sensor.patch"
diff --git a/meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/at-scale-debug_git.bb b/meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/at-scale-debug_git.bb
index 74db92917..e2fa7b57e 100644
--- a/meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/at-scale-debug_git.bb
+++ b/meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/at-scale-debug_git.bb
@@ -12,8 +12,10 @@ DEPENDS = "sdbusplus openssl libpam libgpiod safec"
do_configure[depends] += "virtual/kernel:do_shared_workdir"
-SRC_URI = "git://github.com/Intel-BMC/asd;protocol=git"
-SRCREV = "1.4.6"
+SRC_URI = "git://github.com/Intel-BMC/asd;protocol=https"
+SRCREV = "1.4.7"
+
+SRC_URI += "file://0001-ASD-Fix-sprintf_s-compilation-issue-for-safec-3.5.1.patch"
inherit useradd
diff --git a/meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/files/0001-ASD-Fix-sprintf_s-compilation-issue-for-safec-3.5.1.patch b/meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/files/0001-ASD-Fix-sprintf_s-compilation-issue-for-safec-3.5.1.patch
new file mode 100644
index 000000000..943ffb4a8
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/files/0001-ASD-Fix-sprintf_s-compilation-issue-for-safec-3.5.1.patch
@@ -0,0 +1,35 @@
+From efd1373e7c4a7a89609184aa0b5e1c3edcb8be6a Mon Sep 17 00:00:00 2001
+From: Ernesto Corona
+Date: Fri, 19 Nov 2021 09:11:03 -0800
+Subject: [PATCH] ASD Fix sprintf_s compilation issue for safec 3.5.1
+
+A missing macro was defined to ensure sprintf_s macro defintion is
+set when safe_str_lib.h is included.
+
+Test:
+Remove openbmc-meta-intel/meta-common/recipes-core/safec/safec_3.4.bb
+Compile at-scale-debug using devtool
+ASD Sanity finished successfully(SPR).
+
+Signed-off-by: Ernesto Corona
+Change-Id: Idd94b4ba9ff8b4194317a045b140ce90db2ee860
+---
+ CMakeLists.txt | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 59ff03c..d6239a4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -4,6 +4,8 @@ project(at-scale-debug C)
+ find_package (PkgConfig REQUIRED)
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/sysroot/include)
+ pkg_check_modules (SAFEC REQUIRED libsafec)
++# Define HAVE_C99 to include sprintf_s macro in safec library
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_C99")
+ include_directories (${SAFEC_INCLUDE_DIRS})
+ link_directories (${SAFEC_LIBRARY_DIRS})
+
+--
+2.25.1
+
diff --git a/meta-openbmc-mods/meta-common/recipes-core/interfaces/libmctp_git.bb b/meta-openbmc-mods/meta-common/recipes-core/interfaces/libmctp_git.bb
index eba56f829..79027b766 100644
--- a/meta-openbmc-mods/meta-common/recipes-core/interfaces/libmctp_git.bb
+++ b/meta-openbmc-mods/meta-common/recipes-core/interfaces/libmctp_git.bb
@@ -2,7 +2,7 @@ SUMMARY = "libmctp"
DESCRIPTION = "Implementation of MCTP (DTMF DSP0236)"
SRC_URI = "git://github.com/openbmc/libmctp.git"
-SRCREV = "663ec39ea107c2a736f9bcb20cbfdfa623092ab1"
+SRCREV = "983cc3fa49dcac2e640e814500221c6acc177eff"
PV = "0.1+git${SRCPV}"
diff --git a/meta-openbmc-mods/meta-common/recipes-core/ipmi/intel-ipmi-oem_%.bbappend b/meta-openbmc-mods/meta-common/recipes-core/ipmi/intel-ipmi-oem_%.bbappend
index ac61d983c..a9e6c81ad 100644
--- a/meta-openbmc-mods/meta-common/recipes-core/ipmi/intel-ipmi-oem_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-core/ipmi/intel-ipmi-oem_%.bbappend
@@ -2,7 +2,7 @@ EXTRA_OECMAKE += "${@bb.utils.contains('IMAGE_FSTYPES', 'intel-pfr', '-DINTEL_PF
EXTRA_OECMAKE += "${@bb.utils.contains('EXTRA_IMAGE_FEATURES', 'validation-unsecure', '-DBMC_VALIDATION_UNSECURE_FEATURE=ON', '', d)}"
EXTRA_OECMAKE += "-DUSING_ENTITY_MANAGER_DECORATORS=OFF"
SRC_URI = "git://github.com/openbmc/intel-ipmi-oem.git"
-SRCREV = "9e58cfe1ba5ca5bcd5263b50730c5a231eabdd4f"
+SRCREV = "d2d60ab5b325c4630c8e794e861b88cf3c9337bf"
FILESEXTRAPATHS:append := ":${THISDIR}/${PN}"
diff --git a/meta-openbmc-mods/meta-common/recipes-core/ncurses/ncurses/0001-Fix-heap-buffer-overflow-in-captoinfo.patch b/meta-openbmc-mods/meta-common/recipes-core/ncurses/ncurses/0001-Fix-heap-buffer-overflow-in-captoinfo.patch
new file mode 100644
index 000000000..420a19b41
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-core/ncurses/ncurses/0001-Fix-heap-buffer-overflow-in-captoinfo.patch
@@ -0,0 +1,47 @@
+From ad135388ac66b7c8276b0899d9b43433e2faffa6 Mon Sep 17 00:00:00 2001
+From: P Dheeraj Srujan Kumar
+Date: Tue, 7 Dec 2021 23:58:53 +0000
+Subject: [PATCH] Fix heap-buffer-overflow in captoinfo
+
+This has been picked up from http://cvsweb.netbsd.org/
+bsdweb.cgi/pkgsrc/devel/ncurses/patches/Attic/
+patch-ncurses_tinfo_captoinfo.c
+?rev=1.1&content-type=text/x-cvsweb-markup
+
+Thomas Dickey is the owner of this patch.
+This fix is a part of
+https://github.com/ThomasDickey/ncurses-snapshots/
+commit/63ca9e061f4644795d6f3f559557f3e1ed8c738b#diff-
+7e95c7bc5f213e9be438e69a9d5d0f261a14952bcbd692f7b9014217b8047340
+
+Signed-off-by: P Dheeraj Srujan Kumar
+---
+ ncurses/tinfo/captoinfo.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/ncurses/tinfo/captoinfo.c b/ncurses/tinfo/captoinfo.c
+index 8b3b83d1..c9741405 100644
+--- a/ncurses/tinfo/captoinfo.c
++++ b/ncurses/tinfo/captoinfo.c
+@@ -216,12 +216,15 @@ cvtchar(register const char *sp)
+ }
+ break;
+ case '^':
++ len = 2;
+ c = UChar(*++sp);
+- if (c == '?')
++ if (c == '?') {
+ c = 127;
+- else
++ } else if (c == '\0') {
++ len = 1;
++ } else {
+ c &= 0x1f;
+- len = 2;
++ }
+ break;
+ default:
+ c = UChar(*sp);
+--
+2.17.1
+
diff --git a/meta-openbmc-mods/meta-common/recipes-core/ncurses/ncurses_%.bbappend b/meta-openbmc-mods/meta-common/recipes-core/ncurses/ncurses_%.bbappend
new file mode 100644
index 000000000..e60bd9a6b
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-core/ncurses/ncurses_%.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+SRC_URI += "file://0001-Fix-heap-buffer-overflow-in-captoinfo.patch"
diff --git a/meta-openbmc-mods/meta-common/recipes-core/safec/safec_%.bbappend b/meta-openbmc-mods/meta-common/recipes-core/safec/safec_%.bbappend
deleted file mode 100644
index b8256e2b1..000000000
--- a/meta-openbmc-mods/meta-common/recipes-core/safec/safec_%.bbappend
+++ /dev/null
@@ -1,11 +0,0 @@
-RDEPENDS:${PN} = ""
-do_install:append() {
- F=$(find ${D} -name check_for_unsafe_apis)
- if [ -n "${F}" ]; then
- # remove the unused perl script
- rm -f "${F}"
- # remove the script's destination directory, only if it is empty
- rmdir "$(dirname ${F})" 2>/dev/null || :
- fi
-}
-
diff --git a/meta-openbmc-mods/meta-common/recipes-core/safec/safec_3.4.bb b/meta-openbmc-mods/meta-common/recipes-core/safec/safec_3.4.bb
deleted file mode 100644
index cf83203ec..000000000
--- a/meta-openbmc-mods/meta-common/recipes-core/safec/safec_3.4.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Safe C Library"
-
-LICENSE = "safec"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6d0eb7dfc57806a006fcbc4e389cf164"
-SECTION = "lib"
-
-inherit autotools pkgconfig
-
-S = "${WORKDIR}/git"
-SRCREV = "e8bf1fff157ba931692130a0ec6f2833fa7d5f87"
-SRC_URI = "git://github.com/rurban/safeclib.git"
-
-COMPATIBLE_HOST = '(x86_64|i.86|powerpc|powerpc64|arm|aarch64).*-linux'
-
-RDEPENDS:${PN} = "perl"
diff --git a/meta-openbmc-mods/meta-common/recipes-devtools/boost-url/boost-url_%.bbappend b/meta-openbmc-mods/meta-common/recipes-devtools/boost-url/boost-url_%.bbappend
deleted file mode 100644
index 323788fe8..000000000
--- a/meta-openbmc-mods/meta-common/recipes-devtools/boost-url/boost-url_%.bbappend
+++ /dev/null
@@ -1,4 +0,0 @@
-FILESEXTRAPATHS:append := ":${THISDIR}/${PN}"
-
-# Temporary pin to resolve build breaks
-SRCREV = "2c867fbe284ae532f1329b87a86ad3f8cd382867"
diff --git a/meta-openbmc-mods/meta-common/recipes-devtools/mtd-util/mtd-util.bb b/meta-openbmc-mods/meta-common/recipes-devtools/mtd-util/mtd-util.bb
index 5b59dd909..c925c522d 100644
--- a/meta-openbmc-mods/meta-common/recipes-devtools/mtd-util/mtd-util.bb
+++ b/meta-openbmc-mods/meta-common/recipes-devtools/mtd-util/mtd-util.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "OpenBMC mtd-util"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=b77c43ae4eaf67bd73fb6452b2f113a3"
-SRC_URI = "git://github.com/Intel-BMC/mtd-util;protocol=ssh"
+SRC_URI = "git://git@github.com/Intel-BMC/mtd-util.git;protocol=ssh"
PV = "1.0+git${SRCPV}"
SRCREV = "708072b62a3cecb520eeaacac88b4f2c2e101fe4"
diff --git a/meta-openbmc-mods/meta-common/recipes-extended/sdbusplus/sdbusplus/0001-Revert-server-Check-return-code-for-sd_bus_add_objec.patch b/meta-openbmc-mods/meta-common/recipes-extended/sdbusplus/sdbusplus/0001-Revert-server-Check-return-code-for-sd_bus_add_objec.patch
index 9aaf2f952..884e818a9 100644
--- a/meta-openbmc-mods/meta-common/recipes-extended/sdbusplus/sdbusplus/0001-Revert-server-Check-return-code-for-sd_bus_add_objec.patch
+++ b/meta-openbmc-mods/meta-common/recipes-extended/sdbusplus/sdbusplus/0001-Revert-server-Check-return-code-for-sd_bus_add_objec.patch
@@ -1,4 +1,4 @@
-From baff58f6e8f7aef4fd56be959fdd2e5e3c429eef Mon Sep 17 00:00:00 2001
+From 9d70ffc5532e17752903407d0267a281cc4be6d5 Mon Sep 17 00:00:00 2001
From: Johnathan Mantey
Date: Mon, 13 Jul 2020 11:51:54 -0700
Subject: [PATCH] Revert "server: Check return code for
@@ -6,29 +6,28 @@ Subject: [PATCH] Revert "server: Check return code for
This reverts commit 017a19da5f67a74daedf4d63111569902d4764e6.
---
- src/server/interface.cpp | 9 ++-------
- 1 file changed, 2 insertions(+), 7 deletions(-)
+ src/server/interface.cpp | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/src/server/interface.cpp b/src/server/interface.cpp
-index a72c656..0155b6d 100644
+index e47f6ef..1ea9a06 100644
--- a/src/server/interface.cpp
+++ b/src/server/interface.cpp
-@@ -17,13 +17,8 @@ interface::interface(sdbusplus::bus::bus& bus, const char* path,
+@@ -17,12 +17,8 @@ interface::interface(sdbusplus::bus_t& bus, const char* path,
_interface_added(false)
{
sd_bus_slot* slot = nullptr;
-- int r = _intf->sd_bus_add_object_vtable(_bus.get(), &slot, _path.c_str(),
-- _interf.c_str(), vtable, context);
+- int r = _intf->sd_bus_add_object_vtable(
+- get_busp(_bus), &slot, _path.c_str(), _interf.c_str(), vtable, context);
- if (r < 0)
- {
- throw exception::SdBusError(-r, "sd_bus_add_object_vtable");
- }
--
-+ _intf->sd_bus_add_object_vtable(_bus.get(), &slot, _path.c_str(),
++ _intf->sd_bus_add_object_vtable(get_busp(_bus), &slot, _path.c_str(),
+ _interf.c_str(), vtable, context);
- _slot = decltype(_slot){slot};
- }
+ _slot = std::move(slot);
+ }
--
2.17.1
diff --git a/meta-openbmc-mods/meta-common/recipes-extended/sdbusplus/sdbusplus_%.bbappend b/meta-openbmc-mods/meta-common/recipes-extended/sdbusplus/sdbusplus_%.bbappend
index a33c265f6..36539fbda 100644
--- a/meta-openbmc-mods/meta-common/recipes-extended/sdbusplus/sdbusplus_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-extended/sdbusplus/sdbusplus_%.bbappend
@@ -6,4 +6,4 @@ SRC_URI += " \
"
# Temporary pin to resolve build breaks
-SRCREV="dfb5642201699dc42a7dda12d72718a8b9568151"
+SRCREV="6adfe948ee55ffde8457047042d0d55aa3d8b4a7"
diff --git a/meta-openbmc-mods/meta-common/recipes-graphics/libvncserver/libvncserver_%.bbappend b/meta-openbmc-mods/meta-common/recipes-graphics/libvncserver/libvncserver_%.bbappend
index dbd591c86..e527d27f7 100644
--- a/meta-openbmc-mods/meta-common/recipes-graphics/libvncserver/libvncserver_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-graphics/libvncserver/libvncserver_%.bbappend
@@ -2,4 +2,4 @@ FILESEXTRAPATHS:append := ":${THISDIR}/${PN}"
# Use the latest to support obmc-ikvm properly
SRC_URI = "git://github.com/LibVNC/libvncserver"
-SRCREV = "c1f29b73e4f111fc3d4b5941936218be0c6c430f"
+SRCREV = "0b8990784a81823eecc9089263ac1966d17bf399"
diff --git a/meta-openbmc-mods/meta-common/recipes-graphics/obmc-ikvm/obmc-ikvm_%.bbappend b/meta-openbmc-mods/meta-common/recipes-graphics/obmc-ikvm/obmc-ikvm_%.bbappend
index faee3bf4c..695cfd437 100644
--- a/meta-openbmc-mods/meta-common/recipes-graphics/obmc-ikvm/obmc-ikvm_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-graphics/obmc-ikvm/obmc-ikvm_%.bbappend
@@ -1,4 +1,4 @@
FILESEXTRAPATHS:append := ":${THISDIR}/${PN}"
#SRC_URI = "git://github.com/openbmc/obmc-ikvm"
-SRCREV = "f90f68d1e9bc6c53f49ebac6d0b8e11257de77a9"
+SRCREV = "ee09e3033a453565034b2b9bf4f2e0cbc8323ccd"
diff --git a/meta-openbmc-mods/meta-common/recipes-intel/host-misc-comm-manager/host-misc-comm-manager_git.bb b/meta-openbmc-mods/meta-common/recipes-intel/host-misc-comm-manager/host-misc-comm-manager_git.bb
index 6b54189e6..7dfce8c4e 100644
--- a/meta-openbmc-mods/meta-common/recipes-intel/host-misc-comm-manager/host-misc-comm-manager_git.bb
+++ b/meta-openbmc-mods/meta-common/recipes-intel/host-misc-comm-manager/host-misc-comm-manager_git.bb
@@ -9,7 +9,7 @@ S = "${WORKDIR}/git"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
-SRC_URI = "git://github.com/Intel-BMC/host-misc-comm-manager.git;protocol=ssh"
+SRC_URI = "git://git@github.com/Intel-BMC/host-misc-comm-manager;protocol=ssh"
SRCREV = "470facc6e94ecbd01ca9c3f0749ae603dffff0e9"
diff --git a/meta-openbmc-mods/meta-common/recipes-intel/hsbp/hsbp-manager_git.bb b/meta-openbmc-mods/meta-common/recipes-intel/hsbp/hsbp-manager_git.bb
index a2ce25369..180693f08 100644
--- a/meta-openbmc-mods/meta-common/recipes-intel/hsbp/hsbp-manager_git.bb
+++ b/meta-openbmc-mods/meta-common/recipes-intel/hsbp/hsbp-manager_git.bb
@@ -2,7 +2,7 @@ SUMMARY = "HSBP Manager"
DESCRIPTION = "HSBP Manager monitors HSBPs through SMBUS"
SRC_URI = "git://github.com/openbmc/s2600wf-misc.git"
-SRCREV = "0c5059f685f6df0704a4b773f2e617cf10d03210"
+SRCREV = "26067f6af051ccf8feff251a081aa46e45dfa4dc"
PV = "0.1+git${SRCPV}"
LICENSE = "Apache-2.0"
diff --git a/meta-openbmc-mods/meta-common/recipes-intel/intel-pfr/intel-pfr-signing-utility-native.bb b/meta-openbmc-mods/meta-common/recipes-intel/intel-pfr/intel-pfr-signing-utility-native.bb
index 72e7857ef..112b6b4c2 100644
--- a/meta-openbmc-mods/meta-common/recipes-intel/intel-pfr/intel-pfr-signing-utility-native.bb
+++ b/meta-openbmc-mods/meta-common/recipes-intel/intel-pfr/intel-pfr-signing-utility-native.bb
@@ -8,9 +8,9 @@ LIC_FILES_CHKSUM = "file://${INTELBASE}/COPYING.apache-2.0;md5=34400b68072d710fe
DEPENDS = "openssl-native libxml2-native "
-SRC_URI = "git://github.com/Intel-BMC/intel-pfr-signing-utility;protocol=ssh"
+SRC_URI = "git://git@github.com/Intel-BMC/intel-pfr-signing-utility.git;protocol=ssh"
-SRCREV = "33b8e02e9b25d5150b744fcbda4cf1e508813194"
+SRCREV = "7ad7cb3f3d7f408fd9ac454c242e77c8fbc6d61b"
S = "${WORKDIR}/git"
diff --git a/meta-openbmc-mods/meta-common/recipes-intel/intel-pfr/pfr-manager_%.bbappend b/meta-openbmc-mods/meta-common/recipes-intel/intel-pfr/pfr-manager_%.bbappend
index 2ae1e372b..1e6becb03 100644
--- a/meta-openbmc-mods/meta-common/recipes-intel/intel-pfr/pfr-manager_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-intel/intel-pfr/pfr-manager_%.bbappend
@@ -1,5 +1,5 @@
# Enable downstream autobump
SRC_URI = "git://github.com/openbmc/pfr-manager"
-SRCREV = "8491692089f9295cf2efab456d4747f3cf1fb098"
+SRCREV = "57f42c3d37d9546ede4f2c015bf9f392130c93b5"
DEPENDS += " libgpiod \
"
diff --git a/meta-openbmc-mods/meta-common/recipes-intel/psu-manager/psu-manager.bb b/meta-openbmc-mods/meta-common/recipes-intel/psu-manager/psu-manager.bb
index 9cd2eec6f..6ce844f60 100644
--- a/meta-openbmc-mods/meta-common/recipes-intel/psu-manager/psu-manager.bb
+++ b/meta-openbmc-mods/meta-common/recipes-intel/psu-manager/psu-manager.bb
@@ -1,7 +1,7 @@
SUMMARY = "Power supply manager for Intel based platform"
DESCRIPTION = "Power supply manager which include PSU Cold Redundancy service"
-SRC_URI = "git://github.com/Intel-BMC/psu-manager.git;protocol=ssh"
+SRC_URI = "git://git@github.com/Intel-BMC/psu-manager.git;protocol=ssh"
SRCREV = "30788892792c302b1317bac4e7f837ca1374d789"
S = "${WORKDIR}/git"
diff --git a/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv1.bb b/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv1.bb
deleted file mode 100644
index 9eca05bae..000000000
--- a/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv1.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "SMBIOS MDR version 1 service for Intel based platform"
-DESCRIPTION = "SMBIOS MDR version 1 service for Intel based platfrom"
-
-SRC_URI = "git://github.com/Intel-BMC/provingground.git;protocol=ssh;nobranch=1"
-SRCREV = "6aab8bcc8fd0550753c87265036b1b7c4c8a9f71"
-
-S = "${WORKDIR}/git/services/smbios"
-
-PV = "1.0+git${SRCPV}"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
-
-inherit cmake pkgconfig
-inherit obmc-phosphor-systemd
-
-SYSTEMD_SERVICE:${PN} += "smbios-mdrv1.service"
-
-DEPENDS += " \
- autoconf-archive-native \
- systemd \
- sdbusplus \
- phosphor-dbus-interfaces \
- phosphor-logging \
- "
-RDEPENDS:${PN} += " \
- libsystemd \
- sdbusplus \
- phosphor-dbus-interfaces \
- phosphor-logging \
- "
diff --git a/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv1/smbios-mdrv1.service b/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv1/smbios-mdrv1.service
deleted file mode 100644
index edfd3bf70..000000000
--- a/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv1/smbios-mdrv1.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Intel BMC SMBIOS MDR V1
-
-[Service]
-Restart=always
-RestartSec=5
-StartLimitBurst=10
-ExecStartPre=/bin/mkdir -p /etc/smbios
-ExecStart=/usr/bin/env smbiosapp
-SyslogIdentifier=smbiosapp
-
-[Install]
-WantedBy={SYSTEMD_DEFAULT_TARGET}
diff --git a/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv2.bb b/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv2.bb
index 683497208..fefaddbce 100644
--- a/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv2.bb
+++ b/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv2.bb
@@ -2,7 +2,7 @@ SUMMARY = "SMBIOS MDR version 2 service for Intel based platform"
DESCRIPTION = "SMBIOS MDR version 2 service for Intel based platfrom"
SRC_URI = "git://github.com/openbmc/smbios-mdr.git"
-SRCREV = "631388e621abad855abbe4abbfb20111da9056f1"
+SRCREV = "bc924d0f9f590d7d420b9f7bc98bdb9b8688618e"
S = "${WORKDIR}/git"
diff --git a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed_%.bbappend b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed_%.bbappend
index fb05aa1a0..2a9a03d1b 100644
--- a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed_%.bbappend
@@ -3,10 +3,10 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
LINUX_VERSION = "5.15"
KBRANCH = "dev-5.15-intel"
-KSRC = "git://github.com/Intel-BMC/linux;protocol=ssh;branch=${KBRANCH}"
+KSRC = "git://git@github.com/Intel-BMC/linux.git;protocol=ssh;branch=${KBRANCH}"
# Include this as a comment only for downstream auto-bump
-# SRC_URI = "git://github.com/Intel-BMC/linux;protocol=ssh;branch=dev-5.15-intel"
-SRCREV="c7981259e359523e74044f926b69a804c61c86b1"
+# SRC_URI = "git://git@github.com/Intel-BMC/linux.git;protocol=ssh;branch=dev-5.15-intel"
+SRCREV="aaccb149bfa6ff74dc8e9ff043191730060002db"
do_compile:prepend(){
# device tree compiler flags
diff --git a/meta-openbmc-mods/meta-common/recipes-network/network/ncsi-monitor.bb b/meta-openbmc-mods/meta-common/recipes-network/network/ncsi-monitor.bb
index cdb8e2097..4219a8e42 100644
--- a/meta-openbmc-mods/meta-common/recipes-network/network/ncsi-monitor.bb
+++ b/meta-openbmc-mods/meta-common/recipes-network/network/ncsi-monitor.bb
@@ -14,6 +14,8 @@ SRC_URI = "\
file://${BPN}.service \
"
+RDEPENDS:${PN} += "bash"
+
inherit obmc-phosphor-systemd
SYSTEMD_SERVICE:${PN} += "${BPN}.service"
diff --git a/meta-openbmc-mods/meta-common/recipes-network/network/ncsi-monitor/check-for-host-in-reset b/meta-openbmc-mods/meta-common/recipes-network/network/ncsi-monitor/check-for-host-in-reset
index aa17aebf2..be01092a2 100755
--- a/meta-openbmc-mods/meta-common/recipes-network/network/ncsi-monitor/check-for-host-in-reset
+++ b/meta-openbmc-mods/meta-common/recipes-network/network/ncsi-monitor/check-for-host-in-reset
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
# PFR Boot Time Detection
#
@@ -51,14 +51,20 @@ RSMRST="RSMRST_N"
# Read the assertion state from the RSMRST_N input
function get_rsmrst_state {
local __resultVal=$1
- local gpio_state=$($GPIOGET $($GPIOFIND "$RSMRST"))
+ local gpioFound=$($GPIOFIND $RSMRST)
+ # Test to see if the RSMRST_N input exists. This test does not cover the
+ # case where an input is already owned by another service/process.
+ if [ -z "$gpioFound" ]
+ then
+ return 1
+ fi
+ local gpio_state=$($GPIOGET $gpioFound)
eval $__resultVal="'$gpio_state'"
return 0
}
get_rsmrst_state rsmrst_val
-
-if [ "$rsmrst_val" -eq 0 ]
+if [[ $? == 0 && $rsmrst_val -eq 0 ]]
then
echo "RSMRST_N is asserted, take eth1 down"
ip link set down dev eth1
diff --git a/meta-openbmc-mods/meta-common/recipes-network/network/phosphor-network/0003-Adding-channel-specific-privilege-to-network.patch b/meta-openbmc-mods/meta-common/recipes-network/network/phosphor-network/0003-Adding-channel-specific-privilege-to-network.patch
index f21283a75..153480728 100644
--- a/meta-openbmc-mods/meta-common/recipes-network/network/phosphor-network/0003-Adding-channel-specific-privilege-to-network.patch
+++ b/meta-openbmc-mods/meta-common/recipes-network/network/phosphor-network/0003-Adding-channel-specific-privilege-to-network.patch
@@ -1,4 +1,4 @@
-From 145778897e36f407773844b3b96847ff10306ee8 Mon Sep 17 00:00:00 2001
+From eacd73a119e55599d1f8837d04b4fa40452e5653 Mon Sep 17 00:00:00 2001
From: AppaRao Puli
Date: Thu, 2 Apr 2020 17:06:07 +0530
Subject: [PATCH] Adding channel specific privilege to network
@@ -23,11 +23,11 @@ Signed-off-by: Ramya Narayana
src/ethernet_interface.cpp | 124 +++++++++++++++++++++++++++++++++++++
src/ethernet_interface.hpp | 37 ++++++++++-
src/network_manager.cpp | 102 ++++++++++++++++++++++++++++++
- src/network_manager.hpp | 9 +++
- 4 files changed, 271 insertions(+), 1 deletion(-)
+ src/network_manager.hpp | 7 +++
+ 4 files changed, 269 insertions(+), 1 deletion(-)
diff --git a/src/ethernet_interface.cpp b/src/ethernet_interface.cpp
-index 2e15803..1145773 100644
+index 44f46f6..61eb8de 100644
--- a/src/ethernet_interface.cpp
+++ b/src/ethernet_interface.cpp
@@ -48,6 +48,10 @@ constexpr auto PROPERTY_INTERFACE = "org.freedesktop.DBus.Properties";
@@ -49,7 +49,7 @@ index 2e15803..1145773 100644
// Emit deferred signal.
if (emitSignal)
-@@ -1322,5 +1327,124 @@ std::string EthernetInterface::defaultGateway6(std::string gateway)
+@@ -1319,5 +1324,124 @@ std::string EthernetInterface::defaultGateway6(std::string gateway)
return gw;
}
@@ -175,7 +175,7 @@ index 2e15803..1145773 100644
} // namespace network
} // namespace phosphor
diff --git a/src/ethernet_interface.hpp b/src/ethernet_interface.hpp
-index 0fe3778..fa5c889 100644
+index 8928455..0f54814 100644
--- a/src/ethernet_interface.hpp
+++ b/src/ethernet_interface.hpp
@@ -2,11 +2,14 @@
@@ -233,7 +233,7 @@ index 0fe3778..fa5c889 100644
using EthernetInterfaceIntf::interfaceName;
using EthernetInterfaceIntf::linkUp;
using EthernetInterfaceIntf::mtu;
-@@ -372,6 +387,26 @@ class EthernetInterface : public Ifaces
+@@ -363,6 +378,26 @@ class EthernetInterface : public Ifaces
* @returns true/false value if the NIC is enabled
*/
bool queryNicEnabled() const;
@@ -261,10 +261,10 @@ index 0fe3778..fa5c889 100644
} // namespace network
diff --git a/src/network_manager.cpp b/src/network_manager.cpp
-index fe59f0b..01a99a3 100644
+index 19e4673..1c8bf3b 100644
--- a/src/network_manager.cpp
+++ b/src/network_manager.cpp
-@@ -39,6 +39,13 @@ extern std::unique_ptr refreshObjectTimer;
+@@ -39,6 +39,13 @@ extern std::unique_ptr reloadTimer;
using namespace phosphor::logging;
using namespace sdbusplus::xyz::openbmc_project::Common::Error;
@@ -381,27 +381,25 @@ index fe59f0b..01a99a3 100644
bool Manager::createDefaultNetworkFiles(bool force)
diff --git a/src/network_manager.hpp b/src/network_manager.hpp
-index fb3cc32..0c3d49b 100644
+index f574891..49f1cfa 100644
--- a/src/network_manager.hpp
+++ b/src/network_manager.hpp
-@@ -156,6 +156,12 @@ class Manager : public details::VLANCreateIface
- return routeTable;
+@@ -170,6 +170,11 @@ class Manager : public details::VLANCreateIface
+ {
+ reloadPreHooks.push_back(std::move(hook));
}
-
+ /** supported privilege list **/
+ std::vector supportedPrivList;
+
+ /** @brief initializes the supportedPrivilege List */
+ void initSupportedPrivilges();
-+
+
protected:
/** @brief Persistent sdbusplus DBus bus connection. */
- sdbusplus::bus::bus& bus;
-@@ -181,6 +187,9 @@ class Manager : public details::VLANCreateIface
+@@ -199,6 +204,8 @@ class Manager : public details::VLANCreateIface
- /** @brief The routing table */
- route::Table routeTable;
-+
+ /** @brief List of hooks to execute during the next reload */
+ std::vector> reloadPreHooks;
+ /** Get the user management service name dynamically **/
+ std::string getUserServiceName();
};
diff --git a/meta-openbmc-mods/meta-common/recipes-network/network/phosphor-network/0004-Fix-for-updating-MAC-address-from-RedFish.patch b/meta-openbmc-mods/meta-common/recipes-network/network/phosphor-network/0004-Fix-for-updating-MAC-address-from-RedFish.patch
deleted file mode 100644
index 90bbc1d5b..000000000
--- a/meta-openbmc-mods/meta-common/recipes-network/network/phosphor-network/0004-Fix-for-updating-MAC-address-from-RedFish.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From cbd034daf844529eb7f098c990dc8f44c12f6b97 Mon Sep 17 00:00:00 2001
-From: sunitakx
-Date: Tue, 13 Jul 2021 12:54:01 +0000
-Subject: [PATCH] Fix for updating MAC address from RedFish
-
-Issue: When IP address source for an interface is DHCP and its MAC
-address is patched using RedFish, response code is not reaching the
-RedFish request initiator (client).
-
-RootCause: After bmcweb patches the MAC address, immediately IP address
-of that interface also changes to new value (because of DHCP).
-Due to this, success response from bmcweb is not reaching the client as
-expected.
-
-Fix: Do MAC-ADDR patching after validating the request and responding
-"200 OK" to RedFish client. i.e Start a timer which will modify the
-MAC-ADDR at the end of its expiry.
-
-Tested:
-Update the MAC address from RedFish.
-PATCH: https:///redfish/v1/Managers/bmc/EthernetInterfaces/eth0
-Body:
- {"MACAddress": "xx:xx:xx:xx:xx:xx"}
-
-Response code: {"200 OK"} received.
-
-Signed-off-by: sunitakx
-Signed-off-by: Ramya Narayana
----
- src/ethernet_interface.cpp | 17 ++++++++++++-----
- src/ethernet_interface.hpp | 5 +++++
- 2 files changed, 17 insertions(+), 5 deletions(-)
-
-diff --git a/src/ethernet_interface.cpp b/src/ethernet_interface.cpp
-index 1145773..129905e 100644
---- a/src/ethernet_interface.cpp
-+++ b/src/ethernet_interface.cpp
-@@ -143,6 +143,8 @@ EthernetInterface::EthernetInterface(sdbusplus::bus::bus& bus,
- {
- this->emit_object_added();
- }
-+ macUpdateTimer = std::make_unique(
-+ [this](void) { macAddressTimeoutHandler(); });
- }
-
- static IP::Protocol convertFamily(int family)
-@@ -1209,8 +1211,17 @@ void EthernetInterface::writeDHCPSection(std::fstream& stream)
- }
- }
-
-+void EthernetInterface::macAddressTimeoutHandler()
-+{
-+ macUpdateTimer->stop();
-+ // The MAC and LLADDRs will only update if the NIC is already down
-+ EthernetIntfSocket eifSocket(PF_INET, SOCK_DGRAM, IPPROTO_IP);
-+ setNICAdminState(eifSocket.sock, interfaceName().c_str(), false);
-+ manager.reloadConfigs();
-+}
- std::string EthernetInterface::macAddress(std::string value)
- {
-+ std::chrono::seconds usec(defaultTimeout);
- ether_addr newMAC;
- try
- {
-@@ -1244,12 +1255,8 @@ std::string EthernetInterface::macAddress(std::string value)
- intf->MacAddressIntf::macAddress(validMAC);
- }
- MacAddressIntf::macAddress(validMAC);
--
-+ macUpdateTimer->start(usec);
- writeConfigurationFile();
-- // The MAC and LLADDRs will only update if the NIC is already down
-- EthernetIntfSocket eifSocket(PF_INET, SOCK_DGRAM, IPPROTO_IP);
-- setNICAdminState(eifSocket.sock, interface.c_str(), false);
-- manager.reloadConfigs();
- }
-
- #ifdef HAVE_UBOOT_ENV
-diff --git a/src/ethernet_interface.hpp b/src/ethernet_interface.hpp
-index fa5c889..70f4756 100644
---- a/src/ethernet_interface.hpp
-+++ b/src/ethernet_interface.hpp
-@@ -11,11 +11,14 @@
- #include
- #include
- #include
-+#include
- #include
- #include
- #include
- #include
-
-+static constexpr const uint32_t defaultTimeout = 1;
-+
- namespace phosphor
- {
- namespace network
-@@ -84,6 +87,8 @@ class EthernetInterface : public Ifaces
- EthernetInterface& operator=(EthernetInterface&&) = delete;
- virtual ~EthernetInterface() = default;
-
-+ std::unique_ptr macUpdateTimer;
-+ void macAddressTimeoutHandler();
- /** @brief Constructor to put object onto bus at a dbus path.
- * @param[in] bus - Bus to attach to.
- * @param[in] objPath - Path to attach at.
---
-2.17.1
-
diff --git a/meta-openbmc-mods/meta-common/recipes-network/network/phosphor-network_%.bbappend b/meta-openbmc-mods/meta-common/recipes-network/network/phosphor-network_%.bbappend
index 4828c9ea0..a6cc6f510 100644
--- a/meta-openbmc-mods/meta-common/recipes-network/network/phosphor-network_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-network/network/phosphor-network_%.bbappend
@@ -3,10 +3,9 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
DEPENDS += "nlohmann-json boost"
SRC_URI = "git://github.com/openbmc/phosphor-networkd"
-SRCREV = "ee2cba8a7d22ef4a251181087e9ef9bfc5c4b165"
+SRCREV = "cc5a670f1650e76b66750365bd4beecf821969fa"
SRC_URI += " file://0003-Adding-channel-specific-privilege-to-network.patch \
- file://0004-Fix-for-updating-MAC-address-from-RedFish.patch \
"
EXTRA_OECONF:append = " --enable-nic-ethtool=yes"
diff --git a/meta-openbmc-mods/meta-common/recipes-network/network/static-mac-addr.bb b/meta-openbmc-mods/meta-common/recipes-network/network/static-mac-addr.bb
index ee55c5407..c32e14b6f 100644
--- a/meta-openbmc-mods/meta-common/recipes-network/network/static-mac-addr.bb
+++ b/meta-openbmc-mods/meta-common/recipes-network/network/static-mac-addr.bb
@@ -4,6 +4,8 @@ DESCRIPTION = "Set a priority on MAC addresses to run with: \
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+RDEPENDS:${PN} += "bash"
+
PV = "1.0"
LICENSE = "Apache-2.0"
@@ -11,7 +13,7 @@ LIC_FILES_CHKSUM = "file://${INTELBASE}/COPYING.apache-2.0;md5=34400b68072d710fe
SRC_URI = "\
file://mac-check \
- file://${PN}.service \
+ file://${BPN}.service \
"
inherit obmc-phosphor-systemd
diff --git a/meta-openbmc-mods/meta-common/recipes-network/network/static-mac-addr/mac-check b/meta-openbmc-mods/meta-common/recipes-network/network/static-mac-addr/mac-check
index 39d7dd8a7..429f9264b 100644
--- a/meta-openbmc-mods/meta-common/recipes-network/network/static-mac-addr/mac-check
+++ b/meta-openbmc-mods/meta-common/recipes-network/network/static-mac-addr/mac-check
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
# Copyright 2018 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -158,4 +158,29 @@ done <<-END_CONF
eth0 eth1addr
eth1 ethaddr
END_CONF
+
+### HOSTNAME FEATURE ###
+if [[ $* == *--no-unique-hostname* ]]; then
+ echo "mac-check: Skipping hostname check"
+else
+ # Read MAC and strip colon chars
+ hw_mac=$(cat /sys/class/net/eth0/address | tr -d ":")
+ # Read Hostname
+ hostname=$(hostname)
+ #Match bmc-mac (a MAC address has 12 hex digits)
+ bmc_mac_format="^bmc-mac[a-f0-9]{12}$"
+ #Match bmc-mac
+ inteldefault="bmc-mac$hw_mac"
+ #if the current hostname already has the current MAC address, we won't rewrite the name unnecessarily.
+ #Otherwise, match intel-obmc or bmc-mac, and change the hostname to use the current MAC address
+ if [[ "$hostname" == "intel-obmc" || \
+ ("$hostname" != "$inteldefault" && \
+ "$hostname" =~ $bmc_mac_format) ]]; then
+ hostnamectl set-hostname "$inteldefault"
+ echo "mac-check: HOSTNAME CHANGED (hostname deemed to be default or wrong MAC Address)"
+ else
+ echo "mac-check: HOSTNAME NOT CHANGED (hostname is already correct or is custom)"
+ fi
+fi
+
exit $first_error_seen
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/biosconfig-manager/biosconfig-manager_git.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/biosconfig-manager/biosconfig-manager_git.bb
index 711e4eced..8f14552ad 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/biosconfig-manager/biosconfig-manager_git.bb
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/biosconfig-manager/biosconfig-manager_git.bb
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://${INTELBASE}/COPYING.apache-2.0;md5=34400b68072d710fe
inherit meson systemd
SRC_URI = "git://github.com/openbmc/bios-settings-mgr.git"
-SRCREV = "29656f07b7e81c0bb13ca119b4c6ef62f5e79a18"
+SRCREV = "616f9228daa5b94447c3c9d519b63f1686e751f5"
SYSTEMD_SERVICE:${PN} += " \
xyz.openbmc_project.biosconfig_manager.service \
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager/0002-Entity-manager-Add-support-to-update-assetTag.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager/0002-Entity-manager-Add-support-to-update-assetTag.patch
index 0fea3e8a0..12a0ce5ca 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager/0002-Entity-manager-Add-support-to-update-assetTag.patch
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager/0002-Entity-manager-Add-support-to-update-assetTag.patch
@@ -1,6 +1,6 @@
-From 0941036f4206d74bfc3d3e505a5d269fb39c48ff Mon Sep 17 00:00:00 2001
+From 31f3f766c9c6cc6c0b7c722030dbbf6de65b7e2f Mon Sep 17 00:00:00 2001
From: mansijos
-Date: Tue, 6 Apr 2021 02:12:56 +0530
+Date: Mon, 3 Jan 2022 19:44:09 +0000
Subject: [PATCH] Entity-manager: Add support to update assetTag
Asset tag is an updateable property from User level interface like
@@ -12,26 +12,20 @@ Successfully updated in assetTag interface as well as in fru interface
while using set-property and using redfish as well.
The new value is preserved after BMC resets.
-Change-Id: If7fbfd8325488280f500ab0e2c8b38475813cc3f
Signed-off-by: mansijos
---
- src/EntityManager.cpp | 95 +++++++++++++++++++++++++++++++++++++++++--
- 1 file changed, 91 insertions(+), 4 deletions(-)
+ src/EntityManager.cpp | 83 ++++++++++++++++++++++++++++++++++++++++---
+ src/PerformScan.cpp | 11 ++++++
+ 2 files changed, 90 insertions(+), 4 deletions(-)
diff --git a/src/EntityManager.cpp b/src/EntityManager.cpp
-index 490c0f5..139ba9a 100644
+index d327f2b..5fade71 100644
--- a/src/EntityManager.cpp
+++ b/src/EntityManager.cpp
-@@ -48,9 +48,19 @@ constexpr const char* lastConfiguration = "/tmp/configuration/last.json";
- constexpr const char* currentConfiguration = "/var/configuration/system.json";
+@@ -51,6 +51,13 @@ constexpr const char* currentConfiguration = "/var/configuration/system.json";
constexpr const char* globalSchema = "global.json";
- constexpr const int32_t maxMapperDepth = 0;
-+constexpr const char* foundObject = "FoundProbe";
-
constexpr const bool debug = false;
-+
-+
+using foundProbeData = std::map;
+static foundProbeData foundData;
+static std::map mapFoundData;
@@ -39,10 +33,10 @@ index 490c0f5..139ba9a 100644
+constexpr const char* fruConn = "xyz.openbmc_project.FruDevice";
+constexpr const char* fruIntf = "xyz.openbmc_project.FruDevice";
+
- struct CmpStr
- {
- bool operator()(const char* a, const char* b) const
-@@ -577,6 +587,43 @@ void addArrayToDbus(const std::string& name, const nlohmann::json& array,
+ const boost::container::flat_map
+ probeTypes{{{"FALSE", probe_type_codes::FALSE_T},
+ {"TRUE", probe_type_codes::TRUE_T},
+@@ -205,6 +212,43 @@ void addArrayToDbus(const std::string& name, const nlohmann::json& array,
}
}
@@ -86,7 +80,7 @@ index 490c0f5..139ba9a 100644
template
void addProperty(const std::string& propertyName, const PropertyType& value,
sdbusplus::asio::dbus_interface* iface,
-@@ -591,9 +638,18 @@ void addProperty(const std::string& propertyName, const PropertyType& value,
+@@ -219,9 +263,18 @@ void addProperty(const std::string& propertyName, const PropertyType& value,
}
iface->register_property(
propertyName, value,
@@ -106,7 +100,7 @@ index 490c0f5..139ba9a 100644
val = newVal;
if (!setJsonFromPointer(jsonPointerString, val,
systemConfiguration))
-@@ -993,6 +1049,9 @@ void postToDbus(const nlohmann::json& newConfiguration,
+@@ -621,6 +674,9 @@ void postToDbus(const nlohmann::json& newConfiguration,
populateInterfaceFromJson(systemConfiguration, jsonPointerPath,
boardIface, boardValues, objServer);
jsonPointerPath += "/";
@@ -116,7 +110,7 @@ index 490c0f5..139ba9a 100644
// iterate through board properties
for (auto& boardField : boardValues.items())
{
-@@ -1002,9 +1061,28 @@ void postToDbus(const nlohmann::json& newConfiguration,
+@@ -630,9 +686,28 @@ void postToDbus(const nlohmann::json& newConfiguration,
createInterface(objServer, boardName, boardField.key(),
boardKeyOrig);
@@ -148,7 +142,20 @@ index 490c0f5..139ba9a 100644
}
}
-@@ -1362,6 +1440,11 @@ void PerformScan::run()
+diff --git a/src/PerformScan.cpp b/src/PerformScan.cpp
+index 5978710..5261ef7 100644
+--- a/src/PerformScan.cpp
++++ b/src/PerformScan.cpp
+@@ -38,6 +38,8 @@ constexpr const int32_t maxMapperDepth = 0;
+
+ constexpr const bool debug = false;
+
++constexpr const char* foundObject = "FoundProbe";
++
+ void getInterfaces(
+ const std::tuple& call,
+ const std::vector>& probeVector,
+@@ -359,6 +361,11 @@ void PerformScan::run()
{
continue; // non-numeric replacement
}
@@ -160,7 +167,7 @@ index 490c0f5..139ba9a 100644
usedNames.insert(nameIt.value());
auto usedIt = std::find(indexes.begin(),
indexes.end(), index);
-@@ -1439,6 +1522,10 @@ void PerformScan::run()
+@@ -436,6 +443,10 @@ void PerformScan::run()
}
}
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager_%.bbappend
index ba51f9454..32f0a7857 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager_%.bbappend
@@ -1,6 +1,6 @@
# this is here just to bump faster than upstream
# SRC_URI = "git://github.com/openbmc/entity-manager.git"
-SRCREV = "2c412eef8eb76bf2a998c9d193f2dc92aaec39f8"
+SRCREV = "3b802f1c8c030965b76737966b9b022433e6ef5b"
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend
index b8e0e7741..d8f77004b 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend
@@ -1,7 +1,7 @@
# Keep this as a comment to enable the auto-bump script without
# stomping on SRC_URI from previous .bbappend files
#SRC_URI = "git://github.com/openbmc/phosphor-dbus-interfaces.git"
-SRCREV = "e0764cf41d16b823a519e9d4f508b588e3e84aba"
+SRCREV = "ed708de3a629531dc2fdb8e70946fb24e112d617"
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
index 328176aca..3da638514 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
@@ -5,7 +5,7 @@ SYSTEMD_SERVICE:${PN} = "phosphor-pid-control.service"
EXTRA_OECONF = "--enable-configure-dbus=yes"
SRC_URI = "git://github.com/openbmc/phosphor-pid-control.git"
-SRCREV = "cca9c659889d149c06e95bab4b8808db4f1e3eab"
+SRCREV = "457993f836338aa0c13a32af803fcbc5227c81f3"
SRC_URI += "\
file://0001-allow-dbus-sensors-without-thresholds.patch \
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/host/phosphor-host-postd_git.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/host/phosphor-host-postd_git.bbappend
index 0c97b0b86..21ff75f73 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/host/phosphor-host-postd_git.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/host/phosphor-host-postd_git.bbappend
@@ -1,4 +1,4 @@
DEPENDS += " gtest"
#SRC_URI = "git://github.com/openbmc/phosphor-host-postd.git"
-SRCREV = "996facb65d554f7c0f14c10e3c9252d67a01e21a"
+SRCREV = "6a5e0a1cba979c3c793e794c41481221da9a4e33"
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0001-Firmware-update-configuration-changes.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0001-Firmware-update-configuration-changes.patch
index 6621d2512..4fb12ed04 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0001-Firmware-update-configuration-changes.patch
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0001-Firmware-update-configuration-changes.patch
@@ -1,6 +1,6 @@
-From 7c005c318a12c53ed887b3081bd4b34ea0213053 Mon Sep 17 00:00:00 2001
+From 74309a2b2f9a41b741816cb427d9008f67c6f160 Mon Sep 17 00:00:00 2001
From: Vikram Bodireddy
-Date: Mon, 28 Jun 2021 21:56:18 +0530
+Date: Fri, 3 Dec 2021 05:25:02 +0530
Subject: [PATCH] Firmware update configuration changes
This commit will provide user to PATCH the below firmware update
@@ -39,20 +39,18 @@ Tested:
- Successfully ran redfish validater with no new errors.
-Change-Id: I25ef6d64af3f1dcea3acba93d7fd2b505130142e
Signed-off-by: Vikram Bodireddy
-Signed-off-by: AppaRao Puli
---
- redfish-core/lib/update_service.hpp | 462 ++++++++++++++----
+ redfish-core/lib/update_service.hpp | 337 ++++++++++++++++--
static/redfish/v1/$metadata/index.xml | 3 +
- .../JsonSchemas/OemUpdateService/index.json | 69 +++
- .../redfish/v1/schema/OemUpdateService_v1.xml | 40 ++
- 4 files changed, 484 insertions(+), 90 deletions(-)
+ .../JsonSchemas/OemUpdateService/index.json | 69 ++++
+ .../redfish/v1/schema/OemUpdateService_v1.xml | 40 +++
+ 4 files changed, 421 insertions(+), 28 deletions(-)
create mode 100644 static/redfish/v1/JsonSchemas/OemUpdateService/index.json
create mode 100644 static/redfish/v1/schema/OemUpdateService_v1.xml
diff --git a/redfish-core/lib/update_service.hpp b/redfish-core/lib/update_service.hpp
-index e420130..b3270f0 100644
+index fde878e..be0abc9 100644
--- a/redfish-core/lib/update_service.hpp
+++ b/redfish-core/lib/update_service.hpp
@@ -26,7 +26,9 @@
@@ -84,7 +82,7 @@ index e420130..b3270f0 100644
inline static void cleanUp()
{
-@@ -42,28 +55,120 @@ inline static void cleanUp()
+@@ -42,27 +55,120 @@ inline static void cleanUp()
fwUpdateErrorMatcher = nullptr;
}
inline static void activateImage(const std::string& objPath,
@@ -97,13 +95,13 @@ index e420130..b3270f0 100644
+ if (imgUriTargets.size() == 0)
+ {
+ crow::connections::systemBus->async_method_call(
-+ [](const boost::system::error_code error_code) {
-+ if (error_code)
++ [](const boost::system::error_code errorCode) {
++ if (errorCode)
+ {
+ BMCWEB_LOG_DEBUG
+ << "RequestedActivation failed: error_code = "
-+ << error_code;
-+ BMCWEB_LOG_DEBUG << "error msg = " << error_code.message();
++ << errorCode;
++ BMCWEB_LOG_DEBUG << "error msg = " << errorCode.message();
+ }
+ },
+ service, objPath, "org.freedesktop.DBus.Properties", "Set",
@@ -123,14 +121,14 @@ index e420130..b3270f0 100644
+ const boost::system::error_code ec,
+ const crow::openbmc_mapper::GetSubTreeType& subtree) {
+ if (ec || !subtree.size())
-+ {
+ {
+- BMCWEB_LOG_DEBUG << "error_code = " << errorCode;
+- BMCWEB_LOG_DEBUG << "error msg = " << errorCode.message();
+ return;
+ }
+
+ for (const auto& [invObjPath, invDict] : subtree)
- {
-- BMCWEB_LOG_DEBUG << "error_code = " << errorCode;
-- BMCWEB_LOG_DEBUG << "error msg = " << errorCode.message();
++ {
+ std::size_t idPos = invObjPath.rfind("/");
+ if ((idPos == std::string::npos) ||
+ ((idPos + 1) >= invObjPath.size()))
@@ -198,9 +196,8 @@ index e420130..b3270f0 100644
},
- service, objPath, "org.freedesktop.DBus.Properties", "Set",
- "xyz.openbmc_project.Software.Activation", "RequestedActivation",
-- std::variant(
-- "xyz.openbmc_project.Software.Activation.RequestedActivations."
-- "Active"));
+- dbus::utility::DbusVariantType(
+- "xyz.openbmc_project.Software.Activation.RequestedActivations.Active"));
+ "xyz.openbmc_project.ObjectMapper",
+ "/xyz/openbmc_project/object_mapper",
+ "xyz.openbmc_project.ObjectMapper", "GetSubTree", "/",
@@ -215,7 +212,7 @@ index e420130..b3270f0 100644
sdbusplus::message::message& m,
task::Payload&& payload)
{
-@@ -76,23 +181,25 @@ static void
+@@ -75,23 +181,26 @@ static void
m.read(objPath, interfacesProperties);
@@ -234,11 +231,9 @@ index e420130..b3270f0 100644
+ [objPath, asyncResp, imgTargets{imgUriTargets},
+ payload(std::move(payload))](
const boost::system::error_code errorCode,
-- const std::vector<
-- std::pair>>&
-- objInfo) mutable {
-+ const std::vector>>& objInfo) {
+ const std::vector<
+ std::pair>>&
+ objInfo) mutable {
if (errorCode)
{
- BMCWEB_LOG_DEBUG << "error_code = " << errorCode;
@@ -248,7 +243,7 @@ index e420130..b3270f0 100644
BMCWEB_LOG_DEBUG << "error msg = "
<< errorCode.message();
if (asyncResp)
-@@ -119,7 +226,7 @@ static void
+@@ -118,7 +227,7 @@ static void
// is added
fwAvailableTimer = nullptr;
@@ -257,7 +252,7 @@ index e420130..b3270f0 100644
if (asyncResp)
{
std::shared_ptr task =
-@@ -251,8 +358,7 @@ static void
+@@ -249,8 +358,7 @@ static void
"xyz.openbmc_project.ObjectMapper",
"/xyz/openbmc_project/object_mapper",
"xyz.openbmc_project.ObjectMapper", "GetObject", objPath.str,
@@ -267,7 +262,7 @@ index e420130..b3270f0 100644
}
}
}
-@@ -262,7 +368,7 @@ static void
+@@ -260,7 +368,7 @@ static void
static void monitorForSoftwareAvailable(
const std::shared_ptr& asyncResp,
const crow::Request& req, const std::string& url,
@@ -276,11 +271,9 @@ index e420130..b3270f0 100644
{
// Only allow one FW update at a time
if (fwUpdateInProgress != false)
-@@ -301,11 +407,12 @@ static void monitorForSoftwareAvailable(
- redfish::messages::internalError(asyncResp->res);
+@@ -300,10 +408,10 @@ static void monitorForSoftwareAvailable(
}
});
-+
task::Payload payload(req);
- auto callback = [asyncResp,
+ auto callback = [asyncResp, imgTargets{imgUriTargets},
@@ -291,7 +284,7 @@ index e420130..b3270f0 100644
};
fwUpdateInProgress = true;
-@@ -470,12 +577,15 @@ inline void requestRoutesUpdateServiceActionsSimpleUpdate(App& app)
+@@ -470,12 +578,15 @@ inline void requestRoutesUpdateServiceActionsSimpleUpdate(App& app)
std::string fwFile = imageURI.substr(separator + 1);
BMCWEB_LOG_DEBUG << "Server: " << tftpServer + " File: " << fwFile;
@@ -308,7 +301,7 @@ index e420130..b3270f0 100644
// TFTP can take up to 10 minutes depending on image size and
// connection speed. Return to caller as soon as the TFTP operation
-@@ -524,6 +634,9 @@ inline void requestRoutesUpdateService(App& app)
+@@ -524,6 +635,9 @@ inline void requestRoutesUpdateService(App& app)
asyncResp->res.jsonValue["Name"] = "Update Service";
asyncResp->res.jsonValue["HttpPushUri"] =
"/redfish/v1/UpdateService";
@@ -318,20 +311,10 @@ index e420130..b3270f0 100644
// UpdateService cannot be disabled
asyncResp->res.jsonValue["ServiceEnabled"] = true;
asyncResp->res.jsonValue["FirmwareInventory"] = {
-@@ -538,7 +651,8 @@ inline void requestRoutesUpdateService(App& app)
- asyncResp->res
- .jsonValue["Actions"]["#UpdateService.SimpleUpdate"];
- updateSvcSimpleUpdate["target"] =
-- "/redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate";
-+ "/redfish/v1/UpdateService/Actions/"
-+ "UpdateService.SimpleUpdate";
- updateSvcSimpleUpdate["TransferProtocol@Redfish.AllowableValues"] =
- {"TFTP"};
- #endif
-@@ -580,89 +694,258 @@ inline void requestRoutesUpdateService(App& app)
- "/xyz/openbmc_project/software/apply_time",
- "org.freedesktop.DBus.Properties", "Get",
- "xyz.openbmc_project.Software.ApplyTime", "RequestedApplyTime");
+@@ -575,6 +689,34 @@ inline void requestRoutesUpdateService(App& app)
+ "OnReset";
+ }
+ });
+
+ // Get the ApplyOptions value
+ crow::connections::systemBus->async_method_call(
@@ -361,33 +344,26 @@ index e420130..b3270f0 100644
+ "org.freedesktop.DBus.Properties", "Get",
+ "xyz.openbmc_project.Software.ApplyOptions", "ClearConfig");
});
-+
BMCWEB_ROUTE(app, "/redfish/v1/UpdateService/")
.privileges(redfish::privileges::patchUpdateService)
-- .methods(boost::beast::http::verb::patch)(
-- [](const crow::Request& req,
-- const std::shared_ptr& asyncResp) {
-- BMCWEB_LOG_DEBUG << "doPatch...";
-+ .methods(
-+ boost::beast::http::verb::
-+ patch)([](const crow::Request& req,
-+ const std::shared_ptr& asyncResp) {
-+ BMCWEB_LOG_DEBUG << "doPatch...";
-+
-+ std::optional pushUriOptions;
+@@ -585,12 +727,60 @@ inline void requestRoutesUpdateService(App& app)
+ BMCWEB_LOG_DEBUG << "doPatch...";
+
+ std::optional pushUriOptions;
+ std::optional> imgTargets;
+ std::optional imgTargetBusy;
+ std::optional oemProps;
-+ if (!json_util::readJson(req, asyncResp->res, "HttpPushUriOptions",
+ if (!json_util::readJson(req, asyncResp->res, "HttpPushUriOptions",
+- pushUriOptions))
+ pushUriOptions, "HttpPushUriTargets",
+ imgTargets, "HttpPushUriTargetsBusy",
+ imgTargetBusy, "Oem", oemProps))
-+ {
+ {
+ BMCWEB_LOG_DEBUG
+ << "UpdateService doPatch: Invalid request body";
-+ return;
-+ }
-+
+ return;
+ }
+
+ if (oemProps)
+ {
+ std::optional applyOptions;
@@ -406,10 +382,7 @@ index e420130..b3270f0 100644
+ {
+ return;
+ }
-
-- std::optional pushUriOptions;
-- if (!json_util::readJson(req, asyncResp->res,
-- "HttpPushUriOptions", pushUriOptions))
++
+ if (clearConfig)
+ {
+ // Set the requested image apply time value
@@ -432,82 +405,13 @@ index e420130..b3270f0 100644
+ }
+ }
+ }
-+ if (pushUriOptions)
-+ {
-+ std::optional pushUriApplyTime;
-+ if (!json_util::readJson(*pushUriOptions, asyncResp->res,
-+ "HttpPushUriApplyTime",
-+ pushUriApplyTime))
- {
- return;
- }
-
-- if (pushUriOptions)
-+ if (pushUriApplyTime)
- {
-- std::optional pushUriApplyTime;
-- if (!json_util::readJson(*pushUriOptions, asyncResp->res,
-- "HttpPushUriApplyTime",
-- pushUriApplyTime))
-+ std::optional applyTime;
-+ if (!json_util::readJson(*pushUriApplyTime, asyncResp->res,
-+ "ApplyTime", applyTime))
- {
- return;
+ if (pushUriOptions)
+ {
+ std::optional pushUriApplyTime;
+@@ -653,6 +843,98 @@ inline void requestRoutesUpdateService(App& app)
}
-
-- if (pushUriApplyTime)
-+ if (applyTime)
- {
-- std::optional applyTime;
-- if (!json_util::readJson(*pushUriApplyTime,
-- asyncResp->res, "ApplyTime",
-- applyTime))
-+ std::string applyTimeNewVal;
-+ if (applyTime == "Immediate")
- {
-+ applyTimeNewVal =
-+ "xyz.openbmc_project.Software.ApplyTime."
-+ "RequestedApplyTimes.Immediate";
-+ }
-+ else if (applyTime == "OnReset")
-+ {
-+ applyTimeNewVal =
-+ "xyz.openbmc_project.Software.ApplyTime."
-+ "RequestedApplyTimes.OnReset";
-+ }
-+ else
-+ {
-+ BMCWEB_LOG_INFO
-+ << "ApplyTime value is not in the list of "
-+ "acceptable values";
-+ messages::propertyValueNotInList(
-+ asyncResp->res, *applyTime, "ApplyTime");
- return;
- }
-
-- if (applyTime)
-+ // Set the requested image apply time value
-+ crow::connections::systemBus->async_method_call(
-+ [asyncResp](const boost::system::error_code ec) {
-+ if (ec)
-+ {
-+ BMCWEB_LOG_ERROR
-+ << "D-Bus responses error: " << ec;
-+ messages::internalError(asyncResp->res);
-+ return;
-+ }
-+ messages::success(asyncResp->res);
-+ },
-+ "xyz.openbmc_project.Settings",
-+ "/xyz/openbmc_project/software/apply_time",
-+ "org.freedesktop.DBus.Properties", "Set",
-+ "xyz.openbmc_project.Software.ApplyTime",
-+ "RequestedApplyTime",
-+ std::variant{applyTimeNewVal});
-+ }
-+ }
-+ }
+ }
+ }
+ if (imgTargetBusy)
+ {
+ if ((httpPushUriTargetBusy) && (*imgTargetBusy))
@@ -539,29 +443,7 @@ index e420130..b3270f0 100644
+ // single image in future. For now, consider first
+ // target alone.
+ if ((*imgTargets).size() != 1)
- {
-- std::string applyTimeNewVal;
-- if (applyTime == "Immediate")
-- {
-- applyTimeNewVal =
-- "xyz.openbmc_project.Software.ApplyTime."
-- "RequestedApplyTimes.Immediate";
-- }
-- else if (applyTime == "OnReset")
-- {
-- applyTimeNewVal =
-- "xyz.openbmc_project.Software.ApplyTime."
-- "RequestedApplyTimes.OnReset";
-- }
-- else
-- {
-- BMCWEB_LOG_INFO
-- << "ApplyTime value is not in the list of "
-- "acceptable values";
-- messages::propertyValueNotInList(
-- asyncResp->res, *applyTime, "ApplyTime");
-- return;
-- }
++ {
+ messages::invalidObject(asyncResp->res,
+ "HttpPushUriTargets");
+ return;
@@ -575,35 +457,19 @@ index e420130..b3270f0 100644
+ {
+ return;
+ }
-
-- // Set the requested image apply time value
-- crow::connections::systemBus->async_method_call(
-- [asyncResp](
-- const boost::system::error_code ec) {
-- if (ec)
++
+ bool swInvObjFound = false;
+ for (const std::string& path : swInvPaths)
+ {
+ std::size_t idPos = path.rfind("/");
+ if ((idPos == std::string::npos) ||
+ ((idPos + 1) >= path.size()))
- {
-- BMCWEB_LOG_ERROR
-- << "D-Bus responses error: " << ec;
- messages::internalError(asyncResp->res);
++ {
++ messages::internalError(asyncResp->res);
+ BMCWEB_LOG_DEBUG
+ << "Can't parse firmware ID!!";
- return;
- }
-- messages::success(asyncResp->res);
-- },
-- "xyz.openbmc_project.Settings",
-- "/xyz/openbmc_project/software/apply_time",
-- "org.freedesktop.DBus.Properties", "Set",
-- "xyz.openbmc_project.Software.ApplyTime",
-- "RequestedApplyTime",
-- std::variant{applyTimeNewVal});
-- }
++ return;
++ }
+ std::string swId = path.substr(idPos + 1);
+
+ if (swId == uriTargets[0])
@@ -631,20 +497,17 @@ index e420130..b3270f0 100644
+ {
+ httpPushUriTargetBusy = *imgTargetBusy;
+ httpPushUriTargets = *imgTargets;
- }
- }
-- });
++ }
++ }
+ else
+ {
+ httpPushUriTargetBusy = *imgTargetBusy;
+ }
+ }
-+ });
-+
+ });
BMCWEB_ROUTE(app, "/redfish/v1/UpdateService/")
.privileges(redfish::privileges::postUpdateService)
- .methods(boost::beast::http::verb::post)(
-@@ -672,7 +955,8 @@ inline void requestRoutesUpdateService(App& app)
+@@ -663,7 +945,8 @@ inline void requestRoutesUpdateService(App& app)
// Setup callback for when new software detected
monitorForSoftwareAvailable(asyncResp, req,
@@ -654,26 +517,17 @@ index e420130..b3270f0 100644
std::string filepath("/tmp/images/" +
boost::uuids::to_string(
-@@ -685,7 +969,7 @@ inline void requestRoutesUpdateService(App& app)
- out.close();
- BMCWEB_LOG_DEBUG << "file upload complete!!";
- });
--}
-+} // namespace redfish
-
- inline void requestRoutesSoftwareInventoryCollection(App& app)
- {
-@@ -748,8 +1032,7 @@ inline void requestRoutesSoftwareInventoryCollection(App& app)
- "/xyz/openbmc_project/object_mapper",
- "xyz.openbmc_project.ObjectMapper", "GetSubTree",
- "/xyz/openbmc_project/software", static_cast(0),
-- std::array{
-- "xyz.openbmc_project.Software.Version"});
-+ std::array{versionIntf});
- });
+@@ -739,8 +1022,7 @@ inline void requestRoutesSoftwareInventoryCollection(App& app)
+ "/xyz/openbmc_project/object_mapper",
+ "xyz.openbmc_project.ObjectMapper", "GetSubTree",
+ "/xyz/openbmc_project/software", static_cast(0),
+- std::array{
+- "xyz.openbmc_project.Software.Version"});
++ std::array{versionIntf});
+ });
}
/* Fill related item links (i.e. bmc, bios) in for inventory */
-@@ -913,7 +1196,7 @@ inline void requestRoutesSoftwareInventory(App& app)
+@@ -908,7 +1190,7 @@ inline void requestRoutesSoftwareInventory(App& app)
},
obj.second[0].first, obj.first,
"org.freedesktop.DBus.Properties", "GetAll",
@@ -682,7 +536,7 @@ index e420130..b3270f0 100644
}
if (!found)
{
-@@ -937,8 +1220,7 @@ inline void requestRoutesSoftwareInventory(App& app)
+@@ -932,8 +1214,7 @@ inline void requestRoutesSoftwareInventory(App& app)
"/xyz/openbmc_project/object_mapper",
"xyz.openbmc_project.ObjectMapper", "GetSubTree", "/",
static_cast(0),
@@ -693,10 +547,10 @@ index e420130..b3270f0 100644
}
diff --git a/static/redfish/v1/$metadata/index.xml b/static/redfish/v1/$metadata/index.xml
-index 66b6faf..f0919c9 100644
+index 445af04..de7dc77 100644
--- a/static/redfish/v1/$metadata/index.xml
+++ b/static/redfish/v1/$metadata/index.xml
-@@ -2444,6 +2444,9 @@
+@@ -2502,6 +2502,9 @@
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0025-Add-Model-CoreCount-to-ProcessorSummary.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0025-Add-Model-CoreCount-to-ProcessorSummary.patch
deleted file mode 100644
index edf4d219e..000000000
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0025-Add-Model-CoreCount-to-ProcessorSummary.patch
+++ /dev/null
@@ -1,288 +0,0 @@
-From f4f15a52610d1a199ddac948c8f849df05d86151 Mon Sep 17 00:00:00 2001
-From: Ali Ahmed
-Date: Fri, 3 Sep 2021 02:33:43 -0500
-Subject: [PATCH] Add Model & CoreCount to ProcessorSummary
-
-In Redfish ComputerSystem schema, the ProcessorSummary parameter
-lists summary information of the Processors on the system. This commit
-adds the 'Model' and 'CoreCount' properties to ProcessorSummary.
-
-If the CPU Models are different, then the 'Model' field takes the first
-entry in alphabetical order.
-
-Testing:
-1. Redfish Validator Testing successfully passed.
-2. Curl testing:
-
-curl -k -H "X-Auth-Token: $tok" https://$bmc/redfish/v1/Systems/system
-
-...
- "ProcessorSummary": {
- "CoreCount": 24,
- "Count": 2,
- "Model": "test_name",
- "Status": {
- "Health": "OK",
- "HealthRollup": "OK",
- "State": "Disabled"
- }
- },
-...
-
-Change-Id: I39cbf6ed35c35ce3a3551c9689237d5023775326
-Signed-off-by: Ali Ahmed
-Signed-off-by: AppaRao Puli
----
- redfish-core/lib/systems.hpp | 229 ++++++++++++++++++++++-------------
- 1 file changed, 147 insertions(+), 82 deletions(-)
-
-diff --git a/redfish-core/lib/systems.hpp b/redfish-core/lib/systems.hpp
-index 680a0ee..3b5f9e4 100644
---- a/redfish-core/lib/systems.hpp
-+++ b/redfish-core/lib/systems.hpp
-@@ -139,6 +139,152 @@ inline void
- }
- }
-
-+inline void getProcessorProperties(
-+ const std::shared_ptr& aResp, const std::string& service,
-+ const std::string& path,
-+ const std::vector>>&
-+ properties)
-+{
-+
-+ BMCWEB_LOG_DEBUG << "Got " << properties.size() << " Cpu properties.";
-+
-+ auto getCpuPresenceState =
-+ [aResp](const boost::system::error_code ec3,
-+ const std::variant& cpuPresenceCheck) {
-+ if (ec3)
-+ {
-+ BMCWEB_LOG_ERROR << "DBUS response error " << ec3;
-+ return;
-+ }
-+ modifyCpuPresenceState(aResp, cpuPresenceCheck);
-+ };
-+
-+ auto getCpuFunctionalState =
-+ [aResp](const boost::system::error_code ec3,
-+ const std::variant& cpuFunctionalCheck) {
-+ if (ec3)
-+ {
-+ BMCWEB_LOG_ERROR << "DBUS response error " << ec3;
-+ return;
-+ }
-+ modifyCpuFunctionalState(aResp, cpuFunctionalCheck);
-+ };
-+
-+ // Get the Presence of CPU
-+ crow::connections::systemBus->async_method_call(
-+ std::move(getCpuPresenceState), service, path,
-+ "org.freedesktop.DBus.Properties", "Get",
-+ "xyz.openbmc_project.Inventory.Item", "Present");
-+
-+ // Get the Functional State
-+ crow::connections::systemBus->async_method_call(
-+ std::move(getCpuFunctionalState), service, path,
-+ "org.freedesktop.DBus.Properties", "Get",
-+ "xyz.openbmc_project.State.Decorator.OperationalStatus", "Functional");
-+
-+ for (const auto& property : properties)
-+ {
-+ if (property.first == "Family")
-+ {
-+ // Get the CPU Model
-+ const std::string* modelStr =
-+ std::get_if(&property.second);
-+ if (!modelStr)
-+ {
-+ BMCWEB_LOG_DEBUG << "Failed to get CPU Family";
-+ // Skip it and continue with other properties
-+ continue;
-+ }
-+ if ((*modelStr).size() < 1)
-+ {
-+ BMCWEB_LOG_DEBUG << "Empty CPU Family info, skipping...";
-+ continue;
-+ }
-+ nlohmann::json& prevModel =
-+ aResp->res.jsonValue["ProcessorSummary"]["Model"];
-+ std::string* prevModelPtr = prevModel.get_ptr();
-+
-+ // If CPU Models are different, use the first entry in
-+ // alphabetical order
-+
-+ // If Model has never been set
-+ // before, set it to *modelStr
-+ if (prevModelPtr == nullptr)
-+ {
-+ prevModel = *modelStr;
-+ }
-+ // If Model has been set before, only change if new Model is
-+ // higher in alphabetical order
-+ else
-+ {
-+ if (*modelStr < *prevModelPtr)
-+ {
-+ prevModel = *modelStr;
-+ }
-+ }
-+ }
-+ else if (property.first == "CoreCount")
-+ {
-+ // Get CPU CoreCount and add it to the total
-+ const uint16_t* coreCountVal =
-+ std::get_if(&property.second);
-+
-+ if (!coreCountVal)
-+ {
-+ BMCWEB_LOG_DEBUG << "Failed to get CPU Core count";
-+ // Skip it and continue with other properties
-+ continue;
-+ }
-+
-+ nlohmann::json& coreCount =
-+ aResp->res.jsonValue["ProcessorSummary"]["CoreCount"];
-+ uint64_t* coreCountPtr = coreCount.get_ptr();
-+
-+ if (coreCountPtr == nullptr)
-+ {
-+ coreCount = *coreCountVal;
-+ }
-+ else
-+ {
-+ *coreCountPtr += *coreCountVal;
-+ }
-+ }
-+ }
-+}
-+
-+/*
-+ * @brief Get ProcessorSummary fields
-+ *
-+ * @param[in] aResp Shared pointer for completing asynchronous calls
-+ * @param[in] service dbus service for Cpu Information
-+ * @param[in] path dbus path for Cpu
-+ *
-+ * @return None.
-+ */
-+inline void getProcessorSummary(const std::shared_ptr& aResp,
-+ const std::string& service,
-+ const std::string& path)
-+{
-+
-+ crow::connections::systemBus->async_method_call(
-+ [aResp, service,
-+ path](const boost::system::error_code ec2,
-+ const std::vector>>& properties) {
-+ if (ec2)
-+ {
-+ BMCWEB_LOG_ERROR << "DBUS response error " << ec2;
-+ messages::internalError(aResp->res);
-+ return;
-+ }
-+ getProcessorProperties(aResp, service, path, properties);
-+ },
-+ service, path, "org.freedesktop.DBus.Properties", "GetAll",
-+ "xyz.openbmc_project.Inventory.Item.Cpu");
-+}
-+
- /*
- * @brief Retrieves computer system properties over dbus
- *
-@@ -309,88 +455,7 @@ inline void
- BMCWEB_LOG_DEBUG
- << "Found Cpu, now get its properties.";
-
-- crow::connections::systemBus->async_method_call(
-- [aResp, service{connection.first},
-- path](const boost::system::error_code ec2,
-- const std::vector<
-- std::pair>&
-- properties) {
-- if (ec2)
-- {
-- BMCWEB_LOG_ERROR
-- << "DBUS response error " << ec2;
-- messages::internalError(aResp->res);
-- return;
-- }
-- BMCWEB_LOG_DEBUG << "Got "
-- << properties.size()
-- << " Cpu properties.";
--
-- auto getCpuPresenceState =
-- [aResp](
-- const boost::system::error_code ec3,
-- const std::variant&
-- cpuPresenceCheck) {
-- if (ec3)
-- {
-- BMCWEB_LOG_ERROR
-- << "DBUS response error "
-- << ec3;
-- return;
-- }
-- modifyCpuPresenceState(
-- aResp, cpuPresenceCheck);
-- };
--
-- auto getCpuFunctionalState =
-- [aResp](
-- const boost::system::error_code ec3,
-- const std::variant&
-- cpuFunctionalCheck) {
-- if (ec3)
-- {
-- BMCWEB_LOG_ERROR
-- << "DBUS response error "
-- << ec3;
-- return;
-- }
-- modifyCpuFunctionalState(
-- aResp, cpuFunctionalCheck);
-- };
--
-- // Get the Presence of CPU
-- crow::connections::systemBus
-- ->async_method_call(
-- std::move(getCpuPresenceState),
-- service, path,
-- "org.freedesktop.DBus."
-- "Properties",
-- "Get",
-- "xyz.openbmc_project.Inventory."
-- "Item",
-- "Present");
--
-- // Get the Functional State
-- crow::connections::systemBus
-- ->async_method_call(
-- std::move(getCpuFunctionalState),
-- service, path,
-- "org.freedesktop.DBus."
-- "Properties",
-- "Get",
-- "xyz.openbmc_project.State."
-- "Decorator."
-- "OperationalStatus",
-- "Functional");
--
-- // Get the MODEL from
-- // xyz.openbmc_project.Inventory.Decorator.Asset
-- // support it later as Model is Empty
-- // currently.
-- },
-- connection.first, path,
-- "org.freedesktop.DBus.Properties", "GetAll",
-- "xyz.openbmc_project.Inventory.Item.Cpu");
-+ getProcessorSummary(aResp, connection.first, path);
-
- cpuHealth->inventory.emplace_back(path);
- }
---
-2.17.1
-
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0025-Add-Model-to-ProcessorSummary.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0025-Add-Model-to-ProcessorSummary.patch
new file mode 100644
index 000000000..92654bee1
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0025-Add-Model-to-ProcessorSummary.patch
@@ -0,0 +1,108 @@
+From 1b34b289eacc2ebb9c343680a3696dda4abe4a37 Mon Sep 17 00:00:00 2001
+From: Ali Ahmed
+Date: Fri, 3 Sep 2021 02:33:43 -0500
+Subject: [PATCH] Add Model to ProcessorSummary
+
+In Redfish ComputerSystem schema, the ProcessorSummary parameter
+lists summary information of the Processors on the system. This commit
+adds the 'Model' property to ProcessorSummary.
+
+If the CPU Models are different, then the 'Model' field takes the first
+entry in alphabetical order.
+
+Testing:
+1. Redfish Validator Testing successfully passed.
+2. Curl testing:
+
+curl -k -H "X-Auth-Token: $tok" https://$bmc/redfish/v1/Systems/system
+
+...
+ "ProcessorSummary": {
+ "CoreCount": 24,
+ "Count": 2,
+ "Model": "test_name",
+ "Status": {
+ "Health": "OK",
+ "HealthRollup": "OK",
+ "State": "Disabled"
+ }
+ },
+...
+
+Change-Id: I39cbf6ed35c35ce3a3551c9689237d5023775326
+Signed-off-by: Ali Ahmed
+Signed-off-by: AppaRao Puli
+---
+ redfish-core/lib/systems.hpp | 47 +++++++++++++++++++++++++++++++-----
+ 1 file changed, 41 insertions(+), 6 deletions(-)
+
+diff --git a/redfish-core/lib/systems.hpp b/redfish-core/lib/systems.hpp
+index 2f88a777..8406bd4d 100644
+--- a/redfish-core/lib/systems.hpp
++++ b/redfish-core/lib/systems.hpp
+@@ -185,21 +185,56 @@ inline void getProcessorProperties(
+
+ for (const auto& property : properties)
+ {
++ if (property.first == "Family")
++ {
++ // Get the CPU Model
++ const std::string* modelStr =
++ std::get_if(&property.second);
++ if (!modelStr)
++ {
++ BMCWEB_LOG_DEBUG << "Failed to get CPU Family";
++ // Skip it and continue with other properties
++ continue;
++ }
++ if ((*modelStr).size() < 1)
++ {
++ BMCWEB_LOG_DEBUG << "Empty CPU Family info, skipping...";
++ continue;
++ }
++ nlohmann::json& prevModel =
++ aResp->res.jsonValue["ProcessorSummary"]["Model"];
++ std::string* prevModelPtr = prevModel.get_ptr();
+
+- // TODO: Get Model
++ // If CPU Models are different, use the first entry in
++ // alphabetical order
+
+- // Get CoreCount
+- if (property.first == "CoreCount")
++ // If Model has never been set
++ // before, set it to *modelStr
++ if (prevModelPtr == nullptr)
++ {
++ prevModel = *modelStr;
++ }
++ // If Model has been set before, only change if new Model is
++ // higher in alphabetical order
++ else
++ {
++ if (*modelStr < *prevModelPtr)
++ {
++ prevModel = *modelStr;
++ }
++ }
++ }
++ else if (property.first == "CoreCount")
+ {
+-
+ // Get CPU CoreCount and add it to the total
+ const uint16_t* coreCountVal =
+ std::get_if(&property.second);
+
+ if (!coreCountVal)
+ {
+- messages::internalError(aResp->res);
+- return;
++ BMCWEB_LOG_DEBUG << "Failed to get CPU Core count";
++ // Skip it and continue with other properties
++ continue;
+ }
+
+ nlohmann::json& coreCount =
+--
+2.17.1
+
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0026-Revert-Delete-the-copy-constructor-on-the-Request.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0026-Revert-Delete-the-copy-constructor-on-the-Request.patch
new file mode 100644
index 000000000..9f21b8475
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0026-Revert-Delete-the-copy-constructor-on-the-Request.patch
@@ -0,0 +1,30 @@
+From d9488db9785b599d2c1e3a9d9fe1d2b5fa953865 Mon Sep 17 00:00:00 2001
+From: P Dheeraj Srujan Kumar
+Date: Tue, 4 Jan 2022 06:49:58 +0530
+Subject: [PATCH] Revert "Delete the copy constructor on the Request object"
+
+This commit is reverted to resolve build issues due arising due
+to removal of the copy constructor.
+
+This reverts commit 597d2b142362bafa90f24fc8c30750afab91f78f.
+---
+ http/http_request.hpp | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/http/http_request.hpp b/http/http_request.hpp
+index 4567314..be84f18 100644
+--- a/http/http_request.hpp
++++ b/http/http_request.hpp
+@@ -45,9 +45,6 @@ struct Request
+ }
+ }
+
+- Request(const Request&) = delete;
+- Request& operator=(const Request&) = delete;
+-
+ boost::beast::http::verb method() const
+ {
+ return req.method();
+--
+2.17.1
+
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0027-Convert-VariantType-to-DbusVariantType.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0027-Convert-VariantType-to-DbusVariantType.patch
new file mode 100644
index 000000000..f9bb69826
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0027-Convert-VariantType-to-DbusVariantType.patch
@@ -0,0 +1,50 @@
+From 8e78ffc54b2a5444e96cdcc1440928b04e21c2a5 Mon Sep 17 00:00:00 2001
+From: AppaRao Puli
+Date: Thu, 6 Jan 2022 01:37:08 +0000
+Subject: [PATCH] Convert VariantType to DbusVariantType
+
+All bmcweb code is now converted to use
+DbusVariantType to reduce the image size.
+
+Its missed in one place where the code is under compiler
+flag BMCWEB_ENABLE_REDFISH_PROVISIONING_FEATURE. This commit
+convert missed types to DbusVariantType.
+
+Tested:
+After conversion, image builds fine with compiler
+flag enabled. Also tested the PFR provisioned
+dbus calls and it works fine.
+
+Signed-off-by: AppaRao Puli
+---
+ redfish-core/lib/systems.hpp | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/redfish-core/lib/systems.hpp b/redfish-core/lib/systems.hpp
+index 5fbd568..e9ae7ca 100644
+--- a/redfish-core/lib/systems.hpp
++++ b/redfish-core/lib/systems.hpp
+@@ -1840,7 +1840,8 @@ inline void getProvisioningStatus(std::shared_ptr aResp)
+ BMCWEB_LOG_DEBUG << "Get OEM information.";
+ crow::connections::systemBus->async_method_call(
+ [aResp](const boost::system::error_code ec,
+- const std::vector>&
++ const std::vector<
++ std::pair>&
+ propertiesList) {
+ nlohmann::json& oemPFR =
+ aResp->res.jsonValue["Oem"]["OpenBmc"]["FirmwareProvisioning"];
+@@ -1858,8 +1859,8 @@ inline void getProvisioningStatus(std::shared_ptr aResp)
+
+ const bool* provState = nullptr;
+ const bool* lockState = nullptr;
+- for (const std::pair& property :
+- propertiesList)
++ for (const std::pair&
++ property : propertiesList)
+ {
+ if (property.first == "UfmProvisioned")
+ {
+--
+2.17.1
+
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/biosconfig/0006-Add-fix-for-broken-feature-Pending-Attributes.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/biosconfig/0006-Add-fix-for-broken-feature-Pending-Attributes.patch
index 2e72a639d..85b5b3494 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/biosconfig/0006-Add-fix-for-broken-feature-Pending-Attributes.patch
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/biosconfig/0006-Add-fix-for-broken-feature-Pending-Attributes.patch
@@ -1,6 +1,6 @@
-From f75beb0472a42d5af512661470aadf12ac460470 Mon Sep 17 00:00:00 2001
+From 8225b2dc07279c65cdfe2ddc13964d84fd2ed8bb Mon Sep 17 00:00:00 2001
From: Arun Lal K M
-Date: Fri, 8 Oct 2021 21:30:33 +0000
+Date: Tue, 4 Jan 2022 01:56:57 +0000
Subject: [PATCH] Add fix for broken feature 'Pending Attributes'.
Fix is added for the following:
@@ -10,6 +10,7 @@ Fix is added for the following:
4) Fix for incremental duplicate values in BiosAttributeRegistry.
5) POST to '/redfish/v1/Systems/system/Bios/Actions
/Bios.ChangePassword/'.
+6) Add support for Enumeration.
Tested:
By giving PATCH to 'redfish/v1/Systems/system/Bios/Settings'
@@ -133,11 +134,11 @@ Validation has succeeded.
Signed-off-by: Arun Lal K M
Signed-off-by: Snehalatha Venkatesh
---
- redfish-core/lib/bios.hpp | 586 ++++++++++++++++++++++++--------------
- 1 file changed, 376 insertions(+), 210 deletions(-)
+ redfish-core/lib/bios.hpp | 592 ++++++++++++++++++++++++--------------
+ 1 file changed, 383 insertions(+), 209 deletions(-)
diff --git a/redfish-core/lib/bios.hpp b/redfish-core/lib/bios.hpp
-index 0bb0b9e..de79be2 100644
+index 0bb0b9e..69340eb 100644
--- a/redfish-core/lib/bios.hpp
+++ b/redfish-core/lib/bios.hpp
@@ -12,13 +12,15 @@ map{attributeName,struct{attributeType,readonlyStatus,displayname,
@@ -191,7 +192,7 @@ index 0bb0b9e..de79be2 100644
enum PendingAttributesIndex
{
pendingAttrType = 0,
-@@ -64,31 +63,16 @@ enum PendingAttributesIndex
+@@ -64,30 +63,20 @@ enum PendingAttributesIndex
static std::string mapAttrTypeToRedfish(const std::string_view typeDbus)
{
std::string ret;
@@ -217,15 +218,16 @@ index 0bb0b9e..de79be2 100644
{
ret = "Integer";
}
-- else if (typeDbus == "xyz.openbmc_project.BIOSConfig."
+ else if (typeDbus == "xyz.openbmc_project.BIOSConfig."
- "Manager.AttributeType.Boolean")
-- {
++ "Manager.AttributeType.Enumeration")
+ {
- ret = "Boolean";
-- }
++ ret = "Enumeration";
+ }
else
{
- ret = "UNKNOWN";
-@@ -96,29 +80,7 @@ static std::string mapAttrTypeToRedfish(const std::string_view typeDbus)
+@@ -96,29 +85,7 @@ static std::string mapAttrTypeToRedfish(const std::string_view typeDbus)
return ret;
}
@@ -255,7 +257,7 @@ index 0bb0b9e..de79be2 100644
static std::string mapBoundTypeToRedfish(const std::string_view typeDbus)
{
std::string ret;
-@@ -201,6 +163,15 @@ inline void
+@@ -201,6 +168,15 @@ inline void
return;
}
@@ -271,7 +273,7 @@ index 0bb0b9e..de79be2 100644
const std::string& service = getObjectType.begin()->first;
crow::connections::systemBus->async_method_call(
-@@ -220,7 +191,7 @@ inline void
+@@ -220,7 +196,7 @@ inline void
asyncResp->res.jsonValue["Attributes"];
if (baseBiosTable == nullptr)
{
@@ -280,7 +282,16 @@ index 0bb0b9e..de79be2 100644
messages::internalError(asyncResp->res);
return;
}
-@@ -248,7 +219,6 @@ inline void
+@@ -230,7 +206,7 @@ inline void
+ const std::string& itemType =
+ std::get(item.second);
+ std::string attrType = mapAttrTypeToRedfish(itemType);
+- if (attrType == "String")
++ if (attrType == "String" || attrType == "Enumeration")
+ {
+ const std::string* currValue =
+ std::get_if(
+@@ -248,7 +224,6 @@ inline void
else
{
BMCWEB_LOG_ERROR << "Unsupported attribute type.";
@@ -288,7 +299,7 @@ index 0bb0b9e..de79be2 100644
}
}
},
-@@ -275,8 +245,9 @@ inline void requestRoutesBiosService(App& app)
+@@ -275,8 +250,9 @@ inline void requestRoutesBiosService(App& app)
*/
inline void requestRoutesBiosChangePassword(App& app)
{
@@ -300,7 +311,7 @@ index 0bb0b9e..de79be2 100644
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr& asyncResp) {
-@@ -342,180 +313,298 @@ inline void requestRoutesBiosSettings(App& app)
+@@ -342,180 +318,300 @@ inline void requestRoutesBiosSettings(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/Bios/Settings")
.privileges(redfish::privileges::getBios)
@@ -429,7 +440,8 @@ index 0bb0b9e..de79be2 100644
+ std::string itemType =
+ mapAttrTypeToRedfish(biosAttrType);
+
-+ if (itemType == "String")
++ if (itemType == "String" ||
++ itemType == "Enumeration")
{
- const std::string& key = item.first;
- const std::string& itemType =
@@ -625,9 +637,9 @@ index 0bb0b9e..de79be2 100644
BMCWEB_LOG_ERROR
- << "doPatch resp_handler got error " << ec;
+ << "getBiosAttributes DBUS error: " << ec;
-+ messages::internalError(asyncResp->res);
-+ return;
-+ }
+ messages::internalError(asyncResp->res);
+ return;
+ }
+
+ const BiosBaseTableType* baseBiosTable =
+ std::get_if(&retBiosTable);
@@ -635,9 +647,9 @@ index 0bb0b9e..de79be2 100644
+ if (baseBiosTable == nullptr)
+ {
+ BMCWEB_LOG_ERROR << "baseBiosTable is empty.";
- messages::internalError(asyncResp->res);
- return;
- }
++ messages::internalError(asyncResp->res);
++ return;
++ }
+
+ PendingAttributesType pendingAttributes{};
+
@@ -665,7 +677,8 @@ index 0bb0b9e..de79be2 100644
+ std::string attrType =
+ mapAttrTypeToRedfish(itemType);
+
-+ if (attrType == "String")
++ if (attrType == "String" ||
++ attrType == "Enumeration")
+ {
+ std::string val = attributes.value();
+
@@ -741,7 +754,7 @@ index 0bb0b9e..de79be2 100644
}
/**
* BiosAttributeRegistry class supports handle get method for BIOS attribute
-@@ -555,6 +644,15 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
+@@ -555,6 +651,15 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
return;
}
@@ -757,7 +770,7 @@ index 0bb0b9e..de79be2 100644
std::string service = getObjectType.begin()->first;
crow::connections::systemBus->async_method_call(
-@@ -575,8 +673,6 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
+@@ -575,8 +680,6 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
nlohmann::json& attributeArray =
asyncResp->res
.jsonValue["RegistryEntries"]["Attributes"];
@@ -766,7 +779,7 @@ index 0bb0b9e..de79be2 100644
if (baseBiosTable == nullptr)
{
BMCWEB_LOG_ERROR << "baseBiosTable == nullptr ";
-@@ -592,10 +688,11 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
+@@ -592,10 +695,11 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
mapAttrTypeToRedfish(itemType);
if (attrType == "UNKNOWN")
{
@@ -781,7 +794,15 @@ index 0bb0b9e..de79be2 100644
nlohmann::json attributeItem;
attributeItem["AttributeName"] = item.first;
attributeItem["Type"] = attrType;
-@@ -615,10 +712,30 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
+@@ -609,16 +713,37 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
+ attributeItem["MenuPath"] =
+ std::get(item.second);
+
+- if (attrType == "String")
++ if (attrType == "String" ||
++ attrType == "Enumeration")
+ {
+ const std::string* currValue =
std::get_if(
&std::get(
item.second));
@@ -812,7 +833,7 @@ index 0bb0b9e..de79be2 100644
attributeItem["CurrentValue"] =
currValue != nullptr ? *currValue : "";
attributeItem["DefaultValue"] =
-@@ -630,10 +747,30 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
+@@ -630,10 +755,30 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
std::get_if(
&std::get(
item.second));
@@ -843,7 +864,7 @@ index 0bb0b9e..de79be2 100644
attributeItem["CurrentValue"] =
currValue != nullptr ? *currValue : 0;
attributeItem["DefaultValue"] =
-@@ -641,12 +778,13 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
+@@ -641,12 +786,13 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
}
else
{
@@ -861,7 +882,7 @@ index 0bb0b9e..de79be2 100644
const std::vector&
optionsVector =
std::get(item.second);
-@@ -661,9 +799,9 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
+@@ -661,9 +807,9 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
if (optItemTypeRedfish == "UNKNOWN")
{
BMCWEB_LOG_ERROR
@@ -874,7 +895,7 @@ index 0bb0b9e..de79be2 100644
}
if (optItemTypeRedfish == "OneOf")
{
-@@ -671,6 +809,17 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
+@@ -671,6 +817,17 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
std::get_if(
&std::get(
optItem));
@@ -892,7 +913,7 @@ index 0bb0b9e..de79be2 100644
optItemJson[optItemTypeRedfish] =
currValue != nullptr ? *currValue
: "";
-@@ -681,6 +830,17 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
+@@ -681,6 +838,17 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
std::get_if(
&std::get(
optItem));
@@ -910,7 +931,7 @@ index 0bb0b9e..de79be2 100644
optItemJson[optItemTypeRedfish] =
currValue != nullptr ? *currValue
: 0;
-@@ -689,6 +849,12 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
+@@ -689,6 +857,12 @@ inline void requestRoutesBiosAttributeRegistry(App& app)
optionsArray.push_back(optItemJson);
}
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/biosconfig/0007-Add-BiosAttributeRegistry-node-under-Registries.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/biosconfig/0007-Add-BiosAttributeRegistry-node-under-Registries.patch
new file mode 100644
index 000000000..5e05e8f3a
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/biosconfig/0007-Add-BiosAttributeRegistry-node-under-Registries.patch
@@ -0,0 +1,76 @@
+From cf2e892bdd85b8fe1ccaf1296e02d8589aef05c1 Mon Sep 17 00:00:00 2001
+From: Snehalatha Venkatesh
+Date: Tue, 28 Dec 2021 11:05:50 +0000
+Subject: [PATCH] Add BiosAttributeRegistry node under Registries.
+
+/redfish/v1/Registries/ is missing node BiosAttributeRegistry
+under it. Added code to fix the same.
+
+Tested:
+1.Ran Redfish Validator and passed.
+2.GET - /redfish/v1/Registries/
+
+Response:
+{
+"@odata.id": "/redfish/v1/Registries",
+"@odata.type": "#MessageRegistryFileCollection.MessageRegistryFileCollection",
+"Description": "Collection of MessageRegistryFiles",
+"Members": [
+{
+"@odata.id": "/redfish/v1/Registries/Base"
+},
+{
+"@odata.id": "/redfish/v1/Registries/TaskEvent"
+},
+{
+"@odata.id": "/redfish/v1/Registries/ResourceEvent"
+},
+{
+"@odata.id": "/redfish/v1/Registries/BiosAttributeRegistry"
+},
+{
+"@odata.id": "/redfish/v1/Registries/OpenBMC"
+}
+],
+"Members@odata.count": 5,
+"Name": "MessageRegistryFile Collection"
+}
+
+Signed-off-by: Snehalatha Venkatesh
+---
+ redfish-core/lib/message_registries.hpp | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/redfish-core/lib/message_registries.hpp b/redfish-core/lib/message_registries.hpp
+index 510b19a..0467f1e 100644
+--- a/redfish-core/lib/message_registries.hpp
++++ b/redfish-core/lib/message_registries.hpp
+@@ -40,11 +40,12 @@ inline void handleMessageRegistryFileCollectionGet(
+ {"@odata.id", "/redfish/v1/Registries"},
+ {"Name", "MessageRegistryFile Collection"},
+ {"Description", "Collection of MessageRegistryFiles"},
+- {"Members@odata.count", 4},
++ {"Members@odata.count", 5},
+ {"Members",
+ {{{"@odata.id", "/redfish/v1/Registries/Base"}},
+ {{"@odata.id", "/redfish/v1/Registries/TaskEvent"}},
+ {{"@odata.id", "/redfish/v1/Registries/ResourceEvent"}},
++ {{"@odata.id", "/redfish/v1/Registries/BiosAttributeRegistry"}},
+ {{"@odata.id", "/redfish/v1/Registries/OpenBMC"}}}}};
+ }
+
+@@ -87,6 +88,11 @@ inline void handleMessageRoutesMessageRegistryFileGet(
+ header = &message_registries::resource_event::header;
+ url = message_registries::resource_event::url;
+ }
++ else if (registry == "BiosAttributeRegistry")
++ {
++ header = &message_registries::bios::header;
++ dmtf.clear();
++ }
+ else
+ {
+ messages::resourceNotFound(
+--
+2.17.1
+
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0001-Add-unmerged-changes-for-http-retry-support.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0001-Add-unmerged-changes-for-http-retry-support.patch
index 52135e255..7229f9aa7 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0001-Add-unmerged-changes-for-http-retry-support.patch
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0001-Add-unmerged-changes-for-http-retry-support.patch
@@ -1,6 +1,6 @@
-From 6ff897d2b5513f15445f18aae16d8439ed94f377 Mon Sep 17 00:00:00 2001
+From 43b629c180e1b4350a9e9bd917d81a49acb57731 Mon Sep 17 00:00:00 2001
From: P Dheeraj Srujan Kumar
-Date: Mon, 11 Oct 2021 18:41:27 +0530
+Date: Mon, 6 Dec 2021 19:49:01 +0000
Subject: [PATCH] Add unmerged changes for http retry support
The http retry support added upstream as a single patch was slpit into
@@ -9,45 +9,19 @@ This commit pulls in the differentail changes required to complete the
entire http retry support. and also allow for other subsequent patches
to be appplied easily.
-Change-Id: Id8ccd991b7ffc505196b1a92b23e1cd51e00bc89
+Change-Id: I43e68eeffb8d69c289dd306c1c7cafc87ad766a0
Signed-off-by: P Dheeraj Srujan Kumar
---
- http/http_client.hpp | 44 +++++++++++--------
- .../include/event_service_manager.hpp | 2 +-
- 2 files changed, 27 insertions(+), 19 deletions(-)
+ http/http_client.hpp | 32 ++++++++++++++++---
+ .../include/event_service_manager.hpp | 26 +++++++++------
+ redfish-core/lib/event_service.hpp | 1 +
+ 3 files changed, 45 insertions(+), 14 deletions(-)
diff --git a/http/http_client.hpp b/http/http_client.hpp
-index ab20eb0..aad1cce 100644
+index 0c9e387..0701d9e 100644
--- a/http/http_client.hpp
+++ b/http/http_client.hpp
-@@ -68,7 +68,6 @@ class HttpClient : public std::enable_shared_from_this
- std::optional<
- boost::beast::http::response_parser>
- parser;
-- std::vector> headers;
- boost::circular_buffer_space_optimized requestDataQueue{};
-
- ConnState state;
-@@ -137,18 +136,6 @@ class HttpClient : public std::enable_shared_from_this
-
- BMCWEB_LOG_DEBUG << __FUNCTION__ << "(): " << host << ":" << port;
-
-- req.version(static_cast(11)); // HTTP 1.1
-- req.target(uri);
-- req.method(boost::beast::http::verb::post);
--
-- // Set headers
-- for (const auto& [key, value] : headers)
-- {
-- req.set(key, value);
-- }
-- req.set(boost::beast::http::field::host, host);
-- req.keep_alive(true);
--
- req.body() = data;
- req.prepare_payload();
-
-@@ -204,6 +191,17 @@ class HttpClient : public std::enable_shared_from_this
+@@ -189,6 +189,17 @@ class HttpClient : public std::enable_shared_from_this
BMCWEB_LOG_DEBUG << "recvMessage() data: "
<< self->parser->get();
@@ -65,57 +39,125 @@ index ab20eb0..aad1cce 100644
unsigned int respCode = self->parser->get().result_int();
BMCWEB_LOG_DEBUG << "recvMessage() Header Response Code: "
<< respCode;
-@@ -398,11 +396,17 @@ class HttpClient : public std::enable_shared_from_this
+@@ -381,15 +392,17 @@ class HttpClient : public std::enable_shared_from_this
+ public:
+ explicit HttpClient(boost::asio::io_context& ioc, const std::string& id,
const std::string& destIP, const std::string& destPort,
- const std::string& destUri) :
+- const std::string& destUri,
+- const boost::beast::http::fields& httpHeader) :
++ const std::string& destUri) :
conn(ioc),
-- timer(ioc), subId(id), host(destIP), port(destPort), uri(destUri),
-- retryCount(0), maxRetryAttempts(5), retryIntervalSecs(0),
-+ timer(ioc), req(boost::beast::http::verb::post, destUri, 11),
-+ state(ConnState::initialized), subId(id), host(destIP), port(destPort),
-+ uri(destUri), retryCount(0), maxRetryAttempts(5), retryIntervalSecs(0),
- retryPolicyAction("TerminateAfterRetries"), runningTimer(false)
+- timer(ioc),
+- req(boost::beast::http::verb::post, destUri, 11, "", httpHeader),
+- subId(id), host(destIP), port(destPort)
++ timer(ioc), req(boost::beast::http::verb::post, destUri, 11), subId(id),
++ host(destIP), port(destPort)
{
-- state = ConnState::initialized;
+ // Set the request header
-+ req.set(boost::beast::http::field::host, host);
+ req.set(boost::beast::http::field::host, host);
+ req.set(boost::beast::http::field::content_type, "application/json");
-+ req.keep_alive(true);
+ req.keep_alive(true);
+
+ requestDataQueue.set_capacity(maxRequestQueueSize);
}
void sendData(const std::string& data)
-@@ -425,10 +429,14 @@ class HttpClient : public std::enable_shared_from_this
+@@ -412,6 +425,15 @@ class HttpClient : public std::enable_shared_from_this
return;
}
-- void setHeaders(
-+ void addHeaders(
- const std::vector>& httpHeaders)
- {
-- headers = httpHeaders;
++ void setHeaders(const boost::beast::http::fields& httpHeaders)
++ {
+ // Set custom headers
-+ for (const auto& [key, value] : httpHeaders)
++ for (const auto& header : httpHeaders)
+ {
-+ req.set(key, value);
++ req.set(header.name(), header.value());
+ }
- }
-
++ }
++
void setRetryConfig(const uint32_t retryAttempts,
+ const uint32_t retryTimeoutInterval)
+ {
diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
-index 8042803..0a63b8c 100644
+index e0f290c..7a2f096 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
-@@ -412,7 +412,7 @@ class Subscription : public persistent_data::UserSubscription
- reqHeaders.emplace_back(std::pair(key, val));
- }
- }
-- conn->setHeaders(reqHeaders);
-+ conn->addHeaders(reqHeaders);
- conn->sendData(msg);
- this->eventSeqNum++;
+@@ -384,7 +384,10 @@ class Subscription : public persistent_data::UserSubscription
+ eventSeqNum(1),
+ host(inHost), port(inPort), path(inPath), uriProto(inUriProto)
+ {
+- // Subscription constructor
++ // create the HttpClient connection
++ conn = std::make_shared(
++ crow::connections::systemBus->get_io_context(), id, host, port,
++ path);
+ }
+
+ Subscription(const std::shared_ptr& adaptor) :
+@@ -397,17 +400,12 @@ class Subscription : public persistent_data::UserSubscription
+
+ void sendEvent(const std::string& msg)
+ {
+- if (conn == nullptr)
++ if (conn != nullptr)
+ {
+- // create the HttpClient connection
+- conn = std::make_shared(
+- crow::connections::systemBus->get_io_context(), id, host, port,
+- path, httpHeaders);
++ conn->sendData(msg);
++ eventSeqNum++;
}
+
+- conn->sendData(msg);
+- eventSeqNum++;
+-
+ if (sseConn != nullptr)
+ {
+ sseConn->sendData(eventSeqNum, msg);
+@@ -551,6 +549,14 @@ class Subscription : public persistent_data::UserSubscription
+ }
+ }
+
++ void updatehttpHeaders()
++ {
++ if (conn != nullptr)
++ {
++ conn->setHeaders(httpHeaders);
++ }
++ }
++
+ uint64_t getEventSeqNum()
+ {
+ return eventSeqNum;
+@@ -664,6 +670,7 @@ class EventServiceManager
+ // Update retry configuration.
+ subValue->updateRetryConfig(retryAttempts, retryTimeoutInterval);
+ subValue->updateRetryPolicy();
++ subValue->updatehttpHeaders();
+ }
+ return;
+ }
+@@ -919,6 +926,7 @@ class EventServiceManager
+ // Update retry configuration.
+ subValue->updateRetryConfig(retryAttempts, retryTimeoutInterval);
+ subValue->updateRetryPolicy();
++ subValue->updatehttpHeaders();
+
+ return id;
+ }
+diff --git a/redfish-core/lib/event_service.hpp b/redfish-core/lib/event_service.hpp
+index d273aea..7739ad0 100644
+--- a/redfish-core/lib/event_service.hpp
++++ b/redfish-core/lib/event_service.hpp
+@@ -611,6 +611,7 @@ inline void requestRoutesEventDestination(App& app)
+ }
+ }
+ subValue->httpHeaders = fields;
++ subValue->updatehttpHeaders();
+ }
+
+ if (retryPolicy)
--
2.17.1
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0002-EventService-https-client-support.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0002-EventService-https-client-support.patch
index aeeafc421..2125fcc52 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0002-EventService-https-client-support.patch
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0002-EventService-https-client-support.patch
@@ -1,6 +1,6 @@
-From 3f2ad28e6e124249cde3df50c9e18c283fbcbf3e Mon Sep 17 00:00:00 2001
+From b5e0024f33afc95751afe14e66c38bf9802645f6 Mon Sep 17 00:00:00 2001
From: AppaRao Puli
-Date: Mon, 22 Feb 2021 17:07:47 +0000
+Date: Mon, 6 Dec 2021 21:39:05 +0000
Subject: [PATCH] EventService: https client support
Add https client support for push style eventing. Using this BMC can
@@ -13,15 +13,16 @@ Tested:
listener.
- Validator passed.
-Change-Id: I44c3918b39baa2eb5fddda9d635f99aa280a422a
+Change-Id: I480085344ba7bed6ec0d94876eda1d252e51cb45
Signed-off-by: AppaRao Puli
+Signed-off-by: P Dheeraj Srujan Kumar
---
http/http_client.hpp | 307 ++++++++++++------
.../include/event_service_manager.hpp | 2 +-
- 2 files changed, 202 insertions(+), 107 deletions(-)
+ 2 files changed, 204 insertions(+), 105 deletions(-)
diff --git a/http/http_client.hpp b/http/http_client.hpp
-index aad1cce..5e7ff47 100644
+index d3d3491..58b5402 100644
--- a/http/http_client.hpp
+++ b/http/http_client.hpp
@@ -20,6 +20,7 @@
@@ -30,9 +31,9 @@ index aad1cce..5e7ff47 100644
#include
+#include
#include
+ #include
#include
-
-@@ -43,6 +44,8 @@ enum class ConnState
+@@ -44,6 +45,8 @@ enum class ConnState
resolveFailed,
connectInProgress,
connectFailed,
@@ -41,7 +42,7 @@ index aad1cce..5e7ff47 100644
connected,
sendInProgress,
sendFailed,
-@@ -61,7 +64,9 @@ class HttpClient : public std::enable_shared_from_this
+@@ -62,7 +65,9 @@ class HttpClient : public std::enable_shared_from_this
{
private:
crow::async_resolve::Resolver resolver;
@@ -51,7 +52,7 @@ index aad1cce..5e7ff47 100644
boost::asio::steady_timer timer;
boost::beast::flat_static_buffer buffer;
boost::beast::http::request req;
-@@ -108,23 +113,52 @@ class HttpClient : public std::enable_shared_from_this
+@@ -110,23 +115,52 @@ class HttpClient : public std::enable_shared_from_this
const std::vector& endpointList)
{
state = ConnState::connectInProgress;
@@ -112,15 +113,7 @@ index aad1cce..5e7ff47 100644
self->state = ConnState::connected;
self->handleConnState();
});
-@@ -132,132 +166,187 @@ class HttpClient : public std::enable_shared_from_this
-
- void sendMessage(const std::string& data)
- {
-- state = ConnState::sendInProgress;
--
- BMCWEB_LOG_DEBUG << __FUNCTION__ << "(): " << host << ":" << port;
-+ state = ConnState::sendInProgress;
-
+@@ -139,124 +173,182 @@ class HttpClient : public std::enable_shared_from_this
req.body() = data;
req.prepare_payload();
@@ -173,23 +166,52 @@ index aad1cce..5e7ff47 100644
+ boost::beast::http::async_write(conn, req, std::move(respHandler));
+ }
}
--
+
void recvMessage()
{
state = ConnState::recvInProgress;
+- parser.emplace(std::piecewise_construct, std::make_tuple());
+- parser->body_limit(httpReadBodyLimit);
+ auto respHandler = [self(shared_from_this())](
+ const boost::beast::error_code ec,
+ const std::size_t& bytesTransferred) {
+ if (ec && ec != boost::asio::ssl::error::stream_truncated)
+ {
+ BMCWEB_LOG_ERROR << "recvMessage() failed: " << ec.message();
-+
+
+- // Receive the HTTP response
+- boost::beast::http::async_read(
+- conn, buffer, *parser,
+- [self(shared_from_this())](const boost::beast::error_code& ec,
+- const std::size_t& bytesTransferred) {
+- if (ec)
+- {
+- BMCWEB_LOG_ERROR << "recvMessage() failed: "
+- << ec.message();
+- self->state = ConnState::recvFailed;
+- self->handleConnState();
+- return;
+- }
+- BMCWEB_LOG_DEBUG << "recvMessage() bytes transferred: "
+- << bytesTransferred;
+- BMCWEB_LOG_DEBUG << "recvMessage() data: "
+- << self->parser->get();
+ self->state = ConnState::recvFailed;
+ self->handleConnState();
+ return;
+ }
-+
+
+- // Check if the response and header are received
+- if (!self->parser->is_done())
+- {
+- // The parser failed to receive the response
+- BMCWEB_LOG_ERROR
+- << "recvMessage() parser failed to receive response";
+- self->state = ConnState::recvFailed;
+- self->handleConnState();
+- return;
+- }
+ BMCWEB_LOG_DEBUG << "recvMessage() bytes transferred: "
+ << bytesTransferred;
+ boost::ignore_unused(bytesTransferred);
@@ -204,11 +226,26 @@ index aad1cce..5e7ff47 100644
+ self->handleConnState();
+ return;
+ }
-+
+
+- unsigned int respCode = self->parser->get().result_int();
+- BMCWEB_LOG_DEBUG << "recvMessage() Header Response Code: "
+- << respCode;
+ unsigned int respCode = self->parser->get().result_int();
+ BMCWEB_LOG_DEBUG << "recvMessage() Header Response Code: "
+ << respCode;
-+
+
+- // 2XX response is considered to be successful
+- if ((respCode < 200) || (respCode >= 300))
+- {
+- // The listener failed to receive the Sent-Event
+- BMCWEB_LOG_ERROR
+- << "recvMessage() Listener Failed to "
+- "receive Sent-Event. Header Response Code: "
+- << respCode;
+- self->state = ConnState::recvFailed;
+- self->handleConnState();
+- return;
+- }
+ // 2XX response is considered to be successful
+ if ((respCode < 200) || (respCode >= 300))
+ {
@@ -219,7 +256,14 @@ index aad1cce..5e7ff47 100644
+ self->handleConnState();
+ return;
+ }
-+
+
+- // Send is successful, Lets remove data from queue
+- // check for next request data in queue.
+- if (!self->requestDataQueue.empty())
+- {
+- self->requestDataQueue.pop_front();
+- }
+- self->state = ConnState::idle;
+ // Send is successful, Lets remove data from queue
+ // check for next request data in queue.
+ if (!self->requestDataQueue.empty())
@@ -236,17 +280,30 @@ index aad1cce..5e7ff47 100644
+ // Abort the connection since server is not keep-alive enabled
+ self->state = ConnState::abortConnection;
+ }
-+
+
+- // Keep the connection alive if server supports it
+- // Else close the connection
+- BMCWEB_LOG_DEBUG << "recvMessage() keepalive : "
+- << self->parser->keep_alive();
+- if (!self->parser->keep_alive())
+- {
+- // Abort the connection since server is not keep-alive
+- // enabled
+- self->state = ConnState::abortConnection;
+- }
+ // Returns ownership of the parsed message
+ self->parser->release();
-+
+
+- self->handleConnState();
+- });
+- }
+ self->handleConnState();
+ };
- parser.emplace(std::piecewise_construct, std::make_tuple());
- parser->body_limit(httpReadBodyLimit);
++ parser.emplace(std::piecewise_construct, std::make_tuple());
++ parser->body_limit(httpReadBodyLimit);
- // Check only for the response header
- parser->skip(true);
++ // Check only for the response header
++ parser->skip(true);
+ conn.expires_after(std::chrono::seconds(30));
+ if (sslConn)
+ {
@@ -259,28 +316,25 @@ index aad1cce..5e7ff47 100644
+ std::move(respHandler));
+ }
+ }
-+ void doClose()
-+ {
-+ state = ConnState::closeInProgress;
+ void doClose()
+ {
+ state = ConnState::closeInProgress;
+- boost::beast::error_code ec;
+- conn.socket().shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec);
+- conn.close();
-- // Receive the HTTP response
-- boost::beast::http::async_read(
-- conn, buffer, *parser,
-- [self(shared_from_this())](const boost::beast::error_code& ec,
-- const std::size_t& bytesTransferred) {
+- // not_connected happens sometimes so don't bother reporting it.
+- if (ec && ec != boost::beast::errc::not_connected)
+ // Set the timeout on the tcp stream socket for the async operation
+ conn.expires_after(std::chrono::seconds(30));
+ if (sslConn)
-+ {
+ {
+- BMCWEB_LOG_ERROR << "shutdown failed: " << ec.message();
+- return;
+ sslConn->async_shutdown([self = shared_from_this()](
+ const boost::system::error_code ec) {
- if (ec)
- {
-- BMCWEB_LOG_ERROR << "recvMessage() failed: "
-- << ec.message();
-- self->state = ConnState::recvFailed;
-- self->handleConnState();
-- return;
++ if (ec)
++ {
+ // Many https server closes connection abruptly
+ // i.e witnout close_notify. More details are at
+ // https://github.com/boostorg/beast/issues/824
@@ -294,79 +348,20 @@ index aad1cce..5e7ff47 100644
+ BMCWEB_LOG_ERROR << "doClose() failed: "
+ << ec.message();
+ }
- }
-- BMCWEB_LOG_DEBUG << "recvMessage() bytes transferred: "
-- << bytesTransferred;
-- BMCWEB_LOG_DEBUG << "recvMessage() data: "
-- << self->parser->get();
--
-- // Check if the response and header are received
-- if (!self->parser->is_done())
++ }
+ else
- {
-- // The parser failed to receive the response
-- BMCWEB_LOG_ERROR
-- << "recvMessage() parser failed to receive response";
-- self->state = ConnState::recvFailed;
-- self->handleConnState();
-- return;
++ {
+ BMCWEB_LOG_DEBUG << "Connection closed gracefully...";
- }
++ }
+ self->conn.close();
-
-- unsigned int respCode = self->parser->get().result_int();
-- BMCWEB_LOG_DEBUG << "recvMessage() Header Response Code: "
-- << respCode;
--
-- // 2XX response is considered to be successful
-- if ((respCode < 200) || (respCode >= 300))
++
+ if ((self->state != ConnState::suspended) &&
+ (self->state != ConnState::terminated))
- {
-- // The listener failed to receive the Sent-Event
-- BMCWEB_LOG_ERROR << "recvMessage() Listener Failed to "
-- "receive Sent-Event";
-- self->state = ConnState::recvFailed;
++ {
+ self->state = ConnState::closed;
- self->handleConnState();
-- return;
- }
--
-- // Send is successful, Lets remove data from queue
-- // check for next request data in queue.
-- if (!self->requestDataQueue.empty())
-- {
-- self->requestDataQueue.pop_front();
-- }
-- self->state = ConnState::idle;
--
-- // Keep the connection alive if server supports it
-- // Else close the connection
-- BMCWEB_LOG_DEBUG << "recvMessage() keepalive : "
-- << self->parser->keep_alive();
-- if (!self->parser->keep_alive())
-- {
-- // Abort the connection since server is not keep-alive
-- // enabled
-- self->state = ConnState::abortConnection;
-- }
--
-- self->handleConnState();
- });
-- }
--
-- void doClose()
-- {
-- state = ConnState::closeInProgress;
-- boost::beast::error_code ec;
-- conn.socket().shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec);
-- conn.close();
--
-- // not_connected happens sometimes so don't bother reporting it.
-- if (ec && ec != boost::beast::errc::not_connected)
-- {
-- BMCWEB_LOG_ERROR << "shutdown failed: " << ec.message();
-- return;
++ self->handleConnState();
++ }
++ });
}
- BMCWEB_LOG_DEBUG << "Connection closed gracefully";
- if ((state != ConnState::suspended) && (state != ConnState::terminated))
@@ -396,7 +391,7 @@ index aad1cce..5e7ff47 100644
}
}
-@@ -330,6 +419,7 @@ class HttpClient : public std::enable_shared_from_this
+@@ -329,6 +421,7 @@ class HttpClient : public std::enable_shared_from_this
{
case ConnState::resolveInProgress:
case ConnState::connectInProgress:
@@ -404,7 +399,7 @@ index aad1cce..5e7ff47 100644
case ConnState::sendInProgress:
case ConnState::recvInProgress:
case ConnState::closeInProgress:
-@@ -356,6 +446,7 @@ class HttpClient : public std::enable_shared_from_this
+@@ -355,6 +448,7 @@ class HttpClient : public std::enable_shared_from_this
}
case ConnState::resolveFailed:
case ConnState::connectFailed:
@@ -412,7 +407,7 @@ index aad1cce..5e7ff47 100644
case ConnState::sendFailed:
case ConnState::recvFailed:
case ConnState::retry:
-@@ -394,7 +485,8 @@ class HttpClient : public std::enable_shared_from_this
+@@ -391,7 +485,8 @@ class HttpClient : public std::enable_shared_from_this
public:
explicit HttpClient(boost::asio::io_context& ioc, const std::string& id,
const std::string& destIP, const std::string& destPort,
@@ -420,9 +415,9 @@ index aad1cce..5e7ff47 100644
+ const std::string& destUri,
+ const std::string& uriProto) :
conn(ioc),
- timer(ioc), req(boost::beast::http::verb::post, destUri, 11),
- state(ConnState::initialized), subId(id), host(destIP), port(destPort),
-@@ -407,8 +499,11 @@ class HttpClient : public std::enable_shared_from_this
+ timer(ioc), req(boost::beast::http::verb::post, destUri, 11), subId(id),
+ host(destIP), port(destPort)
+@@ -402,6 +497,10 @@ class HttpClient : public std::enable_shared_from_this
req.keep_alive(true);
requestDataQueue.set_capacity(maxRequestQueueSize);
@@ -431,16 +426,14 @@ index aad1cce..5e7ff47 100644
+ sslConn.emplace(conn, ctx);
+ }
}
--
+
void sendData(const std::string& data)
- {
- if ((state == ConnState::suspended) || (state == ConnState::terminated))
diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
-index 08d0b98..f1ce0c0 100644
+index 317f900..f581b96 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
-@@ -385,7 +385,7 @@ class Subscription : public persistent_data::UserSubscription
- {
+@@ -383,7 +383,7 @@ class Subscription : public persistent_data::UserSubscription
+ // create the HttpClient connection
conn = std::make_shared(
crow::connections::systemBus->get_io_context(), id, host, port,
- path);
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0004-Add-Server-Sent-Events-support.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0004-Add-Server-Sent-Events-support.patch
index ea521a7e4..dfa67935c 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0004-Add-Server-Sent-Events-support.patch
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0004-Add-Server-Sent-Events-support.patch
@@ -1,4 +1,4 @@
-From d7a2660f200c38e74bfcbfe55b8da1b8bed08833 Mon Sep 17 00:00:00 2001
+From ea7d0091545450721d8b9b901e2593401b50d24c Mon Sep 17 00:00:00 2001
From: AppaRao Puli
Date: Fri, 12 Mar 2021 18:53:25 +0000
Subject: [PATCH] Add Server-Sent-Events support
@@ -31,10 +31,10 @@ Signed-off-by: P Dheeraj Srujan Kumar
create mode 100644 http/server_sent_event.hpp
diff --git a/http/http_connection.hpp b/http/http_connection.hpp
-index 8e53afa..a1bbfce 100644
+index 0f20761..9cf603d 100644
--- a/http/http_connection.hpp
+++ b/http/http_connection.hpp
-@@ -378,11 +378,13 @@ class Connection :
+@@ -362,11 +362,13 @@ class Connection :
[self] { self->completeRequest(); });
});
@@ -83,10 +83,10 @@ index a983d4a..07b0265 100644
// In case of a JSON object, set the Content-Type header
void jsonMode()
diff --git a/http/routing.hpp b/http/routing.hpp
-index 5d9c8e3..bfff107 100644
+index fe9c7e9..c748580 100644
--- a/http/routing.hpp
+++ b/http/routing.hpp
-@@ -6,6 +6,7 @@
+@@ -7,6 +7,7 @@
#include "http_response.hpp"
#include "logging.hpp"
#include "privileges.hpp"
@@ -94,7 +94,7 @@ index 5d9c8e3..bfff107 100644
#include "sessions.hpp"
#include "utility.hpp"
#include "websocket.hpp"
-@@ -398,6 +399,68 @@ class WebSocketRule : public BaseRule
+@@ -397,6 +398,68 @@ class WebSocketRule : public BaseRule
std::function errorHandler;
};
@@ -163,7 +163,7 @@ index 5d9c8e3..bfff107 100644
template
struct RuleParameterTraits
{
-@@ -410,6 +473,14 @@ struct RuleParameterTraits
+@@ -409,6 +472,14 @@ struct RuleParameterTraits
return *p;
}
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0005-Add-SSE-style-subscription-support-to-eventservice.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0005-Add-SSE-style-subscription-support-to-eventservice.patch
index ee69081ef..525070d93 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0005-Add-SSE-style-subscription-support-to-eventservice.patch
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0005-Add-SSE-style-subscription-support-to-eventservice.patch
@@ -1,4 +1,4 @@
-From 799e47842e179f7c752712004f0e96d3219eee11 Mon Sep 17 00:00:00 2001
+From 278ea5570d8a162774c3d84b0706e27539e714cc Mon Sep 17 00:00:00 2001
From: AppaRao Puli
Date: Tue, 16 Mar 2021 15:37:24 +0000
Subject: [PATCH] Add SSE style subscription support to eventservice
@@ -25,18 +25,18 @@ Signed-off-by: P Dheeraj Srujan Kumar
http/http_connection.hpp | 2 +-
include/eventservice_sse.hpp | 75 +++++
.../include/event_service_manager.hpp | 109 +++++--
- redfish-core/include/server_sent_events.hpp | 290 ------------------
+ redfish-core/include/server_sent_events.hpp | 289 ------------------
redfish-core/lib/event_service.hpp | 8 +-
src/webserver_main.cpp | 2 +
- 6 files changed, 164 insertions(+), 322 deletions(-)
+ 6 files changed, 164 insertions(+), 321 deletions(-)
create mode 100644 include/eventservice_sse.hpp
delete mode 100644 redfish-core/include/server_sent_events.hpp
diff --git a/http/http_connection.hpp b/http/http_connection.hpp
-index a1bbfce..2d08501 100644
+index 9cf603d..cf629ea 100644
--- a/http/http_connection.hpp
+++ b/http/http_connection.hpp
-@@ -382,7 +382,7 @@ class Connection :
+@@ -366,7 +366,7 @@ class Connection :
boost::iequals(
thisReq.getHeaderValue(boost::beast::http::field::upgrade),
"websocket")) ||
@@ -127,17 +127,18 @@ index 0000000..14daf00
+} // namespace eventservice_sse
+} // namespace redfish
diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
-index 3f398d7..dd833ce 100644
+index f581b96..57a2ab8 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
-@@ -22,15 +22,17 @@
+@@ -23,6 +23,7 @@
#include
#include
+#include
#include
+ #include
#include
- #include
+@@ -30,9 +31,10 @@
#include
#include
#include
@@ -149,7 +150,7 @@ index 3f398d7..dd833ce 100644
#include
#include
#include
-@@ -46,9 +48,27 @@ using ReadingsObjType =
+@@ -48,9 +50,27 @@ using ReadingsObjType =
static constexpr const char* eventFormatType = "Event";
static constexpr const char* metricReportFormatType = "MetricReport";
@@ -176,10 +177,10 @@ index 3f398d7..dd833ce 100644
+
namespace message_registries
{
- inline boost::beast::span
-@@ -68,24 +88,6 @@ inline boost::beast::span
+ inline std::span
+@@ -70,24 +90,6 @@ inline std::span
}
- return boost::beast::span(openbmc::registry);
+ return {openbmc::registry};
}
-} // namespace message_registries
-
@@ -201,8 +202,8 @@ index 3f398d7..dd833ce 100644
-{
static const Message*
getMsgFromRegistry(const std::string& messageKey,
- const boost::beast::span& registry)
-@@ -388,11 +390,9 @@ class Subscription : public persistent_data::UserSubscription
+ const std::span& registry)
+@@ -386,11 +388,9 @@ class Subscription : public persistent_data::UserSubscription
path, uriProto);
}
@@ -217,7 +218,7 @@ index 3f398d7..dd833ce 100644
~Subscription() = default;
-@@ -417,7 +417,7 @@ class Subscription : public persistent_data::UserSubscription
+@@ -404,7 +404,7 @@ class Subscription : public persistent_data::UserSubscription
if (sseConn != nullptr)
{
@@ -226,7 +227,7 @@ index 3f398d7..dd833ce 100644
}
}
-@@ -508,6 +508,7 @@ class Subscription : public persistent_data::UserSubscription
+@@ -495,6 +495,7 @@ class Subscription : public persistent_data::UserSubscription
this->sendEvent(
msg.dump(2, ' ', true, nlohmann::json::error_handler_t::replace));
@@ -234,7 +235,7 @@ index 3f398d7..dd833ce 100644
}
#endif
-@@ -578,14 +579,39 @@ class Subscription : public persistent_data::UserSubscription
+@@ -557,14 +558,39 @@ class Subscription : public persistent_data::UserSubscription
return eventSeqNum;
}
@@ -275,16 +276,16 @@ index 3f398d7..dd833ce 100644
};
class EventServiceManager
-@@ -942,6 +968,8 @@ class EventServiceManager
- subValue->updateRetryConfig(retryAttempts, retryTimeoutInterval);
+@@ -922,6 +948,8 @@ class EventServiceManager
subValue->updateRetryPolicy();
+ subValue->updatehttpHeaders();
+ // Set Subscription ID for back trace
+ subValue->setSubscriptionId(id);
return id;
}
-@@ -970,11 +998,40 @@ class EventServiceManager
+@@ -950,11 +978,40 @@ class EventServiceManager
}
}
@@ -327,10 +328,10 @@ index 3f398d7..dd833ce 100644
std::vector idList;
diff --git a/redfish-core/include/server_sent_events.hpp b/redfish-core/include/server_sent_events.hpp
deleted file mode 100644
-index 7613d7b..0000000
+index dd3cd36..0000000
--- a/redfish-core/include/server_sent_events.hpp
+++ /dev/null
-@@ -1,290 +0,0 @@
+@@ -1,289 +0,0 @@
-
-/*
-// Copyright (c) 2020 Intel Corporation
@@ -350,7 +351,6 @@ index 7613d7b..0000000
-#pragma once
-
-#include
--#include
-#include
-#include
-#include
@@ -622,10 +622,10 @@ index 7613d7b..0000000
-
-} // namespace crow
diff --git a/redfish-core/lib/event_service.hpp b/redfish-core/lib/event_service.hpp
-index 8609862..249e594 100644
+index 91a041e..9ad2bbd 100644
--- a/redfish-core/lib/event_service.hpp
+++ b/redfish-core/lib/event_service.hpp
-@@ -37,8 +37,6 @@ static constexpr const std::array supportedResourceTypes = {
+@@ -40,8 +40,6 @@ static constexpr const std::array supportedResourceTypes = {
"Task"};
#endif
@@ -634,16 +634,16 @@ index 8609862..249e594 100644
inline void requestRoutesEventService(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/EventService/")
-@@ -50,6 +48,8 @@ inline void requestRoutesEventService(App& app)
- {"@odata.type", "#EventService.v1_5_0.EventService"},
- {"Id", "EventService"},
- {"Name", "Event Service"},
-+ {"ServerSentEventUri",
-+ "/redfish/v1/EventService/Subscriptions/SSE"},
- {"Subscriptions",
- {{"@odata.id", "/redfish/v1/EventService/Subscriptions"}}},
- {"Actions",
-@@ -90,9 +90,7 @@ inline void requestRoutesEventService(App& app)
+@@ -54,6 +52,8 @@ inline void requestRoutesEventService(App& app)
+ {"@odata.type", "#EventService.v1_5_0.EventService"},
+ {"Id", "EventService"},
+ {"Name", "Event Service"},
++ {"ServerSentEventUri",
++ "/redfish/v1/EventService/Subscriptions/SSE"},
+ {"Subscriptions",
+ {{"@odata.id", "/redfish/v1/EventService/Subscriptions"}}},
+ {"Actions",
+@@ -92,9 +92,7 @@ inline void requestRoutesEventService(App& app)
.privileges(redfish::privileges::patchEventService)
.methods(boost::beast::http::verb::patch)(
[](const crow::Request& req,
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0006-Add-EventService-SSE-filter-support.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0006-Add-EventService-SSE-filter-support.patch
index 3914cc81a..05018a47d 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0006-Add-EventService-SSE-filter-support.patch
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0006-Add-EventService-SSE-filter-support.patch
@@ -1,4 +1,4 @@
-From 769f0e20d0a7e786d7091ffb7ee57d35204dfa28 Mon Sep 17 00:00:00 2001
+From 64a9d1826b7b4a66750f7ecaaff7bcf7e0d23932 Mon Sep 17 00:00:00 2001
From: AppaRao Puli
Date: Wed, 17 Mar 2021 01:16:50 +0000
Subject: [PATCH] Add EventService SSE filter support
@@ -59,7 +59,7 @@ index 14daf00..fed7fec 100644
+ std::string queryFilters;
+ if (req.urlParams.size())
+ {
-+ boost::urls::url_view::params_type::iterator it =
++ boost::urls::query_params_view::iterator it =
+ req.urlParams.find("$filter");
+ if (it == req.urlParams.end())
+ {
@@ -155,14 +155,14 @@ index 14daf00..fed7fec 100644
+ // Check for Message ID in each of the selected Registry
+ for (const std::string& it : registryPrefix)
+ {
-+ const boost::beast::span<
++ const std::span<
+ const redfish::message_registries::MessageEntry>
+ registry =
+ redfish::message_registries::getRegistryFromPrefix(
+ it);
+
+ if (std::any_of(
-+ registry.cbegin(), registry.cend(),
++ registry.begin(), registry.end(),
+ [&id](
+ const redfish::message_registries::MessageEntry&
+ messageEntry) {
@@ -203,10 +203,10 @@ index 14daf00..fed7fec 100644
std::string id =
redfish::EventServiceManager::getInstance().addSubscription(subValue,
diff --git a/redfish-core/include/error_messages.hpp b/redfish-core/include/error_messages.hpp
-index 3d11cc4..90084e3 100644
+index 7f53fa4..9c688b4 100644
--- a/redfish-core/include/error_messages.hpp
+++ b/redfish-core/include/error_messages.hpp
-@@ -971,6 +971,15 @@ nlohmann::json mutualExclusiveProperties(const std::string& arg1,
+@@ -985,6 +985,15 @@ nlohmann::json mutualExclusiveProperties(const std::string& arg1,
void mutualExclusiveProperties(crow::Response& res, const std::string& arg1,
const std::string& arg2);
@@ -223,10 +223,10 @@ index 3d11cc4..90084e3 100644
} // namespace redfish
diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
-index dd833ce..861f4cb 100644
+index 57a2ab8..aae9f02 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
-@@ -55,6 +55,11 @@ static constexpr const char* eventServiceFile =
+@@ -57,6 +57,11 @@ static constexpr const char* eventServiceFile =
static constexpr const uint8_t maxNoOfSubscriptions = 20;
static constexpr const uint8_t maxNoOfSSESubscriptions = 10;
@@ -239,10 +239,10 @@ index dd833ce..861f4cb 100644
static std::optional inotifyConn;
static constexpr const char* redfishEventLogDir = "/var/log";
diff --git a/redfish-core/lib/event_service.hpp b/redfish-core/lib/event_service.hpp
-index 249e594..6f01707 100644
+index 9ad2bbd..99c3bfd 100644
--- a/redfish-core/lib/event_service.hpp
+++ b/redfish-core/lib/event_service.hpp
-@@ -21,11 +21,6 @@
+@@ -24,11 +24,6 @@
namespace redfish
{
@@ -255,10 +255,10 @@ index 249e594..6f01707 100644
"TerminateAfterRetries", "SuspendRetries", "RetryForever"};
diff --git a/redfish-core/src/error_messages.cpp b/redfish-core/src/error_messages.cpp
-index 9c28e8f..2394398 100644
+index 2087a67..ecb3721 100644
--- a/redfish-core/src/error_messages.cpp
+++ b/redfish-core/src/error_messages.cpp
-@@ -2173,6 +2173,32 @@ void mutualExclusiveProperties(crow::Response& res, const std::string& arg1,
+@@ -2203,6 +2203,32 @@ void mutualExclusiveProperties(crow::Response& res, const std::string& arg1,
addMessageToErrorJson(res.jsonValue, mutualExclusiveProperties(arg1, arg2));
}
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0007-EventService-Log-events-for-subscription-actions.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0007-EventService-Log-events-for-subscription-actions.patch
index 3be65ee2a..7cad022f3 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0007-EventService-Log-events-for-subscription-actions.patch
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0007-EventService-Log-events-for-subscription-actions.patch
@@ -1,4 +1,4 @@
-From b8eb53886106e44e3668857b13f8642d2ad3cfbf Mon Sep 17 00:00:00 2001
+From b5020756ae3fbff6283c293c74b779d656429f3a Mon Sep 17 00:00:00 2001
From: AppaRao Puli
Date: Fri, 27 Aug 2021 16:02:01 +0000
Subject: [PATCH] EventService: Log events for subscription actions
@@ -21,13 +21,14 @@ Tested:
Change-Id: I3745fa6357bd215379781a9818d9acc02a853d79
Signed-off-by: AppaRao Puli
Signed-off-by: Ayushi Smriti
+Signed-off-by: P Dheeraj Srujan Kumar
---
.../include/event_service_manager.hpp | 35 ++++++++++++++++---
redfish-core/lib/event_service.hpp | 2 +-
2 files changed, 32 insertions(+), 5 deletions(-)
diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
-index c3e7f61..e9bdbfa 100644
+index aae9f02..69db652 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
@@ -21,6 +21,7 @@
@@ -38,7 +39,7 @@ index c3e7f61..e9bdbfa 100644
#include
#include
-@@ -788,7 +789,7 @@ class EventServiceManager
+@@ -780,7 +781,7 @@ class EventServiceManager
}
}
@@ -47,7 +48,7 @@ index c3e7f61..e9bdbfa 100644
{
persistent_data::EventServiceStore::getInstance()
.eventServiceConfig.enabled = serviceEnabled;
-@@ -835,7 +836,7 @@ class EventServiceManager
+@@ -827,7 +828,7 @@ class EventServiceManager
if (updateConfig)
{
@@ -56,7 +57,7 @@ index c3e7f61..e9bdbfa 100644
}
if (updateRetryCfg)
-@@ -947,7 +948,7 @@ class EventServiceManager
+@@ -939,7 +940,7 @@ class EventServiceManager
if (updateFile)
{
@@ -65,7 +66,7 @@ index c3e7f61..e9bdbfa 100644
}
#ifndef BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES
-@@ -962,6 +963,13 @@ class EventServiceManager
+@@ -955,6 +956,13 @@ class EventServiceManager
// Set Subscription ID for back trace
subValue->setSubscriptionId(id);
@@ -79,7 +80,7 @@ index c3e7f61..e9bdbfa 100644
return id;
}
-@@ -986,7 +994,14 @@ class EventServiceManager
+@@ -979,7 +987,14 @@ class EventServiceManager
persistent_data::EventServiceStore::getInstance()
.subscriptionsConfigMap.erase(obj2);
updateNoOfSubscribersCount();
@@ -95,7 +96,7 @@ index c3e7f61..e9bdbfa 100644
}
}
-@@ -1008,6 +1023,18 @@ class EventServiceManager
+@@ -1001,6 +1016,18 @@ class EventServiceManager
}
}
@@ -115,10 +116,10 @@ index c3e7f61..e9bdbfa 100644
{
return subscriptionsMap.size();
diff --git a/redfish-core/lib/event_service.hpp b/redfish-core/lib/event_service.hpp
-index 9def549..6a8421f 100644
+index 99c3bfd..15e45dc 100644
--- a/redfish-core/lib/event_service.hpp
+++ b/redfish-core/lib/event_service.hpp
-@@ -617,7 +617,7 @@ inline void requestRoutesEventDestination(App& app)
+@@ -624,7 +624,7 @@ inline void requestRoutesEventDestination(App& app)
subValue->updateRetryPolicy();
}
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0008-Add-checks-on-Event-Subscription-input-parameters.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0008-Add-checks-on-Event-Subscription-input-parameters.patch
index 84ceb4ba8..a46708ee5 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0008-Add-checks-on-Event-Subscription-input-parameters.patch
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0008-Add-checks-on-Event-Subscription-input-parameters.patch
@@ -1,4 +1,4 @@
-From 05fdea2bb8e486b058d137a067ce1f5c885d2a96 Mon Sep 17 00:00:00 2001
+From ee758f1f97890f51707e72b3c6b08c8c46c41595 Mon Sep 17 00:00:00 2001
From: Nitin Wankhade
Date: Mon, 28 Jun 2021 19:59:57 +0000
Subject: [PATCH] Add checks on Event Subscription input parameters
@@ -16,17 +16,18 @@ Tested
Change-Id: Iec2cd766c0e137b72706fc2da468d4fefd8fbaae
Signed-off-by: Nitin Wankhade
+Signed-off-by: P Dheeraj Srujan Kumar
---
- redfish-core/lib/event_service.hpp | 30 ++++++++++++++++++++++++++++++
- 1 file changed, 30 insertions(+)
+ redfish-core/lib/event_service.hpp | 26 ++++++++++++++++++++++++++
+ 1 file changed, 26 insertions(+)
diff --git a/redfish-core/lib/event_service.hpp b/redfish-core/lib/event_service.hpp
-index 52b01e5..f8a1671 100644
+index 15e45dc..27dec86 100644
--- a/redfish-core/lib/event_service.hpp
+++ b/redfish-core/lib/event_service.hpp
-@@ -19,6 +19,10 @@
- #include
- #include
+@@ -22,6 +22,10 @@
+
+ #include
+#define MAX_CONTEXT_SIZE 256
+#define MAX_DESTINATION_SIZE 1024
@@ -35,7 +36,7 @@ index 52b01e5..f8a1671 100644
namespace redfish
{
static constexpr const std::array supportedRetryPolicies = {
-@@ -220,6 +224,12 @@ inline void requestRoutesEventDestinationCollection(App& app)
+@@ -223,6 +227,12 @@ inline void requestRoutesEventDestinationCollection(App& app)
return;
}
@@ -48,7 +49,7 @@ index 52b01e5..f8a1671 100644
if (regPrefixes && msgIds)
{
if (regPrefixes->size() && msgIds->size())
-@@ -330,11 +340,31 @@ inline void requestRoutesEventDestinationCollection(App& app)
+@@ -333,13 +343,29 @@ inline void requestRoutesEventDestinationCollection(App& app)
if (context)
{
@@ -64,22 +65,20 @@ index 52b01e5..f8a1671 100644
{
+ size_t cumulativeLen = 0;
+
-+ for (nlohmann::json& itr : *headers)
-+ {
-+ std::string hdr{itr.dump(
+ for (const nlohmann::json& headerChunk : *headers)
+ {
++ std::string hdr{headerChunk.dump(
+ -1, ' ', true, nlohmann::json::error_handler_t::replace)};
+ cumulativeLen += hdr.length();
-+
+ if (cumulativeLen > MAX_HEADER_SIZE)
+ {
+ messages::propertySizeExceeded(asyncResp->res,
+ "HttpHeaders");
+ return;
+ }
-+ }
- subValue->httpHeaders = *headers;
- }
-
+ for (const auto& item : headerChunk.items())
+ {
+ const std::string* value =
--
2.17.1
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0009-Restructure-Redifsh-EventLog-Transmit-code-flow.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0009-Restructure-Redifsh-EventLog-Transmit-code-flow.patch
index d1fe475f5..918560f4d 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0009-Restructure-Redifsh-EventLog-Transmit-code-flow.patch
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0009-Restructure-Redifsh-EventLog-Transmit-code-flow.patch
@@ -1,5 +1,5 @@
-From 542505dff60e3921b00b51acae882e207d46f1a6 Mon Sep 17 00:00:00 2001
-From: Krzysztof Grobelny
+From d047619b7003882846b108f519b00cdd41265361 Mon Sep 17 00:00:00 2001
+From: P Dheeraj Srujan Kumar
Date: Wed, 14 Jul 2021 14:13:11 +0000
Subject: [PATCH] Restructure Redfish EventLog Transmit code flow
@@ -35,7 +35,7 @@ Signed-off-by: P Dheeraj Srujan Kumar
1 file changed, 76 insertions(+), 32 deletions(-)
diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
-index e9bdbfa..5c4de70 100644
+index 3208fb3..86c90fb 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
@@ -134,15 +134,10 @@ static const Message* formatMessage(const std::string_view& messageID)
@@ -55,7 +55,7 @@ index e9bdbfa..5c4de70 100644
// Get the entry timestamp
std::time_t curTs = 0;
-@@ -621,6 +616,7 @@ class EventServiceManager
+@@ -628,6 +623,7 @@ class EventServiceManager
}
std::string lastEventTStr;
@@ -63,7 +63,7 @@ index e9bdbfa..5c4de70 100644
size_t noOfEventLogSubscribers{0};
size_t noOfMetricReportSubscribers{0};
std::shared_ptr matchTelemetryMonitor;
-@@ -1163,7 +1159,22 @@ class EventServiceManager
+@@ -1172,7 +1168,22 @@ class EventServiceManager
#ifndef BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES
void cacheLastEventTimestamp()
{
@@ -87,7 +87,7 @@ index e9bdbfa..5c4de70 100644
std::ifstream logStream(redfishEventLogFile);
if (!logStream.good())
{
-@@ -1171,27 +1182,44 @@ class EventServiceManager
+@@ -1180,27 +1191,44 @@ class EventServiceManager
return;
}
std::string logEntry;
@@ -143,7 +143,7 @@ index e9bdbfa..5c4de70 100644
std::ifstream logStream(redfishEventLogFile);
if (!logStream.good())
{
-@@ -1201,27 +1229,21 @@ class EventServiceManager
+@@ -1210,27 +1238,21 @@ class EventServiceManager
std::vector eventRecords;
@@ -178,7 +178,7 @@ index e9bdbfa..5c4de70 100644
std::string timestamp;
std::string messageID;
-@@ -1233,6 +1255,16 @@ class EventServiceManager
+@@ -1242,6 +1264,16 @@ class EventServiceManager
continue;
}
@@ -195,7 +195,7 @@ index e9bdbfa..5c4de70 100644
std::string registryName;
std::string messageKey;
event_log::getRegistryAndMessageKey(messageID, registryName,
-@@ -1242,11 +1274,23 @@ class EventServiceManager
+@@ -1251,11 +1283,23 @@ class EventServiceManager
continue;
}
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0010-Remove-Terminated-Event-Subscriptions.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0010-Remove-Terminated-Event-Subscriptions.patch
index 9af5a066b..f37bc241b 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0010-Remove-Terminated-Event-Subscriptions.patch
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/eventservice/0010-Remove-Terminated-Event-Subscriptions.patch
@@ -1,5 +1,5 @@
-From f665ba085bb2310f008b7534f827fb401ad973c2 Mon Sep 17 00:00:00 2001
-From: Krzysztof Grobelny
+From 5d13aa636aba6c68ab5a74e589cac35f4e925129 Mon Sep 17 00:00:00 2001
+From: P Dheeraj Srujan Kumar
Date: Tue, 12 Oct 2021 08:19:51 +0000
Subject: [PATCH] Delete/Remove Terminated Event Subscription(s)
@@ -22,15 +22,15 @@ Tested:
Change-Id: If447acb2db74fb29a5d1cfe6194b77cda82bc8a1
Signed-off-by: P Dheeraj Srujan Kumar
---
- http/http_client.hpp | 43 +++++++++++++++----
- .../include/event_service_manager.hpp | 36 ++++++++++++++++
- 2 files changed, 70 insertions(+), 9 deletions(-)
+ http/http_client.hpp | 48 +++++++++++++++----
+ .../include/event_service_manager.hpp | 36 ++++++++++++++
+ 2 files changed, 75 insertions(+), 9 deletions(-)
diff --git a/http/http_client.hpp b/http/http_client.hpp
-index 5e7ff47..54ae2c3 100644
+index 58b5402..745eeb6 100644
--- a/http/http_client.hpp
+++ b/http/http_client.hpp
-@@ -55,6 +55,8 @@ enum class ConnState
+@@ -56,6 +56,8 @@ enum class ConnState
closeInProgress,
closed,
suspended,
@@ -39,7 +39,7 @@ index 5e7ff47..54ae2c3 100644
terminated,
abortConnection,
retry
-@@ -288,7 +290,14 @@ class HttpClient : public std::enable_shared_from_this
+@@ -290,7 +292,14 @@ class HttpClient : public std::enable_shared_from_this
}
void doClose()
{
@@ -55,7 +55,7 @@ index 5e7ff47..54ae2c3 100644
// Set the timeout on the tcp stream socket for the async operation
conn.expires_after(std::chrono::seconds(30));
-@@ -318,8 +327,11 @@ class HttpClient : public std::enable_shared_from_this
+@@ -320,8 +329,11 @@ class HttpClient : public std::enable_shared_from_this
}
self->conn.close();
@@ -69,7 +69,7 @@ index 5e7ff47..54ae2c3 100644
{
self->state = ConnState::closed;
self->handleConnState();
-@@ -341,8 +353,11 @@ class HttpClient : public std::enable_shared_from_this
+@@ -343,8 +355,11 @@ class HttpClient : public std::enable_shared_from_this
}
conn.close();
@@ -83,7 +83,7 @@ index 5e7ff47..54ae2c3 100644
{
state = ConnState::closed;
handleConnState();
-@@ -365,8 +380,7 @@ class HttpClient : public std::enable_shared_from_this
+@@ -367,8 +382,7 @@ class HttpClient : public std::enable_shared_from_this
BMCWEB_LOG_DEBUG << "Retry policy: " << retryPolicyAction;
if (retryPolicyAction == "TerminateAfterRetries")
{
@@ -93,7 +93,7 @@ index 5e7ff47..54ae2c3 100644
}
if (retryPolicyAction == "SuspendRetries")
{
-@@ -423,6 +437,7 @@ class HttpClient : public std::enable_shared_from_this
+@@ -425,6 +439,7 @@ class HttpClient : public std::enable_shared_from_this
case ConnState::sendInProgress:
case ConnState::recvInProgress:
case ConnState::closeInProgress:
@@ -101,7 +101,7 @@ index 5e7ff47..54ae2c3 100644
{
BMCWEB_LOG_DEBUG << "Async operation is already in progress";
break;
-@@ -439,7 +454,7 @@ class HttpClient : public std::enable_shared_from_this
+@@ -441,11 +456,16 @@ class HttpClient : public std::enable_shared_from_this
break;
}
case ConnState::suspended:
@@ -110,8 +110,17 @@ index 5e7ff47..54ae2c3 100644
{
doClose();
break;
-@@ -506,7 +521,8 @@ class HttpClient : public std::enable_shared_from_this
- }
+ }
++ case ConnState::terminated:
++ {
++ BMCWEB_LOG_DEBUG << "Connection Terminated";
++ break;
++ }
+ case ConnState::resolveFailed:
+ case ConnState::connectFailed:
+ case ConnState::handshakeFailed:
+@@ -505,7 +525,8 @@ class HttpClient : public std::enable_shared_from_this
+
void sendData(const std::string& data)
{
- if ((state == ConnState::suspended) || (state == ConnState::terminated))
@@ -120,7 +129,7 @@ index 5e7ff47..54ae2c3 100644
{
return;
}
-@@ -524,6 +540,15 @@ class HttpClient : public std::enable_shared_from_this
+@@ -523,6 +544,15 @@ class HttpClient : public std::enable_shared_from_this
return;
}
@@ -133,14 +142,14 @@ index 5e7ff47..54ae2c3 100644
+ return false;
+ }
+
- void addHeaders(
- const std::vector>& httpHeaders)
+ void setHeaders(const boost::beast::http::fields& httpHeaders)
{
+ // Set custom headers
diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
-index 6f60a31..363adb0 100644
+index 69db652..5d71c63 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
-@@ -591,6 +591,14 @@ class Subscription : public persistent_data::UserSubscription
+@@ -588,6 +588,14 @@ class Subscription : public persistent_data::UserSubscription
return std::nullopt;
}
@@ -155,7 +164,7 @@ index 6f60a31..363adb0 100644
private:
std::shared_ptr