Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions redfish-core/schema/oem/ibm/csdl/OemBmcPairing_v1.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
<edmx:Reference
Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
<edmx:Include Namespace="Org.OData.Core.V1" Alias="OData" />
</edmx:Reference>
<edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Manager_v1.xml">
<edmx:Include Namespace="Manager" />
<edmx:Include Namespace="Manager.v1_15_0.Manager" />
</edmx:Reference>
<edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
<edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish" />
</edmx:Reference>
<edmx:DataServices>
<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="OemBmcPairing">
<Annotation Term="Redfish.OwningEntity" String="IBM" />
</Schema>
<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="OemBmcPairing.v1_0_0">
<ComplexType Name="BmcPairing">
<Annotation Term="OData.AdditionalProperties" Bool="false" />
<Annotation Term="OData.Description" String="BMC Pairing information." />
<Annotation Term="OData.LongDescription"
String="This type shall contain information about the BMC pairing status." />
<Property Name="Paired" Type="Edm.Boolean">
<Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read" />
<Annotation Term="OData.Description"
String="Indicates whether this BMC is paired with another BMC." />
<Annotation Term="OData.LongDescription"
String="This property shall indicate whether this BMC is currently paired with another BMC. A value of true indicates the BMC is paired, false indicates it is not paired." />
</Property>
<Property Name="AvailableBmcs" Type="Collection(Edm.String)">
<Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read" />
<Annotation Term="OData.Description"
String="The names of BMCs that are available for pairing." />
<Annotation Term="OData.LongDescription"
String="This property shall contain an array of names of BMCs that are discovered and available for pairing with this BMC. This array may be empty if no BMCs are currently available for pairing." />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is meant here by "names of BMCs"? Is this a Redfish link, DBus object path?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No. It is a unique identifier for BMC(String) . In our case it will be "peer" and "self". This will be passed as argument for pairing action.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For clarity I think the long description should specify this level of detail.

</Property>
</ComplexType>
<Action Name="Pair" IsBound="true">
<Annotation Term="OData.Description"
String="This action pairs this BMC with another BMC." />
<Annotation Term="OData.LongDescription"
String="This action shall establish a pairing relationship between this BMC and the specified target BMC." />
<Parameter Name="Manager" Type="Manager.v1_0_0.OemActions" />
<Parameter Name="BmcName" Type="Edm.String" Nullable="false">
<Annotation Term="OData.Description" String="The name of the BMC to pair with." />
<Annotation Term="OData.LongDescription"
String="This parameter shall contain the name or identifier of the BMC to establish pairing with." />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is meant here by name or identifier? Is this a Redfish link, DBus object path?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Its not redfish link. It is a string name (peer or self)

</Parameter>
</Action>
</Schema>
</edmx:DataServices>
</edmx:Edmx>
8 changes: 8 additions & 0 deletions redfish-core/schema/oem/ibm/json-schema/OemBmcPairing.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$id": "https://github.com/ibm-openbmc/bmcweb/tree/HEAD/redfish-core/schema/oem/ibm/json-schema/OemBmcPairing.json",
"$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
"copyright": "Copyright 2026 OpenBMC.",
"definitions": {},
"owningEntity": "IBM",
"title": "#OemBmcPairing"
}
84 changes: 84 additions & 0 deletions redfish-core/schema/oem/ibm/json-schema/OemBmcPairing.v1_0_0.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
{
"$id": "https://github.com/ibm-openbmc/bmcweb/tree/HEAD/redfish-core/schema/oem/ibm/json-schema/OemBmcPairing.v1_0_0.json",
"$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
"Copyright": "Copyright 2026 OpenBMC.",
"definitions": {
"BmcPairing": {
"additionalProperties": false,
"description": "BMC Pairing information",
"patternProperties": {
"^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
"description": "This property shall specify a valid odata or Redfish property.",
"type": [
"array",
"boolean",
"integer",
"number",
"null",
"object",
"string"
]
}
},
"properties": {
"Paired": {
"description": "Indicates whether this BMC is paired with another BMC",
"longDescription": "This property shall indicate whether this BMC is currently paired with another BMC. A value of true indicates the BMC is paired, false indicates it is not paired.",
"type": "boolean",
"readonly": true
},
"AvailableBmcs": {
"description": "The names of BMCs that are available for pairing",
"longDescription": "This property shall contain an array of names of BMCs that are discovered and available for pairing with this BMC. This array may be empty if no BMCs are currently available for pairing.",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question here on meaning of names

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is answered above

"type": "array",
"items": {
"type": "string"
},
"readonly": true
}
},
"type": "object"
},
"Pair": {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The DMTF schemas define the Actions separately under "Actions". I'm wondering if this should be done similarly?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have any example for it?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here is one of them, I'm seeing it in many of them:

https://redfish.dmtf.org/schemas/v1/Fan.v1_6_0.json

"additionalProperties": false,
"description": "This action pairs this BMC with another BMC",
"parameters": {
"BmcName": {
"description": "The name of the BMC to pair with",
"longDescription": "This parameter shall contain the name or identifier of the BMC to establish pairing with.",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question here on meaning of name

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Answered above

"requiredParameter": true,
"type": "string"
}
},
"patternProperties": {
"^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
"description": "This property shall specify a valid odata or Redfish property.",
"type": [
"array",
"boolean",
"integer",
"number",
"null",
"object",
"string"
]
}
},
"properties": {
"target": {
"description": "Link to invoke action",
"format": "uri-reference",
"type": "string"
},
"title": {
"description": "Friendly action name",
"type": "string"
}
},
"type": "object"
}
},
"OwningEntity": "OpenBMC",
"release": "1.0",
"title": "#OemBmcPairing.v1_0_0"
}
1 change: 1 addition & 0 deletions redfish-core/schema/oem/ibm/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ schemas = [
'IBMPCIeDevice',
'IBMPCIeSlots',
'IBMServiceRoot',
'OemBmcPairing',
'OemUpdateService',
]

Expand Down