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": ["data"],
126            "properties": {
127                "data": {
128                    "type": "string"
129                }
130            }
131        }
132    }
133}