description: > Implement this to add system dump management. System dumps are dump of the host memory and hardware states generated during a failure in the host firmware. This can be a huge dump stored in the host memory, the BMC doesnt store this dump but stream this dump to an external client based on the offload request. Apart from system generated system dump, users can also request for this kind of dump. properties: - name: SourceDumpId type: uint32 description: > The dump id provided by the source of the dump. There are dumps which get generated outside the BMC, like a system dump which gets generated and stored in the host memory. All dumps will have a unique id but when communicating to the source of the dump the SourceDumpId will be used. - name: Token type: uint32 description: > A token exchanged with an external firmware subsystem when creating a dump outside of the BMC. This token can be used to identify the dump entry once the collection is completed. - name: SystemImpact type: enum [self.SystemImpact] default: Disruptive description: > System dumps can be broadly classified into two types based on their impact on the system state. The first type, known as a 'disruptive' dump, alters the system state. This kind of dump is typically generated during a host crash, although it can also be manually requested by a user. Despite its disruptive nature, this dump is able to collect a lot of data, making it particularly useful for diagnosing system crashes. The second type is a 'non-disruptive' dump. As the name suggests, this dump is created without causing any disruption to the system state. - name: UserChallenge type: string description: > On some host implementations a user-challenge need to be provided by the user and it flows through BMC and up to the host as a part of the dump request. Non-disruptive dumps consume significant host resources and involve the collection of host memory data. To safeguard these operations and ensure they are initiated only by authorized personnel, the provided passphrase is employed. In some systems, an Access Control List (ACL) file, provided through the Platform Level Data Model (PLDM), is used. The host validates the provided user-challenge against this ACL. If the user-challenge doesn't match any entry in the ACL, the host will reject the dump request. This field is needed so the host can check that only authorized users are allowed to perform certain dump operations. enumerations: - name: SystemImpact description: Indicate the type of system dump values: - name: Disruptive description: > The system state will change with this type of dump collection - name: NonDisruptive description: > The system state will not change with the collection