1description: >
2    Implement this to add system dump management.
3
4    System dumps are dump of the host memory and hardware states generated
5    during a failure in the host firmware. This can be a huge dump stored in the
6    host memory, the BMC doesnt store this dump but stream this dump to an
7    external client based on the offload request. Apart from system generated
8    system dump, users can also request for this kind of dump.
9
10properties:
11    - name: SourceDumpId
12      type: uint32
13      description: >
14          The dump id provided by the source of the dump. There are dumps which
15          get generated outside the BMC, like a system dump which gets generated
16          and stored in the host memory. All dumps will have a  unique id  but
17          when communicating to the source of the dump the SourceDumpId will be
18          used.
19    - name: Token
20      type: uint32
21      description: >
22          A token exchanged with an external firmware subsystem when creating a
23          dump outside of the BMC. This token can be used to identify the dump
24          entry once the collection is completed.
25    - name: SystemImpact
26      type: enum [self.SystemImpact]
27      default: Disruptive
28      description: >
29          System dumps can be broadly classified into two types based on their
30          impact on the system state. The first type, known as a 'disruptive'
31          dump, alters the system state. This kind of dump is typically
32          generated during a host crash, although it can also be manually
33          requested by a user. Despite its disruptive nature, this dump is able
34          to collect a lot of data, making it particularly useful for diagnosing
35          system crashes. The second type is a 'non-disruptive' dump. As the
36          name suggests, this dump is created without causing any disruption to
37          the system state.
38    - name: UserChallenge
39      type: string
40      description: >
41          On some host implementations a user-challenge need to be provided by
42          the user and it flows through BMC and up to the host as a part of the
43          dump request. Non-disruptive dumps consume significant host resources
44          and involve the collection of host memory data. To safeguard these
45          operations and ensure they are initiated only by authorized personnel,
46          the provided passphrase is employed. In some systems, an Access
47          Control List (ACL) file, provided through the Platform Level Data
48          Model (PLDM), is used. The host validates the provided user-challenge
49          against this ACL. If the user-challenge doesn't match any entry in the
50          ACL, the host will reject the dump request. This field is needed so
51          the host can check that only authorized users are allowed to perform
52          certain dump operations.
53
54enumerations:
55    - name: SystemImpact
56      description: Indicate the type of system dump
57      values:
58          - name: Disruptive
59            description: >
60                The system state will change with this type of dump collection
61          - name: NonDisruptive
62            description: >
63                The system state will not change with the collection
64