1{
2    "$id": "cper-json-pcie-section",
3    "$schema": "https://json-schema.org/draft/2020-12/schema",
4    "type": "object",
5    "required": ["validationBits", "portType", "version", "commandStatus", "deviceID", "deviceSerialNumber", "bridgeControlStatus", "capabilityStructure", "aerInfo"],
6    "additionalProperties": false,
7    "properties": {
8        "validationBits": {
9            "type": "object",
10            "required": ["portTypeValid", "versionValid", "commandStatusValid", "deviceIDValid", "deviceSerialNumberValid", "bridgeControlStatusValid", "capabilityStructureStatusValid", "aerInfoValid"],
11            "properties": {
12                "portTypeValid": {
13                    "type": "boolean"
14                },
15                "versionValid": {
16                    "type": "boolean"
17                },
18                "commandStatusValid": {
19                    "type": "boolean"
20                },
21                "deviceIDValid": {
22                    "type": "boolean"
23                },
24                "deviceSerialNumberValid": {
25                    "type": "boolean"
26                },
27                "bridgeControlStatusValid": {
28                    "type": "boolean"
29                },
30                "capabilityStructureStatusValid": {
31                    "type": "boolean"
32                },
33                "aerInfoValid": {
34                    "type": "boolean"
35                }
36            }
37        },
38        "portType": {
39            "type": "object",
40            "$ref": "../common/cper-json-nvp.json"
41        },
42        "version": {
43            "type": "object",
44            "required": ["major", "minor"],
45            "properties": {
46                "major": {
47                    "type": "integer"
48                },
49                "minor": {
50                    "type": "integer"
51                }
52            }
53        },
54        "commandStatus": {
55            "type": "object",
56            "required": ["commandRegister", "statusRegister"],
57            "properties": {
58                "commandRegister": {
59                    "type" : "integer"
60                },
61                "statusRegister": {
62                    "type": "integer"
63                }
64            }
65        },
66        "deviceID": {
67            "type": "object",
68            "required": ["vendorID", "deviceID", "classCode", "functionNumber", "deviceNumber", "segmentNumber", "primaryOrDeviceBusNumber", "secondaryBusNumber", "slotNumber"],
69            "properties": {
70                "vendorID": {
71                    "type": "integer"
72                },
73                "deviceID": {
74                    "type": "integer"
75                },
76                "classCode": {
77                    "type": "integer"
78                },
79                "functionNumber": {
80                    "type": "integer"
81                },
82                "deviceNumber": {
83                    "type": "integer"
84                },
85                "segmentNumber": {
86                    "type": "integer"
87                },
88                "primaryOrDeviceBusNumber": {
89                    "type": "integer"
90                },
91                "secondaryBusNumber": {
92                    "type": "integer"
93                },
94                "slotNumber": {
95                    "type": "integer"
96                }
97            }
98        },
99        "deviceSerialNumber": {
100            "type": "integer"
101        },
102        "bridgeControlStatus": {
103            "type": "object",
104            "required": ["secondaryStatusRegister", "controlRegister"],
105            "properties": {
106                "secondaryStatusRegister": {
107                    "type": "integer"
108                },
109                "controlRegister": {
110                    "type": "integer"
111                }
112            }
113        },
114        "capabilityStructure": {
115            "type": "object",
116            "required": ["data"],
117            "properties": {
118                "data": {
119                    "type": "string"
120                }
121            }
122        },
123        "aerInfo": {
124            "type": "object",
125            "required": ["capabilityID", "capabilityVersion", "uncorrectableErrorStatusRegister", "uncorrectableErrorMaskRegister", "uncorrectableErrorSeverityRegister", "correctableErrorStatusRegister", "correctableErrorMaskRegister", "aeccReg", "headerLogRegister", "rootErrorCommand", "rootErrorStatus", "errorSourceIDRegister", "correctableErrorSourceIDRegister"],
126            "properties": {
127                "capabilityID": {
128                    "type": "integer"
129                },
130                "capabilityVersion": {
131                    "type": "integer"
132                },
133                "uncorrectableErrorStatusRegister": {
134                    "type": "integer"
135                },
136                "uncorrectableErrorMaskRegister": {
137                    "type": "integer"
138                },
139                "uncorrectableErrorSeverityRegister": {
140                    "type": "integer"
141                },
142                "correctableErrorStatusRegister": {
143                    "type": "integer"
144                },
145                "correctableErrorMaskRegister": {
146                    "type": "integer"
147                },
148                "aeccReg": {
149                    "type": "integer"
150                },
151                "headerLogRegister": {
152                    "type": "string"
153                },
154                "rootErrorCommand": {
155                    "type": "integer"
156                },
157                "rootErrorStatus": {
158                    "type": "integer"
159                },
160                "errorSourceIDRegister": {
161                    "type": "integer"
162                },
163                "correctableErrorSourceIDRegister": {
164                    "type": "integer"
165                }
166            }
167        }
168    }
169}