xref: /openbmc/bmcweb/features/redfish/schema/dmtf/json-schema/VirtualPCI2PCIBridge.v1_0_0.json (revision c6d7a45d427f9a6d9e761afcf305761dca60d7cf)
1*c6d7a45dSGunnar Mills{
2*c6d7a45dSGunnar Mills    "$id": "http://redfish.dmtf.org/schemas/v1/VirtualPCI2PCIBridge.v1_0_0.json",
3*c6d7a45dSGunnar Mills    "$ref": "#/definitions/VirtualPCI2PCIBridge",
4*c6d7a45dSGunnar Mills    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
5*c6d7a45dSGunnar Mills    "copyright": "Copyright 2014-2025 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
6*c6d7a45dSGunnar Mills    "definitions": {
7*c6d7a45dSGunnar Mills        "Actions": {
8*c6d7a45dSGunnar Mills            "additionalProperties": false,
9*c6d7a45dSGunnar Mills            "description": "The available actions for this resource.",
10*c6d7a45dSGunnar Mills            "longDescription": "This type shall contain the available actions for this resource.",
11*c6d7a45dSGunnar Mills            "patternProperties": {
12*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
13*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
14*c6d7a45dSGunnar Mills                    "type": [
15*c6d7a45dSGunnar Mills                        "array",
16*c6d7a45dSGunnar Mills                        "boolean",
17*c6d7a45dSGunnar Mills                        "integer",
18*c6d7a45dSGunnar Mills                        "number",
19*c6d7a45dSGunnar Mills                        "null",
20*c6d7a45dSGunnar Mills                        "object",
21*c6d7a45dSGunnar Mills                        "string"
22*c6d7a45dSGunnar Mills                    ]
23*c6d7a45dSGunnar Mills                }
24*c6d7a45dSGunnar Mills            },
25*c6d7a45dSGunnar Mills            "properties": {
26*c6d7a45dSGunnar Mills                "Oem": {
27*c6d7a45dSGunnar Mills                    "$ref": "#/definitions/OemActions",
28*c6d7a45dSGunnar Mills                    "description": "The available OEM-specific actions for this resource.",
29*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the available OEM-specific actions for this resource."
30*c6d7a45dSGunnar Mills                }
31*c6d7a45dSGunnar Mills            },
32*c6d7a45dSGunnar Mills            "type": "object"
33*c6d7a45dSGunnar Mills        },
34*c6d7a45dSGunnar Mills        "Links": {
35*c6d7a45dSGunnar Mills            "additionalProperties": false,
36*c6d7a45dSGunnar Mills            "description": "The links to other resources that are related to this resource.",
37*c6d7a45dSGunnar Mills            "longDescription": "This Redfish Specification-described type shall contain links to resources that are related to but are not contained by, or subordinate to, this resource.",
38*c6d7a45dSGunnar Mills            "patternProperties": {
39*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
40*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
41*c6d7a45dSGunnar Mills                    "type": [
42*c6d7a45dSGunnar Mills                        "array",
43*c6d7a45dSGunnar Mills                        "boolean",
44*c6d7a45dSGunnar Mills                        "integer",
45*c6d7a45dSGunnar Mills                        "number",
46*c6d7a45dSGunnar Mills                        "null",
47*c6d7a45dSGunnar Mills                        "object",
48*c6d7a45dSGunnar Mills                        "string"
49*c6d7a45dSGunnar Mills                    ]
50*c6d7a45dSGunnar Mills                }
51*c6d7a45dSGunnar Mills            },
52*c6d7a45dSGunnar Mills            "properties": {
53*c6d7a45dSGunnar Mills                "Endpoints": {
54*c6d7a45dSGunnar Mills                    "description": "The links to the endpoints associated with this vPPB.",
55*c6d7a45dSGunnar Mills                    "items": {
56*c6d7a45dSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
57*c6d7a45dSGunnar Mills                    },
58*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Endpoint` that represent the endpoints associated with this vPPB.",
59*c6d7a45dSGunnar Mills                    "readonly": true,
60*c6d7a45dSGunnar Mills                    "type": "array"
61*c6d7a45dSGunnar Mills                },
62*c6d7a45dSGunnar Mills                "Endpoints@odata.count": {
63*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
64*c6d7a45dSGunnar Mills                },
65*c6d7a45dSGunnar Mills                "Oem": {
66*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
67*c6d7a45dSGunnar Mills                    "description": "The OEM extension property.",
68*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."
69*c6d7a45dSGunnar Mills                },
70*c6d7a45dSGunnar Mills                "Port": {
71*c6d7a45dSGunnar Mills                    "anyOf": [
72*c6d7a45dSGunnar Mills                        {
73*c6d7a45dSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Port.json#/definitions/Port"
74*c6d7a45dSGunnar Mills                        },
75*c6d7a45dSGunnar Mills                        {
76*c6d7a45dSGunnar Mills                            "type": "null"
77*c6d7a45dSGunnar Mills                        }
78*c6d7a45dSGunnar Mills                    ],
79*c6d7a45dSGunnar Mills                    "description": "The link to the port associated with this vPPB.",
80*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `Port` that represents the port associated with this vPPB.",
81*c6d7a45dSGunnar Mills                    "readonly": false
82*c6d7a45dSGunnar Mills                }
83*c6d7a45dSGunnar Mills            },
84*c6d7a45dSGunnar Mills            "type": "object"
85*c6d7a45dSGunnar Mills        },
86*c6d7a45dSGunnar Mills        "OemActions": {
87*c6d7a45dSGunnar Mills            "additionalProperties": true,
88*c6d7a45dSGunnar Mills            "description": "The available OEM-specific actions for this resource.",
89*c6d7a45dSGunnar Mills            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
90*c6d7a45dSGunnar Mills            "patternProperties": {
91*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
92*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
93*c6d7a45dSGunnar Mills                    "type": [
94*c6d7a45dSGunnar Mills                        "array",
95*c6d7a45dSGunnar Mills                        "boolean",
96*c6d7a45dSGunnar Mills                        "integer",
97*c6d7a45dSGunnar Mills                        "number",
98*c6d7a45dSGunnar Mills                        "null",
99*c6d7a45dSGunnar Mills                        "object",
100*c6d7a45dSGunnar Mills                        "string"
101*c6d7a45dSGunnar Mills                    ]
102*c6d7a45dSGunnar Mills                }
103*c6d7a45dSGunnar Mills            },
104*c6d7a45dSGunnar Mills            "properties": {},
105*c6d7a45dSGunnar Mills            "type": "object"
106*c6d7a45dSGunnar Mills        },
107*c6d7a45dSGunnar Mills        "VirtualPCI2PCIBridge": {
108*c6d7a45dSGunnar Mills            "additionalProperties": false,
109*c6d7a45dSGunnar Mills            "description": "The `VirtualPCI2PCIBridge` schema describes Virtual PCI-to-PCI Bridge (vPPB) inside a CXL switch that is owned by the host.",
110*c6d7a45dSGunnar Mills            "longDescription": "This resource shall represent a Virtual PCI-to-PCI Bridge (vPPB) inside a CXL switch that is host-owned.  This can be bound to a port that is either disconnected, connected to a PCIe component, or connected to a CXL component.",
111*c6d7a45dSGunnar Mills            "patternProperties": {
112*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
113*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
114*c6d7a45dSGunnar Mills                    "type": [
115*c6d7a45dSGunnar Mills                        "array",
116*c6d7a45dSGunnar Mills                        "boolean",
117*c6d7a45dSGunnar Mills                        "integer",
118*c6d7a45dSGunnar Mills                        "number",
119*c6d7a45dSGunnar Mills                        "null",
120*c6d7a45dSGunnar Mills                        "object",
121*c6d7a45dSGunnar Mills                        "string"
122*c6d7a45dSGunnar Mills                    ]
123*c6d7a45dSGunnar Mills                }
124*c6d7a45dSGunnar Mills            },
125*c6d7a45dSGunnar Mills            "properties": {
126*c6d7a45dSGunnar Mills                "@odata.context": {
127*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
128*c6d7a45dSGunnar Mills                },
129*c6d7a45dSGunnar Mills                "@odata.etag": {
130*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
131*c6d7a45dSGunnar Mills                },
132*c6d7a45dSGunnar Mills                "@odata.id": {
133*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
134*c6d7a45dSGunnar Mills                },
135*c6d7a45dSGunnar Mills                "@odata.type": {
136*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
137*c6d7a45dSGunnar Mills                },
138*c6d7a45dSGunnar Mills                "Actions": {
139*c6d7a45dSGunnar Mills                    "$ref": "#/definitions/Actions",
140*c6d7a45dSGunnar Mills                    "description": "The available actions for this resource.",
141*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the available actions for this resource."
142*c6d7a45dSGunnar Mills                },
143*c6d7a45dSGunnar Mills                "BindingStatus": {
144*c6d7a45dSGunnar Mills                    "$ref": "#/definitions/vPPBStatusTypes",
145*c6d7a45dSGunnar Mills                    "description": "The binding status of the vPPB.",
146*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the binding status of the vPPB.",
147*c6d7a45dSGunnar Mills                    "readonly": true
148*c6d7a45dSGunnar Mills                },
149*c6d7a45dSGunnar Mills                "BoundLDId": {
150*c6d7a45dSGunnar Mills                    "description": "The identifier of the bound local logical device.",
151*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the identifier of the bound local logical device bound to this vPPB.  This property shall only be present if `BindingStatus` contains `BoundLD`.",
152*c6d7a45dSGunnar Mills                    "readonly": true,
153*c6d7a45dSGunnar Mills                    "type": "integer"
154*c6d7a45dSGunnar Mills                },
155*c6d7a45dSGunnar Mills                "BoundPBRId": {
156*c6d7a45dSGunnar Mills                    "description": "The identifier of the bound PBR.",
157*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the identifier of PBR bound to this vPPB.  This property shall only be present if `BindingStatus` contains `BoundPID`.",
158*c6d7a45dSGunnar Mills                    "readonly": true,
159*c6d7a45dSGunnar Mills                    "type": "integer"
160*c6d7a45dSGunnar Mills                },
161*c6d7a45dSGunnar Mills                "BoundPortId": {
162*c6d7a45dSGunnar Mills                    "description": "The physical port number of the bound port.",
163*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the physical port number of the port bound to this vPPB.  This property shall only be present if `BindingStatus` contains `BoundPhysicalPort` or `BoundLD`.",
164*c6d7a45dSGunnar Mills                    "readonly": true,
165*c6d7a45dSGunnar Mills                    "type": "integer"
166*c6d7a45dSGunnar Mills                },
167*c6d7a45dSGunnar Mills                "Description": {
168*c6d7a45dSGunnar Mills                    "anyOf": [
169*c6d7a45dSGunnar Mills                        {
170*c6d7a45dSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
171*c6d7a45dSGunnar Mills                        },
172*c6d7a45dSGunnar Mills                        {
173*c6d7a45dSGunnar Mills                            "type": "null"
174*c6d7a45dSGunnar Mills                        }
175*c6d7a45dSGunnar Mills                    ],
176*c6d7a45dSGunnar Mills                    "readonly": true
177*c6d7a45dSGunnar Mills                },
178*c6d7a45dSGunnar Mills                "GCXLID": {
179*c6d7a45dSGunnar Mills                    "description": "The GCXLID for the CXL logical device bound to this vPPB.",
180*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the globally unique CXL logical device identifier (GCXLID) for the CXL logical device that is bound to this vPPB.",
181*c6d7a45dSGunnar Mills                    "pattern": "^([0-9A-Fa-f]{2}-){7}[0-9A-Fa-f]{2}:([0-9A-Fa-f]{4})$",
182*c6d7a45dSGunnar Mills                    "readonly": true,
183*c6d7a45dSGunnar Mills                    "type": [
184*c6d7a45dSGunnar Mills                        "string",
185*c6d7a45dSGunnar Mills                        "null"
186*c6d7a45dSGunnar Mills                    ]
187*c6d7a45dSGunnar Mills                },
188*c6d7a45dSGunnar Mills                "Id": {
189*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
190*c6d7a45dSGunnar Mills                    "readonly": true
191*c6d7a45dSGunnar Mills                },
192*c6d7a45dSGunnar Mills                "Links": {
193*c6d7a45dSGunnar Mills                    "$ref": "#/definitions/Links",
194*c6d7a45dSGunnar Mills                    "description": "The links to other resources that are related to this resource.",
195*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."
196*c6d7a45dSGunnar Mills                },
197*c6d7a45dSGunnar Mills                "Name": {
198*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
199*c6d7a45dSGunnar Mills                    "readonly": true
200*c6d7a45dSGunnar Mills                },
201*c6d7a45dSGunnar Mills                "Oem": {
202*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
203*c6d7a45dSGunnar Mills                    "description": "The OEM extension property.",
204*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
205*c6d7a45dSGunnar Mills                },
206*c6d7a45dSGunnar Mills                "Status": {
207*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
208*c6d7a45dSGunnar Mills                    "description": "The status and health of the resource and its subordinate or dependent resources.",
209*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain any status or health properties of the resource."
210*c6d7a45dSGunnar Mills                },
211*c6d7a45dSGunnar Mills                "VPPBId": {
212*c6d7a45dSGunnar Mills                    "description": "The Virtual PCI-PCI Bridge identifier.",
213*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the identifier of the vPPB.  This property shall contain the same value as the `Id` property.",
214*c6d7a45dSGunnar Mills                    "readonly": true,
215*c6d7a45dSGunnar Mills                    "type": [
216*c6d7a45dSGunnar Mills                        "string",
217*c6d7a45dSGunnar Mills                        "null"
218*c6d7a45dSGunnar Mills                    ]
219*c6d7a45dSGunnar Mills                }
220*c6d7a45dSGunnar Mills            },
221*c6d7a45dSGunnar Mills            "required": [
222*c6d7a45dSGunnar Mills                "@odata.id",
223*c6d7a45dSGunnar Mills                "@odata.type",
224*c6d7a45dSGunnar Mills                "Id",
225*c6d7a45dSGunnar Mills                "Name"
226*c6d7a45dSGunnar Mills            ],
227*c6d7a45dSGunnar Mills            "type": "object"
228*c6d7a45dSGunnar Mills        },
229*c6d7a45dSGunnar Mills        "vPPBStatusTypes": {
230*c6d7a45dSGunnar Mills            "enum": [
231*c6d7a45dSGunnar Mills                "Unbound",
232*c6d7a45dSGunnar Mills                "Busy",
233*c6d7a45dSGunnar Mills                "BoundPhysicalPort",
234*c6d7a45dSGunnar Mills                "BoundLD",
235*c6d7a45dSGunnar Mills                "BoundPID"
236*c6d7a45dSGunnar Mills            ],
237*c6d7a45dSGunnar Mills            "enumDescriptions": {
238*c6d7a45dSGunnar Mills                "BoundLD": "This vPPB is bound to a CXL logical device.",
239*c6d7a45dSGunnar Mills                "BoundPID": "This vPPB is bound to a PBR ID.",
240*c6d7a45dSGunnar Mills                "BoundPhysicalPort": "This vPPB is bound to a physical port.",
241*c6d7a45dSGunnar Mills                "Busy": "Binding or unbinding is in progress for this vPPB.",
242*c6d7a45dSGunnar Mills                "Unbound": "This vPPB is in unbound state."
243*c6d7a45dSGunnar Mills            },
244*c6d7a45dSGunnar Mills            "enumLongDescriptions": {
245*c6d7a45dSGunnar Mills                "BoundLD": "This value shall indicate the CXL Specification-defined 'Bound LD' state for the vPPB.",
246*c6d7a45dSGunnar Mills                "BoundPID": "This value shall indicate the CXL Specification-defined 'Bound PBR Id' state for the vPPB.",
247*c6d7a45dSGunnar Mills                "BoundPhysicalPort": "This value shall indicate the CXL Specification-defined 'Bound Physical Port' state for the vPPB.",
248*c6d7a45dSGunnar Mills                "Busy": "This value shall indicate the CXL Specification-defined 'Binding or Unbinding' state for the vPPB.",
249*c6d7a45dSGunnar Mills                "Unbound": "This value shall indicate the CXL Specification-defined 'Unbound' state for the vPPB."
250*c6d7a45dSGunnar Mills            },
251*c6d7a45dSGunnar Mills            "type": "string"
252*c6d7a45dSGunnar Mills        }
253*c6d7a45dSGunnar Mills    },
254*c6d7a45dSGunnar Mills    "owningEntity": "DMTF",
255*c6d7a45dSGunnar Mills    "release": "2025.2",
256*c6d7a45dSGunnar Mills    "title": "#VirtualPCI2PCIBridge.v1_0_0.VirtualPCI2PCIBridge"
257*c6d7a45dSGunnar Mills}