MCTP Pcie 1.3.0
MCTP Pcie 1.3.0
3 Date: 2024-08-09
4 Version: 1.3.0
8 Supersedes: 1.2.1
12 Copyright Notice
13 Copyright © 2009, 2014, 2018, 2021, 2023–2024 DMTF. All rights reserved.
14 DMTF is a not-for-profit association of industry members dedicated to promoting enterprise and systems
15 management and interoperability. Members and non-members may reproduce DMTF specifications and
16 documents, provided that correct attribution is given. As DMTF specifications may be revised from time to
17 time, the particular version and release date should always be noted.
18 Implementation of certain elements of this standard or proposed standard may be subject to third-party
19 patent rights, including provisional patent rights (herein “patent rights”). DMTF makes no representations
20 to users of the standard as to the existence of such rights and is not responsible to recognize, disclose, or
21 identify any or all such third-party patent right owners or claimants, nor for any incomplete or inaccurate
22 identification or disclosure of such rights, owners, or claimants. DMTF shall have no liability to any party,
23 in any manner or circumstance, under any legal theory whatsoever, for failure to recognize, disclose, or
24 identify any such third-party patent rights, or for such party’s reliance on the standard or incorporation
25 thereof in its products, protocols, or testing procedures. DMTF shall have no liability to any party
26 implementing such standards, whether such implementation is foreseeable or not, nor to any patent
27 owner or claimant, and shall have no liability or responsibility for costs or losses incurred if a standard is
28 withdrawn or modified after publication, and shall be indemnified and held harmless by any party
29 implementing the standard from any and all claims of infringement by a patent owner for such
30 implementations.
31 For information about patents held by third-parties which have notified DMTF that, in their opinion, such
32 patents may relate to or impact implementations of DMTF standards, visit
33 https://www.dmtf.org/about/policies/disclosures.
34 PCI-SIG, PCIe, and the PCI HOT PLUG design mark are registered trademarks or service marks of PCI-
35 SIG. All other marks and brands are the property of their respective owners.
36 This document’s normative language is English. Translation into other languages is permitted.
37 CONTENTS
38 Foreword ....................................................................................................................................................... 5
39 Introduction.................................................................................................................................................... 6
40 1 Scope .................................................................................................................................................... 7
41 2 Normative references ............................................................................................................................ 7
42 3 Terms and definitions ............................................................................................................................ 8
43 3.1 Destination Physical Address ..................................................................................................... 8
44 3.2 Dword .......................................................................................................................................... 8
45 3.3 Flit Mode ..................................................................................................................................... 8
46 3.4 MCTP PCIe Endpoint.................................................................................................................. 8
47 3.5 PCIe Segment ............................................................................................................................. 8
48 3.6 Target Physical Address ............................................................................................................. 8
49 4 Symbols and abbreviated terms ............................................................................................................ 9
50 4.1 PCIe® ......................................................................................................................................... 9
51 4.2 VDM ............................................................................................................................................ 9
52 4.3 CXL™.......................................................................................................................................... 9
53 4.4 FM ............................................................................................................................................... 9
54 4.5 NFM ............................................................................................................................................ 9
55 4.6 IDE .............................................................................................................................................. 9
56 4.7 OHC ............................................................................................................................................ 9
57 4.8 TLP.............................................................................................................................................. 9
58 5 Conventions ........................................................................................................................................ 10
59 5.1 Reserved and unassigned values ............................................................................................. 10
60 5.2 Byte ordering ............................................................................................................................. 10
61 6 MCTP over PCI Express VDM transport ............................................................................................. 10
62 6.1 Overview ................................................................................................................................... 10
63 6.2 Packet formats .......................................................................................................................... 10
64 6.3 Supported media....................................................................................................................... 16
65 6.4 Physical address format for MCTP control messages .............................................................. 17
66 6.5 Message routing ....................................................................................................................... 17
67 6.6 Bus owner address ................................................................................................................... 21
68 6.7 Bus and Segment address assignment for PCIe ...................................................................... 22
69 6.8 Host dependencies ................................................................................................................... 22
70 6.9 Discovery Notify message use for PCIe ................................................................................... 23
71 6.10 MCTP over PCIe endpoint discovery........................................................................................ 23
72 6.11 MCTP messages timing requirements...................................................................................... 26
73 ANNEX A (informative) Notations and conventions ................................................................................... 28
74 ANNEX B (informative) Change log .......................................................................................................... 29
75
76 Figures
77 Figure 1 – MCTP over PCI Express Vendor Defined Message (VDM) packet format (Non-Flit Mode) ..... 11
78 Figure 2 – MCTP over PCI Express Vendor Defined Message (VDM) Packet Format (Flit Mode within a
79 Segment without IDE) ....................................................................................................... 13
80 Figure 3 – MCTP over PCI Express Vendor Defined Message (VDM) Packet Format (Flit Mode across
81 segments and/or with IDE) ................................................................................................ 14
82 Figure 4 – Flit Mode to Non-Flit Mode routing options ................................................................................ 19
83 Figure 5 – Example Flow of operations for full MCTP Discovery over PCIe .............................................. 25
84 Figure 6 – Flow of operations for Partial Endpoint Discovery ..................................................................... 26
85
86 Tables
87 Table 1 – PCI Express medium-specific MCTP packet fields ..................................................................... 11
88 Table 2 – PCI Express Medium-Specific MCTP Packet Fields in Flit Mode ............................................... 15
89 Table 3 – Supported media ......................................................................................................................... 16
90 Table 4 – Physical address format (Non-Flit Mode) ................................................................................... 17
91 Table 5 – Physical Address Format (Flit Mode) .......................................................................................... 17
92 Table 6 – Address Translations when transitioning between Flit Mode and Non-Flit Mode hierarchies .... 20
93 Table 7 – Address used for routing examples ............................................................................................ 21
94 Table 8 – Timing specifications for MCTP messages on PCIe VDM ......................................................... 27
95
96 Foreword
97 The Management Component Transport Protocol (MCTP) PCIe VDM Transport Binding Specification
98 (DSP0238) was prepared by the PMCI Working Group.
99 DMTF is a not-for-profit association of industry members dedicated to promoting enterprise and systems
100 management and interoperability.
101 Acknowledgments
102 The DMTF acknowledges the following individuals for their contributions to this document:
103 Editors:
104 • Hemal Shah – Broadcom Inc.
105 • Tom Slaight – Intel Corporation
106 • Eliel Louzoun – Intel Corporation
107 Contributors:
108 • Austin Bolen – Dell Technologies
109 • Patrick Caporale – Lenovo
110 • Steve Glaser – NVIDIA Corporation
111 • Brett Henning – Broadcom Inc.
112 • Yuval Itkin – NVIDIA Corporation
113 • Janusz Jurski – Intel Corporation
114 • Mariusz Oriol – Intel Corporation
115 • Patrick Schoeller – Hewlett Packard Enterprise
116 • Bob Stevens – Dell Technologies
117 Introduction
118 The Management Component Transport Protocol (MCTP) over PCIe VDM transport binding defines a
119 transport binding for facilitating communication between platform management subsystem components
120 (e.g., management controllers, management devices) over PCIe.
121 The MCTP Base Specification describes the protocol and commands used for communication within and
122 initialization of an MCTP network. The MCTP over PCIe VDM transport binding definition in this
123 specification includes a packet format, physical address format, message routing, and discovery
124 mechanisms for MCTP over PCIe VDM communications.
127 1 Scope
128 This document provides the specifications for the Management Component Transport Protocol (MCTP)
129 transport binding using PCIe Vendor Defined Messages (VDMs).
165 The terms "shall" ("required"), "shall not", "should" ("recommended"), "should not" ("not recommended"),
166 "may", "need not" ("not required"), "can" and "cannot" in this document are to be interpreted as described
167 in ISO/IEC Directives, Part 2, Clause 7. The terms in parentheses are alternatives for the preceding term,
168 for use in exceptional cases when the preceding term cannot be used for linguistic reasons. Note that
169 ISO/IEC Directives, Part 2, Clause 7 specifies additional alternatives. Occurrences of such additional
170 alternatives shall be interpreted in their normal English meaning.
171 The terms "clause", "subclause", "paragraph", and "annex" in this document are to be interpreted as
172 described in ISO/IEC Directives, Part 2, Clause 6.
173 The terms "normative" and "informative" in this document are to be interpreted as described in ISO/IEC
174 Directives, Part 2, Clause 3. In this document, clauses, subclauses, or annexes labeled "(informative)" do
175 not contain normative content. Notes and examples are always informative elements.
176 Refer to DSP0236 for terms and definitions that are used across the MCTP specifications. For the
177 purposes of this document, the following additional terms and definitions apply.
178 3.1
179 Destination Physical Address
180 the Physical address reflected in the Requester ID field (Non-Flit Mode) or Requester ID and Requester
181 Segment (Flit Mode) fields of the TLP
184 3.3
185 Flit Mode
186 a mode defined in the PCI Express Base Specification Revision 6.x introducing a new link layer and
187 transaction layer for PCI Express where a TLP header is composed of a 3 to 7 dword TLP Header Base
188 followed by 0 to 7 additional dwords of OHCs (Orthogonal Header Content)
189 3.4
190 MCTP PCIe Endpoint
191 a PCIe endpoint on which MCTP PCIe VDM communication is supported
192 3.5
193 PCIe Segment
194 a PCI Express I/O interconnect topology, in which the Requester IDs must be unique
195 3.6
196 Target Physical Address
197 The Physical address reflected in the Target ID field (Non-Flit Mode) or Target ID and Target Segment
198 (Flit Mode) fields of the TLP
199
203 4.1
204 PCIe®
205 PCI Express™
206 4.2
207 VDM
208 Vendor Defined Message
209 4.3
210 CXL™
211 Compute Express Link™
212 4.4
213 FM
214 Flit Mode
215 4.5
216 NFM
217 Non-Flit Mode
218 4.6
219 IDE
220 Integrity and Data Encryption
221 4.7
222 OHC
223 Orthogonal Header Content
224 4.8
225 TLP
226 Transaction Layer Packet
227 5 Conventions
228 The conventions described in the following clauses apply to this specification.
232 Unless otherwise specified, numeric or bit fields that are designated as reserved shall be written as 0
233 (zero) and ignored when read.
241 An MCTP over PCIe VDM compliant PCIe device shall support MCTP over PCIe VDM communications
242 on at least one PCIe Physical Function (PF) of the device. If an MCTP over PCIe VDM compliant PCI
243 device supports MCTP over PCIe VDM communications on more than one PCIe function, then MCTP
244 over PCIe VDM communication on each function shall be independent from MCTP over PCIe VDM
245 communications on other PCIe functions.
246 The MCTP over PCI Express (PCIe) VDM transport binding transfers MCTP messages using PCIe Type
247 1 VDMs with data. MCTP messages use the MCTP VDM code value (0000b) stored in the PCIe TAG
248 field that uniquely differentiates MCTP messages from other DMTF VDMs.
249 Any MCTP baseline transmission unit for MCTP PCIe VDM communication shall be dword aligned.
250 The handling of transactions with parameters not matching the values described below is out of scope for
251 this specification. The receiver may choose to accept those or ignore them.
+0 +1 +2 +3
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
R
R R or
or Fmt Type TC R or
Byte 0 > Fm or R|Attr|R|TH or TD EP Attr Length
11b 10b r2r1r0 T9 000b T8|Attr|LN|TH AT
Specific Header
PCIe VDM Header
t[2]
PCIe Medium-
PCIe TAG field Message Code
PCI Requester ID Pad MCTP VDM Vendor Defined
Byte 4 > Rsvd Code
Len 0000b 0111_1111b
PCI Target ID Vendor ID
Byte 8 > (for Route by ID messages. Otherwise
1AB4h (DMTF)
reserved)
MCTP Header Destination Source S E Pkt Msg
O O seq T
Transport Byte 12 > RSVD
version Endpoint ID Endpoint ID M M O Tag
Header #
MCTP Packet
Byte 20 >
Payload
256 Figure 1 – MCTP over PCI Express Vendor Defined Message (VDM) packet format (Non-Flit Mode)
257 The fields labeled “PCIe Medium-Specific Header” and “PCIe Medium-Specific Trailer” are specific to
258 carrying MCTP packets using PCIe VDMs. The fields labeled “MCTP Transport Header” and “MCTP
259 Packet Payload” are common fields for all MCTP packets and messages and are specified in MCTP. This
260 document defines the location of those fields when they are carried in a PCIe VDM. The PCIe
261 specification allows the last four bytes of the PCIe VDM header to be vendor defined. The MCTP over
262 PCIe VDM transport binding specification uses these bytes for MCTP Transport header fields under the
263 DMTF Vendor ID. This document also specifies the medium-specific use of the MCTP “Hdr Version” field.
264 Table 1 lists the PCIe medium-specific fields and field values that shall be used in MCTP over PCIe VDM
265 communications. When not specified, field values shall be set according to PCIe specifications. Note that
266 the presence of TLP prefixes in MCTP over PCIe VDM packets is implementation dependent and outside
267 the scope of this specification.
Field Description
R or PCIe 1.1/2.0: PCIe reserved bit (1 bit).
Fmt[2] PCIe 2.1 and above: Fmt[2]. Set to 0b.
Fmt Format (2 bits). Set to 11b to indicate 4 dword header with data.
Type Type and Routing (5 bits).
[4:3] Set to 10b to indicate a message
[2:0] PCI message routing (r2r1r0)
000b : Route to Root Complex
010b : Route by ID
011b : Broadcast from Root Complex
Other routing fields values are not supported for MCTP.
Field Description
R or T9 PCIe 1.1/2.0/2.1/3.X: PCIe reserved bit (1 bit). Set to 0b.
PCIe 4.X and above: T9 (1bit). Set to 0b.
TC Traffic Class (3 bits). Set to 000b for MCTP over PCIe VDM.
R or PCIe 1.1/2.0: PCIe reserved bits (4 bits). Set to 0000b
R | Attr | R | TH or PCIe 2.1/3.X: PCIe reserved bit (1 bit), Attr[2] (1 bit) – Set to 0b, reserved bit (1bit), and
T8 | Attr | LN | TH TH (1bit) – Set to 0b.
PCIe 4.X and above: T8 bit (1 bit) – Set to 0b, Attr[2] (1 bit) – Set to 0b, LN (1bit) – Set
to 0b, and TH (1bit) – Set to 0b
TD TLP Digest (1 bit). 1b indicates the presence of the TLP Digest field at the end of the
PCIe TLP (transaction layer packet). The TD bit should be set in accordance with the
devices overall support for the TLP Digest capability, and whether that capability is
enabled. See description of the TLP Digest / ECRC field, below, for additional
information. Note that earlier versions of this specification erroneously required this bit
to be set to 0b, which would have required devices to not support the TLP Digest
capability.
EP Error Poisoned (1 bit).
Attr[1:0] Attributes (2 bits). Set to 00b or 01b for all MCTP over PCIe VDM.
R or PCIe 1.1: PCIe reserved bits (2 bits).
AT PCIe 2.0 and above: Address Type (AT) field. Set to 00b.
Length Length: Length of the PCIe VDM Data in dwords. Implementations shall support the
baseline transmission unit defined in the MCTP Base Specification. For example,
supporting a baseline transmission unit of 64 bytes requires supporting PCIe VDM data
up to 16 dwords. An implementation may optionally support dword aligned larger
transfer unit sizes.
PCI Requester ID Bus/device/function or bus/function number of the managed endpoint sending the
message.
Pad Len Pad Length (2-bits). 1-based count (0 to 3) of the number of 0x00 pad bytes that have
been added to the end of the packet to make the packet dword aligned with respect to
PCIe. Because only packets with the EOM bit set to 1b are allowed to be less than the
transfer unit size, packets that have the EOM bit set to 0b will already be dword
aligned and will thus not require any pad bytes and will have a pad length of 00b.
MCTP VDM Code Value that uniquely differentiates MCTP messages from other DMTF VDMs. Set to
0000b for this transport mapping as defined in this specification.
Message Code (8 bits). Set to 0111_1111b to indicate a Type 1 VDM.
PCI Target ID (16 bits). For Route by ID messages, this is the bus/device/function number or
bus/function number that is the physical address of the target endpoint. This field is
ignored for Broadcast and for Route to Root Complex messages.
Vendor ID (16 bits). Set to 6836 (0x1AB4) for DMTF VDMs. The most significant byte is in byte
10, the least significant byte is byte 11.
RSVD MCTP reserved (4 bits). Set these bits to 0 when generating a message. Ignore them
on incoming messages.
Hdr Version MCTP version (4 bits)
0001b : For MCTP devices that conform to the MCTP Base Specification and this
version of the PCIe VDM transport binding.
All other settings: Reserved to support future packet header field expansion or header
version.
Field Description
00h PAD Pad bytes. 0 to 3 bytes of 00h as required to fill out the overall PCIe VDM data to be
an integral number of dwords. Because only packets with the EOM bit set to 1b are
allowed to be less than the transfer unit size, packets that have the EOM bit set to 0b
will already be dword aligned and will thus not require any pad bytes and will have a
pad length of 00b.
TLP Digest / (32 bits). TLP Digest / ECRC (End-to-end CRC). This field is defined for all PCIe TLPs
ECRC (Transaction Layer Packets). Device support for this field is optional. However, per
PCIe v2.1 and above: "If a device Function is enabled to generate ECRC, it must
calculate and apply ECRC for all TLPs originated by the Function. If the device
supports generating this field, it must support it for all TLPs." Additionally, per PCIe
v2.1 and above, if the ultimate PCI Express Receiver of the TLP does not support
ECRC checking, the receiver must ignore the TLP Digest.
269 Note: In this table, “PCIe X.X and above” means up to the latest PCIe version covered by this
270 specification.
273 Figure 3 show the encapsulation of MCTP packet fields within a PCIe VDM in Flit Mode with or without
274 OHCs.
+0 +1 +2 +3
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Type TC OHC Attr
Byte 0 > TS = 0,1 Length
01110b r2r1r0 000b 00000b 000b
Specific Header
PCIe VDM Header
PCIe Medium-
MCTP Packet
Byte 20 >
Payload
276 Figure 2 – MCTP over PCI Express Vendor Defined Message (VDM) Packet Format
277 (Flit Mode within a Segment without IDE)
278
+0 +1 +2 +3
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Type TC Attr
Byte 0 > OHC TS Length
01110b r2r1r0 000b 000b
Specific Header
PCIe Medium- For Vendor Definition
Message Code
E R Pad MCTP VDM
Byte 4 > PCI Requester ID Code Vendor Defined
P sv Len 0000b 0111_1111b
PCIe VDM Header
DSV
OHC-A4 Byte 16 >
Destination Segment Reserved 1 Reserved
RSV
OHC-C Byte 20 > Requester Segment PR_Sent_Counter Stream ID ** SubStream R K T
1
I Message
Byte 24 > C Type
PCIe VDM Data
Byte 28 > Message Type byte only present in first packet header of message.)
Payload
279
280
281 Figure 3 – MCTP over PCI Express Vendor Defined Message (VDM) Packet Format
282 (Flit Mode across segments and/or with IDE)
283 The fields labeled “PCIe Medium-Specific Header” and “PCIe Medium-Specific Trailer” are specific to
284 carrying MCTP packets using PCIe VDMs. The fields labeled “MCTP Transport Header” and “MCTP
285 Packet Payload” are common fields for all MCTP packets and messages and are specified in MCTP. This
286 section defines the location of those fields when they are carried in a Flit Mode PCIe VDM. The PCIe
287 specification allows the last four bytes of the PCIe VDM header base to be vendor defined. The MCTP
288 over PCIe VDM transport binding specification uses these bytes for MCTP Transport header fields under
289 the DMTF Vendor ID. This document also specifies the medium-specific use of the MCTP “Hdr Version”
290 field.
291 Table 2 lists the PCIe medium-specific fields and field values that shall be used in MCTP over PCIe VDM
292 communications. When not specified, field values shall be set according to PCIe specifications. Note that
293 the presence of additional OHCs in MCTP over PCIe VDM packets is implementation dependent and
294 outside the scope of this specification.
295 Table 2 – PCI Express Medium-Specific MCTP Packet Fields in Flit Mode
Field Description
PCIe Header
Type Type and Routing (8 bits).
[7:3] Set to 01110b to indicate a message
[2:0] PCI message routing (r2r1r0)
000b : Route to Root Complex
010b : Route by ID
011b : Broadcast from Root Complex
Other routing fields values are not supported for MCTP.
TC Traffic Class (3 bits). Set to 000b for MCTP over PCIe VDM.
OHC Indicates the type of OHCs present after the header. Possible values are:
00000b: no OHCs
00100b: Indicates OHC-C is present
00101b: Indicates OHC-A4 and OHC-C are present
TS TS[2:0] field indicates Trailer Size. The possible encodings for PCIe VDMs are:
000b – No Trailer
001b – 1 dword Trailer containing ECRC
101b – 3 dwords Trailer with IDE MAC if and only if OHC-C present and indicates IDE
TLP
110b – 4 dwords Trailer with IDE MAC and PCRC if and only if OHC-C present and
indicates IDE TLP
Attr[2:0] Attributes (3 bits). Set to 000b for all MCTP over PCIe VDM.
Length Length: Length of the PCIe VDM Data in dwords. Implementations shall support the
baseline transmission unit defined in the MCTP Base Specification. For example,
supporting a baseline transmission unit of 64 bytes requires supporting PCIe VDM data
up to 16 dwords. An implementation may optionally support larger transfer unit sizes.
PCI Requester ID Bus/device/function or bus/function number of the managed endpoint sending the
message.
Pad Len Pad Length (2-bits). 1-based count (0 to 3) of the number of 0x00 pad bytes that have
been added to the end of the packet to make the packet dword aligned with respect to.
PCIe. Because only packets with the EOM bit set to 1b are allowed to be less than the
transfer unit size, packets that have the EOM bit set to 0b will already be dword aligned
and will thus not require any pad bytes and will have a pad length of 00b.
MCTP VDM Code Value that uniquely differentiates MCTP messages from other DMTF VDMs. Set to
0000b for this transport mapping as defined in this specification.
Message Code (8 bits). Set to 0111_1111b to indicate a Type 1 VDM.
PCI Target ID (16 bits). For Route by ID messages, this is the bus/device/function number or
bus/function number that is the physical address of the target endpoint. This field is
ignored for Broadcast and for Route to Root Complex messages.
Vendor ID (16 bits). Set to 6836 (0x1AB4) for DMTF VDMs. The most significant byte is in byte 10,
the least significant byte is byte 11.
Orthogonal Headers (OHC)
OHC-A4 Includes the Destination Segment and Destination Segment Valid
Note: The PASID and PSV fields in OHC-A4 are not relevant to MCTP VDMs.
OHC-C Includes Requester Segment, RSV (Requester Segment Valid) and IDE parameters.
Field Description
MCTP Header
RSVD MCTP reserved (4 bits). Set these bits to 0 when generating a message. Ignore them on
incoming messages.
Hdr Version MCTP version (4 bits)
0001b : For MCTP devices that conform to the MCTP Base Specification and this
version of the PCIe VDM transport binding.
All other settings: Reserved to support future packet header field expansion or header
version.
MCTP Trailer
00h PAD Pad bytes. 0 to 3 bytes of 00h as required to fill out the overall PCIe VDM data to be an
integral number of dwords. Because only packets with the EOM bit set to 1b are allowed
to be less than the transfer unit size, packets that have the EOM bit set to 0b will already
be dword aligned, and will thus not require any pad bytes and will have a pad length of
00b.
PCIe Trailer (3 options if exists)
TLP Digest / (32 bits). TLP Digest / ECRC (End-to-end CRC).
ECRC /
IDE MAC (96 bits). IDE Message Authentication Code (MAC).
IDE MAC + PCRC (128 bits). IDE Message Authentication Code (MAC) + Plaintext CRC
300 An implementation that is compliant with this specification shall at least support one of the PCIe media
301 listed in Table 3. Note that the CXL is built on the PCI Express (PCIe) physical and electrical interface.
303 Note: The compatibility mentioned above is to a specific PCIe specification version and not to a specific
304 speed. For example, a device reporting compatibility to PCIe 4.X may still operate in Gen3 or lower
305 speeds.
313 Note: If a message is received in Non-Flit Mode or in Flit Mode without OHC-A4 present, or with OHC-A4
314 present but DSV bit cleared, then the segment number used to create the physical address is implicitly
315 set to the local segment. In the same manner, to translate a physical address received in Non-Flit Mode
316 format to Flit Mode format, the local segment number shall be added.
358 If an endpoint is aware of multiple routes to a destination over multiple bus types, a higher level
359 algorithm/protocol above MCTP shall be used to determine which bus/route to use. Typically this decision
360 can be based on things like power state and MCTP discovery state.
361 6.5.3 Routing Messages in Between Flit Mode and Non-Flit Mode domains
362 Generally, PCIe rules for routing between segments and presence and values of the Requester Segment
363 and Destination Segment need to be followed so that MCTP can route "transparently" in the presence of
364 PCIe Flit Mode domains.
365 Figure 4 describes the possible transitions between Flit Mode and Non-Flit Mode domains:
NFM FM
FM Endpoint FM
(c)
Switch
(F)
FM FM
Switch
(A) Switch
(B) FM
Endpoint FM Endpoint
NFM Endpoint (j)
(b)
(i)
NFM
Endpoint NFM
NFM Switch Switch
(a)
(C) (D)
Endpoint FM
Legend:
(f)
Switch FM
Flit Mode Link Endpoint
Non-Flit Mode Link (E)
Endpoint (h)
FM (g)
Hierarchy
boundary FM
Endpoint
(d) Endpoint
NFM Subtree
(e)
366
368 Table 6 – Address Translations when transitioning between Flit Mode and Non-Flit Mode
369 hierarchies
Requires Example
MCTP Bridge? (based on
Scenario Fields translation Figure 4)
Flit Mode to Non-Flit Mode Use Target ID and Requester ID as is. No (b) to (a) or
or (i) to (j)
Flit Mode to Flit Mode
within segment
Flit Mode to Non-Flit Mode Route to segment indicated by Destination Yes (i) to (f)
across segments Segment. Target ID kept as is. Requester ID
in destination segment = Bridge ID (modified
by MCTP bridge)
Flit Mode to Flit Mode Route to segment indicated by Destination No (j) to (g)
across segments Segment. Target ID kept as is. Requester ID
= source Requester ID (no change by MCTP
bridge)
Non-Flit Mode to Flit Mode Use Target ID and Requester ID as is. No (f) to (g)
within segment
Non-Flit Mode to Flit Mode Route to segment indicated by EID lookup. Yes (f) to (i)
across segments Target ID based on EID lookup. Requester
ID in destination segment = {source
segment, source BDF}
Non-Flit Mode through Flit Route to segment indicated by EID lookup. Yes (e) to (c) or (e)
Mode fabric across Target ID based on EID lookup. Requester to (i)
segments ID in destination segment = Bridge ID
Flit Mode to Flit Mode in a Use Target ID and Requester ID as is. No (e) to (d)
Non-Flit Mode island Segment ID is ignored for the routing.
370
371 When a message crosses the boundary between Flit Mode and Non-Flit Mode hierarchies, the Segment
372 part of the address may be removed (Flit Mode to Non-Flit Mode) or added (Non-Flit Mode to Flit Mode).
373 Table 6 describes the translations done when a message crosses between Flit Mode and Non-Flit Mode
374 hierarchies in various scenarios. The “Requires MCTP Bridge” column in Table 6 indicates whether the
375 described scenario requires one or more PCIe Root Ports to function as an MCTP bridge, as DSP0236
376 describes. The “Example” column in Table 6 provides an example of the described scenario using the
377 topology shown in Figure 4.
378 To identify the physical address to use, an endpoint may use the Resolve Endpoint ID command that
379 translates an EID to a physical address. As endpoints in Non-Flit Mode may not be aware of the Flit Mode
380 address format, when such an endpoint is requesting the address of a Flit Mode device it should receive
381 a physical address it knows how to use, hence the address shall not include a segment number. In case
382 the resolved EID is in a different segment, the physical address shall point to an MCTP bridge that can
383 translate and route based on the destination EID to a physical address in another segment.
384 Note: This mechanism assumes the EIDs are unique across all segments, and that physical addressing is
385 not used when crossing between Flit Mode and Non-Flit Mode hierarchies.
386 A bus owner may discover the Physical medium supported by an endpoint using the Query Supported
387 Interfaces command defined in DSP0236. If the command is not supported, and the bus owner has no
388 other method to detect the supported medium, then a Non-Flit Mode support shall be assumed.
393 Notes:
394 • The MCTP bridge may choose to return its own address instead of the endpoint address in all cases.
395 In this case, all the traffic will be bridged. The chosen routing method is implementation dependent
396 and is outside of the scope of this specification.
397 • When a {B,D,F} of Root Port is mentioned, it can be any function within the root complex acting as
398 the MCTP bridge.
455 Endpoints use the Discovery Notify command to inform the MCTP bus owner that it needs to update the
456 endpoint’s ID. The Discovery Notify command shall be sent with the PCIe message routing set to 000b
457 (Route to Root Complex), the Destination Endpoint ID for the Discovery Notify message shall be set to
458 the Null Destination EID. The Source Endpoint ID field shall be set to the Null Source EID if the device
459 has not yet been assigned an EID; otherwise, it shall contain the assigned EID value.
465 The flag is set to the discovered state when the Set Endpoint ID command is received.
466 The Prepare for Endpoint Discovery message causes each recipient endpoint on the PCIe bus to set their
467 respective Discovered flag to the undiscovered state. For the Prepare for Endpoint Discovery request
468 message, the routing in the physical transport header should be set to 011b (Broadcast from Root
469 Complex). An endpoint also sets the flag to the undiscovered state at the following times:
470 • Whenever the PCIe physical address associated with the endpoint is initially assigned or is
471 changed to a different value.
472 • Whenever an endpoint first appears on the bus and requires an EID assignment. A device shall
473 have been enumerated on PCI and have a bus/device/function or bus/function number before it
474 can do this.
475 • During operation if an endpoint enters a state that causes it to lose its EID assignment.
476 • For endpoints that have already received an EID assignment but are in any temporary state
477 where the endpoint was unable to respond to MCTP control requests for more than TRECLAIM
478 seconds.
479 Only endpoints that have their Discovered flag set to undiscovered shall respond to the Endpoint
480 Discovery message. Endpoints that have the flag set to discovered shall not respond to the Endpoint
481 Discovery message.
482 For PCIe endpoints, an Endpoint Discovery broadcast request message can be sent by the MCTP bus
483 owner to discover all MCTP-capable devices. MCTP-capable endpoints respond with an Endpoint
484 Discovery response message.
485 An MCTP-capable endpoint shall respond to broadcast MCTP control request messages only if a PCI bus
486 number and in Flit-Mode, a segment a number and a bus number are assigned to the associated PCIe
487 function; otherwise, the endpoint should silently discard such MCTP messages.
Prepare for Endpoint Discovery Request Prepare for Endpoint Discovery Request
Broadcast from RC
Discovered flag ‘undiscovered’
Destination EID = 0xFF
Prepare for Endpoint Discovery Response Prepare for Endpoint Discovery Response Source EID = Bus Owner EID
Route to Root Complex
Destination EID = Bus Owner EID
Source EID = Null or Assigned EID
532 Figure 5 – Example Flow of operations for full MCTP Discovery over PCIe
533 Note: In this example flow, the destination EID in Set Endpoint ID Request is set to Null if not assigned
534 before.
541 The partial discovery process is the same as the full discovery process except that the MCTP bus owner
542 skips the step of broadcasting a Prepare for Endpoint Discovery command in order to avoid clearing the
543 Discovered flags of already discovered endpoints.
544 The partial discovery process may be initiated when a device that is added or enabled for MCTP sends a
545 Discovery Notify message to the MCTP bus owner. The MCTP bus owner may also elect to periodically
546 issue a broadcast Endpoint Discovery message to test for whether any undiscovered endpoints have
547 been missed. The Discovery Notify message provides the MCTP bus owner with the physical address of
548 the MCTP PCIe endpoint. The MCTP bus owner can then send a directed Endpoint Discovery message
549 to the endpoint to confirm that the device has not been discovered. The MCTP bus owner then issues a
550 Set Endpoint ID command to the physical address for the endpoint which causes the endpoint to set its
551 Discovered flag to discovered.
552 It is recommended that the MCTP bus owner maintains a list of the unique MCTP EIDs for the endpoints
553 it has discovered and reassigns the same MCTP EIDs to those endpoints if a physical address changes
554 during system operation.
555 An MCTP-capable endpoint may respond to Route by ID Endpoint Discovery request messages.
556 Figure 6 provides an example flow of operations for partial endpoint discovery.
Number of request retries MN1 2 See Total of three tries, minimum: the
Description original try plus two retries. The
column maximum number of retries for a given
request is limited by the requirement
that all retries shall occur within MT4,
max of the initial request.
Time-out waiting for a response MT2 MT1 max[1] MT4, min[1] This interval at the requester sets the
+ 6 ms minimum amount of time that a
requester should wait before retrying an
MCTP control request. This interval is
measured at the requester from the end
of the successful transmission of the
MCTP control request to the beginning
of the reception of the corresponding
MCTP control response.
NOTE: This specification does not preclude
an implementation from adjusting the
minimum time-out waiting for a response to a
smaller number than MT2 based on the
measured response times from responders.
The mechanism for doing so is outside the
scope of this specification.
Instance ID expiration interval MT4 5 sec [2] 6 sec Interval after which the instance ID for a
given response will expire and become
reusable if a response has not been
received for the request. This is also the
maximum time that a responder tracks
an instance ID for a given request from
a given requester.
NOTE 1: Unless otherwise specified, this timing applies to the mandatory and optional MCTP commands.
NOTE 2: If a requester is reset, it may produce the same sequence number for a request as one that was previously issued. To
guard against this, it is recommended that sequence number expiration be implemented. Any request from a given
requester that is received more than MT4 seconds after a previous, matching request should be treated as a new
request, not a retry.
570 ANNEX A
571 (informative)
572
573 Notations and conventions
574 Notations
575 Examples of notations used in this document are as follows: list into text needed
576 • 2:N In field descriptions, this will typically be used to represent a range of byte offsets
577 starting from byte two and continuing to and including byte N. The lowest offset is on
578 the left, the highest is on the right.
579 • (6) Parentheses around a single number can be used in message field descriptions to
580 indicate a byte field that may be present or absent.
581 • (3:6) Parentheses around a field consisting of a range of bytes indicates the entire range
582 may be present or absent. The lowest offset is on the left, the highest is on the right.
583 • PCIe Underlined, blue text is typically used to indicate a reference to a document or
584 specification called out in Clause 2, “Normative References” or to items hyperlinked
585 within the document.
586 • rsvd Abbreviation for Reserved. Case insensitive.
587 • [4] Square brackets around a number are typically used to indicate a bit offset. Bit offsets
588 are given as 0-based values (that is, the least significant bit [LSb] offset = 0).
589 • [7:5] A range of bit offsets. The most significant bit is on the left, the least significant bit is
590 on the right.
591 • 1b The lower case “b” following a number consisting of 0s and 1s is used to indicate the
592 number is being given in binary format.
593 • 0x12A A leading “0x” is used to indicate a number given in hexadecimal format.
594 ANNEX B
595 (informative)
596
597
598 Change log
599