MPO Polarity Explained: Type A, B, C and the 8-Fiber Trap at 400G
Type A/B/C fiber mapping end to end: why Type B suits 8-fiber 400G DR4 and 16-fiber 800G DR8, and where Base-8 trunks break.
The one-line answer
Connect two 400G-DR4 or 800G-DR8 ports with a single MPO cable and you want Type B. Not Type A, even though "straight through" sounds like the safe default. On a parallel-optic port, straight is the failure mode: every transmitter fires into the transmitter facing it, receive power reads as dark on all lanes, and the link never trains.
The useful question is not "which type is standard" but "how many reversals does this channel need". Once you count that, the cable choice stops being a coin flip, and the same arithmetic covers 12-fiber, 16-fiber, patch panels and 8-fiber trunks that quietly break everything.
Three cable types, and the key as a field check
ANSI/TIA-568.3-E defines three mappings for multi-fiber assemblies. The names are annoyingly similar to the method names, which is where a lot of the confusion starts: Type A/B/C describe the cable, Method A/B/C describe the channel.
| Assembly | Key orientation | Mapping, 12 positions | Effect on a parallel link |
|---|---|---|---|
| Type A | key-up β key-down | P1βP1 β¦ P12βP12 | straight; a crossover must come from somewhere else |
| Type B | key-up β key-up | P1βP12, P2βP11 β¦ P6βP7 | one full reversal; what 8F and 16F parallel links want |
| Type C | key-up β key-down | P1βP2, P2βP1, P3βP4 β¦ | pairwise; duplex and cassette plants only |
Key orientation is a consequence of the mapping rather than its definition, but it is the fastest thing to check in a rack. Two key-up ends on the same trunk means reversed. Key-up to key-down on a trunk that is not Type C means straight, and someone in that link is about to have a bad afternoon.
Finding position 1 on a bare connector: hold it key-up, look at the ferrule, and count left to right. The white dot on the housing marks the same side. Do this once per connector type and write it down, because the numbering on the boot and the numbering in the drawing do not always agree.
Why the receivers are numbered backwards
Here is the detail that makes Type B look wrong until it suddenly makes sense. The eight active fibers of a 400G-DR4 port are not four transmit followed by four receive in order. They are 1β4 transmit, 5β8 idle, 9β12 receive β and the receive lanes count in the opposite direction. Position 12 is RX1, position 9 is RX4.
| Port | TX positions | RX positions | Idle |
|---|---|---|---|
| 400G-DR4 (MPO-12) | 1, 2, 3, 4 = TX1βTX4 | 12, 11, 10, 9 = RX1, 2, 3, 4 | 5β8 |
| 400G-SR8 (MPO-16) | 1β8 = TX1βTX8 | 16β¦9 = RX1βRX8 | none |
| 800G-DR8 (MPO-16) | 1β8 = TX1βTX8 | 16β¦9 = RX1βRX8 | none |
| 800G-DR8 as 2ΓMPO-12 | 1β4 per connector | 12β¦9 per connector | 5β8 |
Put those two facts together and Type B is no longer a convention, just arithmetic. P1βP12 sends TX1 into RX1. P2βP11 sends TX2 into RX2. Lane order is preserved even though fiber order is reversed, and that is precisely what a PAM4 link needs, because lane 1 on one ASIC has to meet lane 1 on the other.
For an assembly of N positions, the Type B mapping is short enough to memorise:
P_far = N + 1 β P_near
Twelve positions: 1β12. Sixteen positions: 1β16. Eight positions: 1β8 β remember that last one, it comes back in a moment.
Counting reversals across a real channel
A link between two switches is rarely one cable. It is a cord, a trunk, maybe a panel, another cord. Each element either reverses or it does not, and what matters is the parity of the total.
Here is the whole argument in a diagram. Two Type B cords and a Type B trunk look like three flips; electrically they behave like one.
flowchart LR
A["TX1 pos 1"] --> B["Cord B: 1 to 12"]
B --> C["Trunk B: 12 to 1"]
C --> D["Cord B: 1 to 12"]
D --> E["RX1 pos 12"]
A2["TX2 pos 2"] --> B2["Cord B: 2 to 11"]
B2 --> C2["Trunk B: 11 to 2"]
C2 --> D2["Cord B: 2 to 11"]
D2 --> E2["RX2 pos 11"]That parity rule explains a field habit that otherwise looks careless. In Method B you buy one cord type and use it at both ends, because three reversals still land on the right lane. In Method A the trunk is straight, so exactly one cord has to cross and the other must not β two different part numbers on the same truck, and a coin toss every time somebody grabs the wrong bag.
| Channel build | Net reversals | Result on an 8-fiber parallel link |
|---|---|---|
| Type A trunk, Type A cords both ends | 0 | no light; TX faces TX |
| Type A trunk, one Type B cord and one Type A cord | 1 | correct |
| Type B trunk, Type B cords both ends | 3, equivalent to 1 | correct |
| Type B trunk, no patch cords | 1 | correct |
| Type C trunk with Type C cords | pairwise, no full reversal | wrong lane order at 400G |
Two reversals is the trap worth flagging. It happens when someone "fixes" a link by swapping one cord for a Type B and leaves the other Type B in place, or when a panel internally reverses and nobody counted it. The link is then straight again, and it fails in exactly the same way as the original fault.
The 8-fiber trap, in two flavours
The first flavour is the MPO-8 connector. Base-8 cabling uses an eight-position ferrule, and its Type B mapping is 1β8, 2β7, 3β6, 4β5. Mate an MPO-8 trunk to a 400G-DR4 port and TX1 arrives at position 8, which is idle. You get four dark lanes, normal transmit power, and no diagnostic that points at the cable.
The second flavour is subtler. Assemblies sold as "8-fiber MPO-12" can be built two ways: eight fibers populated at positions 1β4 and 9β12 with the middle empty, or eight fibers populated contiguously at 1β8. Only the first matches a 400G-DR4 port. The part number often says "8F MPO" and nothing else, so the mapping has to come from the drawing or from the vendor, in writing.
This is also why a 12-fiber trunk sometimes seems to work at 100G and fails at 400G. A 100G-SR4 link uses 1β4 and 9β12 as well, so it is the same eight positions β but a 100G link built on cassettes may have had its polarity corrected inside the cassette, and that correction does not survive the move to a direct 400G connection.
Sixteen fibers, same logic with bigger numbers
400G-SR8, 800G-SR8 and 800G-DR8 use all sixteen positions: eight transmit, eight receive, no idle fibers. Type B still delivers one net reversal, mapping 1β16 and 2β15, and the receiver side is still numbered backwards, so lane order survives.
800G-DR8 also ships as a two-connector variant, usually written 2ΓDR4 or 2DR4. Each MPO-12 APC port carries four transmit and four receive lanes and behaves exactly like a DR4 connector, which is convenient when the plant was built for 400G and is being upgraded port by port. What it is not is a place to reuse eight-fiber cords with both ends key-up and assume the far side sorts it out.
Worth knowing before ordering: 400G-SR8 is multimode UPC, 400G-DR4 and 800G-DR8 are single-mode APC. A UPC plug in an APC adapter gives back-reflection high enough to spoil a PAM4 eye, and the symptom β clean receive power, unstable pre-FEC BER β gets blamed on the module. If you want the loss arithmetic for a channel with this many mated pairs, the link budget walkthrough covers the connector and splice allowances for DR4 and DR8.
What the failure actually looks like
Polarity faults are oddly consistent once you know the signatures. What they never look like is a marginal link: the light either lands on a listening lane or it does not.
| Observation | What it points to |
|---|---|
| Tx power normal, all lanes at minimum Rx | even number of reversals; cable mapping is straight |
| Four lanes lit, four dark, always the same group | MPO-8 trunk or an 8F assembly wired 1β8 |
| Rx power on every lane, FEC never locks | lane order scrambled, often a miswired harness |
| Link up at 100G, down at 400G on the same trunk | cassette polarity correction that does not apply to direct attach |
| Clean Rx power, BER climbing after a re-cable | UPC into APC, or an extra adapter used to flip polarity |
The last two rows are the ones that get misdiagnosed, and both are worth separating from polarity proper. A link that fails in one direction only is not a polarity fault at all β a reversal affects both directions identically, because the same fibers carry the two directions in a parallel link. One-way failure means a broken fiber or a dead lane, which is a different investigation.
There is a quicker path through the whole set: check whether the module is even reaching a ready state before you touch the fiber, then compare per-lane receive power against transmit power. The link-down triage sequence runs through that order, and the 802.3 map is the place to confirm whether a given PMD uses eight fibers or sixteen before you count anything.
Before the cable order goes out
A short checklist, in the order that saves the most money.
- Choose the method once per site, not per link, and write the trunk type and both cord types on the same drawing. Polarity failures are almost always documentation failures.
- Count reversals as a design step. Eight and sixteen fiber parallel links need an odd count; duplex channels inside cassettes are a separate case.
- Confirm gender at the same time. Transceiver ports are pinned, so cords are unpinned; panel adapters are usually unpinned, so trunks are pinned.
- Match polish to medium. Single-mode MPO is APC at eight degrees, multimode is UPC. Keep the two physically separated in stores.
- Buy one spare cord of each type. A spare Type B cord that arrives when you needed a Type A is a cheap reminder of the parity rule.
- Test mapping before turn-up, with a polarity tester or a source and meter, and record the result per trunk ID rather than per rack.
None of this is hard. It is just unforgiving, and it fails at exactly the moment a link is supposed to be carrying production traffic.
Bottom line
- 400G-DR4 and 800G-DR8 need exactly one net reversal across the channel, which is what a Type B assembly provides; a straight Type A channel gives no receive light at all.
- Type B works with identical cords at both ends because three reversals reduce to one. Method A only works with one crossed cord and one straight cord, which is a documentation problem waiting to happen.
- The receive side of an MPO port counts backwards (position 12 is RX1), which is why a reversed cable preserves lane order instead of scrambling it.
- MPO-8 trunks and eight-fiber assemblies wired 1β8 land on idle positions in an MPO-12 port. Check the drawing, not the part number.
Compiled from ANSI/TIA-568.3-E polarity methods, IEEE 802.3bs, 802.3cm, 802.3df PMD lane assignments, QSFP-DD hardware specification connector definitions, and published connector documentation; mapping tables recomputed here, original synthesis, no reproduction of source text.
FAQ
- Is Type A or Type B correct for 400G-DR4?
- Type B, if the link is a single cable between two transceivers. 400GBASE-DR4 puts TX1βTX4 on positions 1β4 and RX1βRX4 on positions 12 down to 9, so you need exactly one reversal across the channel. Type A is straight and leaves each transmitter aimed at the transmitter opposite it, which is why a Type A patch on a DR4 port gives normal transmit power and no receive light.
- Why can I use identical Type B patch cords at both ends?
- Because reversals add up modulo two. A Type B trunk is one reversal and each Type B cord is another, so the channel carries three reversals, which behaves like one. Method A cannot do this: its trunk is straight, so exactly one of the two patch cords has to cross and the other must not.
- Can an 8-fiber MPO-8 trunk feed an MPO-12 transceiver port?
- Not directly. An MPO-8 ferrule has eight positions, and its Type B mapping runs 1β8, 2β7, 3β6, 4β5, so TX1 lands on position 8 β one of the four idle positions in a 400G-DR4 port. You need a conversion harness that remaps 1β4 to 12β9, or a Base-12 trunk built with eight active fibers.
- Does wrong polarity change insertion loss or damage anything?
- It does not change loss through the fibers; the light simply arrives at a lane that is not listening, so the host reports a very low receive power and the link never trains. The damage risk comes from the fix, not the fault: stacking adapters or gender changers to flip polarity burns 0.35 to 0.75 dB per mated pair, and mixing UPC plugs into APC adapters is what actually scratches endfaces.
- How do I verify polarity without a live link?
- Use a polarity tester, or a light source and power meter with a fan-out, and record the mapping as a table per trunk. If you are working visually, confirm position 1 by the white dot on the connector body or by viewing the ferrule key-up with positions running left to right β do not infer position 1 from the cable jacket printing.
- Is Type C ever correct at 400G?
- Only where the channel is duplex or cassette-based and the pairwise flip is part of a documented design. A Type C trunk swaps adjacent pairs, so on an 8-fiber parallel link TX1 arrives at position 2, which is another transmitter. It belongs to legacy 10G duplex plants and pre-terminated cassette systems, not to direct 400G or 800G parallel links.