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