@@ -100,6 +100,9 @@ When a new table is loaded in a device's inactive table slot,
the device information and target specific details from the
targets in the table are measured.
+Note that if there are too many targets to measure at once multiple IMA
+measurements will be generated.
+
The IMA measurement log has the following format for 'dm_table_load':
::
@@ -118,9 +121,9 @@ The IMA measurement log has the following format for 'dm_table_load':
device_minor := "minor=" <N>
minor_count := "minor_count=" <N>
num_device_targets := "num_targets=" <N>
- dm-device-name := Name of the device. If it contains special characters like '\', ',', ';',
+ dm-device-name := Name of the device. If it contains special characters like '\', ',', ';', '=',
they are prefixed with '\'.
- dm-device-uuid := UUID of the device. If it contains special characters like '\', ',', ';',
+ dm-device-uuid := UUID of the device. If it contains special characters like '\', ',', ';', '=',
they are prefixed with '\'.
table_load_data := <target_data>
@@ -175,8 +178,9 @@ The IMA measurement log has the following format for 'dm_device_resume':
::
EVENT_NAME := "dm_device_resume"
- EVENT_DATA := <dm_version_str> ";" <device_metadata> ";" <active_table_hash> ";" <current_device_capacity> ";"
+ EVENT_DATA := <dm_version_str> ";" <device_data> ";" <current_device_capacity> ";"
+ device_data := <device_metadata> ";" <active_table_hash> | <device_resume_no_data>
dm_version_str := As described in the 'Table load' section above.
device_metadata := As described in the 'Table load' section above.
active_table_hash := "active_table_hash=" <table_hash_alg> ":" <table_hash>
@@ -189,6 +193,11 @@ The IMA measurement log has the following format for 'dm_device_resume':
events for a given device, the hash is computed combining all the event data
i.e. (<dm_version_str> ";" <device_metadata> ";" <table_load_data> ";")
across all those events.
+ device_resume_no_data := <device_name> "," <device_uuid> ";" "device_resume=no_data"
+ If device metadata and hash for the active table do not exists, this value gets measured.
+ Note: the hash should always exist if the device metadata is present.
+ device_name := As described in the 'Table load' section above.
+ device_uuid := As described in the 'Table load' section above.
current_device_capacity := "current_device_capacity=" <N>
For instance, if a linear device is resumed with the following command,
@@ -213,10 +222,10 @@ The IMA measurement log has the following format for 'dm_device_remove':
::
EVENT_NAME := "dm_device_remove"
- EVENT_DATA := <dm_version_str> ";" <device_active_metadata> ";" <device_inactive_metadata> ";"
- <active_table_hash> "," <inactive_table_hash> "," <remove_all> ";" <current_device_capacity> ";"
+ EVENT_DATA := <dm_version_str> ";" <device_data> <remove_all> ";" <current_device_capacity> ";"
dm_version_str := As described in the 'Table load' section above.
+ device_data := <device_active_metadata> ";" <device_inactive_metadata> ";" <active_table_hash> "," <inactive_table_hash> "," | <device_remove_no_data> ";"
device_active_metadata := Device metadata that reflects the currently loaded active table.
The format is same as 'device_metadata' described in the 'Table load' section above.
device_inactive_metadata := Device metadata that reflects the inactive table.
@@ -225,6 +234,11 @@ The IMA measurement log has the following format for 'dm_device_remove':
The format is same as 'active_table_hash' described in the 'Device resume' section above.
inactive_table_hash := Hash of the inactive table.
The format is same as 'active_table_hash' described in the 'Device resume' section above.
+ device_remove_no_data := <device_name> "," <device_uuid> ";" "device_remove=no_data"
+ If device metadata and hash for the active and inactive table do not exists, this value gets measured.
+ Note: the hash should always exist if the device metadata is present.
+ device_name := As described in the 'Table load' section above.
+ device_uuid := As described in the 'Table load' section above.
remove_all := "remove_all=" <yes_no>
yes_no := "y" | "n"
current_device_capacity := "current_device_capacity=" <N>
@@ -254,9 +268,15 @@ The IMA measurement log has the following format for 'dm_table_clear':
::
EVENT_NAME := "dm_table_clear"
- EVENT_DATA := <dm_version_str> ";" <device_inactive_metadata> ";" <inactive_table_hash> ";" <current_device_capacity> ";"
+ EVENT_DATA := <dm_version_str> ";" <device_data> ";" <current_device_capacity> ";"
dm_version_str := As described in the 'Table load' section above.
+ device_data := <device_inactive_metadata> ";" <inactive_table_hash> | <table_clear_no_data>
+ table_clear_no_data := <device_name> "," <device_uuid> ";" "table_clear=no_data"
+ If device metadata and hash for the inactive table do not exists, this value gets measured.
+ Note: the hash should always exist if the device metadata is present.
+ device_name := As described in the 'Table load' section above.
+ device_uuid := As described in the 'Table load' section above.
device_inactive_metadata := Device metadata that was captured during the load time inactive table being cleared.
The format is same as 'device_metadata' described in the 'Table load' section above.
inactive_table_hash := Hash of the inactive table being cleared from the device.
The grammar for the events dm_device_remove, device_resume and dm_table_clear did not include the no_data entry when device data and hash are missing. For the device uuid or name "=" is also escaped with a "\". Add a note that dm_table_load might split its target measurements over multiple IMA events. Signed-off-by: Thore Sommer <public@thson.de> --- v3: fixed missing spaces v2: - include also device name and uuid in grammar for no_data - fixed spelling mistakes .../admin-guide/device-mapper/dm-ima.rst | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-)