mirror of
https://dev.iopsys.eu/system/sysmngr.git
synced 2026-01-27 18:47:19 +01:00
Proposal for copy config
This commit is contained in:
parent
7121fef484
commit
fb23de5286
1 changed files with 76 additions and 0 deletions
76
docs/guide/copy_config.md
Normal file
76
docs/guide/copy_config.md
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
# Proposal for copy config on firmware change
|
||||||
|
|
||||||
|
Currently we have different behaviour of config management based on following scenarios, which could be bit confusing for operators and end-users.
|
||||||
|
|
||||||
|
## Scenario 1: Upgrade using ACS using '1 Firmware Image' and '6 Stored image'
|
||||||
|
|
||||||
|
In this scenario, we provide a firmware default uci option to configure the config management
|
||||||
|
|
||||||
|
```
|
||||||
|
cwmp.cpe.fw_upgrade_keep_settings
|
||||||
|
```
|
||||||
|
|
||||||
|
If this option is enabled, then config is copied over to the next firmware.
|
||||||
|
|
||||||
|
> Note: there is no way to change this behaviour from ACS, we only provide uci option, but no datamodel vendor extension
|
||||||
|
|
||||||
|
## Scenario 2: Upgrade using USP Controller
|
||||||
|
|
||||||
|
With USP it has many possibilities, user can
|
||||||
|
|
||||||
|
1. Download and activate at the same time
|
||||||
|
2. Download without Activate
|
||||||
|
3. Activate the downloaded image immediately
|
||||||
|
4. Activate the downloaded image with a time-window
|
||||||
|
|
||||||
|
Currently we do provide a vendor extended option in `Download()` command to manage the config
|
||||||
|
```
|
||||||
|
Device.DeviceInfo.FirmwareImage.{i}.Download() input:AutoActivate
|
||||||
|
Device.DeviceInfo.FirmwareImage.{i}.Download() input:X_IOWRT_EU_KeepConfig
|
||||||
|
```
|
||||||
|
|
||||||
|
But, same is lacking in Activate() operate command
|
||||||
|
```
|
||||||
|
Device.DeviceInfo.FirmwareImage.{i}.Activate()
|
||||||
|
Device.DeviceInfo.FirmwareImage.{i}.Activate() input:TimeWindow.{i}.End
|
||||||
|
Device.DeviceInfo.FirmwareImage.{i}.Activate() input:TimeWindow.{i}.Mode
|
||||||
|
Device.DeviceInfo.FirmwareImage.{i}.Activate() input:TimeWindow.{i}.Start
|
||||||
|
```
|
||||||
|
|
||||||
|
## Scenario 3: Switch the firmware with DM without upgrade
|
||||||
|
|
||||||
|
Currently there is no way to manage the config, when user switches the bank using `Set` operation on `BootFirmwareImage`
|
||||||
|
|
||||||
|
```
|
||||||
|
Device.DeviceInfo.ActiveFirmwareImage
|
||||||
|
Device.DeviceInfo.BootFirmwareImage
|
||||||
|
```
|
||||||
|
|
||||||
|
## Proposal: Unified config management
|
||||||
|
|
||||||
|
In place of having separate but similar change in cwmp and usp, proposal is to have it in `sysmngr` config, and that will be used by both `ACS` and `USP Controller`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# cat /etc/config/sysmngr
|
||||||
|
|
||||||
|
config globals 'globals'
|
||||||
|
option log_level '4'
|
||||||
|
option keep_config 'Full'
|
||||||
|
```
|
||||||
|
|
||||||
|
keep_config should be an Enum, so that it can be updated later on for future extensions
|
||||||
|
|
||||||
|
| Enum value | Meaning |
|
||||||
|
| ---------- | --------- |
|
||||||
|
| Full | Similar to sysupgrade -b, copies full configuration |
|
||||||
|
| None | Do not copy config to the next firmware |
|
||||||
|
|
||||||
|
This table can be further extended in the future with (how they will work is out of scope of this document),
|
||||||
|
|
||||||
|
Datamodel => Meaning copy only datamodel config
|
||||||
|
|
||||||
|
For datamodel Integration, we can add a 'rw' vendor extension to map with this new uci option
|
||||||
|
|
||||||
|
Device.DeviceInfo.X_IOWRT_EU_ConfigBackup => sysmngr.globals.keep_config
|
||||||
|
|
||||||
|
With this, operator can manage the Firmware upgrade behaviour from all different scenarios.
|
||||||
Loading…
Add table
Reference in a new issue