xref: /openbmc/bmcweb/features/redfish/schema/dmtf/json-schema/Port.v1_17_0.json (revision 5ecf7b4e1bb6988dd3403fa80b723afbe2be30ae)
1*5ecf7b4eSGunnar Mills{
2*5ecf7b4eSGunnar Mills    "$id": "http://redfish.dmtf.org/schemas/v1/Port.v1_17_0.json",
3*5ecf7b4eSGunnar Mills    "$ref": "#/definitions/Port",
4*5ecf7b4eSGunnar Mills    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
5*5ecf7b4eSGunnar Mills    "copyright": "Copyright 2014-2025 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
6*5ecf7b4eSGunnar Mills    "definitions": {
7*5ecf7b4eSGunnar Mills        "Actions": {
8*5ecf7b4eSGunnar Mills            "additionalProperties": false,
9*5ecf7b4eSGunnar Mills            "description": "The available actions for this resource.",
10*5ecf7b4eSGunnar Mills            "longDescription": "This type shall contain the available actions for this resource.",
11*5ecf7b4eSGunnar Mills            "patternProperties": {
12*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
13*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
14*5ecf7b4eSGunnar Mills                    "type": [
15*5ecf7b4eSGunnar Mills                        "array",
16*5ecf7b4eSGunnar Mills                        "boolean",
17*5ecf7b4eSGunnar Mills                        "integer",
18*5ecf7b4eSGunnar Mills                        "number",
19*5ecf7b4eSGunnar Mills                        "null",
20*5ecf7b4eSGunnar Mills                        "object",
21*5ecf7b4eSGunnar Mills                        "string"
22*5ecf7b4eSGunnar Mills                    ]
23*5ecf7b4eSGunnar Mills                }
24*5ecf7b4eSGunnar Mills            },
25*5ecf7b4eSGunnar Mills            "properties": {
26*5ecf7b4eSGunnar Mills                "#Port.Reset": {
27*5ecf7b4eSGunnar Mills                    "$ref": "#/definitions/Reset"
28*5ecf7b4eSGunnar Mills                },
29*5ecf7b4eSGunnar Mills                "#Port.ResetPPB": {
30*5ecf7b4eSGunnar Mills                    "$ref": "#/definitions/ResetPPB"
31*5ecf7b4eSGunnar Mills                },
32*5ecf7b4eSGunnar Mills                "Oem": {
33*5ecf7b4eSGunnar Mills                    "$ref": "#/definitions/OemActions",
34*5ecf7b4eSGunnar Mills                    "description": "The available OEM-specific actions for this resource.",
35*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the available OEM-specific actions for this resource."
36*5ecf7b4eSGunnar Mills                }
37*5ecf7b4eSGunnar Mills            },
38*5ecf7b4eSGunnar Mills            "type": "object"
39*5ecf7b4eSGunnar Mills        },
40*5ecf7b4eSGunnar Mills        "CXL": {
41*5ecf7b4eSGunnar Mills            "additionalProperties": false,
42*5ecf7b4eSGunnar Mills            "description": "CXL properties for a port.",
43*5ecf7b4eSGunnar Mills            "longDescription": "This type shall contain CXL-specific properties for a port.",
44*5ecf7b4eSGunnar Mills            "patternProperties": {
45*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
46*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
47*5ecf7b4eSGunnar Mills                    "type": [
48*5ecf7b4eSGunnar Mills                        "array",
49*5ecf7b4eSGunnar Mills                        "boolean",
50*5ecf7b4eSGunnar Mills                        "integer",
51*5ecf7b4eSGunnar Mills                        "number",
52*5ecf7b4eSGunnar Mills                        "null",
53*5ecf7b4eSGunnar Mills                        "object",
54*5ecf7b4eSGunnar Mills                        "string"
55*5ecf7b4eSGunnar Mills                    ]
56*5ecf7b4eSGunnar Mills                }
57*5ecf7b4eSGunnar Mills            },
58*5ecf7b4eSGunnar Mills            "properties": {
59*5ecf7b4eSGunnar Mills                "Congestion": {
60*5ecf7b4eSGunnar Mills                    "anyOf": [
61*5ecf7b4eSGunnar Mills                        {
62*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/Congestion"
63*5ecf7b4eSGunnar Mills                        },
64*5ecf7b4eSGunnar Mills                        {
65*5ecf7b4eSGunnar Mills                            "type": "null"
66*5ecf7b4eSGunnar Mills                        }
67*5ecf7b4eSGunnar Mills                    ],
68*5ecf7b4eSGunnar Mills                    "description": "The congestion properties for this CXL port.",
69*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the congestion properties for this CXL port.",
70*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
71*5ecf7b4eSGunnar Mills                },
72*5ecf7b4eSGunnar Mills                "ConnectedDeviceMode": {
73*5ecf7b4eSGunnar Mills                    "anyOf": [
74*5ecf7b4eSGunnar Mills                        {
75*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/ConnectedDeviceMode"
76*5ecf7b4eSGunnar Mills                        },
77*5ecf7b4eSGunnar Mills                        {
78*5ecf7b4eSGunnar Mills                            "type": "null"
79*5ecf7b4eSGunnar Mills                        }
80*5ecf7b4eSGunnar Mills                    ],
81*5ecf7b4eSGunnar Mills                    "description": "The connected device mode.",
82*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the CXL Specification-defined 'Connected Device Mode'.",
83*5ecf7b4eSGunnar Mills                    "readonly": true,
84*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
85*5ecf7b4eSGunnar Mills                },
86*5ecf7b4eSGunnar Mills                "ConnectedDeviceType": {
87*5ecf7b4eSGunnar Mills                    "anyOf": [
88*5ecf7b4eSGunnar Mills                        {
89*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/ConnectedDeviceType"
90*5ecf7b4eSGunnar Mills                        },
91*5ecf7b4eSGunnar Mills                        {
92*5ecf7b4eSGunnar Mills                            "type": "null"
93*5ecf7b4eSGunnar Mills                        }
94*5ecf7b4eSGunnar Mills                    ],
95*5ecf7b4eSGunnar Mills                    "description": "The connected device type.",
96*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the CXL Specification-defined 'Connected Device Type'.",
97*5ecf7b4eSGunnar Mills                    "readonly": true,
98*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
99*5ecf7b4eSGunnar Mills                },
100*5ecf7b4eSGunnar Mills                "CurrentPortConfigurationState": {
101*5ecf7b4eSGunnar Mills                    "anyOf": [
102*5ecf7b4eSGunnar Mills                        {
103*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/CurrentPortConfigurationState"
104*5ecf7b4eSGunnar Mills                        },
105*5ecf7b4eSGunnar Mills                        {
106*5ecf7b4eSGunnar Mills                            "type": "null"
107*5ecf7b4eSGunnar Mills                        }
108*5ecf7b4eSGunnar Mills                    ],
109*5ecf7b4eSGunnar Mills                    "description": "The current port configuration state.",
110*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the CXL Specification-defined 'Current Port Configuration State'.",
111*5ecf7b4eSGunnar Mills                    "readonly": true,
112*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
113*5ecf7b4eSGunnar Mills                },
114*5ecf7b4eSGunnar Mills                "MaxLogicalDeviceCount": {
115*5ecf7b4eSGunnar Mills                    "description": "The maximum number of logical devices supported.",
116*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the CXL Specification-defined 'Supported LD Count'.",
117*5ecf7b4eSGunnar Mills                    "readonly": true,
118*5ecf7b4eSGunnar Mills                    "type": [
119*5ecf7b4eSGunnar Mills                        "integer",
120*5ecf7b4eSGunnar Mills                        "null"
121*5ecf7b4eSGunnar Mills                    ],
122*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
123*5ecf7b4eSGunnar Mills                },
124*5ecf7b4eSGunnar Mills                "QoSTelemetryCapabilities": {
125*5ecf7b4eSGunnar Mills                    "anyOf": [
126*5ecf7b4eSGunnar Mills                        {
127*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/QoSTelemetryCapabilities"
128*5ecf7b4eSGunnar Mills                        },
129*5ecf7b4eSGunnar Mills                        {
130*5ecf7b4eSGunnar Mills                            "type": "null"
131*5ecf7b4eSGunnar Mills                        }
132*5ecf7b4eSGunnar Mills                    ],
133*5ecf7b4eSGunnar Mills                    "description": "The quality of service telemetry capabilities for this CXL port.",
134*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the quality of service telemetry capabilities for this CXL port.",
135*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
136*5ecf7b4eSGunnar Mills                },
137*5ecf7b4eSGunnar Mills                "SupportedCXLModes": {
138*5ecf7b4eSGunnar Mills                    "description": "The supported device modes.",
139*5ecf7b4eSGunnar Mills                    "items": {
140*5ecf7b4eSGunnar Mills                        "anyOf": [
141*5ecf7b4eSGunnar Mills                            {
142*5ecf7b4eSGunnar Mills                                "$ref": "#/definitions/ConnectedDeviceMode"
143*5ecf7b4eSGunnar Mills                            },
144*5ecf7b4eSGunnar Mills                            {
145*5ecf7b4eSGunnar Mills                                "type": "null"
146*5ecf7b4eSGunnar Mills                            }
147*5ecf7b4eSGunnar Mills                        ]
148*5ecf7b4eSGunnar Mills                    },
149*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the CXL Specification-defined 'Supported CXL Modes'.  This property shall not contain the value `Disconnected`.",
150*5ecf7b4eSGunnar Mills                    "readonly": true,
151*5ecf7b4eSGunnar Mills                    "type": "array",
152*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_11_0"
153*5ecf7b4eSGunnar Mills                },
154*5ecf7b4eSGunnar Mills                "TemporaryThroughputReductionEnabled": {
155*5ecf7b4eSGunnar Mills                    "deprecated": "This property has been deprecated in favor of `TemporaryThroughputReductionEnabled` in `PCIeDevice`.",
156*5ecf7b4eSGunnar Mills                    "description": "Indicates whether temporary throughput reduction is enabled.",
157*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether the CXL Specification-defined 'Temporary Throughput Reduction' mechanism is enabled.",
158*5ecf7b4eSGunnar Mills                    "readonly": false,
159*5ecf7b4eSGunnar Mills                    "type": [
160*5ecf7b4eSGunnar Mills                        "boolean",
161*5ecf7b4eSGunnar Mills                        "null"
162*5ecf7b4eSGunnar Mills                    ],
163*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0",
164*5ecf7b4eSGunnar Mills                    "versionDeprecated": "v1_12_0"
165*5ecf7b4eSGunnar Mills                }
166*5ecf7b4eSGunnar Mills            },
167*5ecf7b4eSGunnar Mills            "type": "object"
168*5ecf7b4eSGunnar Mills        },
169*5ecf7b4eSGunnar Mills        "ConfiguredNetworkLink": {
170*5ecf7b4eSGunnar Mills            "additionalProperties": false,
171*5ecf7b4eSGunnar Mills            "description": "A set of link settings that a port is configured to use for autonegotiation.",
172*5ecf7b4eSGunnar Mills            "longDescription": "This type shall contain a set of link settings that a port is configured to use for autonegotiation.",
173*5ecf7b4eSGunnar Mills            "patternProperties": {
174*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
175*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
176*5ecf7b4eSGunnar Mills                    "type": [
177*5ecf7b4eSGunnar Mills                        "array",
178*5ecf7b4eSGunnar Mills                        "boolean",
179*5ecf7b4eSGunnar Mills                        "integer",
180*5ecf7b4eSGunnar Mills                        "number",
181*5ecf7b4eSGunnar Mills                        "null",
182*5ecf7b4eSGunnar Mills                        "object",
183*5ecf7b4eSGunnar Mills                        "string"
184*5ecf7b4eSGunnar Mills                    ]
185*5ecf7b4eSGunnar Mills                }
186*5ecf7b4eSGunnar Mills            },
187*5ecf7b4eSGunnar Mills            "properties": {
188*5ecf7b4eSGunnar Mills                "ConfiguredLinkSpeedGbps": {
189*5ecf7b4eSGunnar Mills                    "description": "The link speed per lane this port is configured to use for autonegotiation.",
190*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the network link speed per lane this port is configured to allow for autonegotiation purposes.  This value includes overhead associated with the protocol.",
191*5ecf7b4eSGunnar Mills                    "readonly": false,
192*5ecf7b4eSGunnar Mills                    "type": [
193*5ecf7b4eSGunnar Mills                        "number",
194*5ecf7b4eSGunnar Mills                        "null"
195*5ecf7b4eSGunnar Mills                    ],
196*5ecf7b4eSGunnar Mills                    "units": "Gbit/s",
197*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
198*5ecf7b4eSGunnar Mills                },
199*5ecf7b4eSGunnar Mills                "ConfiguredWidth": {
200*5ecf7b4eSGunnar Mills                    "description": "The link width this port is configured to use for autonegotiation in conjunction with the link speed.",
201*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the network link width this port is configured to use for autonegotiation purposes.",
202*5ecf7b4eSGunnar Mills                    "readonly": false,
203*5ecf7b4eSGunnar Mills                    "type": [
204*5ecf7b4eSGunnar Mills                        "integer",
205*5ecf7b4eSGunnar Mills                        "null"
206*5ecf7b4eSGunnar Mills                    ],
207*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
208*5ecf7b4eSGunnar Mills                }
209*5ecf7b4eSGunnar Mills            },
210*5ecf7b4eSGunnar Mills            "type": "object"
211*5ecf7b4eSGunnar Mills        },
212*5ecf7b4eSGunnar Mills        "Congestion": {
213*5ecf7b4eSGunnar Mills            "additionalProperties": false,
214*5ecf7b4eSGunnar Mills            "description": "The congestion properties for a CXL port.",
215*5ecf7b4eSGunnar Mills            "longDescription": "This type shall contain the congestion properties for a CXL port.",
216*5ecf7b4eSGunnar Mills            "patternProperties": {
217*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
218*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
219*5ecf7b4eSGunnar Mills                    "type": [
220*5ecf7b4eSGunnar Mills                        "array",
221*5ecf7b4eSGunnar Mills                        "boolean",
222*5ecf7b4eSGunnar Mills                        "integer",
223*5ecf7b4eSGunnar Mills                        "number",
224*5ecf7b4eSGunnar Mills                        "null",
225*5ecf7b4eSGunnar Mills                        "object",
226*5ecf7b4eSGunnar Mills                        "string"
227*5ecf7b4eSGunnar Mills                    ]
228*5ecf7b4eSGunnar Mills                }
229*5ecf7b4eSGunnar Mills            },
230*5ecf7b4eSGunnar Mills            "properties": {
231*5ecf7b4eSGunnar Mills                "BackpressureSampleInterval": {
232*5ecf7b4eSGunnar Mills                    "description": "The interval for the CXL Specification-defined 'Egress Port Congestion' mechanism to take samples in nanoseconds.",
233*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the CXL Specification-defined 'Backpressure Sample Interval' in nanoseconds.",
234*5ecf7b4eSGunnar Mills                    "readonly": false,
235*5ecf7b4eSGunnar Mills                    "type": [
236*5ecf7b4eSGunnar Mills                        "integer",
237*5ecf7b4eSGunnar Mills                        "null"
238*5ecf7b4eSGunnar Mills                    ],
239*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
240*5ecf7b4eSGunnar Mills                },
241*5ecf7b4eSGunnar Mills                "CompletionCollectionInterval": {
242*5ecf7b4eSGunnar Mills                    "description": "The interval for the CXL Specification-defined 'Completion Counting' mechanism to collect the number of transmitted responses in a single counter in nanoseconds.",
243*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the CXL Specification-defined 'Completion Collection Interval' in nanoseconds.",
244*5ecf7b4eSGunnar Mills                    "readonly": false,
245*5ecf7b4eSGunnar Mills                    "type": [
246*5ecf7b4eSGunnar Mills                        "integer",
247*5ecf7b4eSGunnar Mills                        "null"
248*5ecf7b4eSGunnar Mills                    ],
249*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
250*5ecf7b4eSGunnar Mills                },
251*5ecf7b4eSGunnar Mills                "CongestionTelemetryEnabled": {
252*5ecf7b4eSGunnar Mills                    "description": "Indicates whether congestion telemetry collection is enabled for this port.",
253*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether congestion telemetry collection is enabled for this port.",
254*5ecf7b4eSGunnar Mills                    "readonly": false,
255*5ecf7b4eSGunnar Mills                    "type": [
256*5ecf7b4eSGunnar Mills                        "boolean",
257*5ecf7b4eSGunnar Mills                        "null"
258*5ecf7b4eSGunnar Mills                    ],
259*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
260*5ecf7b4eSGunnar Mills                },
261*5ecf7b4eSGunnar Mills                "EgressModeratePercentage": {
262*5ecf7b4eSGunnar Mills                    "description": "The threshold for moderate egress port congestion as a percentage.",
263*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the threshold for moderate egress port congestion for the CXL Specification-defined 'Egress Port Congestion' mechanism as a percentage, `0` to `100`.",
264*5ecf7b4eSGunnar Mills                    "maximum": 100,
265*5ecf7b4eSGunnar Mills                    "minimum": 0,
266*5ecf7b4eSGunnar Mills                    "readonly": false,
267*5ecf7b4eSGunnar Mills                    "type": [
268*5ecf7b4eSGunnar Mills                        "integer",
269*5ecf7b4eSGunnar Mills                        "null"
270*5ecf7b4eSGunnar Mills                    ],
271*5ecf7b4eSGunnar Mills                    "units": "%",
272*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
273*5ecf7b4eSGunnar Mills                },
274*5ecf7b4eSGunnar Mills                "EgressSeverePercentage": {
275*5ecf7b4eSGunnar Mills                    "description": "The threshold for severe egress port congestion as a percentage.",
276*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the CXL Specification-defined 'Egress Severe Percentage' as a percentage, `0` to `100`.",
277*5ecf7b4eSGunnar Mills                    "maximum": 100,
278*5ecf7b4eSGunnar Mills                    "minimum": 0,
279*5ecf7b4eSGunnar Mills                    "readonly": false,
280*5ecf7b4eSGunnar Mills                    "type": [
281*5ecf7b4eSGunnar Mills                        "integer",
282*5ecf7b4eSGunnar Mills                        "null"
283*5ecf7b4eSGunnar Mills                    ],
284*5ecf7b4eSGunnar Mills                    "units": "%",
285*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
286*5ecf7b4eSGunnar Mills                },
287*5ecf7b4eSGunnar Mills                "MaxSustainedRequestCmpBias": {
288*5ecf7b4eSGunnar Mills                    "description": "The estimated maximum sustained sum of requests and recent responses across the entire device, serving as the basis for the CXL Specification-defined 'QoS Limit Fraction'.",
289*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the CXL Specification-defined 'ReqCmpBasis'.",
290*5ecf7b4eSGunnar Mills                    "readonly": false,
291*5ecf7b4eSGunnar Mills                    "type": [
292*5ecf7b4eSGunnar Mills                        "integer",
293*5ecf7b4eSGunnar Mills                        "null"
294*5ecf7b4eSGunnar Mills                    ],
295*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
296*5ecf7b4eSGunnar Mills                }
297*5ecf7b4eSGunnar Mills            },
298*5ecf7b4eSGunnar Mills            "type": "object"
299*5ecf7b4eSGunnar Mills        },
300*5ecf7b4eSGunnar Mills        "ConnectedDeviceMode": {
301*5ecf7b4eSGunnar Mills            "enum": [
302*5ecf7b4eSGunnar Mills                "Disconnected",
303*5ecf7b4eSGunnar Mills                "RCD",
304*5ecf7b4eSGunnar Mills                "CXL68BFlitAndVH",
305*5ecf7b4eSGunnar Mills                "Standard256BFlit",
306*5ecf7b4eSGunnar Mills                "CXLLatencyOptimized256BFlit",
307*5ecf7b4eSGunnar Mills                "PBR"
308*5ecf7b4eSGunnar Mills            ],
309*5ecf7b4eSGunnar Mills            "enumDescriptions": {
310*5ecf7b4eSGunnar Mills                "CXL68BFlitAndVH": "CXL 68B flit and VH.",
311*5ecf7b4eSGunnar Mills                "CXLLatencyOptimized256BFlit": "CXL latency-optimized 256B flit.",
312*5ecf7b4eSGunnar Mills                "Disconnected": "The connection is not CXL or is disconnected.",
313*5ecf7b4eSGunnar Mills                "PBR": "Port-based routing (PBR).",
314*5ecf7b4eSGunnar Mills                "RCD": "Restricted CXL device (RCD).",
315*5ecf7b4eSGunnar Mills                "Standard256BFlit": "Standard 256B flit."
316*5ecf7b4eSGunnar Mills            },
317*5ecf7b4eSGunnar Mills            "enumLongDescriptions": {
318*5ecf7b4eSGunnar Mills                "CXL68BFlitAndVH": "This value shall indicate the connected device mode is CXL 68B flit and VH.",
319*5ecf7b4eSGunnar Mills                "CXLLatencyOptimized256BFlit": "This value shall indicate the connected device mode is CXL latency-optimized 256B flit.",
320*5ecf7b4eSGunnar Mills                "Disconnected": "This value shall indicate the connection is not CXL or is disconnected.",
321*5ecf7b4eSGunnar Mills                "PBR": "This value shall indicate the connected device mode is port-based routing (PBR).",
322*5ecf7b4eSGunnar Mills                "RCD": "This value shall indicate the connected device mode is restricted CXL device (RCD).",
323*5ecf7b4eSGunnar Mills                "Standard256BFlit": "This value shall indicate the connected device mode is standard 256B flit."
324*5ecf7b4eSGunnar Mills            },
325*5ecf7b4eSGunnar Mills            "type": "string"
326*5ecf7b4eSGunnar Mills        },
327*5ecf7b4eSGunnar Mills        "ConnectedDeviceType": {
328*5ecf7b4eSGunnar Mills            "enum": [
329*5ecf7b4eSGunnar Mills                "None",
330*5ecf7b4eSGunnar Mills                "PCIeDevice",
331*5ecf7b4eSGunnar Mills                "Type1",
332*5ecf7b4eSGunnar Mills                "Type2",
333*5ecf7b4eSGunnar Mills                "Type3SLD",
334*5ecf7b4eSGunnar Mills                "Type3MLD",
335*5ecf7b4eSGunnar Mills                "PBRComponent"
336*5ecf7b4eSGunnar Mills            ],
337*5ecf7b4eSGunnar Mills            "enumDescriptions": {
338*5ecf7b4eSGunnar Mills                "None": "No device detected.",
339*5ecf7b4eSGunnar Mills                "PBRComponent": "CXL PBR component.",
340*5ecf7b4eSGunnar Mills                "PCIeDevice": "PCIe device.",
341*5ecf7b4eSGunnar Mills                "Type1": "CXL Type 1 device.",
342*5ecf7b4eSGunnar Mills                "Type2": "CXL Type 2 device.",
343*5ecf7b4eSGunnar Mills                "Type3MLD": "CXL Type 3 multi-logical device (MLD).",
344*5ecf7b4eSGunnar Mills                "Type3SLD": "CXL Type 3 single logical device (SLD)."
345*5ecf7b4eSGunnar Mills            },
346*5ecf7b4eSGunnar Mills            "enumLongDescriptions": {
347*5ecf7b4eSGunnar Mills                "None": "This value shall indicate no device is detected.",
348*5ecf7b4eSGunnar Mills                "PBRComponent": "This value shall indicate the connected device is a port-based routing (PBR) component.",
349*5ecf7b4eSGunnar Mills                "PCIeDevice": "This value shall indicate the connected device is a PCIe device.",
350*5ecf7b4eSGunnar Mills                "Type1": "This value shall indicate the connected device is a CXL Type 1 device.",
351*5ecf7b4eSGunnar Mills                "Type2": "This value shall indicate the connected device is a CXL Type 2 device.",
352*5ecf7b4eSGunnar Mills                "Type3MLD": "This value shall indicate the connected device is a CXL Type 3 multi-logical device (MLD).",
353*5ecf7b4eSGunnar Mills                "Type3SLD": "This value shall indicate the connected device is a CXL Type 3 single logical device (SLD)."
354*5ecf7b4eSGunnar Mills            },
355*5ecf7b4eSGunnar Mills            "enumVersionAdded": {
356*5ecf7b4eSGunnar Mills                "PBRComponent": "v1_17_0"
357*5ecf7b4eSGunnar Mills            },
358*5ecf7b4eSGunnar Mills            "type": "string"
359*5ecf7b4eSGunnar Mills        },
360*5ecf7b4eSGunnar Mills        "CurrentPortConfigurationState": {
361*5ecf7b4eSGunnar Mills            "enum": [
362*5ecf7b4eSGunnar Mills                "Disabled",
363*5ecf7b4eSGunnar Mills                "BindInProgress",
364*5ecf7b4eSGunnar Mills                "UnbindInProgress",
365*5ecf7b4eSGunnar Mills                "DSP",
366*5ecf7b4eSGunnar Mills                "USP",
367*5ecf7b4eSGunnar Mills                "Reserved",
368*5ecf7b4eSGunnar Mills                "FabricLink"
369*5ecf7b4eSGunnar Mills            ],
370*5ecf7b4eSGunnar Mills            "enumDeprecated": {
371*5ecf7b4eSGunnar Mills                "Reserved": "This value has been deprecated in favor of `FabricLink`."
372*5ecf7b4eSGunnar Mills            },
373*5ecf7b4eSGunnar Mills            "enumDescriptions": {
374*5ecf7b4eSGunnar Mills                "BindInProgress": "Bind in progress.",
375*5ecf7b4eSGunnar Mills                "DSP": "Downstream port (DSP).",
376*5ecf7b4eSGunnar Mills                "Disabled": "Disabled.",
377*5ecf7b4eSGunnar Mills                "FabricLink": "Fabric link.",
378*5ecf7b4eSGunnar Mills                "Reserved": "Reserved.",
379*5ecf7b4eSGunnar Mills                "USP": "Upstream port (USP).",
380*5ecf7b4eSGunnar Mills                "UnbindInProgress": "Unbind in progress."
381*5ecf7b4eSGunnar Mills            },
382*5ecf7b4eSGunnar Mills            "enumLongDescriptions": {
383*5ecf7b4eSGunnar Mills                "BindInProgress": "This value shall indicate a bind is in progress for the port.",
384*5ecf7b4eSGunnar Mills                "DSP": "This value shall indicate the port is enabled as a downstream port (DSP).",
385*5ecf7b4eSGunnar Mills                "Disabled": "This value shall indicate the port is disabled.",
386*5ecf7b4eSGunnar Mills                "FabricLink": "This value shall indicate the port is enabled as a fabric link to another switch.  This value is the same as 'Fabric Port' as described in the CXL Specification v3.1 and later.  Previous versions of the CXL Specification referred to this value as a 'Fabric Link'.",
387*5ecf7b4eSGunnar Mills                "Reserved": "This value shall indicate the port is in a reserved state.",
388*5ecf7b4eSGunnar Mills                "USP": "This value shall indicate the port is enabled as an upstream port (USP).",
389*5ecf7b4eSGunnar Mills                "UnbindInProgress": "This value shall indicate an unbind is in progress for the port."
390*5ecf7b4eSGunnar Mills            },
391*5ecf7b4eSGunnar Mills            "enumVersionAdded": {
392*5ecf7b4eSGunnar Mills                "FabricLink": "v1_11_0"
393*5ecf7b4eSGunnar Mills            },
394*5ecf7b4eSGunnar Mills            "enumVersionDeprecated": {
395*5ecf7b4eSGunnar Mills                "Reserved": "v1_11_0"
396*5ecf7b4eSGunnar Mills            },
397*5ecf7b4eSGunnar Mills            "type": "string"
398*5ecf7b4eSGunnar Mills        },
399*5ecf7b4eSGunnar Mills        "EthernetProperties": {
400*5ecf7b4eSGunnar Mills            "additionalProperties": false,
401*5ecf7b4eSGunnar Mills            "description": "Ethernet-specific properties for a port.",
402*5ecf7b4eSGunnar Mills            "longDescription": "This type shall contain Ethernet-specific properties for a port.",
403*5ecf7b4eSGunnar Mills            "patternProperties": {
404*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
405*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
406*5ecf7b4eSGunnar Mills                    "type": [
407*5ecf7b4eSGunnar Mills                        "array",
408*5ecf7b4eSGunnar Mills                        "boolean",
409*5ecf7b4eSGunnar Mills                        "integer",
410*5ecf7b4eSGunnar Mills                        "number",
411*5ecf7b4eSGunnar Mills                        "null",
412*5ecf7b4eSGunnar Mills                        "object",
413*5ecf7b4eSGunnar Mills                        "string"
414*5ecf7b4eSGunnar Mills                    ]
415*5ecf7b4eSGunnar Mills                }
416*5ecf7b4eSGunnar Mills            },
417*5ecf7b4eSGunnar Mills            "properties": {
418*5ecf7b4eSGunnar Mills                "AssociatedMACAddresses": {
419*5ecf7b4eSGunnar Mills                    "description": "An array of configured MAC addresses that are associated with this network port, including the programmed address of the lowest-numbered network device function, the configured but not active address, if applicable, the address for hardware port teaming, or other network addresses.",
420*5ecf7b4eSGunnar Mills                    "items": {
421*5ecf7b4eSGunnar Mills                        "type": [
422*5ecf7b4eSGunnar Mills                            "string",
423*5ecf7b4eSGunnar Mills                            "null"
424*5ecf7b4eSGunnar Mills                        ]
425*5ecf7b4eSGunnar Mills                    },
426*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of configured MAC addresses that are associated with this network port, including the programmed address of the lowest-numbered network device function, the configured but not active address if applicable, the address for hardware port teaming, or other network addresses.",
427*5ecf7b4eSGunnar Mills                    "pattern": "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$",
428*5ecf7b4eSGunnar Mills                    "readonly": true,
429*5ecf7b4eSGunnar Mills                    "type": "array",
430*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
431*5ecf7b4eSGunnar Mills                },
432*5ecf7b4eSGunnar Mills                "EEEEnabled": {
433*5ecf7b4eSGunnar Mills                    "description": "Indicates whether IEEE 802.3az Energy-Efficient Ethernet (EEE) is enabled on this port.",
434*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether IEEE 802.3az Energy-Efficient Ethernet (EEE) is enabled on this port.",
435*5ecf7b4eSGunnar Mills                    "readonly": false,
436*5ecf7b4eSGunnar Mills                    "type": [
437*5ecf7b4eSGunnar Mills                        "boolean",
438*5ecf7b4eSGunnar Mills                        "null"
439*5ecf7b4eSGunnar Mills                    ],
440*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_5_0"
441*5ecf7b4eSGunnar Mills                },
442*5ecf7b4eSGunnar Mills                "FlowControlConfiguration": {
443*5ecf7b4eSGunnar Mills                    "anyOf": [
444*5ecf7b4eSGunnar Mills                        {
445*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/FlowControl"
446*5ecf7b4eSGunnar Mills                        },
447*5ecf7b4eSGunnar Mills                        {
448*5ecf7b4eSGunnar Mills                            "type": "null"
449*5ecf7b4eSGunnar Mills                        }
450*5ecf7b4eSGunnar Mills                    ],
451*5ecf7b4eSGunnar Mills                    "description": "The locally configured 802.3x flow control setting for this port.",
452*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the locally configured 802.3x flow control setting for this port.",
453*5ecf7b4eSGunnar Mills                    "readonly": false,
454*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
455*5ecf7b4eSGunnar Mills                },
456*5ecf7b4eSGunnar Mills                "FlowControlStatus": {
457*5ecf7b4eSGunnar Mills                    "anyOf": [
458*5ecf7b4eSGunnar Mills                        {
459*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/FlowControl"
460*5ecf7b4eSGunnar Mills                        },
461*5ecf7b4eSGunnar Mills                        {
462*5ecf7b4eSGunnar Mills                            "type": "null"
463*5ecf7b4eSGunnar Mills                        }
464*5ecf7b4eSGunnar Mills                    ],
465*5ecf7b4eSGunnar Mills                    "description": "The 802.3x flow control behavior negotiated with the link partner for this port.",
466*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the 802.3x flow control behavior negotiated with the link partner for this port.",
467*5ecf7b4eSGunnar Mills                    "readonly": true,
468*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
469*5ecf7b4eSGunnar Mills                },
470*5ecf7b4eSGunnar Mills                "LLDPEnabled": {
471*5ecf7b4eSGunnar Mills                    "description": "Enable/disable LLDP for this port.",
472*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the state indicating whether to enable LLDP for a port.  If LLDP is disabled at the adapter level, this property shall be ignored.",
473*5ecf7b4eSGunnar Mills                    "readonly": false,
474*5ecf7b4eSGunnar Mills                    "type": "boolean",
475*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
476*5ecf7b4eSGunnar Mills                },
477*5ecf7b4eSGunnar Mills                "LLDPReceive": {
478*5ecf7b4eSGunnar Mills                    "anyOf": [
479*5ecf7b4eSGunnar Mills                        {
480*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/LLDPReceive"
481*5ecf7b4eSGunnar Mills                        },
482*5ecf7b4eSGunnar Mills                        {
483*5ecf7b4eSGunnar Mills                            "type": "null"
484*5ecf7b4eSGunnar Mills                        }
485*5ecf7b4eSGunnar Mills                    ],
486*5ecf7b4eSGunnar Mills                    "description": "LLDP data being received on this link.",
487*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the LLDP data being received on this link.",
488*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
489*5ecf7b4eSGunnar Mills                },
490*5ecf7b4eSGunnar Mills                "LLDPTransmit": {
491*5ecf7b4eSGunnar Mills                    "anyOf": [
492*5ecf7b4eSGunnar Mills                        {
493*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/LLDPTransmit"
494*5ecf7b4eSGunnar Mills                        },
495*5ecf7b4eSGunnar Mills                        {
496*5ecf7b4eSGunnar Mills                            "type": "null"
497*5ecf7b4eSGunnar Mills                        }
498*5ecf7b4eSGunnar Mills                    ],
499*5ecf7b4eSGunnar Mills                    "description": "LLDP data being transmitted on this link.",
500*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the LLDP data being transmitted on this link.",
501*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
502*5ecf7b4eSGunnar Mills                },
503*5ecf7b4eSGunnar Mills                "SupportedEthernetCapabilities": {
504*5ecf7b4eSGunnar Mills                    "deprecated": "This property has been deprecated in favor of individual fields for the various properties.",
505*5ecf7b4eSGunnar Mills                    "description": "The set of Ethernet capabilities that this port supports.",
506*5ecf7b4eSGunnar Mills                    "items": {
507*5ecf7b4eSGunnar Mills                        "anyOf": [
508*5ecf7b4eSGunnar Mills                            {
509*5ecf7b4eSGunnar Mills                                "$ref": "#/definitions/SupportedEthernetCapabilities"
510*5ecf7b4eSGunnar Mills                            },
511*5ecf7b4eSGunnar Mills                            {
512*5ecf7b4eSGunnar Mills                                "type": "null"
513*5ecf7b4eSGunnar Mills                            }
514*5ecf7b4eSGunnar Mills                        ]
515*5ecf7b4eSGunnar Mills                    },
516*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of Ethernet capabilities supported by this port.",
517*5ecf7b4eSGunnar Mills                    "readonly": true,
518*5ecf7b4eSGunnar Mills                    "type": "array",
519*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0",
520*5ecf7b4eSGunnar Mills                    "versionDeprecated": "v1_5_0"
521*5ecf7b4eSGunnar Mills                },
522*5ecf7b4eSGunnar Mills                "WakeOnLANEnabled": {
523*5ecf7b4eSGunnar Mills                    "description": "Indicates whether Wake on LAN (WoL) is enabled on this port.",
524*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether Wake on LAN (WoL) is enabled on this port.",
525*5ecf7b4eSGunnar Mills                    "readonly": false,
526*5ecf7b4eSGunnar Mills                    "type": [
527*5ecf7b4eSGunnar Mills                        "boolean",
528*5ecf7b4eSGunnar Mills                        "null"
529*5ecf7b4eSGunnar Mills                    ],
530*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_5_0"
531*5ecf7b4eSGunnar Mills                }
532*5ecf7b4eSGunnar Mills            },
533*5ecf7b4eSGunnar Mills            "type": "object"
534*5ecf7b4eSGunnar Mills        },
535*5ecf7b4eSGunnar Mills        "FiberConnectionType": {
536*5ecf7b4eSGunnar Mills            "enum": [
537*5ecf7b4eSGunnar Mills                "SingleMode",
538*5ecf7b4eSGunnar Mills                "MultiMode"
539*5ecf7b4eSGunnar Mills            ],
540*5ecf7b4eSGunnar Mills            "enumDescriptions": {
541*5ecf7b4eSGunnar Mills                "MultiMode": "The connection is using multi mode operation.",
542*5ecf7b4eSGunnar Mills                "SingleMode": "The connection is using single mode operation."
543*5ecf7b4eSGunnar Mills            },
544*5ecf7b4eSGunnar Mills            "type": "string"
545*5ecf7b4eSGunnar Mills        },
546*5ecf7b4eSGunnar Mills        "FibreChannelProperties": {
547*5ecf7b4eSGunnar Mills            "additionalProperties": false,
548*5ecf7b4eSGunnar Mills            "description": "Fibre Channel-specific properties for a port.",
549*5ecf7b4eSGunnar Mills            "longDescription": "This type shall contain Fibre Channel-specific properties for a port.",
550*5ecf7b4eSGunnar Mills            "patternProperties": {
551*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
552*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
553*5ecf7b4eSGunnar Mills                    "type": [
554*5ecf7b4eSGunnar Mills                        "array",
555*5ecf7b4eSGunnar Mills                        "boolean",
556*5ecf7b4eSGunnar Mills                        "integer",
557*5ecf7b4eSGunnar Mills                        "number",
558*5ecf7b4eSGunnar Mills                        "null",
559*5ecf7b4eSGunnar Mills                        "object",
560*5ecf7b4eSGunnar Mills                        "string"
561*5ecf7b4eSGunnar Mills                    ]
562*5ecf7b4eSGunnar Mills                }
563*5ecf7b4eSGunnar Mills            },
564*5ecf7b4eSGunnar Mills            "properties": {
565*5ecf7b4eSGunnar Mills                "AssociatedWorldWideNames": {
566*5ecf7b4eSGunnar Mills                    "description": "An array of configured World Wide Names (WWN) that are associated with this network port, including the programmed address of the lowest-numbered network device function, the configured but not active address, if applicable, the address for hardware port teaming, or other network addresses.",
567*5ecf7b4eSGunnar Mills                    "items": {
568*5ecf7b4eSGunnar Mills                        "type": [
569*5ecf7b4eSGunnar Mills                            "string",
570*5ecf7b4eSGunnar Mills                            "null"
571*5ecf7b4eSGunnar Mills                        ]
572*5ecf7b4eSGunnar Mills                    },
573*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of configured World Wide Names (WWN) that are associated with this network port, including the programmed address of the lowest-numbered network device function, the configured but not active address if applicable, the address for hardware port teaming, or other network addresses.",
574*5ecf7b4eSGunnar Mills                    "pattern": "^([0-9A-Fa-f]{2}[:-]){7}([0-9A-Fa-f]{2})$",
575*5ecf7b4eSGunnar Mills                    "readonly": true,
576*5ecf7b4eSGunnar Mills                    "type": "array",
577*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
578*5ecf7b4eSGunnar Mills                },
579*5ecf7b4eSGunnar Mills                "FabricName": {
580*5ecf7b4eSGunnar Mills                    "description": "The Fibre Channel Fabric Name provided by the switch.",
581*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate the Fibre Channel Fabric Name provided by the switch.",
582*5ecf7b4eSGunnar Mills                    "readonly": true,
583*5ecf7b4eSGunnar Mills                    "type": [
584*5ecf7b4eSGunnar Mills                        "string",
585*5ecf7b4eSGunnar Mills                        "null"
586*5ecf7b4eSGunnar Mills                    ],
587*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
588*5ecf7b4eSGunnar Mills                },
589*5ecf7b4eSGunnar Mills                "NumberDiscoveredRemotePorts": {
590*5ecf7b4eSGunnar Mills                    "description": "The number of ports not on the associated device that the associated device has discovered through this port.",
591*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the number of ports not on this associated device that this port has discovered.",
592*5ecf7b4eSGunnar Mills                    "readonly": true,
593*5ecf7b4eSGunnar Mills                    "type": [
594*5ecf7b4eSGunnar Mills                        "integer",
595*5ecf7b4eSGunnar Mills                        "null"
596*5ecf7b4eSGunnar Mills                    ],
597*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
598*5ecf7b4eSGunnar Mills                },
599*5ecf7b4eSGunnar Mills                "PortConnectionType": {
600*5ecf7b4eSGunnar Mills                    "anyOf": [
601*5ecf7b4eSGunnar Mills                        {
602*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/PortConnectionType"
603*5ecf7b4eSGunnar Mills                        },
604*5ecf7b4eSGunnar Mills                        {
605*5ecf7b4eSGunnar Mills                            "type": "null"
606*5ecf7b4eSGunnar Mills                        }
607*5ecf7b4eSGunnar Mills                    ],
608*5ecf7b4eSGunnar Mills                    "description": "The connection type of this port.",
609*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the connection type for this port.",
610*5ecf7b4eSGunnar Mills                    "readonly": true,
611*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
612*5ecf7b4eSGunnar Mills                }
613*5ecf7b4eSGunnar Mills            },
614*5ecf7b4eSGunnar Mills            "type": "object"
615*5ecf7b4eSGunnar Mills        },
616*5ecf7b4eSGunnar Mills        "FlowControl": {
617*5ecf7b4eSGunnar Mills            "enum": [
618*5ecf7b4eSGunnar Mills                "None",
619*5ecf7b4eSGunnar Mills                "TX",
620*5ecf7b4eSGunnar Mills                "RX",
621*5ecf7b4eSGunnar Mills                "TX_RX"
622*5ecf7b4eSGunnar Mills            ],
623*5ecf7b4eSGunnar Mills            "enumDescriptions": {
624*5ecf7b4eSGunnar Mills                "None": "No IEEE 802.3x flow control is enabled on this port.",
625*5ecf7b4eSGunnar Mills                "RX": "IEEE 802.3x flow control might be initiated by the link partner.",
626*5ecf7b4eSGunnar Mills                "TX": "IEEE 802.3x flow control might be initiated by this station.",
627*5ecf7b4eSGunnar Mills                "TX_RX": "IEEE 802.3x flow control might be initiated by this station or the link partner."
628*5ecf7b4eSGunnar Mills            },
629*5ecf7b4eSGunnar Mills            "type": "string"
630*5ecf7b4eSGunnar Mills        },
631*5ecf7b4eSGunnar Mills        "FunctionMaxBandwidth": {
632*5ecf7b4eSGunnar Mills            "additionalProperties": false,
633*5ecf7b4eSGunnar Mills            "description": "A maximum bandwidth allocation percentage for a network device functions associated with a port.",
634*5ecf7b4eSGunnar Mills            "longDescription": "This type shall describe a maximum bandwidth percentage allocation for a network device function associated with a port.",
635*5ecf7b4eSGunnar Mills            "patternProperties": {
636*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
637*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
638*5ecf7b4eSGunnar Mills                    "type": [
639*5ecf7b4eSGunnar Mills                        "array",
640*5ecf7b4eSGunnar Mills                        "boolean",
641*5ecf7b4eSGunnar Mills                        "integer",
642*5ecf7b4eSGunnar Mills                        "number",
643*5ecf7b4eSGunnar Mills                        "null",
644*5ecf7b4eSGunnar Mills                        "object",
645*5ecf7b4eSGunnar Mills                        "string"
646*5ecf7b4eSGunnar Mills                    ]
647*5ecf7b4eSGunnar Mills                }
648*5ecf7b4eSGunnar Mills            },
649*5ecf7b4eSGunnar Mills            "properties": {
650*5ecf7b4eSGunnar Mills                "AllocationPercent": {
651*5ecf7b4eSGunnar Mills                    "description": "The maximum bandwidth allocation percentage allocated to the corresponding network device function instance.",
652*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the maximum bandwidth percentage allocation, `0` to `100`, for the associated network device function.",
653*5ecf7b4eSGunnar Mills                    "maximum": 100,
654*5ecf7b4eSGunnar Mills                    "minimum": 0,
655*5ecf7b4eSGunnar Mills                    "readonly": false,
656*5ecf7b4eSGunnar Mills                    "type": [
657*5ecf7b4eSGunnar Mills                        "integer",
658*5ecf7b4eSGunnar Mills                        "null"
659*5ecf7b4eSGunnar Mills                    ],
660*5ecf7b4eSGunnar Mills                    "units": "%",
661*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
662*5ecf7b4eSGunnar Mills                },
663*5ecf7b4eSGunnar Mills                "NetworkDeviceFunction": {
664*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction",
665*5ecf7b4eSGunnar Mills                    "description": "The link to the network device function associated with this bandwidth setting of this network port.",
666*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `NetworkDeviceFunction` that represents the network device function associated with this bandwidth setting of this network port.",
667*5ecf7b4eSGunnar Mills                    "readonly": true,
668*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
669*5ecf7b4eSGunnar Mills                }
670*5ecf7b4eSGunnar Mills            },
671*5ecf7b4eSGunnar Mills            "type": "object"
672*5ecf7b4eSGunnar Mills        },
673*5ecf7b4eSGunnar Mills        "FunctionMinBandwidth": {
674*5ecf7b4eSGunnar Mills            "additionalProperties": false,
675*5ecf7b4eSGunnar Mills            "description": "A minimum bandwidth allocation percentage for a network device functions associated with a port.",
676*5ecf7b4eSGunnar Mills            "longDescription": "This type shall describe a minimum bandwidth percentage allocation for a network device function associated with a port.",
677*5ecf7b4eSGunnar Mills            "patternProperties": {
678*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
679*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
680*5ecf7b4eSGunnar Mills                    "type": [
681*5ecf7b4eSGunnar Mills                        "array",
682*5ecf7b4eSGunnar Mills                        "boolean",
683*5ecf7b4eSGunnar Mills                        "integer",
684*5ecf7b4eSGunnar Mills                        "number",
685*5ecf7b4eSGunnar Mills                        "null",
686*5ecf7b4eSGunnar Mills                        "object",
687*5ecf7b4eSGunnar Mills                        "string"
688*5ecf7b4eSGunnar Mills                    ]
689*5ecf7b4eSGunnar Mills                }
690*5ecf7b4eSGunnar Mills            },
691*5ecf7b4eSGunnar Mills            "properties": {
692*5ecf7b4eSGunnar Mills                "AllocationPercent": {
693*5ecf7b4eSGunnar Mills                    "description": "The minimum bandwidth allocation percentage allocated to the corresponding network device function instance.",
694*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the minimum bandwidth percentage allocation, `0` to `100`, for the associated network device function.  The sum of all minimum percentages shall not exceed `100`.",
695*5ecf7b4eSGunnar Mills                    "maximum": 100,
696*5ecf7b4eSGunnar Mills                    "minimum": 0,
697*5ecf7b4eSGunnar Mills                    "readonly": false,
698*5ecf7b4eSGunnar Mills                    "type": [
699*5ecf7b4eSGunnar Mills                        "integer",
700*5ecf7b4eSGunnar Mills                        "null"
701*5ecf7b4eSGunnar Mills                    ],
702*5ecf7b4eSGunnar Mills                    "units": "%",
703*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
704*5ecf7b4eSGunnar Mills                },
705*5ecf7b4eSGunnar Mills                "NetworkDeviceFunction": {
706*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction",
707*5ecf7b4eSGunnar Mills                    "description": "The link to the network device function associated with this bandwidth setting of this network port.",
708*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `NetworkDeviceFunction` that represents the network device function associated with this bandwidth setting of this network port.",
709*5ecf7b4eSGunnar Mills                    "readonly": true,
710*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
711*5ecf7b4eSGunnar Mills                }
712*5ecf7b4eSGunnar Mills            },
713*5ecf7b4eSGunnar Mills            "type": "object"
714*5ecf7b4eSGunnar Mills        },
715*5ecf7b4eSGunnar Mills        "GenZ": {
716*5ecf7b4eSGunnar Mills            "additionalProperties": false,
717*5ecf7b4eSGunnar Mills            "description": "This type defines Gen-Z specific port properties.",
718*5ecf7b4eSGunnar Mills            "longDescription": "This type shall contain Gen-Z specific port properties.",
719*5ecf7b4eSGunnar Mills            "patternProperties": {
720*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
721*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
722*5ecf7b4eSGunnar Mills                    "type": [
723*5ecf7b4eSGunnar Mills                        "array",
724*5ecf7b4eSGunnar Mills                        "boolean",
725*5ecf7b4eSGunnar Mills                        "integer",
726*5ecf7b4eSGunnar Mills                        "number",
727*5ecf7b4eSGunnar Mills                        "null",
728*5ecf7b4eSGunnar Mills                        "object",
729*5ecf7b4eSGunnar Mills                        "string"
730*5ecf7b4eSGunnar Mills                    ]
731*5ecf7b4eSGunnar Mills                }
732*5ecf7b4eSGunnar Mills            },
733*5ecf7b4eSGunnar Mills            "properties": {
734*5ecf7b4eSGunnar Mills                "LPRT": {
735*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/RouteEntryCollection.json#/definitions/RouteEntryCollection",
736*5ecf7b4eSGunnar Mills                    "description": "The Linear Packet Relay Table for the port.",
737*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource collection of type `RouteEntryCollection`, and shall represent the Gen-Z Core Specification-defined Linear Packet Relay Table for this port.",
738*5ecf7b4eSGunnar Mills                    "readonly": true,
739*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_2_0"
740*5ecf7b4eSGunnar Mills                },
741*5ecf7b4eSGunnar Mills                "MPRT": {
742*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/RouteEntryCollection.json#/definitions/RouteEntryCollection",
743*5ecf7b4eSGunnar Mills                    "description": "The Multi-subnet Packet Relay Table for the port.",
744*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource collection of type `RouteEntryCollection`, and shall represent the Gen-Z Core Specification-defined Multi-subnet Packet Relay Table for this port.",
745*5ecf7b4eSGunnar Mills                    "readonly": true,
746*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_2_0"
747*5ecf7b4eSGunnar Mills                },
748*5ecf7b4eSGunnar Mills                "VCAT": {
749*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/VCATEntryCollection.json#/definitions/VCATEntryCollection",
750*5ecf7b4eSGunnar Mills                    "description": "The Virtual Channel Action Table for the port.",
751*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource collection of type `VCATEntryCollection`.",
752*5ecf7b4eSGunnar Mills                    "readonly": true,
753*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_2_0"
754*5ecf7b4eSGunnar Mills                }
755*5ecf7b4eSGunnar Mills            },
756*5ecf7b4eSGunnar Mills            "type": "object"
757*5ecf7b4eSGunnar Mills        },
758*5ecf7b4eSGunnar Mills        "HostDeviceType": {
759*5ecf7b4eSGunnar Mills            "enum": [
760*5ecf7b4eSGunnar Mills                "None",
761*5ecf7b4eSGunnar Mills                "System",
762*5ecf7b4eSGunnar Mills                "Manager"
763*5ecf7b4eSGunnar Mills            ],
764*5ecf7b4eSGunnar Mills            "enumDescriptions": {
765*5ecf7b4eSGunnar Mills                "Manager": "The port is connected to a manager device.",
766*5ecf7b4eSGunnar Mills                "None": "The port is not connected to any host device.",
767*5ecf7b4eSGunnar Mills                "System": "The port is connected to a computer system device."
768*5ecf7b4eSGunnar Mills            },
769*5ecf7b4eSGunnar Mills            "enumLongDescriptions": {
770*5ecf7b4eSGunnar Mills                "Manager": "This value shall indicate the port is connected to a manager device.",
771*5ecf7b4eSGunnar Mills                "None": "This value shall indicate the port is not connected to any host device.",
772*5ecf7b4eSGunnar Mills                "System": "This value shall indicate the port is connected to a computer system device."
773*5ecf7b4eSGunnar Mills            },
774*5ecf7b4eSGunnar Mills            "type": "string"
775*5ecf7b4eSGunnar Mills        },
776*5ecf7b4eSGunnar Mills        "IEEE802IdSubtype": {
777*5ecf7b4eSGunnar Mills            "enum": [
778*5ecf7b4eSGunnar Mills                "ChassisComp",
779*5ecf7b4eSGunnar Mills                "IfAlias",
780*5ecf7b4eSGunnar Mills                "PortComp",
781*5ecf7b4eSGunnar Mills                "MacAddr",
782*5ecf7b4eSGunnar Mills                "NetworkAddr",
783*5ecf7b4eSGunnar Mills                "IfName",
784*5ecf7b4eSGunnar Mills                "AgentId",
785*5ecf7b4eSGunnar Mills                "LocalAssign",
786*5ecf7b4eSGunnar Mills                "NotTransmitted"
787*5ecf7b4eSGunnar Mills            ],
788*5ecf7b4eSGunnar Mills            "enumDescriptions": {
789*5ecf7b4eSGunnar Mills                "AgentId": "Agent circuit ID, based on the agent-local identifier of the circuit as defined in RFC3046.",
790*5ecf7b4eSGunnar Mills                "ChassisComp": "Chassis component, based on the value of entPhysicalAlias in RFC4133.",
791*5ecf7b4eSGunnar Mills                "IfAlias": "Interface alias, based on the ifAlias MIB object.",
792*5ecf7b4eSGunnar Mills                "IfName": "Interface name, based on the ifName MIB object.",
793*5ecf7b4eSGunnar Mills                "LocalAssign": "Locally assigned, based on an alphanumeric value locally assigned.",
794*5ecf7b4eSGunnar Mills                "MacAddr": "MAC address, based on an agent-detected unicast source address as defined in IEEE standard 802.",
795*5ecf7b4eSGunnar Mills                "NetworkAddr": "Network address, based on an agent-detected network address.",
796*5ecf7b4eSGunnar Mills                "NotTransmitted": "No data to be sent to/received from remote partner.",
797*5ecf7b4eSGunnar Mills                "PortComp": "Port component, based on the value of entPhysicalAlias in RFC4133."
798*5ecf7b4eSGunnar Mills            },
799*5ecf7b4eSGunnar Mills            "type": "string"
800*5ecf7b4eSGunnar Mills        },
801*5ecf7b4eSGunnar Mills        "InfiniBandProperties": {
802*5ecf7b4eSGunnar Mills            "additionalProperties": false,
803*5ecf7b4eSGunnar Mills            "description": "InfiniBand-specific properties for a port.",
804*5ecf7b4eSGunnar Mills            "longDescription": "This type shall contain InfiniBand-specific properties for a port.",
805*5ecf7b4eSGunnar Mills            "patternProperties": {
806*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
807*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
808*5ecf7b4eSGunnar Mills                    "type": [
809*5ecf7b4eSGunnar Mills                        "array",
810*5ecf7b4eSGunnar Mills                        "boolean",
811*5ecf7b4eSGunnar Mills                        "integer",
812*5ecf7b4eSGunnar Mills                        "number",
813*5ecf7b4eSGunnar Mills                        "null",
814*5ecf7b4eSGunnar Mills                        "object",
815*5ecf7b4eSGunnar Mills                        "string"
816*5ecf7b4eSGunnar Mills                    ]
817*5ecf7b4eSGunnar Mills                }
818*5ecf7b4eSGunnar Mills            },
819*5ecf7b4eSGunnar Mills            "properties": {
820*5ecf7b4eSGunnar Mills                "AssociatedNodeGUIDs": {
821*5ecf7b4eSGunnar Mills                    "description": "An array of configured node GUIDs that are associated with this network port, including the programmed address of the lowest-numbered network device function, the configured but not active address, if applicable, the address for hardware port teaming, or other network addresses.",
822*5ecf7b4eSGunnar Mills                    "items": {
823*5ecf7b4eSGunnar Mills                        "type": [
824*5ecf7b4eSGunnar Mills                            "string",
825*5ecf7b4eSGunnar Mills                            "null"
826*5ecf7b4eSGunnar Mills                        ]
827*5ecf7b4eSGunnar Mills                    },
828*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of configured node GUIDs that are associated with this network port, including the programmed address of the lowest-numbered network device function, the configured but not active address if applicable, the address for hardware port teaming, or other network addresses.",
829*5ecf7b4eSGunnar Mills                    "pattern": "^([0-9A-Fa-f]{4}[:-]){3}([0-9A-Fa-f]{4})$",
830*5ecf7b4eSGunnar Mills                    "readonly": true,
831*5ecf7b4eSGunnar Mills                    "type": "array",
832*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_6_0"
833*5ecf7b4eSGunnar Mills                },
834*5ecf7b4eSGunnar Mills                "AssociatedPortGUIDs": {
835*5ecf7b4eSGunnar Mills                    "description": "An array of configured port GUIDs that are associated with this network port, including the programmed address of the lowest-numbered network device function, the configured but not active address, if applicable, the address for hardware port teaming, or other network addresses.",
836*5ecf7b4eSGunnar Mills                    "items": {
837*5ecf7b4eSGunnar Mills                        "type": [
838*5ecf7b4eSGunnar Mills                            "string",
839*5ecf7b4eSGunnar Mills                            "null"
840*5ecf7b4eSGunnar Mills                        ]
841*5ecf7b4eSGunnar Mills                    },
842*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of configured port GUIDs that are associated with this network port, including the programmed address of the lowest-numbered network device function, the configured but not active address if applicable, the address for hardware port teaming, or other network addresses.",
843*5ecf7b4eSGunnar Mills                    "pattern": "^([0-9A-Fa-f]{4}[:-]){3}([0-9A-Fa-f]{4})$",
844*5ecf7b4eSGunnar Mills                    "readonly": true,
845*5ecf7b4eSGunnar Mills                    "type": "array",
846*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_6_0"
847*5ecf7b4eSGunnar Mills                },
848*5ecf7b4eSGunnar Mills                "AssociatedSystemGUIDs": {
849*5ecf7b4eSGunnar Mills                    "description": "An array of configured system GUIDs that are associated with this network port, including the programmed address of the lowest-numbered network device function, the configured but not active address, if applicable, the address for hardware port teaming, or other network addresses.",
850*5ecf7b4eSGunnar Mills                    "items": {
851*5ecf7b4eSGunnar Mills                        "type": [
852*5ecf7b4eSGunnar Mills                            "string",
853*5ecf7b4eSGunnar Mills                            "null"
854*5ecf7b4eSGunnar Mills                        ]
855*5ecf7b4eSGunnar Mills                    },
856*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of configured system GUIDs that are associated with this network port, including the programmed address of the lowest-numbered network device function, the configured but not active address if applicable, the address for hardware port teaming, or other network addresses.",
857*5ecf7b4eSGunnar Mills                    "pattern": "^([0-9A-Fa-f]{4}[:-]){3}([0-9A-Fa-f]{4})$",
858*5ecf7b4eSGunnar Mills                    "readonly": true,
859*5ecf7b4eSGunnar Mills                    "type": "array",
860*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_6_0"
861*5ecf7b4eSGunnar Mills                }
862*5ecf7b4eSGunnar Mills            },
863*5ecf7b4eSGunnar Mills            "type": "object"
864*5ecf7b4eSGunnar Mills        },
865*5ecf7b4eSGunnar Mills        "LLDPReceive": {
866*5ecf7b4eSGunnar Mills            "additionalProperties": false,
867*5ecf7b4eSGunnar Mills            "description": "Link Layer Data Protocol (LLDP) data received from the remote partner across this link.",
868*5ecf7b4eSGunnar Mills            "longDescription": "This type shall contain the LLDP data from the remote partner across this link.",
869*5ecf7b4eSGunnar Mills            "patternProperties": {
870*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
871*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
872*5ecf7b4eSGunnar Mills                    "type": [
873*5ecf7b4eSGunnar Mills                        "array",
874*5ecf7b4eSGunnar Mills                        "boolean",
875*5ecf7b4eSGunnar Mills                        "integer",
876*5ecf7b4eSGunnar Mills                        "number",
877*5ecf7b4eSGunnar Mills                        "null",
878*5ecf7b4eSGunnar Mills                        "object",
879*5ecf7b4eSGunnar Mills                        "string"
880*5ecf7b4eSGunnar Mills                    ]
881*5ecf7b4eSGunnar Mills                }
882*5ecf7b4eSGunnar Mills            },
883*5ecf7b4eSGunnar Mills            "properties": {
884*5ecf7b4eSGunnar Mills                "ChassisId": {
885*5ecf7b4eSGunnar Mills                    "description": "Link Layer Data Protocol (LLDP) chassis ID received from the remote partner across this link.",
886*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the chassis ID received from the remote partner across this link.  If no such chassis ID has been received, this property should not be present.",
887*5ecf7b4eSGunnar Mills                    "readonly": true,
888*5ecf7b4eSGunnar Mills                    "type": [
889*5ecf7b4eSGunnar Mills                        "string",
890*5ecf7b4eSGunnar Mills                        "null"
891*5ecf7b4eSGunnar Mills                    ],
892*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
893*5ecf7b4eSGunnar Mills                },
894*5ecf7b4eSGunnar Mills                "ChassisIdSubtype": {
895*5ecf7b4eSGunnar Mills                    "anyOf": [
896*5ecf7b4eSGunnar Mills                        {
897*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/IEEE802IdSubtype"
898*5ecf7b4eSGunnar Mills                        },
899*5ecf7b4eSGunnar Mills                        {
900*5ecf7b4eSGunnar Mills                            "type": "null"
901*5ecf7b4eSGunnar Mills                        }
902*5ecf7b4eSGunnar Mills                    ],
903*5ecf7b4eSGunnar Mills                    "description": "The type of identifier used for the chassis ID received from the remote partner across this link.",
904*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the IEEE 802.1AB-2009 chassis ID subtype received from the remote partner across this link.  If no such chassis ID subtype has been received, this property should not be present.",
905*5ecf7b4eSGunnar Mills                    "readonly": true,
906*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
907*5ecf7b4eSGunnar Mills                },
908*5ecf7b4eSGunnar Mills                "ManagementAddressIPv4": {
909*5ecf7b4eSGunnar Mills                    "description": "The IPv4 management address received from the remote partner across this link.",
910*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the IPv4 management address received from the remote partner across this link.  If no such management address has been received, this property should not be present.",
911*5ecf7b4eSGunnar Mills                    "pattern": "^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$",
912*5ecf7b4eSGunnar Mills                    "readonly": true,
913*5ecf7b4eSGunnar Mills                    "type": [
914*5ecf7b4eSGunnar Mills                        "string",
915*5ecf7b4eSGunnar Mills                        "null"
916*5ecf7b4eSGunnar Mills                    ],
917*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
918*5ecf7b4eSGunnar Mills                },
919*5ecf7b4eSGunnar Mills                "ManagementAddressIPv6": {
920*5ecf7b4eSGunnar Mills                    "description": "The IPv6 management address received from the remote partner across this link.",
921*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the IPv6 management address received from the remote partner across this link.  If no such management address has been received, this property should not be present.",
922*5ecf7b4eSGunnar Mills                    "readonly": true,
923*5ecf7b4eSGunnar Mills                    "type": [
924*5ecf7b4eSGunnar Mills                        "string",
925*5ecf7b4eSGunnar Mills                        "null"
926*5ecf7b4eSGunnar Mills                    ],
927*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
928*5ecf7b4eSGunnar Mills                },
929*5ecf7b4eSGunnar Mills                "ManagementAddressMAC": {
930*5ecf7b4eSGunnar Mills                    "description": "The management MAC address received from the remote partner across this link.",
931*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the management MAC address received from the remote partner across this link.  If no such management address has been received, this property should not be present.",
932*5ecf7b4eSGunnar Mills                    "pattern": "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$",
933*5ecf7b4eSGunnar Mills                    "readonly": true,
934*5ecf7b4eSGunnar Mills                    "type": [
935*5ecf7b4eSGunnar Mills                        "string",
936*5ecf7b4eSGunnar Mills                        "null"
937*5ecf7b4eSGunnar Mills                    ],
938*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
939*5ecf7b4eSGunnar Mills                },
940*5ecf7b4eSGunnar Mills                "ManagementVlanId": {
941*5ecf7b4eSGunnar Mills                    "description": "The management VLAN ID received from the remote partner across this link.",
942*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the management VLAN ID received from the remote partner across this link.  If no such management VLAN ID has been received, this property should not be present.",
943*5ecf7b4eSGunnar Mills                    "maximum": 4095,
944*5ecf7b4eSGunnar Mills                    "minimum": 0,
945*5ecf7b4eSGunnar Mills                    "readonly": true,
946*5ecf7b4eSGunnar Mills                    "type": [
947*5ecf7b4eSGunnar Mills                        "integer",
948*5ecf7b4eSGunnar Mills                        "null"
949*5ecf7b4eSGunnar Mills                    ],
950*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
951*5ecf7b4eSGunnar Mills                },
952*5ecf7b4eSGunnar Mills                "PortId": {
953*5ecf7b4eSGunnar Mills                    "description": "A colon-delimited string of hexadecimal octets identifying a port.",
954*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a colon-delimited string of hexadecimal octets identifying the port received from the remote partner across this link.  If no such port ID has been received, this property should not be present.",
955*5ecf7b4eSGunnar Mills                    "pattern": "^([0-9A-F]{2})([:]([0-9A-F]){2}){0,63}$",
956*5ecf7b4eSGunnar Mills                    "readonly": true,
957*5ecf7b4eSGunnar Mills                    "type": [
958*5ecf7b4eSGunnar Mills                        "string",
959*5ecf7b4eSGunnar Mills                        "null"
960*5ecf7b4eSGunnar Mills                    ],
961*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
962*5ecf7b4eSGunnar Mills                },
963*5ecf7b4eSGunnar Mills                "PortIdSubtype": {
964*5ecf7b4eSGunnar Mills                    "anyOf": [
965*5ecf7b4eSGunnar Mills                        {
966*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/IEEE802IdSubtype"
967*5ecf7b4eSGunnar Mills                        },
968*5ecf7b4eSGunnar Mills                        {
969*5ecf7b4eSGunnar Mills                            "type": "null"
970*5ecf7b4eSGunnar Mills                        }
971*5ecf7b4eSGunnar Mills                    ],
972*5ecf7b4eSGunnar Mills                    "description": "The port ID subtype received from the remote partner across this link.",
973*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the port ID subtype from IEEE 802.1AB-2009 Table 8-3 received from the remote partner across this link.  If no such port ID subtype has been received, this property should not be present.",
974*5ecf7b4eSGunnar Mills                    "readonly": true,
975*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
976*5ecf7b4eSGunnar Mills                },
977*5ecf7b4eSGunnar Mills                "SystemCapabilities": {
978*5ecf7b4eSGunnar Mills                    "description": "The system capabilities received from the remote partner across this link.",
979*5ecf7b4eSGunnar Mills                    "items": {
980*5ecf7b4eSGunnar Mills                        "anyOf": [
981*5ecf7b4eSGunnar Mills                            {
982*5ecf7b4eSGunnar Mills                                "$ref": "#/definitions/LLDPSystemCapabilities"
983*5ecf7b4eSGunnar Mills                            },
984*5ecf7b4eSGunnar Mills                            {
985*5ecf7b4eSGunnar Mills                                "type": "null"
986*5ecf7b4eSGunnar Mills                            }
987*5ecf7b4eSGunnar Mills                        ]
988*5ecf7b4eSGunnar Mills                    },
989*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the system capabilities received from the remote partner across this link.  If no such system capabilities have been received, this property shall not be present.  This property shall not contain the value `None`.",
990*5ecf7b4eSGunnar Mills                    "readonly": true,
991*5ecf7b4eSGunnar Mills                    "type": "array",
992*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
993*5ecf7b4eSGunnar Mills                },
994*5ecf7b4eSGunnar Mills                "SystemDescription": {
995*5ecf7b4eSGunnar Mills                    "description": "The system description received from the remote partner across this link.",
996*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the system description received from the remote partner across this link.  If no such system description has been received, this property shall not be present.",
997*5ecf7b4eSGunnar Mills                    "readonly": true,
998*5ecf7b4eSGunnar Mills                    "type": [
999*5ecf7b4eSGunnar Mills                        "string",
1000*5ecf7b4eSGunnar Mills                        "null"
1001*5ecf7b4eSGunnar Mills                    ],
1002*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
1003*5ecf7b4eSGunnar Mills                },
1004*5ecf7b4eSGunnar Mills                "SystemName": {
1005*5ecf7b4eSGunnar Mills                    "description": "The system name received from the remote partner across this link.",
1006*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the system name received from the remote partner across this link.  If no such system name has been received, this property shall not be present.",
1007*5ecf7b4eSGunnar Mills                    "readonly": true,
1008*5ecf7b4eSGunnar Mills                    "type": [
1009*5ecf7b4eSGunnar Mills                        "string",
1010*5ecf7b4eSGunnar Mills                        "null"
1011*5ecf7b4eSGunnar Mills                    ],
1012*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
1013*5ecf7b4eSGunnar Mills                }
1014*5ecf7b4eSGunnar Mills            },
1015*5ecf7b4eSGunnar Mills            "type": "object"
1016*5ecf7b4eSGunnar Mills        },
1017*5ecf7b4eSGunnar Mills        "LLDPSystemCapabilities": {
1018*5ecf7b4eSGunnar Mills            "enum": [
1019*5ecf7b4eSGunnar Mills                "None",
1020*5ecf7b4eSGunnar Mills                "Bridge",
1021*5ecf7b4eSGunnar Mills                "DOCSISCableDevice",
1022*5ecf7b4eSGunnar Mills                "Other",
1023*5ecf7b4eSGunnar Mills                "Repeater",
1024*5ecf7b4eSGunnar Mills                "Router",
1025*5ecf7b4eSGunnar Mills                "Station",
1026*5ecf7b4eSGunnar Mills                "Telephone",
1027*5ecf7b4eSGunnar Mills                "WLANAccessPoint"
1028*5ecf7b4eSGunnar Mills            ],
1029*5ecf7b4eSGunnar Mills            "enumDescriptions": {
1030*5ecf7b4eSGunnar Mills                "Bridge": "Bridge.",
1031*5ecf7b4eSGunnar Mills                "DOCSISCableDevice": "DOCSIS cable device.",
1032*5ecf7b4eSGunnar Mills                "None": "The system capabilities are transmitted, but no capabilities are set.",
1033*5ecf7b4eSGunnar Mills                "Other": "Other.",
1034*5ecf7b4eSGunnar Mills                "Repeater": "Repeater.",
1035*5ecf7b4eSGunnar Mills                "Router": "Router.",
1036*5ecf7b4eSGunnar Mills                "Station": "Station.",
1037*5ecf7b4eSGunnar Mills                "Telephone": "Telephone.",
1038*5ecf7b4eSGunnar Mills                "WLANAccessPoint": "WLAN access point."
1039*5ecf7b4eSGunnar Mills            },
1040*5ecf7b4eSGunnar Mills            "enumLongDescriptions": {
1041*5ecf7b4eSGunnar Mills                "Bridge": "This value shall indicate the IEEE802.1AB-defined 'bridge' capability.",
1042*5ecf7b4eSGunnar Mills                "DOCSISCableDevice": "This value shall indicate the IEEE802.1AB-defined 'DOCSIS cable device' capability.",
1043*5ecf7b4eSGunnar Mills                "None": "This value shall indicate the system capabilities are transmitted, but no capabilities are set.",
1044*5ecf7b4eSGunnar Mills                "Other": "This value shall indicate the IEEE802.1AB-defined 'other' capability.",
1045*5ecf7b4eSGunnar Mills                "Repeater": "This value shall indicate the IEEE802.1AB-defined 'repeater' capability.",
1046*5ecf7b4eSGunnar Mills                "Router": "This value shall indicate the IEEE802.1AB-defined 'router' capability.",
1047*5ecf7b4eSGunnar Mills                "Station": "This value shall indicate the IEEE802.1AB-defined 'station' capability.",
1048*5ecf7b4eSGunnar Mills                "Telephone": "This value shall indicate the IEEE802.1AB-defined 'telephone' capability.",
1049*5ecf7b4eSGunnar Mills                "WLANAccessPoint": "This value shall indicate the IEEE802.1AB-defined 'WLAN access point' capability."
1050*5ecf7b4eSGunnar Mills            },
1051*5ecf7b4eSGunnar Mills            "type": "string"
1052*5ecf7b4eSGunnar Mills        },
1053*5ecf7b4eSGunnar Mills        "LLDPTransmit": {
1054*5ecf7b4eSGunnar Mills            "additionalProperties": false,
1055*5ecf7b4eSGunnar Mills            "description": "Link Layer Data Protocol (LLDP) data being transmitted on this link.",
1056*5ecf7b4eSGunnar Mills            "longDescription": "This type shall contain the LLDP data to be transmitted from this endpoint.",
1057*5ecf7b4eSGunnar Mills            "patternProperties": {
1058*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
1059*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
1060*5ecf7b4eSGunnar Mills                    "type": [
1061*5ecf7b4eSGunnar Mills                        "array",
1062*5ecf7b4eSGunnar Mills                        "boolean",
1063*5ecf7b4eSGunnar Mills                        "integer",
1064*5ecf7b4eSGunnar Mills                        "number",
1065*5ecf7b4eSGunnar Mills                        "null",
1066*5ecf7b4eSGunnar Mills                        "object",
1067*5ecf7b4eSGunnar Mills                        "string"
1068*5ecf7b4eSGunnar Mills                    ]
1069*5ecf7b4eSGunnar Mills                }
1070*5ecf7b4eSGunnar Mills            },
1071*5ecf7b4eSGunnar Mills            "properties": {
1072*5ecf7b4eSGunnar Mills                "ChassisId": {
1073*5ecf7b4eSGunnar Mills                    "description": "Link Layer Data Protocol (LLDP) chassis ID.",
1074*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the chassis ID to be transmitted from this endpoint.  If no such chassis ID is to be transmitted, this value shall be an empty string.",
1075*5ecf7b4eSGunnar Mills                    "readonly": false,
1076*5ecf7b4eSGunnar Mills                    "type": [
1077*5ecf7b4eSGunnar Mills                        "string",
1078*5ecf7b4eSGunnar Mills                        "null"
1079*5ecf7b4eSGunnar Mills                    ],
1080*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
1081*5ecf7b4eSGunnar Mills                },
1082*5ecf7b4eSGunnar Mills                "ChassisIdSubtype": {
1083*5ecf7b4eSGunnar Mills                    "anyOf": [
1084*5ecf7b4eSGunnar Mills                        {
1085*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/IEEE802IdSubtype"
1086*5ecf7b4eSGunnar Mills                        },
1087*5ecf7b4eSGunnar Mills                        {
1088*5ecf7b4eSGunnar Mills                            "type": "null"
1089*5ecf7b4eSGunnar Mills                        }
1090*5ecf7b4eSGunnar Mills                    ],
1091*5ecf7b4eSGunnar Mills                    "description": "The type of identifier used for the chassis ID.",
1092*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the IEEE 802.1AB-2009 chassis ID subtype to be transmitted from this endpoint.  If no such chassis ID subtype is to be transmitted, this value shall be `NotTransmitted`.",
1093*5ecf7b4eSGunnar Mills                    "readonly": false,
1094*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
1095*5ecf7b4eSGunnar Mills                },
1096*5ecf7b4eSGunnar Mills                "ManagementAddressIPv4": {
1097*5ecf7b4eSGunnar Mills                    "description": "The IPv4 management address to be transmitted from this endpoint.",
1098*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the IPv4 management address to be transmitted from this endpoint.  If no such management address is to be transmitted, this value shall be an empty string.",
1099*5ecf7b4eSGunnar Mills                    "pattern": "(^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$)|(^$)",
1100*5ecf7b4eSGunnar Mills                    "readonly": false,
1101*5ecf7b4eSGunnar Mills                    "type": [
1102*5ecf7b4eSGunnar Mills                        "string",
1103*5ecf7b4eSGunnar Mills                        "null"
1104*5ecf7b4eSGunnar Mills                    ],
1105*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
1106*5ecf7b4eSGunnar Mills                },
1107*5ecf7b4eSGunnar Mills                "ManagementAddressIPv6": {
1108*5ecf7b4eSGunnar Mills                    "description": "The IPv6 management address to be transmitted from this endpoint.",
1109*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the IPv6 management address to be transmitted from this endpoint.  If no such management address is to be transmitted, this value shall be an empty string.",
1110*5ecf7b4eSGunnar Mills                    "readonly": false,
1111*5ecf7b4eSGunnar Mills                    "type": [
1112*5ecf7b4eSGunnar Mills                        "string",
1113*5ecf7b4eSGunnar Mills                        "null"
1114*5ecf7b4eSGunnar Mills                    ],
1115*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
1116*5ecf7b4eSGunnar Mills                },
1117*5ecf7b4eSGunnar Mills                "ManagementAddressMAC": {
1118*5ecf7b4eSGunnar Mills                    "description": "The management MAC address to be transmitted from this endpoint.",
1119*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the management MAC address to be transmitted from this endpoint.  If no such management address is to be transmitted, this value shall be an empty string.",
1120*5ecf7b4eSGunnar Mills                    "pattern": "(^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$)|(^$)",
1121*5ecf7b4eSGunnar Mills                    "readonly": false,
1122*5ecf7b4eSGunnar Mills                    "type": [
1123*5ecf7b4eSGunnar Mills                        "string",
1124*5ecf7b4eSGunnar Mills                        "null"
1125*5ecf7b4eSGunnar Mills                    ],
1126*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
1127*5ecf7b4eSGunnar Mills                },
1128*5ecf7b4eSGunnar Mills                "ManagementVlanId": {
1129*5ecf7b4eSGunnar Mills                    "description": "The management VLAN ID to be transmitted from this endpoint.",
1130*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the management VLAN ID to be transmitted from this endpoint.  If no such port ID is to be transmitted, this value shall be `4095`.",
1131*5ecf7b4eSGunnar Mills                    "maximum": 4095,
1132*5ecf7b4eSGunnar Mills                    "minimum": 0,
1133*5ecf7b4eSGunnar Mills                    "readonly": false,
1134*5ecf7b4eSGunnar Mills                    "type": [
1135*5ecf7b4eSGunnar Mills                        "integer",
1136*5ecf7b4eSGunnar Mills                        "null"
1137*5ecf7b4eSGunnar Mills                    ],
1138*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
1139*5ecf7b4eSGunnar Mills                },
1140*5ecf7b4eSGunnar Mills                "PortId": {
1141*5ecf7b4eSGunnar Mills                    "description": "A colon-delimited string of hexadecimal octets identifying a port to be transmitted from this endpoint.",
1142*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a colon-delimited string of hexadecimal octets identifying the port for an LLDP endpoint.  If no such port ID is to be transmitted, this value shall be an empty string.",
1143*5ecf7b4eSGunnar Mills                    "pattern": "(^([0-9A-F]{2})([:]([0-9A-F]){2}){0,63}$)|(^$)",
1144*5ecf7b4eSGunnar Mills                    "readonly": false,
1145*5ecf7b4eSGunnar Mills                    "type": [
1146*5ecf7b4eSGunnar Mills                        "string",
1147*5ecf7b4eSGunnar Mills                        "null"
1148*5ecf7b4eSGunnar Mills                    ],
1149*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
1150*5ecf7b4eSGunnar Mills                },
1151*5ecf7b4eSGunnar Mills                "PortIdSubtype": {
1152*5ecf7b4eSGunnar Mills                    "anyOf": [
1153*5ecf7b4eSGunnar Mills                        {
1154*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/IEEE802IdSubtype"
1155*5ecf7b4eSGunnar Mills                        },
1156*5ecf7b4eSGunnar Mills                        {
1157*5ecf7b4eSGunnar Mills                            "type": "null"
1158*5ecf7b4eSGunnar Mills                        }
1159*5ecf7b4eSGunnar Mills                    ],
1160*5ecf7b4eSGunnar Mills                    "description": "The port ID subtype to be transmitted from this endpoint.",
1161*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the port ID subtype from IEEE 802.1AB-2009 Table 8-3 to be transmitted from this endpoint.  If no such port ID subtype is to be transmitted, this value shall be `NotTransmitted`.",
1162*5ecf7b4eSGunnar Mills                    "readonly": false,
1163*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
1164*5ecf7b4eSGunnar Mills                },
1165*5ecf7b4eSGunnar Mills                "SystemCapabilities": {
1166*5ecf7b4eSGunnar Mills                    "description": "The system capabilities to be transmitted from this endpoint.",
1167*5ecf7b4eSGunnar Mills                    "items": {
1168*5ecf7b4eSGunnar Mills                        "anyOf": [
1169*5ecf7b4eSGunnar Mills                            {
1170*5ecf7b4eSGunnar Mills                                "$ref": "#/definitions/LLDPSystemCapabilities"
1171*5ecf7b4eSGunnar Mills                            },
1172*5ecf7b4eSGunnar Mills                            {
1173*5ecf7b4eSGunnar Mills                                "type": "null"
1174*5ecf7b4eSGunnar Mills                            }
1175*5ecf7b4eSGunnar Mills                        ]
1176*5ecf7b4eSGunnar Mills                    },
1177*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the system capabilities to be transmitted from this endpoint.  If no such system capabilities are to be transmitted, this value shall be an empty array.  If this property contains the value `None`, an empty set of system capabilities is transmitted from this endpoint.",
1178*5ecf7b4eSGunnar Mills                    "readonly": false,
1179*5ecf7b4eSGunnar Mills                    "type": "array",
1180*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
1181*5ecf7b4eSGunnar Mills                },
1182*5ecf7b4eSGunnar Mills                "SystemDescription": {
1183*5ecf7b4eSGunnar Mills                    "description": "The system description to be transmitted from this endpoint.",
1184*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the system description to be transmitted from this endpoint.  If no such system description is to be transmitted, this value shall be an empty string.",
1185*5ecf7b4eSGunnar Mills                    "readonly": false,
1186*5ecf7b4eSGunnar Mills                    "type": [
1187*5ecf7b4eSGunnar Mills                        "string",
1188*5ecf7b4eSGunnar Mills                        "null"
1189*5ecf7b4eSGunnar Mills                    ],
1190*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
1191*5ecf7b4eSGunnar Mills                },
1192*5ecf7b4eSGunnar Mills                "SystemName": {
1193*5ecf7b4eSGunnar Mills                    "description": "The system name to be transmitted from this endpoint.",
1194*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the system name to be transmitted from this endpoint.  If no such system name is to be transmitted, this value shall be an empty string.",
1195*5ecf7b4eSGunnar Mills                    "readonly": false,
1196*5ecf7b4eSGunnar Mills                    "type": [
1197*5ecf7b4eSGunnar Mills                        "string",
1198*5ecf7b4eSGunnar Mills                        "null"
1199*5ecf7b4eSGunnar Mills                    ],
1200*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
1201*5ecf7b4eSGunnar Mills                }
1202*5ecf7b4eSGunnar Mills            },
1203*5ecf7b4eSGunnar Mills            "type": "object"
1204*5ecf7b4eSGunnar Mills        },
1205*5ecf7b4eSGunnar Mills        "LinkConfiguration": {
1206*5ecf7b4eSGunnar Mills            "additionalProperties": false,
1207*5ecf7b4eSGunnar Mills            "description": "Properties of the link for which this port is configured.",
1208*5ecf7b4eSGunnar Mills            "longDescription": "This type shall contain properties of the link for which this port has been configured.",
1209*5ecf7b4eSGunnar Mills            "patternProperties": {
1210*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
1211*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
1212*5ecf7b4eSGunnar Mills                    "type": [
1213*5ecf7b4eSGunnar Mills                        "array",
1214*5ecf7b4eSGunnar Mills                        "boolean",
1215*5ecf7b4eSGunnar Mills                        "integer",
1216*5ecf7b4eSGunnar Mills                        "number",
1217*5ecf7b4eSGunnar Mills                        "null",
1218*5ecf7b4eSGunnar Mills                        "object",
1219*5ecf7b4eSGunnar Mills                        "string"
1220*5ecf7b4eSGunnar Mills                    ]
1221*5ecf7b4eSGunnar Mills                }
1222*5ecf7b4eSGunnar Mills            },
1223*5ecf7b4eSGunnar Mills            "properties": {
1224*5ecf7b4eSGunnar Mills                "AutoSpeedNegotiationCapable": {
1225*5ecf7b4eSGunnar Mills                    "description": "An indication of whether the port is capable of autonegotiating speed.",
1226*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether the port is capable of autonegotiating speed.",
1227*5ecf7b4eSGunnar Mills                    "readonly": true,
1228*5ecf7b4eSGunnar Mills                    "type": [
1229*5ecf7b4eSGunnar Mills                        "boolean",
1230*5ecf7b4eSGunnar Mills                        "null"
1231*5ecf7b4eSGunnar Mills                    ],
1232*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
1233*5ecf7b4eSGunnar Mills                },
1234*5ecf7b4eSGunnar Mills                "AutoSpeedNegotiationEnabled": {
1235*5ecf7b4eSGunnar Mills                    "description": "Controls whether this port is configured to enable autonegotiating speed.",
1236*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether the port is configured to autonegotiate speed.",
1237*5ecf7b4eSGunnar Mills                    "readonly": false,
1238*5ecf7b4eSGunnar Mills                    "type": [
1239*5ecf7b4eSGunnar Mills                        "boolean",
1240*5ecf7b4eSGunnar Mills                        "null"
1241*5ecf7b4eSGunnar Mills                    ],
1242*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
1243*5ecf7b4eSGunnar Mills                },
1244*5ecf7b4eSGunnar Mills                "CapableLinkSpeedGbps": {
1245*5ecf7b4eSGunnar Mills                    "description": "The set of link speed capabilities of this port.",
1246*5ecf7b4eSGunnar Mills                    "items": {
1247*5ecf7b4eSGunnar Mills                        "type": [
1248*5ecf7b4eSGunnar Mills                            "number",
1249*5ecf7b4eSGunnar Mills                            "null"
1250*5ecf7b4eSGunnar Mills                        ]
1251*5ecf7b4eSGunnar Mills                    },
1252*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain all of the possible network link speed capabilities of this port.  This value includes overhead associated with the protocol.",
1253*5ecf7b4eSGunnar Mills                    "readonly": true,
1254*5ecf7b4eSGunnar Mills                    "type": "array",
1255*5ecf7b4eSGunnar Mills                    "units": "Gbit/s",
1256*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
1257*5ecf7b4eSGunnar Mills                },
1258*5ecf7b4eSGunnar Mills                "ConfiguredNetworkLinks": {
1259*5ecf7b4eSGunnar Mills                    "description": "The set of link speed and width pairs this port is configured to use for autonegotiation.",
1260*5ecf7b4eSGunnar Mills                    "items": {
1261*5ecf7b4eSGunnar Mills                        "anyOf": [
1262*5ecf7b4eSGunnar Mills                            {
1263*5ecf7b4eSGunnar Mills                                "$ref": "#/definitions/ConfiguredNetworkLink"
1264*5ecf7b4eSGunnar Mills                            },
1265*5ecf7b4eSGunnar Mills                            {
1266*5ecf7b4eSGunnar Mills                                "type": "null"
1267*5ecf7b4eSGunnar Mills                            }
1268*5ecf7b4eSGunnar Mills                        ]
1269*5ecf7b4eSGunnar Mills                    },
1270*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the set of link speed and width pairs to which this port is restricted for autonegotiation purposes.  An empty array shall indicate autoconfiguration uses any available link speed and width pairs.",
1271*5ecf7b4eSGunnar Mills                    "type": "array",
1272*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
1273*5ecf7b4eSGunnar Mills                },
1274*5ecf7b4eSGunnar Mills                "LinkNetworkTechnology": {
1275*5ecf7b4eSGunnar Mills                    "anyOf": [
1276*5ecf7b4eSGunnar Mills                        {
1277*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/LinkNetworkTechnology"
1278*5ecf7b4eSGunnar Mills                        },
1279*5ecf7b4eSGunnar Mills                        {
1280*5ecf7b4eSGunnar Mills                            "type": "null"
1281*5ecf7b4eSGunnar Mills                        }
1282*5ecf7b4eSGunnar Mills                    ],
1283*5ecf7b4eSGunnar Mills                    "description": "The link network technology for this link configuration.",
1284*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the link network technology for this link configuration.",
1285*5ecf7b4eSGunnar Mills                    "readonly": true,
1286*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_16_0"
1287*5ecf7b4eSGunnar Mills                }
1288*5ecf7b4eSGunnar Mills            },
1289*5ecf7b4eSGunnar Mills            "type": "object"
1290*5ecf7b4eSGunnar Mills        },
1291*5ecf7b4eSGunnar Mills        "LinkNetworkTechnology": {
1292*5ecf7b4eSGunnar Mills            "enum": [
1293*5ecf7b4eSGunnar Mills                "Ethernet",
1294*5ecf7b4eSGunnar Mills                "InfiniBand",
1295*5ecf7b4eSGunnar Mills                "FibreChannel",
1296*5ecf7b4eSGunnar Mills                "GenZ",
1297*5ecf7b4eSGunnar Mills                "PCIe"
1298*5ecf7b4eSGunnar Mills            ],
1299*5ecf7b4eSGunnar Mills            "enumDescriptions": {
1300*5ecf7b4eSGunnar Mills                "Ethernet": "The port is capable of connecting to an Ethernet network.",
1301*5ecf7b4eSGunnar Mills                "FibreChannel": "The port is capable of connecting to a Fibre Channel network.",
1302*5ecf7b4eSGunnar Mills                "GenZ": "The port is capable of connecting to a Gen-Z fabric.",
1303*5ecf7b4eSGunnar Mills                "InfiniBand": "The port is capable of connecting to an InfiniBand network.",
1304*5ecf7b4eSGunnar Mills                "PCIe": "The port is capable of connecting to PCIe and CXL fabrics."
1305*5ecf7b4eSGunnar Mills            },
1306*5ecf7b4eSGunnar Mills            "enumVersionAdded": {
1307*5ecf7b4eSGunnar Mills                "PCIe": "v1_8_0"
1308*5ecf7b4eSGunnar Mills            },
1309*5ecf7b4eSGunnar Mills            "type": "string"
1310*5ecf7b4eSGunnar Mills        },
1311*5ecf7b4eSGunnar Mills        "LinkState": {
1312*5ecf7b4eSGunnar Mills            "enum": [
1313*5ecf7b4eSGunnar Mills                "Enabled",
1314*5ecf7b4eSGunnar Mills                "Disabled"
1315*5ecf7b4eSGunnar Mills            ],
1316*5ecf7b4eSGunnar Mills            "enumDescriptions": {
1317*5ecf7b4eSGunnar Mills                "Disabled": "The link is disabled and not operational.",
1318*5ecf7b4eSGunnar Mills                "Enabled": "The link is enabled and operational."
1319*5ecf7b4eSGunnar Mills            },
1320*5ecf7b4eSGunnar Mills            "enumLongDescriptions": {
1321*5ecf7b4eSGunnar Mills                "Disabled": "This value shall indicate the link is disabled and not operational.  The port is not allowed to establish a connection with the remote port.  However, other types of traffic, such as management traffic, may be sent or received by the port.",
1322*5ecf7b4eSGunnar Mills                "Enabled": "This value shall indicate the link is enabled and operational.  The port is allowed to establish a connection with the remote port."
1323*5ecf7b4eSGunnar Mills            },
1324*5ecf7b4eSGunnar Mills            "type": "string"
1325*5ecf7b4eSGunnar Mills        },
1326*5ecf7b4eSGunnar Mills        "LinkStatus": {
1327*5ecf7b4eSGunnar Mills            "enum": [
1328*5ecf7b4eSGunnar Mills                "LinkUp",
1329*5ecf7b4eSGunnar Mills                "Starting",
1330*5ecf7b4eSGunnar Mills                "Training",
1331*5ecf7b4eSGunnar Mills                "LinkDown",
1332*5ecf7b4eSGunnar Mills                "NoLink"
1333*5ecf7b4eSGunnar Mills            ],
1334*5ecf7b4eSGunnar Mills            "enumDescriptions": {
1335*5ecf7b4eSGunnar Mills                "LinkDown": "The link on this interface is down.",
1336*5ecf7b4eSGunnar Mills                "LinkUp": "This link on this interface is up.",
1337*5ecf7b4eSGunnar Mills                "NoLink": "No physical link detected on this interface.",
1338*5ecf7b4eSGunnar Mills                "Starting": "This link on this interface is starting.  A physical link has been established, but the port is not able to transfer data.",
1339*5ecf7b4eSGunnar Mills                "Training": "This physical link on this interface is training."
1340*5ecf7b4eSGunnar Mills            },
1341*5ecf7b4eSGunnar Mills            "type": "string"
1342*5ecf7b4eSGunnar Mills        },
1343*5ecf7b4eSGunnar Mills        "Links": {
1344*5ecf7b4eSGunnar Mills            "additionalProperties": false,
1345*5ecf7b4eSGunnar Mills            "description": "The links to other resources that are related to this resource.",
1346*5ecf7b4eSGunnar 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.",
1347*5ecf7b4eSGunnar Mills            "patternProperties": {
1348*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
1349*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
1350*5ecf7b4eSGunnar Mills                    "type": [
1351*5ecf7b4eSGunnar Mills                        "array",
1352*5ecf7b4eSGunnar Mills                        "boolean",
1353*5ecf7b4eSGunnar Mills                        "integer",
1354*5ecf7b4eSGunnar Mills                        "number",
1355*5ecf7b4eSGunnar Mills                        "null",
1356*5ecf7b4eSGunnar Mills                        "object",
1357*5ecf7b4eSGunnar Mills                        "string"
1358*5ecf7b4eSGunnar Mills                    ]
1359*5ecf7b4eSGunnar Mills                }
1360*5ecf7b4eSGunnar Mills            },
1361*5ecf7b4eSGunnar Mills            "properties": {
1362*5ecf7b4eSGunnar Mills                "AssociatedEndpoints": {
1363*5ecf7b4eSGunnar Mills                    "description": "An array of links to the endpoints at the other end of the link.",
1364*5ecf7b4eSGunnar Mills                    "items": {
1365*5ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
1366*5ecf7b4eSGunnar Mills                    },
1367*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Endpoint` that represent the endpoints to which this port is connected.",
1368*5ecf7b4eSGunnar Mills                    "readonly": true,
1369*5ecf7b4eSGunnar Mills                    "type": "array"
1370*5ecf7b4eSGunnar Mills                },
1371*5ecf7b4eSGunnar Mills                "AssociatedEndpoints@odata.count": {
1372*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
1373*5ecf7b4eSGunnar Mills                },
1374*5ecf7b4eSGunnar Mills                "Cables": {
1375*5ecf7b4eSGunnar Mills                    "description": "An array of links to the cables connected to this port.",
1376*5ecf7b4eSGunnar Mills                    "items": {
1377*5ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Cable.json#/definitions/Cable"
1378*5ecf7b4eSGunnar Mills                    },
1379*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Cable` that represent the cables connected to this port.",
1380*5ecf7b4eSGunnar Mills                    "readonly": true,
1381*5ecf7b4eSGunnar Mills                    "type": "array",
1382*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_5_0"
1383*5ecf7b4eSGunnar Mills                },
1384*5ecf7b4eSGunnar Mills                "Cables@odata.count": {
1385*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
1386*5ecf7b4eSGunnar Mills                },
1387*5ecf7b4eSGunnar Mills                "ConnectedPorts": {
1388*5ecf7b4eSGunnar Mills                    "description": "An array of links to the remote device ports at the other end of the link.",
1389*5ecf7b4eSGunnar Mills                    "items": {
1390*5ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Port.json#/definitions/Port"
1391*5ecf7b4eSGunnar Mills                    },
1392*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Port` that represent the remote device ports to which this port is connected.",
1393*5ecf7b4eSGunnar Mills                    "readonly": true,
1394*5ecf7b4eSGunnar Mills                    "type": "array",
1395*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_2_0"
1396*5ecf7b4eSGunnar Mills                },
1397*5ecf7b4eSGunnar Mills                "ConnectedPorts@odata.count": {
1398*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
1399*5ecf7b4eSGunnar Mills                },
1400*5ecf7b4eSGunnar Mills                "ConnectedSwitchPorts": {
1401*5ecf7b4eSGunnar Mills                    "description": "An array of links to the switch ports at the other end of the link.",
1402*5ecf7b4eSGunnar Mills                    "items": {
1403*5ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Port.json#/definitions/Port"
1404*5ecf7b4eSGunnar Mills                    },
1405*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Port` that represent the switch ports to which this port is connected.",
1406*5ecf7b4eSGunnar Mills                    "readonly": true,
1407*5ecf7b4eSGunnar Mills                    "type": "array"
1408*5ecf7b4eSGunnar Mills                },
1409*5ecf7b4eSGunnar Mills                "ConnectedSwitchPorts@odata.count": {
1410*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
1411*5ecf7b4eSGunnar Mills                },
1412*5ecf7b4eSGunnar Mills                "ConnectedSwitches": {
1413*5ecf7b4eSGunnar Mills                    "description": "An array of links to the switches at the other end of the link.",
1414*5ecf7b4eSGunnar Mills                    "items": {
1415*5ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Switch.json#/definitions/Switch"
1416*5ecf7b4eSGunnar Mills                    },
1417*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Switch` that represent the switches to which this port is connected.",
1418*5ecf7b4eSGunnar Mills                    "readonly": true,
1419*5ecf7b4eSGunnar Mills                    "type": "array"
1420*5ecf7b4eSGunnar Mills                },
1421*5ecf7b4eSGunnar Mills                "ConnectedSwitches@odata.count": {
1422*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
1423*5ecf7b4eSGunnar Mills                },
1424*5ecf7b4eSGunnar Mills                "EthernetInterfaces": {
1425*5ecf7b4eSGunnar Mills                    "description": "The links to the Ethernet interfaces this port provides.",
1426*5ecf7b4eSGunnar Mills                    "items": {
1427*5ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.json#/definitions/EthernetInterface"
1428*5ecf7b4eSGunnar Mills                    },
1429*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `EthernetInterface` that represent the Ethernet interfaces this port provides.  This property shall not include Ethernet interfaces that are not directly associated to a physical port.",
1430*5ecf7b4eSGunnar Mills                    "readonly": true,
1431*5ecf7b4eSGunnar Mills                    "type": "array",
1432*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_7_0"
1433*5ecf7b4eSGunnar Mills                },
1434*5ecf7b4eSGunnar Mills                "EthernetInterfaces@odata.count": {
1435*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
1436*5ecf7b4eSGunnar Mills                },
1437*5ecf7b4eSGunnar Mills                "Oem": {
1438*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
1439*5ecf7b4eSGunnar Mills                    "description": "The OEM extension property.",
1440*5ecf7b4eSGunnar 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."
1441*5ecf7b4eSGunnar Mills                }
1442*5ecf7b4eSGunnar Mills            },
1443*5ecf7b4eSGunnar Mills            "type": "object"
1444*5ecf7b4eSGunnar Mills        },
1445*5ecf7b4eSGunnar Mills        "MediumType": {
1446*5ecf7b4eSGunnar Mills            "enum": [
1447*5ecf7b4eSGunnar Mills                "Copper",
1448*5ecf7b4eSGunnar Mills                "FiberOptic"
1449*5ecf7b4eSGunnar Mills            ],
1450*5ecf7b4eSGunnar Mills            "enumDescriptions": {
1451*5ecf7b4eSGunnar Mills                "Copper": "The medium connected is copper.",
1452*5ecf7b4eSGunnar Mills                "FiberOptic": "The medium connected is fiber optic."
1453*5ecf7b4eSGunnar Mills            },
1454*5ecf7b4eSGunnar Mills            "type": "string"
1455*5ecf7b4eSGunnar Mills        },
1456*5ecf7b4eSGunnar Mills        "OemActions": {
1457*5ecf7b4eSGunnar Mills            "additionalProperties": true,
1458*5ecf7b4eSGunnar Mills            "description": "The available OEM-specific actions for this resource.",
1459*5ecf7b4eSGunnar Mills            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
1460*5ecf7b4eSGunnar Mills            "patternProperties": {
1461*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
1462*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
1463*5ecf7b4eSGunnar Mills                    "type": [
1464*5ecf7b4eSGunnar Mills                        "array",
1465*5ecf7b4eSGunnar Mills                        "boolean",
1466*5ecf7b4eSGunnar Mills                        "integer",
1467*5ecf7b4eSGunnar Mills                        "number",
1468*5ecf7b4eSGunnar Mills                        "null",
1469*5ecf7b4eSGunnar Mills                        "object",
1470*5ecf7b4eSGunnar Mills                        "string"
1471*5ecf7b4eSGunnar Mills                    ]
1472*5ecf7b4eSGunnar Mills                }
1473*5ecf7b4eSGunnar Mills            },
1474*5ecf7b4eSGunnar Mills            "properties": {},
1475*5ecf7b4eSGunnar Mills            "type": "object"
1476*5ecf7b4eSGunnar Mills        },
1477*5ecf7b4eSGunnar Mills        "Port": {
1478*5ecf7b4eSGunnar Mills            "additionalProperties": false,
1479*5ecf7b4eSGunnar Mills            "description": "The `Port` schema contains properties that describe a port of a switch, controller, chassis, or any other device that could be connected to another entity.",
1480*5ecf7b4eSGunnar Mills            "longDescription": "This resource contains a simple port for a Redfish implementation.",
1481*5ecf7b4eSGunnar Mills            "patternProperties": {
1482*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
1483*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
1484*5ecf7b4eSGunnar Mills                    "type": [
1485*5ecf7b4eSGunnar Mills                        "array",
1486*5ecf7b4eSGunnar Mills                        "boolean",
1487*5ecf7b4eSGunnar Mills                        "integer",
1488*5ecf7b4eSGunnar Mills                        "number",
1489*5ecf7b4eSGunnar Mills                        "null",
1490*5ecf7b4eSGunnar Mills                        "object",
1491*5ecf7b4eSGunnar Mills                        "string"
1492*5ecf7b4eSGunnar Mills                    ]
1493*5ecf7b4eSGunnar Mills                }
1494*5ecf7b4eSGunnar Mills            },
1495*5ecf7b4eSGunnar Mills            "properties": {
1496*5ecf7b4eSGunnar Mills                "@odata.context": {
1497*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
1498*5ecf7b4eSGunnar Mills                },
1499*5ecf7b4eSGunnar Mills                "@odata.etag": {
1500*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
1501*5ecf7b4eSGunnar Mills                },
1502*5ecf7b4eSGunnar Mills                "@odata.id": {
1503*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
1504*5ecf7b4eSGunnar Mills                },
1505*5ecf7b4eSGunnar Mills                "@odata.type": {
1506*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
1507*5ecf7b4eSGunnar Mills                },
1508*5ecf7b4eSGunnar Mills                "Actions": {
1509*5ecf7b4eSGunnar Mills                    "$ref": "#/definitions/Actions",
1510*5ecf7b4eSGunnar Mills                    "description": "The available actions for this resource.",
1511*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the available actions for this resource."
1512*5ecf7b4eSGunnar Mills                },
1513*5ecf7b4eSGunnar Mills                "ActiveWidth": {
1514*5ecf7b4eSGunnar Mills                    "description": "The number of active lanes for this interface.",
1515*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the number of active lanes for this interface.",
1516*5ecf7b4eSGunnar Mills                    "readonly": true,
1517*5ecf7b4eSGunnar Mills                    "type": "integer",
1518*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_2_0"
1519*5ecf7b4eSGunnar Mills                },
1520*5ecf7b4eSGunnar Mills                "AssociatedPhysicalPort": {
1521*5ecf7b4eSGunnar Mills                    "description": "The index of the physical port from which this subport has been split.",
1522*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the index of the physical port from which this subport has been split.  If `IsSplit` contains `false`, this property shall not be present.",
1523*5ecf7b4eSGunnar Mills                    "readonly": true,
1524*5ecf7b4eSGunnar Mills                    "type": [
1525*5ecf7b4eSGunnar Mills                        "integer",
1526*5ecf7b4eSGunnar Mills                        "null"
1527*5ecf7b4eSGunnar Mills                    ],
1528*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_17_0"
1529*5ecf7b4eSGunnar Mills                },
1530*5ecf7b4eSGunnar Mills                "CXL": {
1531*5ecf7b4eSGunnar Mills                    "anyOf": [
1532*5ecf7b4eSGunnar Mills                        {
1533*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/CXL"
1534*5ecf7b4eSGunnar Mills                        },
1535*5ecf7b4eSGunnar Mills                        {
1536*5ecf7b4eSGunnar Mills                            "type": "null"
1537*5ecf7b4eSGunnar Mills                        }
1538*5ecf7b4eSGunnar Mills                    ],
1539*5ecf7b4eSGunnar Mills                    "description": "CXL properties for this port.",
1540*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain CXL-specific properties for this port.",
1541*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
1542*5ecf7b4eSGunnar Mills                },
1543*5ecf7b4eSGunnar Mills                "CapableProtocolVersions": {
1544*5ecf7b4eSGunnar Mills                    "description": "The protocol versions capable of being sent over this port.",
1545*5ecf7b4eSGunnar Mills                    "items": {
1546*5ecf7b4eSGunnar Mills                        "type": [
1547*5ecf7b4eSGunnar Mills                            "string",
1548*5ecf7b4eSGunnar Mills                            "null"
1549*5ecf7b4eSGunnar Mills                        ]
1550*5ecf7b4eSGunnar Mills                    },
1551*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the protocol versions capable of being sent over this port.  This property should only be used for protocols where the version and not the speed is of primary interest such as USB, DisplayPort, or HDMI.",
1552*5ecf7b4eSGunnar Mills                    "readonly": true,
1553*5ecf7b4eSGunnar Mills                    "type": "array",
1554*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
1555*5ecf7b4eSGunnar Mills                },
1556*5ecf7b4eSGunnar Mills                "ConfiguredSpeedGbps": {
1557*5ecf7b4eSGunnar Mills                    "description": "The speed to which this port is configured to train when autonegotiation is disabled.",
1558*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the unidirectional speed to which this port is configured to train.  This value includes overhead associated with the protocol.  If `AutoSpeedNegotiationEnabled` contains `true`, this property shall be ignored.",
1559*5ecf7b4eSGunnar Mills                    "readonly": false,
1560*5ecf7b4eSGunnar Mills                    "type": [
1561*5ecf7b4eSGunnar Mills                        "number",
1562*5ecf7b4eSGunnar Mills                        "null"
1563*5ecf7b4eSGunnar Mills                    ],
1564*5ecf7b4eSGunnar Mills                    "units": "Gbit/s",
1565*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_16_0"
1566*5ecf7b4eSGunnar Mills                },
1567*5ecf7b4eSGunnar Mills                "ConfiguredWidth": {
1568*5ecf7b4eSGunnar Mills                    "description": "The number of lanes, phys, or other physical transport links to which this port is configured to train when autonegotiation is disabled.",
1569*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the number of physical transport links to which this port is configured to train.  If `AutoSpeedNegotiationEnabled` contains `true`, this property shall be ignored.",
1570*5ecf7b4eSGunnar Mills                    "readonly": false,
1571*5ecf7b4eSGunnar Mills                    "type": [
1572*5ecf7b4eSGunnar Mills                        "integer",
1573*5ecf7b4eSGunnar Mills                        "null"
1574*5ecf7b4eSGunnar Mills                    ],
1575*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_16_0"
1576*5ecf7b4eSGunnar Mills                },
1577*5ecf7b4eSGunnar Mills                "CurrentProtocolVersion": {
1578*5ecf7b4eSGunnar Mills                    "description": "The protocol version being sent over this port.",
1579*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the protocol version being sent over this port.  This property should only be used for protocols where the version and not the speed is of primary interest such as USB, DisplayPort, or HDMI.",
1580*5ecf7b4eSGunnar Mills                    "readonly": true,
1581*5ecf7b4eSGunnar Mills                    "type": [
1582*5ecf7b4eSGunnar Mills                        "string",
1583*5ecf7b4eSGunnar Mills                        "null"
1584*5ecf7b4eSGunnar Mills                    ],
1585*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
1586*5ecf7b4eSGunnar Mills                },
1587*5ecf7b4eSGunnar Mills                "CurrentSpeedGbps": {
1588*5ecf7b4eSGunnar Mills                    "description": "The current speed of this port.",
1589*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the unidirectional speed of this port currently negotiated and running.  This value includes overhead associated with the protocol.",
1590*5ecf7b4eSGunnar Mills                    "readonly": true,
1591*5ecf7b4eSGunnar Mills                    "type": [
1592*5ecf7b4eSGunnar Mills                        "number",
1593*5ecf7b4eSGunnar Mills                        "null"
1594*5ecf7b4eSGunnar Mills                    ],
1595*5ecf7b4eSGunnar Mills                    "units": "Gbit/s"
1596*5ecf7b4eSGunnar Mills                },
1597*5ecf7b4eSGunnar Mills                "Description": {
1598*5ecf7b4eSGunnar Mills                    "anyOf": [
1599*5ecf7b4eSGunnar Mills                        {
1600*5ecf7b4eSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
1601*5ecf7b4eSGunnar Mills                        },
1602*5ecf7b4eSGunnar Mills                        {
1603*5ecf7b4eSGunnar Mills                            "type": "null"
1604*5ecf7b4eSGunnar Mills                        }
1605*5ecf7b4eSGunnar Mills                    ],
1606*5ecf7b4eSGunnar Mills                    "readonly": true
1607*5ecf7b4eSGunnar Mills                },
1608*5ecf7b4eSGunnar Mills                "Enabled": {
1609*5ecf7b4eSGunnar Mills                    "deprecated": "This property has been deprecated in favor of `InterfaceEnabled`.",
1610*5ecf7b4eSGunnar Mills                    "description": "An indication of whether this port is enabled.",
1611*5ecf7b4eSGunnar Mills                    "longDescription": "The value of this property shall indicate if this port is enabled.  Disabling a port will disconnect any devices only connected to the system through this port.",
1612*5ecf7b4eSGunnar Mills                    "readonly": false,
1613*5ecf7b4eSGunnar Mills                    "type": "boolean",
1614*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0",
1615*5ecf7b4eSGunnar Mills                    "versionDeprecated": "v1_10_0"
1616*5ecf7b4eSGunnar Mills                },
1617*5ecf7b4eSGunnar Mills                "EnvironmentMetrics": {
1618*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/EnvironmentMetrics.json#/definitions/EnvironmentMetrics",
1619*5ecf7b4eSGunnar Mills                    "description": "The link to the environment metrics for this port or any attached small form-factor pluggable (SFP) device.",
1620*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `EnvironmentMetrics` that represents the environment metrics for this port or any attached small form-factor pluggable (SFP) device.",
1621*5ecf7b4eSGunnar Mills                    "readonly": true,
1622*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
1623*5ecf7b4eSGunnar Mills                },
1624*5ecf7b4eSGunnar Mills                "Ethernet": {
1625*5ecf7b4eSGunnar Mills                    "anyOf": [
1626*5ecf7b4eSGunnar Mills                        {
1627*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/EthernetProperties"
1628*5ecf7b4eSGunnar Mills                        },
1629*5ecf7b4eSGunnar Mills                        {
1630*5ecf7b4eSGunnar Mills                            "type": "null"
1631*5ecf7b4eSGunnar Mills                        }
1632*5ecf7b4eSGunnar Mills                    ],
1633*5ecf7b4eSGunnar Mills                    "description": "Ethernet properties for this port.",
1634*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain Ethernet-specific properties of the port.",
1635*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
1636*5ecf7b4eSGunnar Mills                },
1637*5ecf7b4eSGunnar Mills                "FibreChannel": {
1638*5ecf7b4eSGunnar Mills                    "anyOf": [
1639*5ecf7b4eSGunnar Mills                        {
1640*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/FibreChannelProperties"
1641*5ecf7b4eSGunnar Mills                        },
1642*5ecf7b4eSGunnar Mills                        {
1643*5ecf7b4eSGunnar Mills                            "type": "null"
1644*5ecf7b4eSGunnar Mills                        }
1645*5ecf7b4eSGunnar Mills                    ],
1646*5ecf7b4eSGunnar Mills                    "description": "Fibre Channel properties for this port.",
1647*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain Fibre Channel-specific properties of the port.",
1648*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
1649*5ecf7b4eSGunnar Mills                },
1650*5ecf7b4eSGunnar Mills                "FirstLane": {
1651*5ecf7b4eSGunnar Mills                    "description": "The first lane that this port is configured to use.",
1652*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the first lane that this port is configured to use.  If `IsSplit` contains `false`, this property shall not be present.",
1653*5ecf7b4eSGunnar Mills                    "readonly": true,
1654*5ecf7b4eSGunnar Mills                    "type": [
1655*5ecf7b4eSGunnar Mills                        "integer",
1656*5ecf7b4eSGunnar Mills                        "null"
1657*5ecf7b4eSGunnar Mills                    ],
1658*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_17_0"
1659*5ecf7b4eSGunnar Mills                },
1660*5ecf7b4eSGunnar Mills                "FunctionMaxBandwidth": {
1661*5ecf7b4eSGunnar Mills                    "description": "An array of maximum bandwidth allocation percentages for the functions associated with this port.",
1662*5ecf7b4eSGunnar Mills                    "items": {
1663*5ecf7b4eSGunnar Mills                        "$ref": "#/definitions/FunctionMaxBandwidth"
1664*5ecf7b4eSGunnar Mills                    },
1665*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of maximum bandwidth allocation percentages for the functions associated with this port.",
1666*5ecf7b4eSGunnar Mills                    "type": "array",
1667*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
1668*5ecf7b4eSGunnar Mills                },
1669*5ecf7b4eSGunnar Mills                "FunctionMinBandwidth": {
1670*5ecf7b4eSGunnar Mills                    "description": "An array of minimum bandwidth allocation percentages for the functions associated with this port.",
1671*5ecf7b4eSGunnar Mills                    "items": {
1672*5ecf7b4eSGunnar Mills                        "$ref": "#/definitions/FunctionMinBandwidth"
1673*5ecf7b4eSGunnar Mills                    },
1674*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of minimum bandwidth percentage allocations for each of the functions associated with this port.",
1675*5ecf7b4eSGunnar Mills                    "type": "array",
1676*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
1677*5ecf7b4eSGunnar Mills                },
1678*5ecf7b4eSGunnar Mills                "GenZ": {
1679*5ecf7b4eSGunnar Mills                    "$ref": "#/definitions/GenZ",
1680*5ecf7b4eSGunnar Mills                    "description": "Gen-Z specific properties.",
1681*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain Gen-Z specific properties for this interface.",
1682*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_2_0"
1683*5ecf7b4eSGunnar Mills                },
1684*5ecf7b4eSGunnar Mills                "HostDevice": {
1685*5ecf7b4eSGunnar Mills                    "anyOf": [
1686*5ecf7b4eSGunnar Mills                        {
1687*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/HostDeviceType"
1688*5ecf7b4eSGunnar Mills                        },
1689*5ecf7b4eSGunnar Mills                        {
1690*5ecf7b4eSGunnar Mills                            "type": "null"
1691*5ecf7b4eSGunnar Mills                        }
1692*5ecf7b4eSGunnar Mills                    ],
1693*5ecf7b4eSGunnar Mills                    "description": "The current host device for this port.",
1694*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the current host device of port.",
1695*5ecf7b4eSGunnar Mills                    "readonly": false,
1696*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_15_0"
1697*5ecf7b4eSGunnar Mills                },
1698*5ecf7b4eSGunnar Mills                "Id": {
1699*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
1700*5ecf7b4eSGunnar Mills                    "readonly": true
1701*5ecf7b4eSGunnar Mills                },
1702*5ecf7b4eSGunnar Mills                "InfiniBand": {
1703*5ecf7b4eSGunnar Mills                    "anyOf": [
1704*5ecf7b4eSGunnar Mills                        {
1705*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/InfiniBandProperties"
1706*5ecf7b4eSGunnar Mills                        },
1707*5ecf7b4eSGunnar Mills                        {
1708*5ecf7b4eSGunnar Mills                            "type": "null"
1709*5ecf7b4eSGunnar Mills                        }
1710*5ecf7b4eSGunnar Mills                    ],
1711*5ecf7b4eSGunnar Mills                    "description": "InfiniBand properties for this port.",
1712*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain InfiniBand-specific properties of the port.",
1713*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_6_0"
1714*5ecf7b4eSGunnar Mills                },
1715*5ecf7b4eSGunnar Mills                "InterfaceEnabled": {
1716*5ecf7b4eSGunnar Mills                    "description": "An indication of whether the port is enabled.",
1717*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether the port is enabled.  When disabled, no traffic of any type, such as link protocol traffic and management traffic, is sent or received by the port.",
1718*5ecf7b4eSGunnar Mills                    "readonly": false,
1719*5ecf7b4eSGunnar Mills                    "type": [
1720*5ecf7b4eSGunnar Mills                        "boolean",
1721*5ecf7b4eSGunnar Mills                        "null"
1722*5ecf7b4eSGunnar Mills                    ],
1723*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_2_0"
1724*5ecf7b4eSGunnar Mills                },
1725*5ecf7b4eSGunnar Mills                "IsSplit": {
1726*5ecf7b4eSGunnar Mills                    "description": "Indicates whether this is a subport split from a physical port.",
1727*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether this is a subport split from a physical port.",
1728*5ecf7b4eSGunnar Mills                    "readonly": true,
1729*5ecf7b4eSGunnar Mills                    "type": [
1730*5ecf7b4eSGunnar Mills                        "boolean",
1731*5ecf7b4eSGunnar Mills                        "null"
1732*5ecf7b4eSGunnar Mills                    ],
1733*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_17_0"
1734*5ecf7b4eSGunnar Mills                },
1735*5ecf7b4eSGunnar Mills                "LinkConfiguration": {
1736*5ecf7b4eSGunnar Mills                    "description": "The link configuration of this port.",
1737*5ecf7b4eSGunnar Mills                    "items": {
1738*5ecf7b4eSGunnar Mills                        "$ref": "#/definitions/LinkConfiguration"
1739*5ecf7b4eSGunnar Mills                    },
1740*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the static capabilities and configuration settings of the port.",
1741*5ecf7b4eSGunnar Mills                    "type": "array",
1742*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
1743*5ecf7b4eSGunnar Mills                },
1744*5ecf7b4eSGunnar Mills                "LinkNetworkTechnology": {
1745*5ecf7b4eSGunnar Mills                    "anyOf": [
1746*5ecf7b4eSGunnar Mills                        {
1747*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/LinkNetworkTechnology"
1748*5ecf7b4eSGunnar Mills                        },
1749*5ecf7b4eSGunnar Mills                        {
1750*5ecf7b4eSGunnar Mills                            "type": "null"
1751*5ecf7b4eSGunnar Mills                        }
1752*5ecf7b4eSGunnar Mills                    ],
1753*5ecf7b4eSGunnar Mills                    "description": "The current link network technology for this port.",
1754*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the current network technology for this port.",
1755*5ecf7b4eSGunnar Mills                    "readonly": true,
1756*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_2_0"
1757*5ecf7b4eSGunnar Mills                },
1758*5ecf7b4eSGunnar Mills                "LinkState": {
1759*5ecf7b4eSGunnar Mills                    "$ref": "#/definitions/LinkState",
1760*5ecf7b4eSGunnar Mills                    "description": "The desired link state for this interface.",
1761*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the desired link state for this interface.",
1762*5ecf7b4eSGunnar Mills                    "readonly": false,
1763*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_2_0"
1764*5ecf7b4eSGunnar Mills                },
1765*5ecf7b4eSGunnar Mills                "LinkStatus": {
1766*5ecf7b4eSGunnar Mills                    "$ref": "#/definitions/LinkStatus",
1767*5ecf7b4eSGunnar Mills                    "description": "The link status for this interface.",
1768*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the link status for this interface.",
1769*5ecf7b4eSGunnar Mills                    "readonly": true,
1770*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_2_0"
1771*5ecf7b4eSGunnar Mills                },
1772*5ecf7b4eSGunnar Mills                "LinkTransitionIndicator": {
1773*5ecf7b4eSGunnar Mills                    "description": "The number of link state transitions for this interface.",
1774*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the number of link state transitions for this interface.",
1775*5ecf7b4eSGunnar Mills                    "readonly": false,
1776*5ecf7b4eSGunnar Mills                    "type": "integer",
1777*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_2_0"
1778*5ecf7b4eSGunnar Mills                },
1779*5ecf7b4eSGunnar Mills                "Links": {
1780*5ecf7b4eSGunnar Mills                    "$ref": "#/definitions/Links",
1781*5ecf7b4eSGunnar Mills                    "description": "The links to other resources that are related to this resource.",
1782*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."
1783*5ecf7b4eSGunnar Mills                },
1784*5ecf7b4eSGunnar Mills                "Location": {
1785*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location",
1786*5ecf7b4eSGunnar Mills                    "description": "The location of the port.",
1787*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the location information of the associated port.",
1788*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_1_0"
1789*5ecf7b4eSGunnar Mills                },
1790*5ecf7b4eSGunnar Mills                "LocationIndicatorActive": {
1791*5ecf7b4eSGunnar Mills                    "description": "An indicator allowing an operator to physically locate this resource.",
1792*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the state of the indicator used to physically identify or locate this resource.  A write to this property shall update the value of `IndicatorLED` in this resource, if supported, to reflect the implementation of the locating function.",
1793*5ecf7b4eSGunnar Mills                    "readonly": false,
1794*5ecf7b4eSGunnar Mills                    "type": [
1795*5ecf7b4eSGunnar Mills                        "boolean",
1796*5ecf7b4eSGunnar Mills                        "null"
1797*5ecf7b4eSGunnar Mills                    ],
1798*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
1799*5ecf7b4eSGunnar Mills                },
1800*5ecf7b4eSGunnar Mills                "MaxFrameSize": {
1801*5ecf7b4eSGunnar Mills                    "description": "The maximum frame size supported by the port.",
1802*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the maximum frame size supported by the port.",
1803*5ecf7b4eSGunnar Mills                    "readonly": true,
1804*5ecf7b4eSGunnar Mills                    "type": [
1805*5ecf7b4eSGunnar Mills                        "integer",
1806*5ecf7b4eSGunnar Mills                        "null"
1807*5ecf7b4eSGunnar Mills                    ],
1808*5ecf7b4eSGunnar Mills                    "units": "By",
1809*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
1810*5ecf7b4eSGunnar Mills                },
1811*5ecf7b4eSGunnar Mills                "MaxSpeedGbps": {
1812*5ecf7b4eSGunnar Mills                    "description": "The maximum speed of this port as currently configured.",
1813*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the maximum unidirectional speed of which this port is capable of being configured.  If capable of autonegotiation, the system shall attempt to negotiate at the maximum speed set.  This value includes overhead associated with the protocol.",
1814*5ecf7b4eSGunnar Mills                    "readonly": true,
1815*5ecf7b4eSGunnar Mills                    "type": [
1816*5ecf7b4eSGunnar Mills                        "number",
1817*5ecf7b4eSGunnar Mills                        "null"
1818*5ecf7b4eSGunnar Mills                    ],
1819*5ecf7b4eSGunnar Mills                    "units": "Gbit/s"
1820*5ecf7b4eSGunnar Mills                },
1821*5ecf7b4eSGunnar Mills                "Metrics": {
1822*5ecf7b4eSGunnar Mills                    "anyOf": [
1823*5ecf7b4eSGunnar Mills                        {
1824*5ecf7b4eSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/PortMetrics.json#/definitions/PortMetrics"
1825*5ecf7b4eSGunnar Mills                        },
1826*5ecf7b4eSGunnar Mills                        {
1827*5ecf7b4eSGunnar Mills                            "type": "null"
1828*5ecf7b4eSGunnar Mills                        }
1829*5ecf7b4eSGunnar Mills                    ],
1830*5ecf7b4eSGunnar Mills                    "description": "The link to the metrics associated with this port.",
1831*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a link to the metrics associated with this port.",
1832*5ecf7b4eSGunnar Mills                    "readonly": true,
1833*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_2_0"
1834*5ecf7b4eSGunnar Mills                },
1835*5ecf7b4eSGunnar Mills                "Name": {
1836*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
1837*5ecf7b4eSGunnar Mills                    "readonly": true
1838*5ecf7b4eSGunnar Mills                },
1839*5ecf7b4eSGunnar Mills                "Oem": {
1840*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
1841*5ecf7b4eSGunnar Mills                    "description": "The OEM extension property.",
1842*5ecf7b4eSGunnar 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."
1843*5ecf7b4eSGunnar Mills                },
1844*5ecf7b4eSGunnar Mills                "PortId": {
1845*5ecf7b4eSGunnar Mills                    "description": "The hardware-defined identifier of this port.",
1846*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the hardware-defined identifier of this port.  The human-readable name of this port is described in the `ServiceLabel` property within `Location` for this port.",
1847*5ecf7b4eSGunnar Mills                    "readonly": true,
1848*5ecf7b4eSGunnar Mills                    "type": [
1849*5ecf7b4eSGunnar Mills                        "string",
1850*5ecf7b4eSGunnar Mills                        "null"
1851*5ecf7b4eSGunnar Mills                    ]
1852*5ecf7b4eSGunnar Mills                },
1853*5ecf7b4eSGunnar Mills                "PortMedium": {
1854*5ecf7b4eSGunnar Mills                    "anyOf": [
1855*5ecf7b4eSGunnar Mills                        {
1856*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/PortMedium"
1857*5ecf7b4eSGunnar Mills                        },
1858*5ecf7b4eSGunnar Mills                        {
1859*5ecf7b4eSGunnar Mills                            "type": "null"
1860*5ecf7b4eSGunnar Mills                        }
1861*5ecf7b4eSGunnar Mills                    ],
1862*5ecf7b4eSGunnar Mills                    "description": "The physical connection medium for this port.",
1863*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the physical connection medium for this port.",
1864*5ecf7b4eSGunnar Mills                    "readonly": true,
1865*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_2_0"
1866*5ecf7b4eSGunnar Mills                },
1867*5ecf7b4eSGunnar Mills                "PortProtocol": {
1868*5ecf7b4eSGunnar Mills                    "anyOf": [
1869*5ecf7b4eSGunnar Mills                        {
1870*5ecf7b4eSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
1871*5ecf7b4eSGunnar Mills                        },
1872*5ecf7b4eSGunnar Mills                        {
1873*5ecf7b4eSGunnar Mills                            "type": "null"
1874*5ecf7b4eSGunnar Mills                        }
1875*5ecf7b4eSGunnar Mills                    ],
1876*5ecf7b4eSGunnar Mills                    "description": "The protocol being sent over this port.",
1877*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the protocol being sent over this port.",
1878*5ecf7b4eSGunnar Mills                    "readonly": true
1879*5ecf7b4eSGunnar Mills                },
1880*5ecf7b4eSGunnar Mills                "PortType": {
1881*5ecf7b4eSGunnar Mills                    "anyOf": [
1882*5ecf7b4eSGunnar Mills                        {
1883*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/PortType"
1884*5ecf7b4eSGunnar Mills                        },
1885*5ecf7b4eSGunnar Mills                        {
1886*5ecf7b4eSGunnar Mills                            "type": "null"
1887*5ecf7b4eSGunnar Mills                        }
1888*5ecf7b4eSGunnar Mills                    ],
1889*5ecf7b4eSGunnar Mills                    "description": "The type of this port.",
1890*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the port type for this port.",
1891*5ecf7b4eSGunnar Mills                    "readonly": false
1892*5ecf7b4eSGunnar Mills                },
1893*5ecf7b4eSGunnar Mills                "RemotePortId": {
1894*5ecf7b4eSGunnar Mills                    "description": "The identifier of the remote port to which this port is connected.",
1895*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the identifier of the remote port, such as a switch or device, to which this port is connected.",
1896*5ecf7b4eSGunnar Mills                    "readonly": true,
1897*5ecf7b4eSGunnar Mills                    "type": [
1898*5ecf7b4eSGunnar Mills                        "string",
1899*5ecf7b4eSGunnar Mills                        "null"
1900*5ecf7b4eSGunnar Mills                    ],
1901*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
1902*5ecf7b4eSGunnar Mills                },
1903*5ecf7b4eSGunnar Mills                "SFP": {
1904*5ecf7b4eSGunnar Mills                    "anyOf": [
1905*5ecf7b4eSGunnar Mills                        {
1906*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/SFP"
1907*5ecf7b4eSGunnar Mills                        },
1908*5ecf7b4eSGunnar Mills                        {
1909*5ecf7b4eSGunnar Mills                            "type": "null"
1910*5ecf7b4eSGunnar Mills                        }
1911*5ecf7b4eSGunnar Mills                    ],
1912*5ecf7b4eSGunnar Mills                    "description": "The small form-factor pluggable (SFP) device associated with this port.",
1913*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain data about the small form-factor pluggable (SFP) device currently occupying this port.",
1914*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
1915*5ecf7b4eSGunnar Mills                },
1916*5ecf7b4eSGunnar Mills                "SignalDetected": {
1917*5ecf7b4eSGunnar Mills                    "description": "An indication of whether a signal is detected on this interface.",
1918*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether a signal that is appropriate for this link technology is detected for this port.",
1919*5ecf7b4eSGunnar Mills                    "readonly": true,
1920*5ecf7b4eSGunnar Mills                    "type": [
1921*5ecf7b4eSGunnar Mills                        "boolean",
1922*5ecf7b4eSGunnar Mills                        "null"
1923*5ecf7b4eSGunnar Mills                    ],
1924*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_2_0"
1925*5ecf7b4eSGunnar Mills                },
1926*5ecf7b4eSGunnar Mills                "Status": {
1927*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
1928*5ecf7b4eSGunnar Mills                    "description": "The status and health of the resource and its subordinate or dependent resources.",
1929*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain any status or health properties of the resource."
1930*5ecf7b4eSGunnar Mills                },
1931*5ecf7b4eSGunnar Mills                "Width": {
1932*5ecf7b4eSGunnar Mills                    "description": "The number of lanes, phys, or other physical transport links that this port contains.",
1933*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the number of physical transport links that this port contains.",
1934*5ecf7b4eSGunnar Mills                    "readonly": true,
1935*5ecf7b4eSGunnar Mills                    "type": [
1936*5ecf7b4eSGunnar Mills                        "integer",
1937*5ecf7b4eSGunnar Mills                        "null"
1938*5ecf7b4eSGunnar Mills                    ]
1939*5ecf7b4eSGunnar Mills                }
1940*5ecf7b4eSGunnar Mills            },
1941*5ecf7b4eSGunnar Mills            "required": [
1942*5ecf7b4eSGunnar Mills                "@odata.id",
1943*5ecf7b4eSGunnar Mills                "@odata.type",
1944*5ecf7b4eSGunnar Mills                "Id",
1945*5ecf7b4eSGunnar Mills                "Name"
1946*5ecf7b4eSGunnar Mills            ],
1947*5ecf7b4eSGunnar Mills            "type": "object"
1948*5ecf7b4eSGunnar Mills        },
1949*5ecf7b4eSGunnar Mills        "PortConnectionType": {
1950*5ecf7b4eSGunnar Mills            "enum": [
1951*5ecf7b4eSGunnar Mills                "NotConnected",
1952*5ecf7b4eSGunnar Mills                "NPort",
1953*5ecf7b4eSGunnar Mills                "PointToPoint",
1954*5ecf7b4eSGunnar Mills                "PrivateLoop",
1955*5ecf7b4eSGunnar Mills                "PublicLoop",
1956*5ecf7b4eSGunnar Mills                "Generic",
1957*5ecf7b4eSGunnar Mills                "ExtenderFabric",
1958*5ecf7b4eSGunnar Mills                "FPort",
1959*5ecf7b4eSGunnar Mills                "EPort",
1960*5ecf7b4eSGunnar Mills                "TEPort",
1961*5ecf7b4eSGunnar Mills                "NPPort",
1962*5ecf7b4eSGunnar Mills                "GPort",
1963*5ecf7b4eSGunnar Mills                "NLPort",
1964*5ecf7b4eSGunnar Mills                "FLPort",
1965*5ecf7b4eSGunnar Mills                "EXPort",
1966*5ecf7b4eSGunnar Mills                "UPort",
1967*5ecf7b4eSGunnar Mills                "DPort"
1968*5ecf7b4eSGunnar Mills            ],
1969*5ecf7b4eSGunnar Mills            "enumDescriptions": {
1970*5ecf7b4eSGunnar Mills                "DPort": "This port connection type is a diagnostic port.",
1971*5ecf7b4eSGunnar Mills                "EPort": "This port connection type is an extender fabric port.",
1972*5ecf7b4eSGunnar Mills                "EXPort": "This port connection type is an external fabric port.",
1973*5ecf7b4eSGunnar Mills                "ExtenderFabric": "This port connection type is an extender fabric port.",
1974*5ecf7b4eSGunnar Mills                "FLPort": "This port connects in a fabric loop configuration.",
1975*5ecf7b4eSGunnar Mills                "FPort": "This port connection type is a fabric port.",
1976*5ecf7b4eSGunnar Mills                "GPort": "This port connection type is a generic fabric port.",
1977*5ecf7b4eSGunnar Mills                "Generic": "This port connection type is a generic fabric port.",
1978*5ecf7b4eSGunnar Mills                "NLPort": "This port connects in a node loop configuration.",
1979*5ecf7b4eSGunnar Mills                "NPPort": "This port connection type is a proxy N-port for N-port virtualization.",
1980*5ecf7b4eSGunnar Mills                "NPort": "This port connects through an N-port to a switch.",
1981*5ecf7b4eSGunnar Mills                "NotConnected": "This port is not connected.",
1982*5ecf7b4eSGunnar Mills                "PointToPoint": "This port connects in a point-to-point configuration.",
1983*5ecf7b4eSGunnar Mills                "PrivateLoop": "This port connects in a private loop configuration.",
1984*5ecf7b4eSGunnar Mills                "PublicLoop": "This port connects in a public configuration.",
1985*5ecf7b4eSGunnar Mills                "TEPort": "This port connection type is a trunking extender fabric port.",
1986*5ecf7b4eSGunnar Mills                "UPort": "This port connection type is unassigned."
1987*5ecf7b4eSGunnar Mills            },
1988*5ecf7b4eSGunnar Mills            "enumVersionAdded": {
1989*5ecf7b4eSGunnar Mills                "DPort": "v1_5_0",
1990*5ecf7b4eSGunnar Mills                "EPort": "v1_5_0",
1991*5ecf7b4eSGunnar Mills                "EXPort": "v1_5_0",
1992*5ecf7b4eSGunnar Mills                "FLPort": "v1_5_0",
1993*5ecf7b4eSGunnar Mills                "FPort": "v1_5_0",
1994*5ecf7b4eSGunnar Mills                "GPort": "v1_5_0",
1995*5ecf7b4eSGunnar Mills                "NLPort": "v1_5_0",
1996*5ecf7b4eSGunnar Mills                "NPPort": "v1_5_0",
1997*5ecf7b4eSGunnar Mills                "TEPort": "v1_5_0",
1998*5ecf7b4eSGunnar Mills                "UPort": "v1_5_0"
1999*5ecf7b4eSGunnar Mills            },
2000*5ecf7b4eSGunnar Mills            "type": "string"
2001*5ecf7b4eSGunnar Mills        },
2002*5ecf7b4eSGunnar Mills        "PortMedium": {
2003*5ecf7b4eSGunnar Mills            "enum": [
2004*5ecf7b4eSGunnar Mills                "Electrical",
2005*5ecf7b4eSGunnar Mills                "Optical"
2006*5ecf7b4eSGunnar Mills            ],
2007*5ecf7b4eSGunnar Mills            "enumDescriptions": {
2008*5ecf7b4eSGunnar Mills                "Electrical": "This port has an electrical cable connection.",
2009*5ecf7b4eSGunnar Mills                "Optical": "This port has an optical cable connection."
2010*5ecf7b4eSGunnar Mills            },
2011*5ecf7b4eSGunnar Mills            "type": "string"
2012*5ecf7b4eSGunnar Mills        },
2013*5ecf7b4eSGunnar Mills        "PortType": {
2014*5ecf7b4eSGunnar Mills            "enum": [
2015*5ecf7b4eSGunnar Mills                "UpstreamPort",
2016*5ecf7b4eSGunnar Mills                "DownstreamPort",
2017*5ecf7b4eSGunnar Mills                "InterswitchPort",
2018*5ecf7b4eSGunnar Mills                "ManagementPort",
2019*5ecf7b4eSGunnar Mills                "BidirectionalPort",
2020*5ecf7b4eSGunnar Mills                "UnconfiguredPort"
2021*5ecf7b4eSGunnar Mills            ],
2022*5ecf7b4eSGunnar Mills            "enumDescriptions": {
2023*5ecf7b4eSGunnar Mills                "BidirectionalPort": "This port connects to any type of device.",
2024*5ecf7b4eSGunnar Mills                "DownstreamPort": "This port connects to a target device.",
2025*5ecf7b4eSGunnar Mills                "InterswitchPort": "This port connects to another switch.",
2026*5ecf7b4eSGunnar Mills                "ManagementPort": "This port connects to a switch manager.",
2027*5ecf7b4eSGunnar Mills                "UnconfiguredPort": "This port has not yet been configured.",
2028*5ecf7b4eSGunnar Mills                "UpstreamPort": "This port connects to a host device."
2029*5ecf7b4eSGunnar Mills            },
2030*5ecf7b4eSGunnar Mills            "type": "string"
2031*5ecf7b4eSGunnar Mills        },
2032*5ecf7b4eSGunnar Mills        "QoSTelemetryCapabilities": {
2033*5ecf7b4eSGunnar Mills            "additionalProperties": false,
2034*5ecf7b4eSGunnar Mills            "description": "The quality of service telemetry capabilities for a CXL port.",
2035*5ecf7b4eSGunnar Mills            "longDescription": "This type shall contain the quality of service telemetry capabilities for a CXL port.",
2036*5ecf7b4eSGunnar Mills            "patternProperties": {
2037*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
2038*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
2039*5ecf7b4eSGunnar Mills                    "type": [
2040*5ecf7b4eSGunnar Mills                        "array",
2041*5ecf7b4eSGunnar Mills                        "boolean",
2042*5ecf7b4eSGunnar Mills                        "integer",
2043*5ecf7b4eSGunnar Mills                        "number",
2044*5ecf7b4eSGunnar Mills                        "null",
2045*5ecf7b4eSGunnar Mills                        "object",
2046*5ecf7b4eSGunnar Mills                        "string"
2047*5ecf7b4eSGunnar Mills                    ]
2048*5ecf7b4eSGunnar Mills                }
2049*5ecf7b4eSGunnar Mills            },
2050*5ecf7b4eSGunnar Mills            "properties": {
2051*5ecf7b4eSGunnar Mills                "EgressPortBackpressureSupported": {
2052*5ecf7b4eSGunnar Mills                    "description": "Indicates whether the port supports the CXL Specification-defined 'Egress Port Backpressure' mechanism.",
2053*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether the port supports the CXL Specification-defined 'Egress Port Backpressure' mechanism.",
2054*5ecf7b4eSGunnar Mills                    "readonly": true,
2055*5ecf7b4eSGunnar Mills                    "type": [
2056*5ecf7b4eSGunnar Mills                        "boolean",
2057*5ecf7b4eSGunnar Mills                        "null"
2058*5ecf7b4eSGunnar Mills                    ],
2059*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
2060*5ecf7b4eSGunnar Mills                },
2061*5ecf7b4eSGunnar Mills                "TemporaryThroughputReductionSupported": {
2062*5ecf7b4eSGunnar Mills                    "deprecated": "This property has been deprecated in favor of `TemporaryThroughputReductionSupported` in `PCIeDevice`.",
2063*5ecf7b4eSGunnar Mills                    "description": "Indicates whether the port supports the CXL Specification-defined 'Temporary Throughput Reduction' mechanism.",
2064*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether the port supports the CXL Specification-defined 'Temporary Throughput Reduction' mechanism.",
2065*5ecf7b4eSGunnar Mills                    "readonly": true,
2066*5ecf7b4eSGunnar Mills                    "type": [
2067*5ecf7b4eSGunnar Mills                        "boolean",
2068*5ecf7b4eSGunnar Mills                        "null"
2069*5ecf7b4eSGunnar Mills                    ],
2070*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0",
2071*5ecf7b4eSGunnar Mills                    "versionDeprecated": "v1_12_0"
2072*5ecf7b4eSGunnar Mills                }
2073*5ecf7b4eSGunnar Mills            },
2074*5ecf7b4eSGunnar Mills            "type": "object"
2075*5ecf7b4eSGunnar Mills        },
2076*5ecf7b4eSGunnar Mills        "Reset": {
2077*5ecf7b4eSGunnar Mills            "additionalProperties": false,
2078*5ecf7b4eSGunnar Mills            "description": "This action resets this port.",
2079*5ecf7b4eSGunnar Mills            "longDescription": "This action shall reset this port.",
2080*5ecf7b4eSGunnar Mills            "parameters": {
2081*5ecf7b4eSGunnar Mills                "ResetType": {
2082*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType",
2083*5ecf7b4eSGunnar Mills                    "description": "The type of reset.",
2084*5ecf7b4eSGunnar Mills                    "longDescription": "This parameter shall contain the type of reset.  The service can accept a request without the parameter and perform an implementation-specific default reset."
2085*5ecf7b4eSGunnar Mills                }
2086*5ecf7b4eSGunnar Mills            },
2087*5ecf7b4eSGunnar Mills            "patternProperties": {
2088*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
2089*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
2090*5ecf7b4eSGunnar Mills                    "type": [
2091*5ecf7b4eSGunnar Mills                        "array",
2092*5ecf7b4eSGunnar Mills                        "boolean",
2093*5ecf7b4eSGunnar Mills                        "integer",
2094*5ecf7b4eSGunnar Mills                        "number",
2095*5ecf7b4eSGunnar Mills                        "null",
2096*5ecf7b4eSGunnar Mills                        "object",
2097*5ecf7b4eSGunnar Mills                        "string"
2098*5ecf7b4eSGunnar Mills                    ]
2099*5ecf7b4eSGunnar Mills                }
2100*5ecf7b4eSGunnar Mills            },
2101*5ecf7b4eSGunnar Mills            "properties": {
2102*5ecf7b4eSGunnar Mills                "target": {
2103*5ecf7b4eSGunnar Mills                    "description": "Link to invoke action",
2104*5ecf7b4eSGunnar Mills                    "format": "uri-reference",
2105*5ecf7b4eSGunnar Mills                    "type": "string"
2106*5ecf7b4eSGunnar Mills                },
2107*5ecf7b4eSGunnar Mills                "title": {
2108*5ecf7b4eSGunnar Mills                    "description": "Friendly action name",
2109*5ecf7b4eSGunnar Mills                    "type": "string"
2110*5ecf7b4eSGunnar Mills                }
2111*5ecf7b4eSGunnar Mills            },
2112*5ecf7b4eSGunnar Mills            "type": "object"
2113*5ecf7b4eSGunnar Mills        },
2114*5ecf7b4eSGunnar Mills        "ResetPPB": {
2115*5ecf7b4eSGunnar Mills            "additionalProperties": false,
2116*5ecf7b4eSGunnar Mills            "description": "This action resets the PCI-to-PCI bridge (PPB) for this port.",
2117*5ecf7b4eSGunnar Mills            "longDescription": "This action shall reset the PCI-to-PCI bridge (PPB) for this port.",
2118*5ecf7b4eSGunnar Mills            "parameters": {},
2119*5ecf7b4eSGunnar Mills            "patternProperties": {
2120*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
2121*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
2122*5ecf7b4eSGunnar Mills                    "type": [
2123*5ecf7b4eSGunnar Mills                        "array",
2124*5ecf7b4eSGunnar Mills                        "boolean",
2125*5ecf7b4eSGunnar Mills                        "integer",
2126*5ecf7b4eSGunnar Mills                        "number",
2127*5ecf7b4eSGunnar Mills                        "null",
2128*5ecf7b4eSGunnar Mills                        "object",
2129*5ecf7b4eSGunnar Mills                        "string"
2130*5ecf7b4eSGunnar Mills                    ]
2131*5ecf7b4eSGunnar Mills                }
2132*5ecf7b4eSGunnar Mills            },
2133*5ecf7b4eSGunnar Mills            "properties": {
2134*5ecf7b4eSGunnar Mills                "target": {
2135*5ecf7b4eSGunnar Mills                    "description": "Link to invoke action",
2136*5ecf7b4eSGunnar Mills                    "format": "uri-reference",
2137*5ecf7b4eSGunnar Mills                    "type": "string"
2138*5ecf7b4eSGunnar Mills                },
2139*5ecf7b4eSGunnar Mills                "title": {
2140*5ecf7b4eSGunnar Mills                    "description": "Friendly action name",
2141*5ecf7b4eSGunnar Mills                    "type": "string"
2142*5ecf7b4eSGunnar Mills                }
2143*5ecf7b4eSGunnar Mills            },
2144*5ecf7b4eSGunnar Mills            "type": "object",
2145*5ecf7b4eSGunnar Mills            "versionAdded": "v1_8_0"
2146*5ecf7b4eSGunnar Mills        },
2147*5ecf7b4eSGunnar Mills        "SFP": {
2148*5ecf7b4eSGunnar Mills            "additionalProperties": false,
2149*5ecf7b4eSGunnar Mills            "description": "A small form-factor pluggable (SFP) device attached to a port.",
2150*5ecf7b4eSGunnar Mills            "longDescription": "This type shall describe a small form-factor pluggable (SFP) device attached to a port.",
2151*5ecf7b4eSGunnar Mills            "patternProperties": {
2152*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
2153*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
2154*5ecf7b4eSGunnar Mills                    "type": [
2155*5ecf7b4eSGunnar Mills                        "array",
2156*5ecf7b4eSGunnar Mills                        "boolean",
2157*5ecf7b4eSGunnar Mills                        "integer",
2158*5ecf7b4eSGunnar Mills                        "number",
2159*5ecf7b4eSGunnar Mills                        "null",
2160*5ecf7b4eSGunnar Mills                        "object",
2161*5ecf7b4eSGunnar Mills                        "string"
2162*5ecf7b4eSGunnar Mills                    ]
2163*5ecf7b4eSGunnar Mills                }
2164*5ecf7b4eSGunnar Mills            },
2165*5ecf7b4eSGunnar Mills            "properties": {
2166*5ecf7b4eSGunnar Mills                "DateCode": {
2167*5ecf7b4eSGunnar Mills                    "description": "The manufacturing date code for this SFP.",
2168*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the manufacturing date code for this SFP as determined by the vendor or supplier.",
2169*5ecf7b4eSGunnar Mills                    "readonly": true,
2170*5ecf7b4eSGunnar Mills                    "type": [
2171*5ecf7b4eSGunnar Mills                        "string",
2172*5ecf7b4eSGunnar Mills                        "null"
2173*5ecf7b4eSGunnar Mills                    ],
2174*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_14_0"
2175*5ecf7b4eSGunnar Mills                },
2176*5ecf7b4eSGunnar Mills                "FiberConnectionType": {
2177*5ecf7b4eSGunnar Mills                    "anyOf": [
2178*5ecf7b4eSGunnar Mills                        {
2179*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/FiberConnectionType"
2180*5ecf7b4eSGunnar Mills                        },
2181*5ecf7b4eSGunnar Mills                        {
2182*5ecf7b4eSGunnar Mills                            "type": "null"
2183*5ecf7b4eSGunnar Mills                        }
2184*5ecf7b4eSGunnar Mills                    ],
2185*5ecf7b4eSGunnar Mills                    "description": "The type of fiber connection currently used by this SFP.",
2186*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the fiber connection type used by the SFP.",
2187*5ecf7b4eSGunnar Mills                    "readonly": true,
2188*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
2189*5ecf7b4eSGunnar Mills                },
2190*5ecf7b4eSGunnar Mills                "Manufacturer": {
2191*5ecf7b4eSGunnar Mills                    "description": "The manufacturer of this SFP.",
2192*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the name of the organization responsible for producing the SFP.  This organization may be the entity from which the SFP is purchased, but this is not necessarily true.",
2193*5ecf7b4eSGunnar Mills                    "readonly": true,
2194*5ecf7b4eSGunnar Mills                    "type": [
2195*5ecf7b4eSGunnar Mills                        "string",
2196*5ecf7b4eSGunnar Mills                        "null"
2197*5ecf7b4eSGunnar Mills                    ],
2198*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
2199*5ecf7b4eSGunnar Mills                },
2200*5ecf7b4eSGunnar Mills                "MediumType": {
2201*5ecf7b4eSGunnar Mills                    "anyOf": [
2202*5ecf7b4eSGunnar Mills                        {
2203*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/MediumType"
2204*5ecf7b4eSGunnar Mills                        },
2205*5ecf7b4eSGunnar Mills                        {
2206*5ecf7b4eSGunnar Mills                            "type": "null"
2207*5ecf7b4eSGunnar Mills                        }
2208*5ecf7b4eSGunnar Mills                    ],
2209*5ecf7b4eSGunnar Mills                    "description": "The medium type connected to this SFP.",
2210*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the medium type used by the SFP.",
2211*5ecf7b4eSGunnar Mills                    "readonly": true,
2212*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
2213*5ecf7b4eSGunnar Mills                },
2214*5ecf7b4eSGunnar Mills                "PartNumber": {
2215*5ecf7b4eSGunnar Mills                    "description": "The part number for this SFP.",
2216*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the manufacturer-provided part number for the SFP.",
2217*5ecf7b4eSGunnar Mills                    "readonly": true,
2218*5ecf7b4eSGunnar Mills                    "type": [
2219*5ecf7b4eSGunnar Mills                        "string",
2220*5ecf7b4eSGunnar Mills                        "null"
2221*5ecf7b4eSGunnar Mills                    ],
2222*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
2223*5ecf7b4eSGunnar Mills                },
2224*5ecf7b4eSGunnar Mills                "SerialNumber": {
2225*5ecf7b4eSGunnar Mills                    "description": "The serial number for this SFP.",
2226*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a manufacturer-allocated number that identifies the SFP.",
2227*5ecf7b4eSGunnar Mills                    "readonly": true,
2228*5ecf7b4eSGunnar Mills                    "type": [
2229*5ecf7b4eSGunnar Mills                        "string",
2230*5ecf7b4eSGunnar Mills                        "null"
2231*5ecf7b4eSGunnar Mills                    ],
2232*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
2233*5ecf7b4eSGunnar Mills                },
2234*5ecf7b4eSGunnar Mills                "Status": {
2235*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
2236*5ecf7b4eSGunnar Mills                    "description": "The status and health of the resource and its subordinate or dependent resources.",
2237*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain any status or health properties of the resource.",
2238*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
2239*5ecf7b4eSGunnar Mills                },
2240*5ecf7b4eSGunnar Mills                "SupportedSFPTypes": {
2241*5ecf7b4eSGunnar Mills                    "description": "The types of SFP devices that can be attached to this port.",
2242*5ecf7b4eSGunnar Mills                    "items": {
2243*5ecf7b4eSGunnar Mills                        "anyOf": [
2244*5ecf7b4eSGunnar Mills                            {
2245*5ecf7b4eSGunnar Mills                                "$ref": "#/definitions/SFPType"
2246*5ecf7b4eSGunnar Mills                            },
2247*5ecf7b4eSGunnar Mills                            {
2248*5ecf7b4eSGunnar Mills                                "type": "null"
2249*5ecf7b4eSGunnar Mills                            }
2250*5ecf7b4eSGunnar Mills                        ]
2251*5ecf7b4eSGunnar Mills                    },
2252*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of SFP device types supported by this port.",
2253*5ecf7b4eSGunnar Mills                    "readonly": true,
2254*5ecf7b4eSGunnar Mills                    "type": "array",
2255*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
2256*5ecf7b4eSGunnar Mills                },
2257*5ecf7b4eSGunnar Mills                "Type": {
2258*5ecf7b4eSGunnar Mills                    "anyOf": [
2259*5ecf7b4eSGunnar Mills                        {
2260*5ecf7b4eSGunnar Mills                            "$ref": "#/definitions/SFPType"
2261*5ecf7b4eSGunnar Mills                        },
2262*5ecf7b4eSGunnar Mills                        {
2263*5ecf7b4eSGunnar Mills                            "type": "null"
2264*5ecf7b4eSGunnar Mills                        }
2265*5ecf7b4eSGunnar Mills                    ],
2266*5ecf7b4eSGunnar Mills                    "description": "The type of SFP device that is attached to this port.",
2267*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the SFP device type currently attached to this port.",
2268*5ecf7b4eSGunnar Mills                    "readonly": true,
2269*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
2270*5ecf7b4eSGunnar Mills                },
2271*5ecf7b4eSGunnar Mills                "VendorOUI": {
2272*5ecf7b4eSGunnar Mills                    "description": "The IEEE OUI of the vendor of this SFP.",
2273*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the IEEE organizationally unique identifier (OUI) of the vendor of this SFP.",
2274*5ecf7b4eSGunnar Mills                    "pattern": "^([0-9A-Fa-f]{2}-){2}([0-9A-Fa-f]{2})$",
2275*5ecf7b4eSGunnar Mills                    "readonly": true,
2276*5ecf7b4eSGunnar Mills                    "type": [
2277*5ecf7b4eSGunnar Mills                        "string",
2278*5ecf7b4eSGunnar Mills                        "null"
2279*5ecf7b4eSGunnar Mills                    ],
2280*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_13_0"
2281*5ecf7b4eSGunnar Mills                },
2282*5ecf7b4eSGunnar Mills                "Version": {
2283*5ecf7b4eSGunnar Mills                    "description": "The hardware version of this SFP.",
2284*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the hardware version of this SFP as determined by the vendor or supplier.",
2285*5ecf7b4eSGunnar Mills                    "readonly": true,
2286*5ecf7b4eSGunnar Mills                    "type": [
2287*5ecf7b4eSGunnar Mills                        "string",
2288*5ecf7b4eSGunnar Mills                        "null"
2289*5ecf7b4eSGunnar Mills                    ],
2290*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_13_0"
2291*5ecf7b4eSGunnar Mills                }
2292*5ecf7b4eSGunnar Mills            },
2293*5ecf7b4eSGunnar Mills            "type": "object"
2294*5ecf7b4eSGunnar Mills        },
2295*5ecf7b4eSGunnar Mills        "SFPType": {
2296*5ecf7b4eSGunnar Mills            "enum": [
2297*5ecf7b4eSGunnar Mills                "SFP",
2298*5ecf7b4eSGunnar Mills                "SFPPlus",
2299*5ecf7b4eSGunnar Mills                "SFP28",
2300*5ecf7b4eSGunnar Mills                "cSFP",
2301*5ecf7b4eSGunnar Mills                "SFPDD",
2302*5ecf7b4eSGunnar Mills                "QSFP",
2303*5ecf7b4eSGunnar Mills                "QSFPPlus",
2304*5ecf7b4eSGunnar Mills                "QSFP14",
2305*5ecf7b4eSGunnar Mills                "QSFP28",
2306*5ecf7b4eSGunnar Mills                "QSFP56",
2307*5ecf7b4eSGunnar Mills                "MiniSASHD",
2308*5ecf7b4eSGunnar Mills                "QSFPDD",
2309*5ecf7b4eSGunnar Mills                "OSFP"
2310*5ecf7b4eSGunnar Mills            ],
2311*5ecf7b4eSGunnar Mills            "enumDescriptions": {
2312*5ecf7b4eSGunnar Mills                "MiniSASHD": "The SFP conforms to the SFF Specification SFF-8644.",
2313*5ecf7b4eSGunnar Mills                "OSFP": "The SFP conforms to the OSFP Specification.",
2314*5ecf7b4eSGunnar Mills                "QSFP": "The SFP conforms to the SFF Specification for QSFP.",
2315*5ecf7b4eSGunnar Mills                "QSFP14": "The SFP conforms to the SFF Specification for QSFP14.",
2316*5ecf7b4eSGunnar Mills                "QSFP28": "The SFP conforms to the SFF Specification for QSFP28.",
2317*5ecf7b4eSGunnar Mills                "QSFP56": "The SFP conforms to the SFF Specification for QSFP56.",
2318*5ecf7b4eSGunnar Mills                "QSFPDD": "The SFP conforms to the QSFP Double Density Specification.",
2319*5ecf7b4eSGunnar Mills                "QSFPPlus": "The SFP conforms to the SFF Specification for QSFP+.",
2320*5ecf7b4eSGunnar Mills                "SFP": "The SFP conforms to the SFF Specification for SFP.",
2321*5ecf7b4eSGunnar Mills                "SFP28": "The SFP conforms to the SFF Specification for SFP+ and IEEE 802.3by Specification.",
2322*5ecf7b4eSGunnar Mills                "SFPDD": "The SFP conforms to the SFP-DD MSA Specification.",
2323*5ecf7b4eSGunnar Mills                "SFPPlus": "The SFP conforms to the SFF Specification for SFP+.",
2324*5ecf7b4eSGunnar Mills                "cSFP": "The SFP conforms to the CSFP MSA Specification."
2325*5ecf7b4eSGunnar Mills            },
2326*5ecf7b4eSGunnar Mills            "enumVersionAdded": {
2327*5ecf7b4eSGunnar Mills                "OSFP": "v1_9_0",
2328*5ecf7b4eSGunnar Mills                "QSFPDD": "v1_9_0"
2329*5ecf7b4eSGunnar Mills            },
2330*5ecf7b4eSGunnar Mills            "type": "string"
2331*5ecf7b4eSGunnar Mills        },
2332*5ecf7b4eSGunnar Mills        "SupportedEthernetCapabilities": {
2333*5ecf7b4eSGunnar Mills            "enum": [
2334*5ecf7b4eSGunnar Mills                "WakeOnLAN",
2335*5ecf7b4eSGunnar Mills                "EEE"
2336*5ecf7b4eSGunnar Mills            ],
2337*5ecf7b4eSGunnar Mills            "enumDescriptions": {
2338*5ecf7b4eSGunnar Mills                "EEE": "IEEE 802.3az Energy-Efficient Ethernet (EEE) is supported on this port.",
2339*5ecf7b4eSGunnar Mills                "WakeOnLAN": "Wake on LAN (WoL) is supported on this port."
2340*5ecf7b4eSGunnar Mills            },
2341*5ecf7b4eSGunnar Mills            "type": "string"
2342*5ecf7b4eSGunnar Mills        }
2343*5ecf7b4eSGunnar Mills    },
2344*5ecf7b4eSGunnar Mills    "language": "en",
2345*5ecf7b4eSGunnar Mills    "owningEntity": "DMTF",
2346*5ecf7b4eSGunnar Mills    "release": "2025.3",
2347*5ecf7b4eSGunnar Mills    "title": "#Port.v1_17_0.Port"
2348*5ecf7b4eSGunnar Mills}