diff mbox series

dm ima: updates to grammar and some details in documentation

Message ID 20220106163731.165391-1-public@thson.de (mailing list archive)
State Superseded, archived
Delegated to: Mike Snitzer
Headers show
Series dm ima: updates to grammar and some details in documentation | expand

Commit Message

Thore Sommer Jan. 6, 2022, 4:37 p.m. UTC
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>
---
 .../admin-guide/device-mapper/dm-ima.rst      | 26 ++++++++++++++-----
 1 file changed, 20 insertions(+), 6 deletions(-)

Comments

Randy Dunlap Jan. 7, 2022, 3:23 a.m. UTC | #1
Just a few changes below:

On 1/6/22 08:37, Thore Sommer wrote:
> 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>
> ---
>  .../admin-guide/device-mapper/dm-ima.rst      | 26 ++++++++++++++-----
>  1 file changed, 20 insertions(+), 6 deletions(-)
> 
> diff --git a/Documentation/admin-guide/device-mapper/dm-ima.rst b/Documentation/admin-guide/device-mapper/dm-ima.rst
> index a4aa50a828e0..fb6e4148b426 100644
> --- a/Documentation/admin-guide/device-mapper/dm-ima.rst
> +++ b/Documentation/admin-guide/device-mapper/dm-ima.rst
> @@ -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,9 @@ 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_resume=no_data"
> +                           If device metadata and hash for the active table do not exists this value gets measured.

                                                                               do not exist, this value is measured.

> +                           Note: the hash should always exist if the device metadata is present.
>   current_device_capacity := "current_device_capacity=" <N>
>  
>   For instance, if a linear device is resumed with the following command,
> @@ -213,10 +220,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 +232,9 @@ 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_remove=no_data"
> +                          If device metadata and hash for the active and inactive table do not exists this value gets measured.

                                                                                                  exist, this value is measured.

> +                          Note: the hash should always exist if the device metadata is present.
>   remove_all := "remove_all=" <yes_no>
>   yes_no := "y" | "n"
>   current_device_capacity := "current_device_capacity=" <N>
> @@ -254,9 +264,13 @@ 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 := "table_clear=no_data"
> +                        If device metadata and hash for the inactive table do not exists this value gets measured.

                                                                                     exist, this value is measured.

> +                        Note: the hash should always exist if the device metadata is present.
>   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.

thanks.
diff mbox series

Patch

diff --git a/Documentation/admin-guide/device-mapper/dm-ima.rst b/Documentation/admin-guide/device-mapper/dm-ima.rst
index a4aa50a828e0..fb6e4148b426 100644
--- a/Documentation/admin-guide/device-mapper/dm-ima.rst
+++ b/Documentation/admin-guide/device-mapper/dm-ima.rst
@@ -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,9 @@  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_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.
  current_device_capacity := "current_device_capacity=" <N>
 
  For instance, if a linear device is resumed with the following command,
@@ -213,10 +220,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 +232,9 @@  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_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.
  remove_all := "remove_all=" <yes_no>
  yes_no := "y" | "n"
  current_device_capacity := "current_device_capacity=" <N>
@@ -254,9 +264,13 @@  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 := "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_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.