Date: 06/11/10 Version : 1.2 History : 1.0 : Original specification described in FWARC/2006/055 1.1 : Amendements to include Updates commands. 1.2 : Added delete_all command and changed major number to 1.1. Note: This is updated description of var-config domain services. The original specification was approved by FWARC/2006/055, amended by FWARC/2007/294. 3.5 Variable Configuration version 1.1 The Variable Configuration capability provides the ability for a guest to update the LDOM variable store that is managed by the LDOM manager or SP. The LDOM variable store is described in detail in FWARC 2006/086. Version 1.1 adds delete_all command. 3.5.1 Service IDs There are two service IDs defined to support LDOM variable updates, one that describes a primary service and one that describes a backup service. In the event that the primary service is not available, the guest can fall back to using the backup service. The backup service uses the identical protocol as the primary service but is subordinate in priority to the primary service. Implementation Note: The LDOM manager provides the primary service. In the case where the LDOM manager has not been started, or is not currently running, variable updates can be communicated to the SP using the backup service. OpenBoot in the control domain will use the backup service since the LDOM manager will not be running. OpenBoot in all other domains will use the primary service as long as the LDOM manager is available. The following service IDs should should be added to the Domain Services registry for the LDOM variables capability. Service ID Description ---------- ----------- "var-config" Primary LDOM variable management "var-config-backup" Secondary LDOM variable management 3.5.2 Message Header Offset Size Field name Description ------ ---- ---------- ----------- 0 4 cmd Command 3.5.2.1 Message types The following constants are defined for Variable Configuration domain service command identifier values: Type Value Definition ------------------- ----- ---------- VAR_CONFIG_SET_REQ 0x0 Request setting a variable VAR_CONFIG_DELETE_REQ 0x1 Request deleting a variable VAR_CONFIG_SET_RESP 0x2 Response to a set request VAR_CONFIG_DELETE_RESP 0x3 Response to a delete request VAR_CONFIG_UPDATES_REQ 0x4 Request a variable updates MD VAR_CONFIG_UPDATES_RESP 0x5 Response to an updates req VAR_CONFIG_DELETE_ALL_REQ 0x6 Request a deletion of all variables VAR_CONFIG_DELETE_ALL_RESP 0x7 Response to delete all req 3.5.3 Set Variable Payload The set command updates the variable in the store. If the variable already exists in the store, the new value replaces the old value. If the variable does not exist in the store, it is added. The Variable Configuration header is followed by two NUL terminated strings. The first represents the name of the variable to set. The second represents the value to set it to. Offset Size Field name Description ------ ---- ---------- ----------- 0 Var. name Name of the variable to set Var. Var. value Value of variable 3.5.4 Delete Variable Payload The delete command removes a variable from the store. The Variable Configuration header is followed by one NUL terminated string. The string represents the name of the variable to delete. Offset Size Field name Description ------ ---- ---------- ----------- 0 Var. name Name of the variable to delete 3.5.5 Updates Request Payload Offset Size Field name Description ------ ---- ---------- ---------------------------------- 3.5.6 Variable Delete All variable payload (available in version 1.1 onward) The delete all command removes all variables from the store. Offset Size Field name Description ------ ---- ---------- ---------------------------------- 3.5.7 Set, Delete and delete_all Response Payload Responses to set, delete and delete_all commands share the same format. The Variable Configuration header is followed by the following response payload: Offset Size Field name Description ------ ---- ---------- ----------- 0 4 result Result of operation 3.5.8 Variable Updates Response Payload Offset Size Field name Description ------ ---- ---------- ------------------------------------ 0 4 result Result of operation 4 4 size Size of mini MD 8 Var. Mini MD Mini MD data structure 3.5.9 Response Result Codes The result field in the response payload details the result of the requested operation. The result codes are defined as follows: Name Value Definition ---- ----- ---------- VAR_CONFIG_SUCCESS 0x0 Operation succeeded VAR_CONFIG_NO_SPACE 0x1 Variable Store Full VAR_CONFIG_INVALID_VAR 0x2 Invalid Variable Format VAR_CONFIG_INVALID_VAL 0x3 Invalid Value Format VAR_CONFIG_VAR_NOT_PRESENT 0x4 Variable not present to delete or available for update