1{
2    "$id": "cper-json-cxl-protocol-section",
3    "$schema": "https://json-schema.org/draft/2020-12/schema",
4    "type": "object",
5    "required": ["validationBits", "agentType", "cxlAgentAddress", "deviceID", "dvsecLength", "errorLogLength", "cxlDVSEC", "cxlErrorLog"],
6    "additionalProperties": false,
7    "properties": {
8        "validationBits": {
9            "type": "object",
10            "required": ["cxlAgentTypeValid", "cxlAgentAddressValid", "deviceIDValid", "deviceSerialValid", "capabilityStructureValid", "cxlDVSECValid", "cxlErrorLogValid"],
11            "properties": {
12                "cxlAgentTypeValid": {
13                    "type": "boolean"
14                },
15                "cxlAgentAddressValid": {
16                    "type": "boolean"
17                },
18                "deviceIDValid": {
19                    "type": "boolean"
20                },
21                "deviceSerialValid": {
22                    "type": "boolean"
23                },
24                "capabilityStructureValid": {
25                    "type": "boolean"
26                },
27                "cxlDVSECValid": {
28                    "type": "boolean"
29                },
30                "cxlErrorLogValid": {
31                    "type": "boolean"
32                }
33            }
34        },
35        "agentType": {
36            "type": "object",
37            "$ref": "./common/cper-json-nvp.json"
38        },
39        "cxlAgentAddress": {
40            "type": "object",
41            "oneOf": [
42                {
43                    "type": "object",
44                    "required": ["functionNumber", "deviceNumber", "busNumber", "segmentNumber"],
45                    "properties": {
46                        "functionNumber": {
47                            "type": "integer"
48                        },
49                        "deviceNumber": {
50                            "type": "integer"
51                        },
52                        "busNumber": {
53                            "type": "integer"
54                        },
55                        "segmentNumber": {
56                            "type": "integer"
57                        }
58                    }
59                },
60                {
61                    "type": "object",
62                    "required": ["value"],
63                    "properties": {
64                        "value": {
65                            "type": "integer"
66                        }
67                    }
68                }
69            ]
70        },
71        "deviceID": {
72            "type": "object",
73            "required": ["vendorID", "deviceID", "subsystemVendorID", "subsystemDeviceID", "classCode", "slotNumber"],
74            "properties": {
75                "vendorID": {
76                    "type": "integer"
77                },
78                "deviceID": {
79                    "type": "integer"
80                },
81                "subsystemVendorID": {
82                    "type": "integer"
83                },
84                "subsystemDeviceID": {
85                    "type": "integer"
86                },
87                "classCode": {
88                    "type": "integer"
89                },
90                "slotNumber": {
91                    "type": "integer"
92                }
93            }
94        },
95        "deviceSerial": {
96            "type": "integer"
97        },
98        "capabilityStructure": {
99            "type": "string"
100        },
101        "dvsecLength": {
102            "type": "integer"
103        },
104        "errorLogLength": {
105            "type": "integer"
106        },
107        "cxlDVSEC": {
108            "type": "string"
109        },
110        "cxlErrorLog": {
111            "type": "string"
112        }
113    }
114}