attachment
<html aria-label="message body"><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Mike, thanks again for your work on this. I'll make comments etc. in the wiki page.<div><br><div><div>
Smith<br><br><br>
</div>
<div><br><blockquote type="cite"><div>On Aug 27, 2026, at 11:26 AM, Michael Sweet <msweet@msweet.org> wrote:</div><br class="Apple-interchange-newline"><div><div>Smith/All,<br><br>I have put together a Wiki page that compares FWUPDATE and SYSTEM firmware updates with some proposed changes at the bottom - simplifications to FWUPDATE (25 -> 17 "printer-state-reasons") and a list of errata for a future SYSTEM spec to align them:<br><br> https://github.com/istopwg/ippsample/wiki/Firmware-Updates<br><br>Here are the proposed FWUPDATE changes inline:<br><br>For FWUPDATE, simplify the "printer-state-reasons" keywords to the following list:<br><br>- 'firmware-repository-access-error': Unable to access the configured firmware repository (permissions/server-side issue)<br>- 'firmware-repository-unreachable': Unable to connect to the configured firmware repository<br>- 'firmware-update-acquisition-failed': Unable to download new firmware<br>- 'firmware-update-acquisition-in-progress': Downloading new firmware<br>- 'firmware-update-activation-failed': Unable to activate new firmware<br>- 'firmware-update-activation-in-progress': Activation in progress (might be paired with 'restarting')<br>- 'firmware-update-delay-until-specified': The "delay-update-until" operation attribute was specified<br>- 'firmware-update-failed': The most recent firmware update has failed (might be paired with other 'xxx-failed' keywords)<br>- 'firmware-update-in-progress': A firmware update is in progress (might be paired with other 'xxx-in-progress' keywords)<br>- 'firmware-update-installation-failed': Unable to install new firmware<br>- 'firmware-update-installation-in-progress': Installing new firmware<br>- 'firmware-update-pending': New firmware is scheduled to be installed<br>- 'firmware-update-requested': New firmware has been requested to be installed<br>- 'firmware-update-successful': Firmware has been updated successfully<br>- 'firmware-update-validation-failed': Unable to validate new firmware<br>- 'firmware-update-validation-in-progress': Validating new firmware<br>- 'restarting': Printer is/about to restart and will not be accessible for a period of time.<br><br>This uses a common "firmware-update" prefix instead of "new-firmware-update" and eliminates the "cleanup" and "recovery" values which are both implementation-specific and probably unnecessary details - all the Client cares about is "the Printer did this work for the firmware update". Also, failed cleanup/recovery isn't actionable by the Client.<br><br>Also add a "printer-new-firmware-restart-time (integer(0:MAX))" Printer Status attribute that provides the estimated number of seconds that the Printer will be inaccessible when installing/activating new firmware.<br><br><br><blockquote type="cite">On Aug 27, 2026, at 11:21 AM, Smith Kennedy <smitty.standards@gmail.com> wrote:<br><br>Thanks for your thoughts below Mike! I appreciate you taking the time to do this.<br><br>Also a reminder that "activation" is one of the states we've defined in FWUPDATE.<br><br>Smith<br><br><br><br><blockquote type="cite">On Aug 27, 2026, at 9:16 AM, Michael Sweet <msweet@msweet.org> wrote:<br><br>Smith,<br><br><blockquote type="cite">On Aug 27, 2026, at 10:42 AM, Smith <smitty.standards@gmail.com> wrote:<br><br>I think specifically we are interested in the time span when the Printer is unreachable during the update process.<br></blockquote><br>There is a disconnect in the state model for firmware resources between FWUPDATE and SYSTEM, namely that the SYSTEM "resource-state" attribute has states 'pending', 'available', 'installed', 'canceled', and 'aborted' while FWUPDATE uses "printer-state-reasons" keywords that (loosely) provide 'available', 'acquisition' (downloading), 'validation', 'installation', 'cleanup', and 'recovery'.<br><br>SYSTEM says nothing about Printer/System down time, and the only hint that an update will be installed is the 'install-requested' keyword for "resource-state-reasons".<br><br>The more I look at this the more I want to normalize the two documents so they agree with each other. FWUPDATE has gotten a lot more detailed about the states it reports but I don't know that that is either necessary or beneficial in the long term (i.e. we might be painting ourselves into a corner). Conversely, SYSTEM probably doesn't go far enough since it doesn't really talk about potential down time when installing a resource, nor about failed installs.<br><br>I'll follow up with some proposed changes after I have some time to sit with both documents open side-by-side.<br><br><blockquote type="cite">We have described how the client can be monitoring the status of the update process using normal IPP methods. But when the printer is unavailable on the network, the client just has to guess how long this is going to take. This attribute was intended to try to make it so that the guess would be less open ended.<br></blockquote><br>I have no objection to this, but we are (to use an IETF expression) painting a bike shed.<br><br>IMHO "printer-new-firmware-SOMETHING-time" is the right naming and we can decide on what we want to call SOMETHING. 'restart' would be consistent with the existing operations we have for restarting Printer objects, and those Printers are unavailable during the shutdown/startup sequence. If the implementation requires no downtime ("less than 1 second") then the Printer can report 0.<br><br><blockquote type="cite">Along with this, we might want to add a “printer-state-reasons” keyword ‘restart-imminent’ to warn the client that the printer will be disappearing from the network.<br></blockquote><br>In keeping with the existing reason keywords this should be called 'restarting'.<br><br>________________________<br>Michael Sweet<br><br></blockquote><br></blockquote><br>________________________<br>Michael Sweet<br><br></div></div></blockquote></div><br></div></div></body></html>