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 doesn't 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 - name: DumpRequestStatus 54 type: enum[self.HostResponse] 55 description: > 56 The host will send a response code for each request to create a system 57 dump to indicate whether the request is successful or there is an 58 error. 59 default: Unknown 60 61enumerations: 62 - name: SystemImpact 63 description: Indicate the type of system dump 64 values: 65 - name: Disruptive 66 description: > 67 The system state will change with this type of dump collection 68 - name: NonDisruptive 69 description: > 70 The system state will not change with the collection 71 - name: HostResponse 72 description: > 73 These are the possible response codes from the host's after sending a 74 non-disruptive system dump request. 75 values: 76 - name: Unknown 77 description: > 78 The status of the request is unknown, or not initialized 79 - name: Requested 80 description: > 81 Requested for system dump and awaiting the host response 82 - name: Success 83 description: > 84 Successfully validated and accepted the request for a 85 non-disruptive system dump. 86 - name: ACLFileInvalid 87 description: > 88 Invalid Access Control List file, cannot validate the user to 89 start a non-disruptive system dump. 90 - name: UserChallengeInvalid 91 description: > 92 The user challenge provided is not valid 93 - name: PermissionDenied 94 description: > 95 The caller does not have enough privileges to execute the 96 requested non-disruptive system dump. 97