VMDS 10506
VMDS 10506
2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1 Major Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Features and Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Functional Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1 Data Path Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.1 Ingress Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.2 Egress Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.3 Interface Data Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 Physical Medium Attachment (PMA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.1 VScope Input Signal Monitoring Integrated Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3 WAN Interface Sublayer (WIS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3.1 Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3.2 Section Overhead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.3 Line Overhead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.4 SPE Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3.5 Path Overhead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.6 Defects and Anomalies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3.7 Interrupt Pins and Interrupt Masking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3.8 Overhead Serial Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3.9 Pattern Generator and Checker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4 10G Physical Coding Sublayer (64B/66B PCS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4.1 Control Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4.2 Transmit Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.4.3 Receive Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.4.4 PCS Standard Test Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5 1G Physical Coding Sublayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.6 IEEE 1588 Block Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.6.1 IEEE 1588 Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.6.2 IEEE 1588v2 One-Step End-to-End Transparent Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.6.3 IEEE 1588v2 Transparent Clock and Boundary Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.6.4 Enhancing IEEE 1588 Accuracy for CE Switches and MACs . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.6.5 MACsec Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.6.6 Supporting One-Step Boundary Clock/Ordinary Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.6.7 Supporting Two-Step Boundary Clock/Ordinary Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.6.8 Supporting One-Step End-to-End Transparent Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.6.9 Supporting One-Step Peer-to-Peer Transparent Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.6.10 Supporting Two-Step Transparent Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.6.11 Calculating OAM Delay Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.12 Supporting Y.1731 One-Way Delay Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.13 Supporting Y.1731 Two-Way Delay Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.6.14 Device Synchronization for IEEE 1588 Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.6.15 Time Stamp Update Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.6.16 Analyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.6.17 Time Stamp Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.6.18 Time Stamp FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.6.19 Serial Time Stamp Output Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
5 Electrical Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.1 DC Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.1.1 DC Inputs and Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.1.2 Reference Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
5.2 AC Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
5.2.1 Receiver Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
1 Revision History
The revision history describes the changes that were implemented in the document. The changes are
listed by revision, starting with the most current publication.
2 Overview
Figure 1 •
•
Host LC-PLL Clocking Network for Timing and Retiming Including SyncE Support Line LC-PLL
1G 1G
PCS PCS Switch
VSC8491-17 Block Diagram
SD6G
Major Applications
XAUI/RXAUI/ SD6G FC/ SD10G SFP/SFP+
4/2/1 Host Rate Line 10G
1 GbE XGXS WIS
SD6G MAC Comp MAC PCS
MACsec
SD6G Buffers
2x 2 × 6.25G 1 × 10G
1588
2x 4 × 3.125G
Line
1 × 1G
2x 1 × 1.25G
FC/
Host/Client
SD6G Host 10G
XGXS Rate Line WIS
MAC Comp MAC PCS
XAUI/RXAUI/ SD6G
MACsec
4/2/1 Buffers
1 GbE SD6G
SD6G
1G 1G
PCS PCS
3
Overview
10 GbE
1 × 10G
2/4 VSC8491-17 1 × 1G
Dual
10 GbE 2/4 SFP/SFP+/XFP
MAC/NIC
VSC8491-17 2/4
RXAUI/
1 × 10G/ 2/4 XAUI
1 × 1G RXAUI/ Switch
XAUI
10GBASE-KR
Backplane
Figure 4 • 1588 Transparent Clock Line Card End-to-End PHY Application
Ethernet Line Card System Card Ethernet Line Card
1G
Ethernet Port SerDes PHY Packet Linecard Control
MAC
Processing Processor
10G
Ethernet Line Card Packet SerDes PHY Ethernet Port
MAC
Fabric Processing
Linecard Control
Processor
MAC or
Ethernet Port Fabric
Switch
Adapter
1G 10G
Ethernet Port Packet Ethernet Port
SerDes PHY MAC Packet MAC SerDes PHY
Processing Fabric Processing
Boundary
Clock
3 Functional Descriptions
This section describes the functional aspects of the VSC8491-17 device, including the functional block
diagram, operating modes, and major functional blocks.
The VSC8491-17 device host-side interface is either four-lane XAUI, two-lane RXAUI, or one-lane
1 GbE. The line-side interface is 10G SFP+ or 1 GbE SFP.
Each lane has the following main sections:
• PMA
The PMA section contains the high-speed serial I/O interfaces, an input equalization circuit, a KR-
compliant output buffer, and a SerDes. Additionally, the PMA also generates all the line-side clocks,
including the clocks required for Synchronous Ethernet applications.
• WIS
The WIS section contains the framing and de-framing circuits and control and status registers to
convert the data to be IEEE 802.3ae WIS-compliant.
• 10G PCS
The 10G PCS section is composed of the PCS transmit, PCS receive, block synchronization, and
BER monitor processes. The PCS functions can be further broken down into encode or decode,
scramble or descramble, and gearbox functions, as well as various test and loopback modes.
• 1G PCS
The 1G PCS section describes the 1000BASE-X/SGMII coding and auto-negotiation processes.
There are two instances per channel, one for the host and one for the line.
• IEEE 1588
The IEEE 1588 section contains the local time counter, analyzer, time stamp, FIFO, and rewriter to
support both 1-step and 2-step clock timing, and to perform 1588 frame detection, time stamp
appending, header removal, and frame processing.
• MACsec
The MACsec section supports IEEE 802.1AE MACsec, which defines a set of protocols to meet the
security requirements for protecting data traversing Ethernet LANs. Tasks performed include input
classification, latency monitoring, frame encryption and decryption, and performance monitoring.
• MAC
The MAC block frames data for transmission over the network before passing the frame to the
physical layer interface, where it is transmitted as a stream of bits. In 10G mode, MAC is only
enabled along with MACsec. In 1G mode, MAC can be enabled with or without MACsec.
• FIFO
The FIFO section contains a rate-compensating FIFO between the line rate and the host rate.
• Flow Control Buffer
The flow control buffer performs rate compensation between the host and line interfaces when the
MACs are enabled.
• Cross Connect
The cross connect connects one port to the adjacent port to enable routing data/clock to and from
port 1 and 0. This cross connect only supports broadcasting from PMA to XAUI but NOT from XAUI
to PMA. The failover supported by this cross connect is not hitless.
• XGXS
The XGXS implements the PHY XGXS referenced in IEEE 802.3 Clause 47, and contains a
10GBASE-X PCS as defined in Clause 48. It provides the necessary translation between the
external XAUI interface and the on-chip XGMII interface. In addition to standard 4-lane XAUI, it also
supports 2-lane RXAUI/DDR-XAUI.
• XAUI/RXAUI
The XAUI and RXAUI section contains the parallel XAUI/RXAUI I/O interface and a SerDes.
• KR
The KR driver includes programmable equalization accomplished by a three-tap finite impulse
response (FIR) structure. Three-tap delays are achieved by three flip-flops clocked by a high-speed
serial clock (10 GHz in 10G mode; 1 GHz in 1G mode).
• Loopback
The loopback sections describe the different loopbacks available in the VSC8491-17 device,
including system and network loopbacks. The various loopbacks enhance the engineering
debugging and manufacturing testing capability.
• Management
The management section contains the status and configuration registers and the serial management
interface logic to access them.
The data is 8B/10B encoded by the line-side 1G PCS logic, serialized by the PMA, and transmitted from
the line interface at 1.25 Gbps.
Operating Mode Line-Side Datarate (Gbps) Host-Side Interface Host-Side Datarate (Gbps)
10G LAN 1 × 10.3125 XAUI 4 × 3.125
10G LAN 1 × 10.3125 RXAUI 2 × 6.25
10G WAN 1 × 9.95328 XAUI 4 × 3.125
10G WAN 1 × 9.95328 RXAUI 2 × 6.25
1 GbE 1 × 1.25 1 GbE 1 × 1.25
DIN
T T T
CKIN
C –1 C0 C +1
VDD18TX
Slew
Control
Summing
Junction
decode
50 Ω 50 Ω
KR_SLEW[3:0]
TXOUTP
TXOUTN
The final output stage has 50 Ω back-termination with inductor peaking. The output slew rate is
controlled by adjusting the effectiveness of the inductors.
The test pattern for the transmitter output waveform is the square wave test pattern with at least eight
consecutive 1s. The following illustration shows the transmitter output waveform test, based on voltages
V1 through V6, ∆V2, and ∆V5.
Figure 7 • KR Test Pattern
V1
V3
V2
∆|V2
0V
∆|V5
V5
V6
V4
t1 t1 + T t1 + 2T t2 - 2T t2 - T t2 t2 + 2T t2 + 2T t3 - 2T t3 - T t3
The output waveform is manipulated through the state of the coefficient C(-1), C(0), and C(+1).
3.3.1 Operation
WAN mode is enabled by asserting 2x0007.0 (SPI/MDIO/TWS) or wis_ctrl2.wan_mode. Status register
bit 1xA101.3 (SPI/MDIO/TWS) or Vendor_Specific_PMA_Status_2.WAN_ENABLED_status indicates
whether WAN mode is enabled or not. The Rx and Tx paths both have WAN mode enabled or disabled.
It is not possible to have WAN mode in the Tx path enabled while the Rx path is disabled, or vice versa.
The transmit portion of the WIS does the following:
• Maps data from the PCS through the WIS service interface and to the SONET/SDH synchronous
payload envelope (SPE)
• Generates path, line, and section overhead octets
• Scrambles the frame
• Transmits the frame to the PMA service interface
The receive portion of the WIS does the following:
• Receives data from the PMA service interface
• Delineates octet and frame boundaries
• Descrambles the frame
• Processes section, line, and path overhead information that contain alarms and parity errors
• Interprets the pointer field
• Extracts the payload for transmittal to the PCS through the WIS service interface
The following illustration shows the WIS block diagram.
TR A N S M IT P A Y LO A D T R A N S M IT R E C E IV E R EC EIV E P A Y LO A D
MAP PIN G PR OC ESS PR O C ESS M A P P IN G
R E M O V E L IN E
PRO CESS
G EN ER A T E LIN E P RO CESS LIN E O VERHEAD
LIN E
O VERHEAD O VERHEAD
D EFECT S
IN S E R T L IN E
O VERHEAD
C O M P U T E B2 (B I P-N ) C H E C K B 2 (B I P- N )
REM O VE
G EN ER A T E S ECT IO N P R O CES S S EC TIO N S E C T IO N
O VERHEAD O VERHEAD O VERHEAD
IN S E R T
S E C T IO N
O VERHEAD
X7 + X6 + 1 X7 + X6 + 1
SCRAMBLER DESCRAMBLER
C O M P U T E B1 (B I P-8 ) C H E C K B 1 (B I P - 8 )
Section
Overhead
Pointer
Path Overhead
Payload
Fixed Stuffing
9.58464 Gb/s
Line
Overhead
63
16, 640 Octets
Octets
The following illustration shows the positions of the section and line overhead octets within the WIS
frame.
J0 Z0
A1 A1 A1 A1 A1 A1 A2 A2 A2 A2 A2 A2 (C1)
(C1)
B1 E1 F1
D1 D2 D3
H1 H1 H1 H1 H1 H1 H2 H2 H2 H2 H2 H2 H3 H3 H3 H3 H3 H3
9
Octets B2 B2 B2 B2 B2 B2 K1 K2
D4 D5 D6
D7 D8 D9
D11 D12
D10
S1 Z2 E2
J1
B3
C2
G1
N in e
O c te ts F2
H4
Z 3 /F 3
Z4 /K 3
N1
HUNT
sync_start FALSE
in_HUNT TRUE
found_Hunt = FALSE
found_Hunt = TRUE
A1_ALIGN
in_HUNT FALSE
found_Presync = FALSE
found_Presync = TRUE
PRESYNC
sync_start TRUE
bad_sync_cnt = 1
bad_sync_cnt = m
SYNC
sync_start FALSE
bad_sync_cnt = n
The following table lists the variables for the primary state diagram. The variables are reflected in
registers EWIS_RX_FRM_CTRL1 and EWIS_RX_FRM_CTRL2 that can be alternately reconfigured.
WAIT
good_sync_cnt 0
bad_sync_cnt 0
octet_cnt 0
sync_start = TRUE
DELAY_1
in_HUNT = TRUE
FOUND MISSED
bad_sync_cnt 0 good_sync_cnt 0
good_sync_cnt ++ bad_sync_cnt ++
octet_cnt 0 octet_cnt 0
UCT UCT
DELAY_2
in_HUNT = TRUE
In the receive path, it is possible to force a AIS-L state (alarm assertion plus forcing the payload to an all
ones state) upon a detection of an LOF condition. This is accomplished by asserting
EWIS_RXTX_CTRL.RXAISL_ON_LOF.
3.3.2.8 Scrambling/Descrambling
The transmit signal (except for row 1 of the section overhead) is scrambled according to the standards
when register bit EWIS_TXCTRL2.SCR is asserted, which is the default state. When deasserted, the
scrambler is disabled.
The receive signal descrambler is enabled by default. The descrambler can be bypassed by deasserting
register bit EWIS_RX_CTRL1.DSCR_ENA.
Enabling loopback H4 and turning off the WIS scrambler and descrambler may yield an interesting data
point when debugging board setups. The CRU in the ingress PMA path would not have enough edge
transitions in the data to reliably recover the clock if the chip were receiving non-scrambled data. The
same would be true for any far-end device connected to the egress PMA if the scrambler were turned off.
The WIS scrambler and descrambler should be left on under normal operating conditions.
IEEE 802.3ae
Overhead Octet Function WIS Usage Recommended Value WIS Extension
H1-H2 Pointer Specified value SONET mode: Registers
STS-1: 0x62, 0x0A EWIS_TX_C2_H1.TX_H1 and
STS-n: 0x93, 0xFF SDH EWIS_TX_H2_H3.TX_H2 TOSI
mode: and ROSI access.
STS-1: 0x6A, 0x0A
STS-n: 0x9B, 0xFF
H3 Pointer action Specified value 0x00 Register
EWIS_TX_H2_H3.TX_H3 TOSI
and ROSI access.
IEEE 802.3ae
Overhead Octet Function WIS Usage Recommended Value WIS Extension
B2 Line error Supported BIP-8, as specified in Using the TOSI, the B2 bytes
monitoring (line T1.416 can be masked for test
BIP-1536) purposes. For each B2 mask bit
that is cleared to 0 on the TOSI
interface, the transmitted bit is
left unchanged. For each B2
mask bit that is set to 1 on the
TOSI interface, the transmitted
bit is inverted.
Using the ROSI, the B2 error
locations can be extracted.
Periodically latched counter
(EWIS_B1_ERR_CNT1-
EWIS_B1_ERR_CNT0) is
available.
K1, K2 Automatic Specified value For more information Register Registers
protection switch about K2 coding, see EWIS_TX_G1_K1.TX_K1 and
(APS) channel Table 5, page 21 EWIS_TX_K2_F2.TX_K2 TOSI
and line remote and ROSI access.
defect identifier
(RDI-L)
D4-D12 Line data Unsupported 0x00 Registers EWIS_TX_D4_D5
communications and EWIS_TX_D6_H4 TOSI
channel (DCC) and ROSI access.
S1 Synchronization Unsupported 0x0F Register
messaging EWIS_TX_S1_Z1.TX_S1 TOSI
and ROSI access.
Z1 Reserved for Unsupported 0x00 Register
Line growth EWIS_TX_S1_Z1.TX_Z1 TOSI
and ROSI access.
M0/M1 STS-1/N line M0 unsupported, 0x00/number of TOSI and ROSI access. The
remote error M1 supported detected B2 errors in the VSC8491-17 device supports a
indication (REI) receive path, as mode that uses only M1 to back
specified in T1.416 report REI-L
(EWIS_MODE_CTR.REI_MOD
E = 0) and another mode which
uses both M0 and M1 to back
report REI-L
(EWIS_MODE_CTR.REI_MOD
E = 1). For more information,
see Line Error Monitoring (B2),
page 20.
E2 Orderwire Unsupported 0x00 Register
EWIS_TX_Z2_E2.TX_E2 TOSI
and ROSI access.
Z2 Reserved for Unsupported 0x00 Register
Line growth EWIS_TX_Z2_E2.TX_Z2 TOSI
and ROSI access.
3.3.3.2 APS Channel and Line Remote Defect Identifier (K1, K2)
The K1 and K2 octets carry information regarding automatic protection switching (APS) and line remote
defect identifier (RDI-L). The K1 octet and the most significant five bits of the K2 octet contain the APS
channel information. The transmitted values can be configured at EWIS_TX_G1_K1.TX_K1 and
EWIS_TX_K2_F2.TX_K2. The default values of all zeros are compliant with the WIS standard.
The three least significant bits within the K2 octet carry the RDI-L encoding, as defined by section 7.4.1
of ANSI T1.416-1999 and as shown in the following table.
Table 5 • K2 Encodings
Although the transmission of RDI-L is not explicitly defined within the WIS standard, the VSC8491-17
device allows the automatic transmission of RDI-L upon the detection of LOPC, LOS, LOF, or AIS-L
conditions. These features are enabled by asserting TXRDIL_ON_LOPC, TXRDIL_ON_LOS,
TXRDIL_ON_LOF and TXRDIL_ON_AISL in register EWIS_RXTX_CTRL.
Note: The RDI-L code of 110 is transmitted by the DUT only when Rx AIS-L is asserted. For example, if AIS-L
is detected by the DUT for five continuous frames in the Rx direction, then the RDI-L code is transmitted
for five frames in the Tx direction (not 20 frames as stated in the ANSI T1.105 specification).
The VSC8491-17 device can force a RDI-L condition independent of the K2 transmit value by asserting
EWIS_TXCTRL2.FRC_TX_RDI. Likewise, a AIS-L condition can be forced by asserting
EWIS_TXCTRL2.FRC_TX_AISL. If both conditions are forced, the AIS-L value is transmitted.
In the receive direction, the RDI-L alarm (K2[6:8] = 110, using SONET nomenclature) and the AIS-L
alarm (K2[6:8] = 111, using SONET nomenclature) are not asserted until the condition persists for a
programmable number of contiguous frames. This value is programmable at
EWIS_RX_ERR_FRC1.APS_THRES and is typically set to values of 5 or 10. The AIS-L is detected by
the receiver after the programmable number of frames is received, and results in the reporting of AIS-P.
The WIS standard defines WIS_STAT3.RDIL and WIS_STAT3.AISL as a read-only latch-high register, so
a read of a one in this register indicates that an error condition occurred since the last read. A second
read of the register provides the current status of the event as to whether the alarm is currently asserted.
EWIS_INTR_PEND1.RDIL_PEND and EWIS_INTR_PEND1.AISL_PEND assert whenever the RDI-L or
AIS-L state changes (assert or deassert). These interrupts have associated mask enable bits
(EWIS_INTR_MASKA_1.RDIL_MASKA, EWIS_INTR_MASKB_1.RDIL_MASKB,
EWIS_INTR_MASKA_1.AISL_MASKA and EWIS_INTR_MASKB_1.AISL_MASKB), which, if enabled,
propagate an interrupt to the WIS_INTA/B pins.
For test purposes, the VSC8491-17 device can induce a RDI-L condition in the receive direction
independent of the received K2 value by asserting EWIS_RX_ERR_FRC1.FRC_RX_RDIL. Likewise, a
AIS-L condition can be forced in the receive direction by asserting
EWIS_RX_ERR_FRC1.FRC_RX_AISL.
SONET SDH
SS bits are ignored by the device pointer SS bits are set to 10 and are checked by the device pointer
interpreter and not used interpreter to determine the pointer type
All 192 bytes of H1 and H2 are checked by the The first 64 bytes are checked by the pointer interpreter to
pointer interpreter to determine the pointer type determine the pointer type (first Au-4 of an AU-4-64c)
Uses ‘8 out of 10’ GR-253-core objective Uses majority detect increment/decrement rule
increment/decrement rule
The H1 and H2 octets combine to form a word with several fields, as shown in Figure 14, page 24.
N N N N S S I D I D I D I D I D
AIS concatenation indication Pointer value, nnnn value, and SS bits are the same as the AIS pointer
Invalid concatenation indication Any other concatenation indication other than normal CI or AIS CI
a, b, e
NORM
b a, b
d c
LOP AIS
The conditions for transitions between these states are summarized in the following table
3.3.5.3 STS Path Signal Label and Path Label Mismatch (C2)
The C2 octet contains a value intended to describe the type of payload carried within the SONET/SDH
frame. The WIS standard calls for a 0x1A to be transmitted. This is the default value of
EWIS_TX_C2_H1.TX_C2.
As specified in T1.416, a path label mismatch (PLM-P), register WIS_STAT3.PLMP, event occurs when
the C2 octet in five consecutive frames contain a value other than the expected one. The expected value
is set in EWIS_MODE_CTRL.C2_EXP, whose default value 0x1A is compliant with the WIS standard.
When a value of 0x00 is accepted (received for five or more consecutive frames) the unequipped path
pending (EWIS_INTR_PEND2.UNEQP_PEND) event is asserted until read. A non-latch high version of
this event (EWIS_INTR_STAT2.UNEQP_STAT) is also available. This event can propagate an interrupt
to either WIS_INTA or WIS_INTB, based on the mask enable bits
EWIS_INTR_MASKA_2.UNEQP_MASKA and EWIS_INTR_MASKB_2.UNEQP_MASKB.
If the accepted value is not an unequipped label (0x00) and it differs from the programmed expected
value, EWIS_MODE_CTRL.C2_EXP, then a path label mismatch (WIS_STAT3.PLMP) is asserted.
Similarly the EWIS_INTR_PEND1.PLMP_PEND event is asserted until read. This event can propagate
an interrupt to either WIS_INTA or WIS_INTB, based on the mask enable bits
EWIS_INTR_MASKA_1.PLMP_MASKA and EWIS_INTR_MASKB_1.PLMP_MASKB.
Although PLMP is not a path level defect, it does cause a change in the setting of one of the ERDI-P
codes. For more information, see Table 13, page 29.
The following tables show the different structures for this octet.
Enhanced RDI is defined for SONET-based systems as listed in GR-253-CORE (Issue 3), reproduced
here in the following table, and as a possible enhancement of SDH-based systems (G.707/Y.1322
(10/2000) Appendix VII (not an integral part of that recommendation)).
Priority of
G1 Bits 5, 6, and 7 ERDI-P Codes Trigger Interpretation
000/011 Not applicable No defects. No RDI-P defect
100/111 Not applicable Path alarm indication signal (AIS-P). The One-bit RDI-P
remote device sends all ones for H1, H2, H3, defect
and the entire STS SPE.
Path loss of pointer (LOP-P).
001 4 No defects. No ERDI-P defect
010 3 Path label mismatch (PLM-P). Path loss of code ERDI-P payload
group delineation (LCD-P). defect
101 1 Path alarm indication signal (AIS-P). The ERDI-P server
remote device sends all ones for H1, H2, H3 defect
and entire STS SPE.
Path loss of pointer (LOP-P).
110 2 Path unequipped (UNEQ-P). The received C2 ERDI-P
byte is 0x00. connectivity
Path trace identifier mismatch (TIM-P). This defect
error is not automatically generated, but can be
forced using MDIO.
The 010 code triggers the latch high register bit WIS_STAT3.FEPLMP_LCDP. It also asserts
EWIS_INTR_PEND1.FEPLMP_LCDP_PEND until read. This event may propagate an interrupt to either
WIS_INTA or WIS_INTB, based on the mask enable bits
EWIS_INTR_MASKA_1.FEPLMP_LCDP_MASKA and
EWIS_INTR_MASKB_1.FEPLMP_LCDP_MASKB, respectively.
The 101 code triggers the latch high register bit WIS_STAT3.FEAISP_LOPP. It also asserts
EWIS_INTR_PEND1.FEAISP_LOPP_PEND until read. This event may propagate an interrupt to either
WIS_INTA or WIS_INTB, based on the mask enable bits
EWIS_INTR_MASKA_1.FEAISP_LOPP_MASKA and EWIS_INTR_MASKB_1.FEAISP_LOPP_MASKB,
respectively.
The 110 code asserts the EWIS_INTR_PEND2.FEUNEQP_PEND until read. A non-latch-high version of
this register (EWIS_INTR_STAT2.FEUNEQP_STAT) is also available. This event may propagate an
interrupt to either WIS_INTA or WIS_INTB, based on the mask enable bits
EWIS_INTR_MASKA_2.FERDIP_MASKA and EWIS_INTR_MASKB_2.FERDIP_MASKB, respectively.
It may be difficult to get a clear picture of the timeframes in which errors were received because the IEEE
802.3ae counters are independently latched. The PMTICK counters are all latched together, thereby
providing a complete snapshot in time. When PMTICK is asserted, the internal error counter values are
copied into their associated registers and the internal counters are reset.
There are three methods of asserting PMTICK.
• The station manager may asynchronously assert EWIS_PMTICK_CTRL.PMTICK_FRC to latch the
values at a given time, regardless of the EWIS_PMTICK_CTRL.PMTICK_ENA setting.
• The VSC8491-17 device may be configured to latch and clear the statistical counters at a periodic
interval as determined by the timer (count) value in EWIS_PMTICK_CTRL.PMTICK_DUR. In this
mode, the EWIS_PMTICK_CTRL.PMTICK_SRC must be configured for internal mode and the
EWIS_PMTICK_CTRL.PMTICK_ENA bit must be asserted. The receive path clock is used to drive
the PMTICK counter, thus the periodicity of the timer can vary during times of loss of lock and loss of
frame.
• The VSC8491-17 device may be configured to latch and clear the statistical counters at the
occurrence of a rising edge detected at a GPIO pin configured as a PMTICK input pin. In this mode,
the EWIS_PMTICK_CTRL.PMTICK_SRC bit must be deasserted, and the
EWIS_PMTICK_CTRL.PMTICK_ENA must be asserted. Corresponding GPIO must be configured
as the PMTICK input pin.
Regardless of EWIS_PMTICK_CTRL.PMTICK_SRC, when the PMTICK event occurs, the
EWIS_INTR_PEND2.PMTICK_PEND is asserted until read. This event may propagate an interrupt to
either WIS_INTA or WIS_INTB, based on the mask enable bits
EWIS_INTR_MASKA_2.PMTICK_MASKA and EWIS_INTR_MASKB_2.PMTICK_MASKB, respectively.
Given the size of the error counters and the maximum allowable error counts per frame, care must be
taken in the frequency of polling the registers to ensure accurate values. All PMTICK counters saturate at
their maximum values.
Maximum Maximum
Increase Increase
Count Per Count Per Time Until
Counter Name Description Registers Frame Second Overflow
B1_ERR_CNT B1 section error count EWIS_B1_ERR_CNT1 8 64,000 67,109
EWIS_B1_ERR_CNT0
B2_ERR_CNT B2 line error count EWIS_B2_ERR_CNT1 1536 12,288,000 350
EWIS_B2_ERR_CNT0
B3_ERR_CNT B3 path error count EWIS_B3_ERR_CNT1 8 64,000 67,109
EWIS_B3_ERR_CNT0
EWIS_REIP_CNT Far-end B3 path error count EWIS_REIP_CNT1 8 64,000 67,109
EWIS_REIP_CNT0
EWIS_REIL_CNT Far-end B2 line error count EWIS_REIL_CNT1 1536 12,288,000 350
EWIS_REIL_CNT0
Both individual and block mode accumulation of B1, B2, and B3 error indications are supported and
selectable using the control bits EWIS_CNT_CFG.B1_BLK_MODE, EWIS_CNT_CFG.B2_BLK_MODE,
and EWIS_CNT_CFG.B3_BLK_MODE. In individual accumulation mode 0, the counter is incremented
for each bit mismatch between the calculated B1, B2, and/or B3 error and the extracted B1, B2, and/or
B3. In block accumulation mode 1, the counter is incremented only once for any nonzero number of bit
mismatches between the calculated B1, B2, and/or B3 and the extracted B1, B2, and/or B3 (maximum of
one error per frame).
Defect or
Anomaly Description Type Force Bit Status Bit
Far-end PLM-P These two errors are indistinguishable when Far-end defect EWIS_RX_ER WIS_STAT3.
or LCD-P reported by the far-end through the G1 octet R_FRC2.FRC_ FEPLMP_LC
(ERDI-P), because the far-end reports both RX_FE_PLMP DP
PLM-P and LCD-P with the same error code.
Far-end AIS-P These two errors are indistinguishable when Far-end defect EWIS_RX_ER WIS_STAT3.
or LOP-P reported by the far-end through the G1 octet R_FRC2.FRC_ FEAISP_LOP
(ERDI-P), because the far-end reports both RX_FE_AISP P
AIS-P and LOP-P with the same error code.
PLM-P Path label mismatch. The detection and Near-end EWIS_RX_ER WIS_STAT3.
reporting of the PLM-P defect follows section defect; R_FRC2.FRC_ PLMP
7.5 of ANSI T1.416-1999. propagated to RX_PLMP
PCS
AIS-L Generated on LOPC, LOS, LOF, if enabled by Near-end defect The AIS-L EWIS_RX_E
EWIS_RXTX_CTRL.RXAISL_ON_LOPC, defect is only RR_FRC1.F
EWIS_RXTX_CTRL.RXAISL_ON_LOS, processed and RC_RX_AISL
EWIS_RXTX_CTRL.RXAISL_ON_LOF, or reported by the /WIS_STAT3.
when forced by user. WIS Receive AISL
process; it is
never
transmitted by
the WIS
Transmit
process,
according to
IEEE 802.3ae.
AIS-P Path alarm indication signal. Near-end EWIS_RX_ER WIS_STAT3.
defect; R_FRC1.FRC_ AISP
propagated to RX_AISP
PCS
LOP-P Path loss of pointer. Nine consecutive invalid Near-end EWIS_RX_ER WIS_STAT3.
pointers result in loss of pointer detection. See defect; R_FRC1.FRC_ LOPP
Figure 15, page 25 for the pointer interpreter propagated to RX_LOP
state machine. PCS
LCD-P Path loss of code group delineation. See Near-end defect EWIS_RX_ER WIS_STAT3.
Table 13, page 29. This is also reported to the R_FRC2.FRC_ LCDP
far-end if it persists for at least 3 ms. LCDP
LOPC Loss of optical carrier alarm. This is an input Near-end defect EWIS_RX_ER EWIS_INTR_
from the XFP module’s loss of signal output. R_FRC1.FRC_ STAT2.LOPC
The polarity can be inverted for use with other LOPC _STAT
module types. This defect can be used
independently or in place of LOS.
Defect or
Anomaly Description Type Force Bit Status Bit
LOS The PMA circuitry detects a loss of signal (LOS) Near-end defect EWIS_RX_ER WIS_STAT3.
defect if the input signal falls below the assert R_FRC1.FRC_ LOS
threshold. When a PMA LOS is declared the LOS
framer is held in reset to prevent it from looking
for a frame boundary.
SEF Severely errored frame. Generated when Near-end EWIS_RX_ER WIS_STAT3.
device cannot frame to A1 A2 pattern. SEF defect; R_FRC2.FRC_ SEF
indicates synchronization process is not in the propagated to RX_SEF
SYNC state, as defined by the state diagram of PCS
IEEE 802.3ae clause 50.4.2.
LOF Generated when SEF persists for 3 ms. Near-end defect EWIS_RX_ER WIS_STAT3.
Terminated when no SEF occurs for 1 ms to R_FRC2.FRC_ LOF
3 ms. RX_LOF
B1 PMTICK BIP-N(S) - 32-bit near-end section BIP error Near-end EWIS_RX_ER EWIS_INTR_
error count is counter is nonzero. anomaly R_FRC2.FRC_ STAT2.B1_N
nonzero RX_B1 Z_STAT
B2 PMTICK BIP-N(L) - 32-bit near-end line BIP error Near-end EWIS_RX_ER EWIS_INTR_
error count is counter is nonzero. anomaly R_FRC2.FRC_ STAT2.B2_N
nonzero RX_B2 Z_STAT
B3 PMTICK BIP-N(P) - 32-bit near-end path BIP error Near-end EWIS_RX_ER EWIS_INTR_
error count is counter is nonzero. anomaly R_FRC2.FRC_ STAT2.B3_N
nonzero RX_B3 Z_STAT
REI-L Line remote error indicator octet is nonzero. Far-end EWIS_RX_ER EWIS_INTR_
Far-end BIP-N(L). anomaly R_FRC2.FRC_ STAT2.REIL_
RX_REIL STAT
REI-L PMTICK Line remote error indicator is nonzero. Far-end Far-end EWIS_RX_ER EWIS_INTR_
error count is BIP-N(L). anomaly R_FRC2.FRC_ STAT2.REIL_
nonzero REIL NZ_STAT
RDI-L Line remote defect indicator. Far-end defect EWIS_RX_ER WIS_STAT3.
R_FRC1.FRC_ RDIL
RX_RDIL
REI-P Path remote error indicator octet is nonzero. Far-end EWIS_RX_ER EWIS_INTR_
Far-end BIP-N(P). anomaly R_FRC2.FRC_ STAT2.REIP_
RX_REIP STAT
REI-P PMTICK Path remote error indicator. Far-end BIP-N(P). Far-end EWIS_RX_ER EWIS_INTR_
error count is anomaly R_FRC2.FRC_ STAT2.REIP_
nonzero REIP NZ_STAT
UNEQ-P Unequipped path. Near-end defect EWIS_RX_ER EWIS_INTR_
R_FRC2.FRC_ STAT2.UNEQ
RX_UNEQP P_STAT
Far-end Far-end unequipped path. Far-end defect EWIS_RX_ER EWIS_INTR_
UNEQ-P R_FRC2.FRC_ STAT2.FEUN
RX_FE_UNEQ EQP_STAT
P
are generated when the PMTICK counters become nonzero. Mask enable bits propagate the interrupt
pending event to GPIO pins configured as WIS_INTA and WIS_INTB. Each event may be optionally
masked for each WIS_INTA/B pin.
The WIS_INTA and WIS_INTB signals are routed off-chip through GPIO pins. Many specialized
functions share the GPIO pins. The WIS_INTA and WIS_INTB signals do not go to dedicated pins.
For each defect or anomaly defined in IEEE 802.3ae, the VSC8491-17 device supports the standard WIS
register. In addition, the VSC8491-17 device supports another set of registers in the WIS Vendor Specific
area. These registers provide a STATUS bit to indicate the current real-time status of the event, a
PENDING bit to indicate if the STATUS bit has changed state, and two mask enable bits for each
interrupt pin (WIS_INTA and WIS_INTB). The STATUS bit is set if and only if the interrupt currently
exists. This STATUS bit does not latch.
The defects and anomalies are constructed in a hierarchy such that lower order alarms are squelched
when higher order events are detected. For more information about the dependencies between
squelches and events, see the WIS interrupt registers.
TCLKOUT
TFPOUT
Padding A1 A1 A1 A1
TDAIN
Dummy Bits EIB Bit 1 Bit 2 Bit 3
Some 9-bit words are error masks, such that the transmitted 9-bit word is the XOR of the TOSI 9-bit word
and the pre-defined value within the chip if the EIB is enabled. This feature is best used for test purposes
only.
The order of the 9-bit word required by the TOSI port is summarized in the following table, where the
number of registers is the number of bytes on the serial interface and the number of bytes is the number
of STS channels on which the byte is transmitted. For H1 and H2 pointers, bytes 2 to 192 are
concatenation indication bytes consistent with STS-192c frames. There are not 192 different point
locations as in STS-192 frames.
TOSI/
ROSI
9-Bit Byte Number of Number
Byte Name Word Order Registers of Bytes Type
Frame boundary A1 0 1 192 Programmable byte that is
identical for all locations
Frame boundary A2 1 1 192 Programmable byte that is
identical for all locations
Section trace J0 2 1 1 Programmable byte
Section growth Z0 3 1 191 Programmable byte that is
identical for all locations
Dummy byte 4 1 1 Programmable byte
Section BIP-8 B1 5 1 1 TOSI inserts error mask; ROSI
extracts XOR of B1 value and
received data
Orderwire E1 6 1 1 Programmable byte
Section user channel F1 7 1 1 Programmable byte
Dummy byte 8 1 1 Programmable bytes
Section DCC 1 D1 9 1 1 Programmable byte
Section DCC 2 D2 10 1 1 Programmable byte
Section DCC 3 D3 11 1 1 Programmable byte
Dummy byte 12 1 1 Programmable byte
Pointer 1 H1 13 1 1 Programmable byte affecting the
first H1 byte
TOSI/
ROSI
9-Bit Byte Number of Number
Byte Name Word Order Registers of Bytes Type
Pointer 2 H2 14 1 1 Programmable byte affecting the
first H2 byte
Pointer action H3 15 1 192 Programmable byte that is
identical for all locations
Dummy byte 16 1 1 Programmable byte
Line BIP-8 B2 17 to 208 192 192 TOSI inserts error mask for each
byte; ROSI extracts XOR of B2
value and received data for each
byte
Automatic protection K1 209 1 1 Programmable byte
switching (APS)
channel and remote
defect indicator (RDI)
Automatic protection K2 210 1 1 Programmable byte
switching (APS)
channel and remote
defect indicator (RDI)
Dummy byte 211 1 1 Programmable byte
Line DCC 4 D4 212 1 1 Programmable byte
Line DCC 5 D5 213 1 1 Programmable byte
Line DCC 6 D6 214 1 1 Programmable byte
Dummy byte 215 1 1 Programmable byte
Line DCC 7 D7 216 1 1 Programmable byte
Line DCC 8 D8 217 1 1 Programmable byte
Line DCC 9 D9 218 1 1 Programmable byte
Dummy byte 219 1 1 Programmable byte
Line DCC 10 D10 220 1 1 Programmable byte
Line DCC 11 D11 221 1 1 Programmable byte
Line DCC 12 D12 222 1 1 Programmable byte
Dummy byte 223 1 1 Programmable byte
Synchronization S1 224 1 1 Programmable byte
message
Growth 1 Z1 225 1 191 Programmable byte that is
identical for all locations
Growth 2 Z2 226 1 190/191 Programmable byte that is
identical for all locations;
dependent upon 2xEC40.12
STS-1 REI-L M0 227 1 1 Programmable byte
STS-N REI-L M1 228 1 1 Programmable byte
Orderwire 2 E2 229 1 1 Programmable byte
Dummy byte 230 1 1 Programmable byte
TOSI/
ROSI
9-Bit Byte Number of Number
Byte Name Word Order Registers of Bytes Type
Padding dummy bytes 231 to 39 No function
269
RCLKOUT
RFPOUT
Padding ‘0’ A1 A1 A1
RDAOUT Dummy Bits Stuff Bit 1 Bit 2 Bit 3
LAN 64b/66b
Buffer 64 Encoder and 66 66 66:64 Gear Box 64
Scrambler
MAC/1588/XGXS
WIS/PMA
Rx PCS and EPCS
LAN 64b/66b
Buffer 64 Decoder and 66 66:64 Gear Box 64
Descrambler
1. The codes for /A/, /K/ and /R/ are used on the XAUI interface to signal idle.
2. For information only. The 8b/10b code is specified in Clause 36. Usage of the 8b/10b code for 10 Gbps operation
is specified in Clause 4.
3. Reserved for INCITS T11 - 10 GFC µs.
PCS_HIGHBER (3x0021.14) bit is asserted. This bit is a latch-high bit, and therefore a second read of
the bit returns the current status.
Once block synchronization is achieved, the occurrence of errored blocks are accumulated in the
PCS_ERRORED_BLOCKS (3x0021.7:0) counter. An errored block is one that has one or more of the
following defects:
• The sync field has a value of 00 or 11.
• The block type field contains a reserved value (for more information, see Table 17, page 38).
• Any control character contains an incorrect value.
• Any O code contains an incorrect value.
• The set of eight XGMII characters does not have a corresponding block format shown in the
following illustration.
Figure 19 • 64B/66B Block Formats
Input Data Sync Block Payload
Bit Position : 0 1 2 65
D0 D1 D2 D3/D4 D5 D6 D7 01 D0 D1 D2 D3 D4 D5 D6 D7
Block
Type
Control Block Formats:
Field
C0 C1 C2 C3/C4 C5 C6 C7 10 0x1e C0 C1 C2 C3 C4 C5 C6 C7
C0 C1 C2 C3/O4 D5 D6 D7 0x2d C0 C1 C2
10 C3 O4 D5 D6 D7
C0 C1 C2 C3/S4 D5 D6 D7 10 0x33 C0 C1 C2 C3 D5 D6 D7
O0 D1 D2 D3/D4 D5 D6 D7 0x66 D2
10 D1 D3 O0 D5 D6 D7
O0 D1 D2 D3/O4 D5 D6 D7 0x55
10 D1 D2 O4 D6 D7
D3 O0 D5
S0 D1 D2 D3/D4 D5 D6 D7 0x78 D2
10 D1 D3 D4 D5 D6 D7
O0 D1 D2 D3/C4 C5 C6 C7 0x4b
10 D1 D2 D3 O0 C4 C5 C6 C7
T0 C1 C2 C3/C4 C5 C6 C7 0x87
10 C1 C2 C3 C5 C6 C7
C4
0x99
D0 T1 C2 C3/C4 C5 C6 C7 10 D0 C2 C3 C4 C5 C6 C7
D0 D1 T2 C3/C4 C5 C6 C7 10 0xaa C3
D0 D1 C4 C5 C6 C7
D0 D1 D2 T3/C4 C5 C6 C7 10 0xb4
D0 D1 D2 C4 C5 C6 C7
D0 D1 D2 D3/T4 C5 C6 C7 10 0xcc
D0 D1 D2 D3 C5 C6 C7
D0 D1 D2 D3/D4 T5 C6 C7 10 0xd2
D0 D1 D2 D3 D4 C6 C7
D0 D1 D2 D3/D4 D5 T6 C7 0xe1
10 D0 D1 D2 D5 C7
D3 D4
D0 D1 D2 D3/D4 D5 D6 T7 10 0xff
D0 D1 D2 D3 D4 D5 D6
Valid blocks recover their original payload data by being descrambled. The descrambler is the same
polynomial used by the transmitter. For test purposes, the descrambler may be disabled by asserting
DSCR_DIS (3x8005.10). The data is checked for valid characters and sequencing.
The data is passed from the PMA/WIS clock domain to the XAUI clock domain through a FIFO. Based
upon the FIFO’s fill level, idle characters are added or removed as needed.
pattern is a revolving series of four blocks with each block 128-bits in length. The four blocks are the
resultant bit sequence produced by the PCS scrambler when pre-loaded with the following seeds:
• PCS_SEEDA_0, PCS_SEEDA_1, PCS_SEEDA_2, PCS_SEEDA_3
• PCS_SEEDA invert
• PCS_SEEDB_0, PCS_SEEDB_1, PCS_SEEDB_2, PCS_SEEDB_3
• PCS_SEEDB invert
The pattern generator is enabled by asserting PCS_TSTPAT_GEN while the analyzer is enabled by
asserting PCS_TSTPAT_ANA. Errors are accumulated in the clear-on-read saturating counter,
PCS_ERR_CNT. In pseudo-random pattern mode, the error counter counts the number of errored
blocks.
Support for the optional PRBS31 pattern is indicated by PRBS31_pattern_testing_ability register whose
default is high. The PRBS31 test generator is selected by asserting PCS_PRBS31_GEN, while the
checker is enabled by asserting PCS_PRBS31_ENA. IEEE standards specify that the error counter
should increment for each linear feedback shift register (LFSR) tap that a bit is in error. Therefore, a
single bit error increments the counter by three because there are three taps in the PRBS31 polynomial.
The user-defined 64-bit static pattern can be written to PCS_USRPAT registers and enabled by asserting
PCS_USRPAT_ENA and PCS_TSTPAT_GEN. Enabling the user-defined pattern enables both the
generator and analyzer.
PHY 0 PHY 1
MA C 0 MAC 1
registers
P roc0 P ro c1 config
LTC0 LTC1
Egress Ingress
P ro cessor 0 P rocessor 0
deco nstructo r co nstructor a na lyzer
Time sta mp
Engine0
tsp dela y
rew riter Engine1
fifo
Engine 2
The following sections list some of the major IEEE 1588 applications.
is used to load the time in the PHYs and to ensure that all the PHYs are in sync. The local time counter
may come from any one of the following sources:
• Data path clock (varies according to mode)
• 250 MHz from host-side PLL
• External clock (125 MHz or 250 MHz) from CLK1588P/N pins
The local time counters contain two counters: nanosecond_counter and second_counter. The 1 PPS
(pulse per second signal) output pin can be used for skew monitoring and adjustment. The following
illustration shows an overview of a typical system using IEEE 1588 PHYs. The LOAD/SAVE and 1 PPS
pins are signals routed to the GPIO pins. The following illustration shows how the PHY is embedded in a
system.
Figure 21 • IEEE 1588 Block Diagram
Ethernet Line Card System Card Ethernet Line Card
System 1588
Linecard Control Control Linecard Control
Processor Processor Processor
1 PPS Sync
The system card has to drive the REFCLK (125 MHz or 250 MHz timetick clock) to all the PHYs,
including the VSC8491-17 device. The system clock may need local frequency conversion to match the
required reference clock frequency. The system clock may be locked to a PRC by SyncE or by
IEEE 1588. If locked by IEEE 1588, the central CPU recovers the PTP timing and adjusts the frequency
of the system clock to match the PTP frequency. If the system clock is free running, the central CPU must
calculate the frequency offset between the system clock and the synchronized IEEE 1588 clock, and
program the PHYs to make internal adjustments.
The system card also provides a sync pulse to all PHYs, including the VSC8491-17 device, to the
LOAD/SAVE pin. This signal is used to load the time to the PHYs and to ensure that all the PHYs are in
sync. This may just be a centrally divided down system clock that gives a pulse at fixed time intervals.
The delay from the source of the signal to each PHY must be known and taken into account when writing
in the load time in the PHYs.
The VSC8491-17 device supports a vast variety of IEEE 1588 applications. In simple one-step end-to-
end transparent clock applications, the VSC8491-17 device can be used without any central CPU
involvement (except for initial configuration). The IEEE 1588 block inside the VSC8491-17 device
forwards Sync and Delay_req frames with automatic updates to the Correction field.
In other applications, the VSC8491-17 device enhances the performance by working with a central
processor that runs the IEEE 1588 protocol. The VSC8491-17 device performs the accurate time stamp
operations needed for all the different PTP operation modes. For example, at startup in a boundary clock
application, the central CPU receives PTP sync frames that are time stamped by the ingress PHY and
recovers the local time offset from the PTP master using the PTP protocol. It then sets the save bit in the
VSC8491-17 device connected to the PTP master and later reads the saved time. The central CPU loads
the expected time (time of the next LOAD/SAVE pulse, corrected by the offset to the recovered PTP
time) into the PHY and sets the save bit. It checks that the time offset is 0. If not, it makes small
adjustments to the time in the PHY by issuing add 1 ns or subtract 1 ns commands to the VSC8491-17
device through MDIO until the time matches the PTP master. A save command is issued to the PHY
connected to the PTP master and reads the saved time. The central CPU then writes the saved time plus
the sync pulse interval plus any sync pulse latency variation (trace length difference compared to the
PHY connected to the PTP master) to the other PHYs and sets the load bit in these VSC8491-17
devices.
The preceding sequence may be completed in several steps. Not all PHYs need to be loaded at once.
The central CPU sets the save bit in all PHYs and reads back the values. They should all save the same
value.
The central CPU continuously detects if the system time drifts off compared to the recovered PTP time. If
needed, it can adjust each PHY for any known skew between PHYs without affecting the operation of the
device. It can program the PHYs, including the VSC8491-17 device, to automatically add 1 ns or subtract
1 ns at specific time intervals.
1G
Ethernet Port SerDes PHY Packet Linecard Control
MAC
Processing Processor
10G
Ethernet Line Card Packet SerDes PHY Ethernet Port
MAC
Fabric Processing
Linecard Control
Processor
MAC or
Ethernet Port Fabric
Switch
Adapter
Boundary
Clock
This solution also works for pizza boxes. To ensure that blade redundancy works, the PHYs for the
redundant blades must have the same 1588-in-the-PHY configuration.
Requirements for the rest of the system are:
• Delivery of a synchronous global timetick clock (or reference clock) to the PHYs.
• Delivery of a global timetick load, that synchronizes the local time counters in each port.
• CPU access to each PHY to set up the required configuration. For one-step support, this can be
MDC/MDIO. For two-step support, a higher speed CPU interface (such as the SPI) might be
required (depending on the number of time stamps that are required to be read by the CPU). In
blade systems, it might be required to have a local CPU on the blade that collects the information
and sends it to the central IEEE 1588 engine by means of the control plane or the data plane. In
advanced MAC/Switch devices, this might be an internal CPU.
• Fabric must be able to detect IEEE 1588 frames and redirect them to the central IEEE 1588 engine.
The same solution can also be used to add Y.1731 delay measurement support. This does not require a
local CPU on the blade, but the fabric must be able to redirect OAM frames to a local/central OAM
processor.
The following illustration shows a diagram for the boundary clock line card application.
1G 10G
Ethernet Port Packet Ethernet Port
SerDes PHY MAC Packet MAC SerDes PHY
Processing Fabric Processing
Boundary
Clock
Boundary clocks and ordinary clocks must also reply to Pdelay_req messages just as P2P TC using the
same procedure for the P2P TC. For more information, see Supporting One-Step Peer-to-Peer
Transparent Clock, page 53.
Figure 25 • One-Step E-nd-to-End Boundary Clock
PTP Sync Or Delay_req Frame
Correction Field = A
Reserved Bytes = 0
IEEE 1588
PHY
IEEE 1588
IEEE
PHY1588
PHY
3.6.6.1 Ingress
Each time the PCS/PMA detects the start of a frame, it sends a pulse to the time stamp block, which
saves the value of the Local_Time received from the Local Time counter. In the time stamp block, the
programmed value in the local_correction register is subtracted from the saved time stamp. The
local_correction register is programmed with the fixed latency from the measurement point to the place
that the start of frame is detected in the PCS/PMA logic. The time stamp block also contains a register
that can be programmed with the known link asymmetry. This value is added or subtracted from the
correction field, depending on the frame type.
When the frame leaves the PCS/PMA block, it is loaded into a small FIFO block that delays and stores
the frame data for a few clock cycles to allow for later modifications of the frame. The data is also copied
to the analyzer block that parses the incoming frame to detect whether it is a IEEE 1588 Sync or
Delay_req frame belonging to the PTP domain that the system is operating on. If so, it signals to the
ingress time stamp block in the PHY which action to perform (Write). It also delivers the write offset and
data size (location of the four reserved bytes in the PTP header, 4 bytes wide) to the rewriter block in the
PHY.
If the analyzer detects that the frame is not matched, it signals to the time stamp block and the rewriter
block to ignore the frame (NOP), which allows it to pass unmodified and flushes the saved time stamp in
the time stamp block.
If the time stamp block gets the Write action, it delivers the value of the calculated time stamp for the
frame to the rewriter block and the rewriter block adds this time stamp (ns part of it) to the four reserved
bytes in the frame and recalculates FCS.
The rewriter block takes data out of the FIFO block continuously and feeds it to the system side
PCS/PMA block using a counter to keep track of the byte positions of the frame. When the rewriter block
receives a signal from the time stamp block to rewrite a specific position in the frame (that information
comes from the analyzer block), it overwrites the position with the data from the time stamp block and
replaces the FCS of the frame. The rewriter also checks the original FCS of the frame to ensure that a
frame that is received with a bad FCS and then modified by the rewriter is also sent out with a bad FCS.
This is achieved by inverting the new FCS. If the frame is an IPv4 frame the rewriter ensures that the IP
checksum is 0. If the frame is IPv6 the rewriter keeps track of the modifications done to the frame and
modifies a couple of bytes placed at the end of the PTP frame (for this specific purpose) so that the IP
checksum stays correct.
The following full calculations are performed:
• Sync frames: Reserved_bytes = (Raw_Timestamp_ns – Local_correction) Correction
field = Original Correction field + Asymmetry
• Delay_req frames: Reserved_bytes = (Raw_Timestamp_ns – Local_correction)
3.6.6.2 Egress
When a frame is received from the system side PCS/PMA block, it is loaded into a FIFO block that delays
and stores the frame data for a few clock cycles to allow for later modifications of the frame. The data is
also copied to the analyzer block that parses the incoming frame to detect whether it is a IEEE 1588
Sync or Delay_req frame belonging to the PTP domain that the system is operating on.
If the egress analyzer of the PHY detects that the frame is a IEEE 1588 Sync frame belonging to the PTP
domain(s) of the system, it signals to the egress time stamp block which action to perform (Write). It also
delivers the write offset and data size (location of the Tx time stamp inside the frame, 10 bytes wide) to
the rewriter.
If the egress analyzer detects that the frame is a IEEE 1588 Delay_req frame belonging to the PTP
domain(s) of the system, it signals to the time stamp block which action to perform (Write, Save). It also
delivers the write offset and data size (location of the Tx time stamp inside the frame, 10 bytes wide) to
the rewriter. It also outputs up to 16 bytes of frame identifier to the Tx time stamp FIFO, to be saved along
with the Tx time stamp. The frame identifier bytes are selected information from the frame, configured in
the analyzer.
If the time stamp block gets the (Write, Save) action it delivers the calculated time stamp and signals to
the time stamp FIFO block that it must save the time stamp along with the frame identifier data it received
from the analyzer block.
The Tx time stamp FIFO block contains a buffer memory. It simply stores the Tx time stamp values that it
receives from the time stamp block together with the frame identifier data it receives from the
analyzerblock, and has a CPU interface that allows the IEEE 1588 engine to read out the time stamp
sets (Frame identifier + New Tx time stamp).
The following full calculations are performed:
• Sync frames: OriginTimestamp = (Raw_Timestamp + Local_correction)
• Delay_req frames: OriginTimestamp = (Raw_Timestamp + Local_correction) Correction
field = Original Correction field + Asymmetry
IEEE 1588
PHY
IEEE 1588
PHY
3.6.7.1 Ingress
If the ingress analyzer in the PHY detects that the frame is a IEEE 1588 Sync or Delay_req frame
belonging to the PTP domain(s) of the system, it signals to the time stamp block which action to perform
(Write). It also delivers the write offset and data size (location of the four reserved bytes in the PTP
header, 4 bytes wide) to the rewriter.
If the time stamp block gets the Write action, it delivers the calculated time stamp to the rewriter block
and the rewriter block adds this time stamp (ns part of it) to the four reserved bytes in the frame and
recalculates FCS.
Note: When secure timing delivery is required (when using IPsec authentication, for instance), the four
reserved bytes must be reverted back to 0 before performing integrity check.
The following full calculations are performed:
• Sync frames: Reserved_bytes = (Raw_Timestamp – Local_correction)
Correction field = Original Correction field + Asymmetry
• Delay_req frames: Reserved_bytes = (Raw_Timestamp – Local_correction)
3.6.7.2 Egress
If the egress analyzer detects that the frame is a IEEE 1588 Sync or Delay_req frame belonging to the
PTP domain(s) of the system, it signals to the time stamp block which action to perform (Write, Save).
The analyzer outputs up to 15 bytes of frame identifier to the Tx time stamp FIFO to be saved along with
the Tx time stamp. The frame identifier must include, at a minimum, the sequenceId field so the CPU can
match the time stamp with the follow-up frame.
If the time stamp block gets the Write, Save action it delivers the calculated time stamp to the time stamp
FIFO and signals to the time stamp FIFO block that it must save the time stamp along with the frame
identified data it received from the analyzer block.
The following full calculations are performed:
• Sync frames: FIFO = (Raw_Timestamp + Local_correction)
IEEE 1588
PHY
Central
Packet processing and IEEE 1588
Switching Engine
(CPU)
PTP Sync or Delay_Req Frame
Correction Field = A – RxTimestamp
IEEE 1588
IEEE
PHY1588
PHY
When the system works in one-step E2E TC mode Sync and Delay_req frames must be forwarded
through the system and the residence time = (Egress time stamp – Ingress time stamp) must be added
to the correction field in the frame before it leaves the system.
The following sections describe the operation in Modes A and B.
IEEE 1588
IEEE
PHY1588
PHY
Central
Packet processing and IEEE 1588
Switching
Engine
PTP Sync Frame
Correction Field = A (CPU)
PTP Sync or Delay_Req Frame Reserved bytes = RxTimestamp
Correction Field = A Engine recovers frequency
Reserved bytes = RxTimestamp from Sync frames and
controls 1588 frequency
IEEE 1588
PHY
On the ingress side, when the analyzer detects Sync or Delay_req frames, it adds the Rx time stamp to
the four reserved bytes in the PTP frame.
The following full calculations are performed:
• Sync frames: Reserved_bytes = Raw_Timestamp_ns – Local_correction Correction field = Original
Correction field + Asymmetry
• Delay_req frames: Reserved_bytes = Raw_Timestamp_ns – Local_correction
Master Slave
time time
Timestamps
known by slave
t1 Sy nc
t-ms
Follow_U
p
t2 t2
t1, t2
t3 t3
Req
t-sm la y_
Pd e
t4
t5 Pde la
y _Re s
p
Pdelay
_Resp
_Follo
t6 t6
w _Up t3, t4, t5, t6
Grandmaster-M S- BC -M S- OC
To calculate the path delays on a link, the IEEE 1588 engine (located somewhere in the system)
generates Pdelay_req messages on all ports. When transmitted, the actual Tx time stamp (t3) is saved
for the CPU to read.
When a P2P TC, BC, or OC receives a Pdelay_req frame, it saves the Rx time stamp (t4) and generates
a Pdelay_resp frame, which adds t5 – t4 to the correction field copied from the received Pdelay_req
frame, where t5 is the time that the Pdelay_resp leaves the port (t5).
When a P2P TC receives the Pdelay_resp frame, it saves the Rx time stamp (t6) and then calculates the
path delay as (t6 – t3 – the correction field of the frame)/2. The time stamp corrections are combined into
a single formula as follows:
• Path delay = (t6 – (t3 + (t5 – t4))/2 = (t6 – t3 – t5 + t4)/2 = ((t4 – t3) + (t6 – t5))/2
The two path delays are divided by two, but in such a way as to cancel out any timing difference between
the two devices.
A slight modification can be made to the algorithm to remove the CPU processing overhead of reading
the t3 time stamp. To modify the algorithm, the IEEE 1588 engine should send the Pdelay_req message
with a software generated t3 value in the origin time stamp, the sub-second value of the t3 time stamp in
the reserved bytes of the PTP header, and a correction field of 0. The software generated t3 time stamp
should just be within a second before the actual t3 time. The egress PHY should then be configured to
perform E2E TC egress operation, meaning calculate the “residence time” from the inserted t3 time
stamp to the actual t3 time and insert this value in the correction field of the frame. When the IEEE 1588
engine receives the corresponding Pdelay_resp frame back it can use the software generated t3 value
as the correction field of the Pdelay_resp frame will contain a value that compensates for the actual t3
transmission time.
A P2P TC adds the calculated one-way path delay to the ingress correction field, and this ensures that
the time stamp + correction field in the egress Sync frames is accurate and a slave connected to the P2P
TC only needs to add the link delay from the TC to the slave.
The following sections describe both the standard and modified methods for taking P2P measurements.
As with E2E TC operations, the VSC8491-17 device also supports the different TC modes: mode A (with
different time stamp formats) and mode B. Mode B is also the preferred method to implement P2P TC.
identifier data it receives from the Analyzer block, and has a CPU interface that allows the IEEE 1588
engine to read out the time stamp sets (Frame identifier + New Tx time stamp).
The following full calculations are performed:
• Sync frames: Correction field = Internal Correction field + (Raw_Timestamp_ns + Local_correction)
• Pdelay_req frames: FIFO = Raw_Timestamp_ns + Local_correction – Asymmetry
• Pdelay_resp frames: Correction field = Internal Correction field +
(Raw_Timestamp_ns + Local_correction)
Figure 30 • One-Step Peer-to-Peer Transparent Clock Mode B
Central
IEEE 1588
IEEE 1588
Engine
PHY
(CPU)
PTP Pdelay _req Frame
PTP Sync Frame
PTP Pdelay _req/resp Frame Correction Field = C
Correction Field = A
Correction Field = B Reserved bytes = RxTimestamp + PTP Pdelay _resp Frame
Reserved Bytes = RxTimestamp Peer Delay Correction Field = D
(D = B – RxTimestamp )
Central
Engine recovers
Packet processing and IEEE 1588 frequency from Sync
Switching
Engine frames and controls
1588 frequency
PTP Sync Frame (CPU)
Correction Field = A
PTP Sync Frame
Reserved bytes = RxTimestamp +
PTP Pdelay _resp Frame PTP Pdelay _req Frame Correction Field = A
Peer Delay
Correction Field = D Correction Field = C Reserved bytes = RxTimestamp +
(D = B – RxTimestamp ) Peer Delay PTP Pdelay _req/resp Frame
Correction Field = B
Reserved Bytes = RxTimestamp
Central
IEEE 1588
Engine
(CPU)
PTP Sync Frame
PTP Pdelay _resp Frame PTP Pdelay _req Frame Correction Field =
Correction Field = D + TxTimestamp Correction Field = C A – RxTimestamp + TxTimestamp
(TxTimestamp saved in FIFO ) + Peer Delay
Reserved bytes = 0
IEEE 1588
PHY
IEEE 1588
PHY
3.6.10.1 Ingress
If the analyzer detects that the frame is a IEEE 1588 Sync or Delay_req frame belonging to the PTP
domain(s) of the system, it signals to the time stamp block which action to perform (Write). The analyzer
also delivers the write offset and data size to the rewriter (four reserved bytes in the PTP header, which
will be passed out on the egress port of the system). A changed reserved value may be significant in
security protection. This method allows the frames to be copied to the IEEE 1588 engine, so that it can
extract the Rx time stamp and knows that it needs to read the Tx time stamps to be ready for the follow
up message. It is also possible to save the Rx time stamp value along with the Tx time stamp in the Tx
time stamp FIFO.
If the time stamp block gets the Write action, it outputs the current time stamp to the rewriter and the
rewriter writes the ns part of the time stamp into the reserved bytes and recalculates FCS.
The following full calculations are performed:
• Sync frames: Reserved_bytes = (Raw_Timestamp_ns – Local_correction) Correction
field = Original Correction field + Asymmetry
• Delay_req frames: Reserved_bytes = Raw_Timestamp_ns – Local_correction
3.6.10.2 Egress
If the analyzer detects that the frame is a IEEE 1588 Sync or Delay_req frame belonging to the PTP
domain(s) of the system, it signals to the time stamp block which action to perform (Write, Save). The
analyzer also delivers the write offset and data size (but as nothing is to be overwritten the values will be
0) to the rewriter. The analyzer outputs 10 bytes of frame identifier to the Tx time stamp FIFO to be saved
along with the Tx time stamp. The frame identifier must include, at minimum, the sequenceId field so the
CPU can match the time stamp with the follow-up frame. The analyzer also outputs the offset for the
reserved fields in the PTP header to the rewriter, so that the rewriter field is reset to 0 and the temporary
Rx time stamp value is cleared.
If the time stamp block gets the Write, Save action it outputs the current time stamp value to the rewriter
(and time stamp FIFO) and sets the save_timestamp bit. The time stamp FIFO block saves the New_field
data along with the frame identifier data it received from the analyzer block. The frame identifier data that
is saved can contain the reserved field in the PTP header that was written with the Rx time stamp, so that
the CPU now can read the set of Tx and Rx time stamp from the Tx time stamp FIFO.
The following full calculations are performed:
• Sync frames: FIFO = Raw_Timestamp_ns + Local_correction (reserved_bytes containing the Rx
time stamp saved together with Tx time stamp)
• Delay_req frames: FIFO = Raw_Timestamp_ns + Local_correction – Asymmetry (reserved_bytes
containing the Rx time stamp saved together with Tx time stamp)
1. For one-way delay measurements, both MEPs must support IEEE 1588 and be in sync.
2. 1DM frame is generated by the CPU, but with an empty Tx time stamp.
3. The frame is transmitted by the initiating MEP.
4. The 1DM frame is classified as an outgoing 1DM frame by the egress PHY and the PHY rewrites the
frame with the time as TxFCf.
5. The receiving PHY classifies the incoming 1DM frame and writes the receive time stamp in reserved
place (RxTimeStampf).
6. The frame is received by the peer MEP.
7. The frame is forwarded to the CPU that can calculate the delay.
IEEE 1588
PHY
IEEE 1588
PHY
3.6.12.1 Ingress
If the analyzer detects that the frame is a Y.1731 1DM PDU frame belonging to the MEP, it signals to the
time stamp block which action to perform (Write). The analyzer also delivers the write offset and data size
(location of the RxTimeStampf location in the frame, 8 bytes wide) to the rewriter.
If the time stamp block gets the Write action, it delivers the time stamp to the rewriter block and the
rewriter block adds this time stamp to the reserved bytes in the frame and recalculates FCS.
The following calculation is performed for 1DM frames:
• RxTimeStampf = (Raw_Timestamp – Local_correction)
3.6.12.2 Egress
If the analyzer detects that the frame is a Y.1731 1DM PDU frame belonging to the MEP, it signals to the
time stamp block which action to perform (Write). It also delivers the write offset and data size (location of
the TxTimeStampf location in the frame, 8 bytes wide) to the rewriter.
If the time stamp block gets the Write action, it delivers the time stamp to the rewriter block and the
rewriter block adds this time stamp to the reserved bytes in the frame and recalculates FCS.
The following calculation is performed for 1DM frames:
• TxTimeStampf = (Raw_Timestamp + Local_correction)
37
End T LV (0)
In that case, the following frame flow is needed (two-way delay measurement):
1. DMM frame is generated by the CPU (initiating MEP), but with an empty Tx time stamp.
2. In the egress PHY the DMM frame is classified as an outgoing DMM frame from the MEP and the
PHY rewrites the frame with the time as TxTimeStampf.
3. In the ingress PHY the frame is classified as an incoming DMM belonging to the MEP and the
RxTimeStampf in the frame is written (the frame has a reserved space for this).
4. The DMM frame is forwarded to the MEP (CPU).
5. The CPU processes the frame (swaps SA/DA MAC addresses, modifies the opcode to DMT) and
sends out a DMT frame.
6. The outgoing DMT frame is detected in the egress PHY and the TxTimeStampb is written into the
frame.
7. In the ingress PHY the frame is classified as an incoming DMT belonging to the MEP and the
RxTimeStampb in the frame in written (the frame has a reserved space for this).
8. The frame is forwarded to the CPU that can calculate the delays.
3.6.13.1 Ingress
If the analyzer detects that the frame is a Y.1731 DMM PDU frame belonging to the MEP, it signals to the
time stamp block which action to perform (Write). It also delivers the write offset and data size (location of
the RxTimeStampf location in the frame, 8 bytes wide) to the rewriter.
If the analyzer detects that the frame is a Y.1731 DMT PDU frame belonging to the MEP, it signals to the
time stamp block which action to perform (Write). It also delivers the write offset and data size (location of
the RxTimeStampf location in the frame, 8 bytes wide) to the rewriter.
If the time stamp block gets the Write action, it delivers the time stamp to the rewriter block and the
rewriter block adds this time stamp to the reserved bytes in the frame and recalculates FCS.
The following calculations are performed:
• DMM frames: RxTimeStampf = (Raw_Timestamp – Local_correction)
• DMR frames: RxTimeStampb = (Raw_Timestamp – Local_correction)
3.6.13.2 Egress
If the analyzer detects that the frame is a Y.1731 DMM PDU frame belonging to the MEP, it signals to the
time stamp block which action to perform (Write). It also delivers the write offset and data size (location of
the TxTimeStampf location in the frame, 8 bytes wide) to the rewriter.
If the analyzer detects that the frame is a Y.1731 DMT PDU frame belonging to the MEP, it signals to the
time stamp block which action to perform (Write). It also delivers the write offset and data size (location of
the TxTimeStampb location in the frame, 8 bytes wide) to the rewriter.
If the time stamp block gets the Write action, it delivers the time stamp to the rewriter block and the
rewriter block adds the time stamp to the reserved bytes in the frame and recalculates FCS as follows:
• DMM frames: TxTimeStampf = (Raw_Timestamp + Local_correction)
A global timing signal must also be distributed to all the devices. This could be a 1 pps pulse or another
slow synchronization pulse, like a 4 kHz synchronization frequency. It can also just be a one-shot pulse.
The system CPU can load each local counter with the time value that happens next time the
synchronization pulse goes high (+ the known delay of the synchronization pulse traces). It can also just
load the same approximate time value into all the local clock blocks (again + the known delay of the
synchronization pulse traces) and load them in parallel. Then the local time can be adjusted to match the
actual time by adjusting the local clock blocks using the ±1 ns function.
If the Save signal is triggered synchronously on all PHYs of the system, software can read the saved time
stamp in each PHY and correct the time accordingly. On a blade with multiple PHYs, it is possible to
connect the 1588_PPS_1 pin on one PHY to the 1588_LOAD_SAVE pin on the next PHY. If the routing
delay (both internal chip delay and trace delay) is known, Microsemi recommends that the value saved in
the next PHYs correspond to this delay.
If the global system clock is not synchronous, the PPM offset between system clock and the IEEE 1588
time progress can be calculated. This PPM offset can be used to calculate how many local-time-clocks is
takes to reach a time offset of 1 ns and this value can be programmed into each local time block. The
CPU still need to keep track of the smaller PPM offset and adjust the local time blocks with ± writes when
necessary.
By measuring the skew between the 1 pps test output from each PHY, it is possible to measure the
nominal correction values for the time counters in a system. These can be incorporated into the software
of the system. Variations from system to system and temperature variations should be minimized by
design.
E TH 2 M P LS
IP /U D P IP /U D P IP /U D P
P TP P TP P TP P TP P TP P TP P TP
The following illustration shows the same overview of the supported encapsulations with the focus on
OAM.
Figure 39 • OAM Packet Encapsulations
ETH 1
ETH2 M PLS
There is one TSU per channel in the VSC8491-17 device. The TSU detects and updates up to three
different encapsulations of PTP/OAM. Non-matching frames are transferred transparently. This includes
IFG, preamble, and SFD. For all frames, there is no bandwidth expansion/shrink.
Once these frames are detected in the receive path, they are stamped with the ingress time and
forwarded for further PTP/OAM processing. In the transmit path, the correction field of the appropriate
PTP message (or the Rx and Tx fields of the OAM frame) is updated with the correct time stamp. A local
time counter is maintained to provide the time stamps. Implementation of some of the IEEE 1588
protocol requires interaction with the TSU block over the CPU interface and external processing.
The system has an ingress processor, egress processor, and a local time counter. The ingress and
egress processing logic blocks are identical, except that the time stamp FIFO is only required in the
egress direction because the CPU needs to know the actual time stamps of some of the transmitted PTP
frames. The CPU reads the time stamps and any associated frame information out of the time stamp
FIFO. The FIFO saves the generated time stamps along with information that uniquely identifies the
frame to be read out by the CPU.
The ingress and egress processing blocks run on the same clock as the data paths for the corresponding
directions. The local time counter is the primary reference clock for the system and it maintains the local
reference time used by the TSU logic. It should be synchronized by an external entity. The block provides
a method to load and view its value when the 1588_LOAD_SAVE pin is asserted. The block also
provides a one pulse-per-second output signal with a programmable duty cycle. The local time counter
runs at several clock frequencies.
The following illustration shows the block diagram of the TSU.
Figure 40 • TSU Block Diagram
Ingress processor
Data
SOF
Data FIFO Rewriter
detect
Data
Corr_TS
Data
SOF
Rewriter FIFO Data
detect
Data
Egress processor
In both directions, the input data from the PHY layer is first fed to an SOF detect block. Data is then fed to
both the programmable time-delay FIFO and the analyzer. The FIFO delays the data by the time needed
to complete the operations necessary to update the PTP frame. That is, the data is delayed to the input
of the rewriter so that the rewriter operations are known when the frame arrives. This includes the
analyzer and time stamp processor block's functions.
The analyzer block checks the data stream and searches for PTP/OAM frames. When one is detected, it
determines the appropriate operations to be performed based on the operating mode and the type of
frame detected.
Note: The analyzer blocks of two channels share configuration registers and have identical setups.
The time stamp block waits for an SOF to be detected, captures a time stamp from the local time counter,
and builds the new time stamp that is to be written into the PTP/OAM frame. Captured time stamps can
be read by the CPU.
The rewriter block handles the actual writing of the new time stamp into the PTP/OAM frame. It is also
able to clear parts of the frame such as the UDP checksum, if required, or it can update the frame to
ensure that the UDP checksum is correct (for IPv6 PTP frames). The block also calculates the new FCS
to be written to the PTP frame after updating the fields with the new time stamp.
The VSC8491-17 device has variable latency in the PCS block. These variations are predicted and used
to compensate/maximize the accuracy of the IEEE 1588 time stamp logic.
If the time stamp update function is not used, the block can be bypassed. When the TSU is bypassed,
the block can be configured and then enabled and taken out of bypass mode. The change in bypass
mode takes effect only when an IDLE is in the bypass register. This allows the TSU block to be switched
on without corrupting data.
Each direction of the IEEE 1588 can be bypassed individually by programming the
INTERFACE_CTL.SPLIT_BYPASS bit. Bypass is then controlled by INTRERFACE_CTL.INGR_BYPASS
and INTERFACE_CTL.EGR_BYPASS.
Pause frames pass unmodified through the TSU, but the latency may cause a violation of the allowed
pause flow-control latency limits per IEEE 802.3.
3.6.16 Analyzer
The packet analyzer parses incoming packets looking for PTP/OAM frames. It determines the offset of
the correction field within the packet for all PTP frames/for the time stamp in Y.1731 OAM frames. The
analyzer has the following characteristics:
• Can compare against two different filter sets plus one optimized for OAM
• Each filter targets PTP or OAM frames
• Flexible comparator sequence with fixed start (Ethernet/SNAP) and end (PTP/OAM) comparator.
Configurable intermediate comparators (Ethernet/SNAP, 2x IP/UDP/ACH, and MPLS)
The following illustration shows a block diagram of the analyzer.
Figure 41 • Analyzer Block Diagram
Data
SOF Data
detect SOF
Analyzer
Align
Frame
signature
Encap Engine B controller builder
Offsets &
Next protocol
Encap Engine C
A controller
Offsets &
Next protocol
The analyzer process is divided into engines and stages. Each engine represents a particular
encapsulation stack that must be matched. There are up to six stages in each engine. Each stage uses a
comparator block that looks for a particular protocol. The comparison is performed stage-by-stage until
the entire frame header has been parsed.
Each engine has its own master enable so that it can be shut down for major reconfiguration, such as
changes in encapsulation order, without stopping traffic. Other enabled engines are not affected.
The SOF detect block searches for the SFD in the preamble and uses that to indicate the SOF position.
This information is carried along in the pipeline and also passed to the analyzer.
The first stage of the analyzer is a data path aligner that aligns the first byte of the packet (without the
preamble & SFD) to byte 0 of the analyzer data path.
The encapsulation engine handles numerous types of encapsulation stacks. These can be broken down
to their individual protocols, and a comparator is defined for each type. The order in which these are
applied is configurable. Each comparator outputs a pattern/flow match bit and an offset to the start of the
next protocol. The cumulative offset points to the time stamp field.
The sequence in which the protocol comparators are applied is determined by configuration registers
associated with each comparator, and the transfer of parameters between comparators is controlled by
the encapsulation engine controller.
It receives the pattern match and offset information from one comparator stage and feeds the start-of-
protocol position to the next comparator. This continues until the entire encapsulation stack has been
parsed and always ends with the PTP/OAM stage (or until a particular comparator stage cannot find a
match in any of its flows). If at any point along the way no valid match is found in a particular stage, the
analyzer sends the NOP communication to the time stamp block indicating that this frame does not need
modification and that it should discard its time stamp.
There are two types of engines in the analyzer, one optimized for PTP frames and the other optimized for
OAM frames. The two engine types are mostly identical, except that the IP comparators are removed
from the OAM engines. The following table shows the comparator layout per engine type and the number
of flows in each comparator. There are two PTP engines and one OAM engine in each analyzer.
Additional differences in the Ethernet and MPLS blocks are defined in their respective sections. For more
information, see Ethernet/SNAP/LLC Comparator, page 69 and MPLS Comparator, page 73.
Number of Flows
Comparator PTP Engine OAM Engine
Ethernet 1 8 8
Ethernet 2 8 8
MPLS 8 8
IP/ACH 1 8 0
IP/ACH 2 8 0
PTP/OAM 6 6
it is the responsibility of the programmer to determine the value to put in these registers. This value must
be calculated based upon the expected length of the header, and is not expected to change from frame-
to-frame when matching a given flow.
The following table shows the ID codes comparators use in the sequencing registers. The PTP packet
target encapsulations require only up to five comparators.
ID Name Sequence
0 Ethernet Comparator 1 Must be the first
1 Ethernet Comparator 2 Intermediate
2 IP/UDP/ACH Comparator 1 Intermediate
3 IP/UDP/ACH Comparator 2 Intermediate
4 MPLS Comparator Intermediate
5 PTP/OAM Comparator Must be the last
The following sections describe the comparators. The frame format of each comparator type is described
first, followed by match/mask parameter definition. All upper and lower bound ranges are inclusive and
all match/mask registers work the same way. If the corresponding mask bit is 1, then the match bit is
compared to the incoming frame. If a mask bit is 0, then the corresponding match bit is ignored (a
wildcard).
Destination Address (DA) Source Address (SA) VLAN Tag Etype Payload
5 4 3 2 1 0 5 4 3 2 1 0 3 2 1 0 1 0
Destination Address (DA) Source Address (SA) VLAN Tag 1 VLAN Tag 2 Etype Payload
5 4 3 2 1 0 5 4 3 2 1 0 3 2 1 0 3 2 1 0 1 0
The following illustration shows an Ethernet frame with an LLC/SNAP header and a VLAN tag in the
SNAP header. The Ethertype in the SNAP header is the VLAN identifier and tag immediately follows the
SNAP header.
Figure 44 • Ethernet Frame with VLAN Tag and SNAP
DSAPSSAP Ctl Protocol ID
Destination Address (DA ) Source Address (SA) Length 0x000000 VLAN EType VLAN Tag ID
$ # $ # $ $ $ $ $ # $ $ # # AA/AB AA/AB 0x03 # # # # # # #
The following illustration shows the longest form of the Ethernet frame header that needs to be
supported: two VLAN tags, an LLC header, and a SNAP header.
Figure 45 • Ethernet Frame with VLAN Tags and SNAP
LLC SNAP
EtherType Rest of
Backbone Destination Address(B-DA) Backbone Source Address (B-SA) 88E7
Flags SID Customer Destination Address (C-DA) Customer Source Address (C-SA)
5 4 3 2 1 0 5 4 3 2 1 0 1 0 0 2 1 0 5 4 3 2 1 0 5 4 3 2 1 0 E-net Header
If the Ethernet block is part of the OAM optimized engine, there are two sets of next-protocol
configuration registers. Both sets are identical, except one has an _A suffix and the other has a _B suffix.
In the per-flow registers, an additional register, ETH_NXT_PROT_SEL, is included to map a particular
flow with a set of next protocol register set. This function allows the Ethernet block within the OAM-
optimized engine to act like two separate engines with a configurable number of flows assignable to each
(with a total maximum number of eight flows). It effectively allows two separate protocol encapsulation
stacks to be handled within the engine.
The S bit is used to indicate the last label in the stack, as follows: If S = 0, then there is another label. If
S = 1, then this is the last label in the stack.
Also, the MPLS stack can optionally be followed by a control word (CW). This is configurable per flow.
The following illustration shows a simple Ethernet packet with either one label or three labels and no
control word.
Figure 49 • MPLS Label Stack within an Ethernet Frame
CW=0 Destination Address (DA)
5 4 3 2 1 0 5
Source Address (SA)
4 3 2 1 0
Etype
1 0 3
Label (S=1)
2 1 0
Payload
CW=0 Destination Address (DA) Source Address (SA) Etype Label (S=0) Label (S=0) Label (S=1) Payload
5 4 3 2 1 0 5 4 3 2 1 0 1 0 3 2 1 0 3 2 1 0 3 2 1 0
The following illustration shows an Ethernet frame with four labels and a control word. Keep in mind that
this comparator is used to compare the MPLS labels and control words; the Ethernet portion is checked
in the first stage.
Figure 50 • MPLS Labels and Control Word
CW=1 Destination Address (DA) Source Address (SA) Etype Label (S=0) Label (S=0) Label (S=0) Label (S=1) Control Payload
5 4 3 2 1 0 5 4 3 2 1 0 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0
There could be VLAN tags between the SA and the Etype fields and, potentially, a LLC and SNAP
header before the MPLS stack, but these would be handled in the Ethernet/LLC/SNAP comparator.
The only configuration registers that apply to all flows within the comparator are the match_mode register
and the nxt_comparator register. The match mode register determines how the match filters are used,
and there is one per stage. Each flow has it own complete set of match registers.
MPLS_REF_PNT = 0, MPLS_REF_PNT=1,
Parameter top-of-stack referenced end-of-stack referenced
MPLS_Range_Upper/Lower_0 Top label Third label before the end label
MPLS_Range_Upper/Lower_1 First label after the top label Second label before the end
label
MPLS_Range_Upper/Lower_2 Second label after the top label First label before the end label
MPLS_Range_Upper/Lower_3 Third label after the top label End label
The offset to the next protocol is calculated automatically. It is based upon the number of labels found,
and whether a control word is configured to be present. It points to the first octet after the last label or
after the control word, if present.
If an exact label match is desired, set the upper and lower range values to the same value. If a label
value is a don't care, then set the upper value to the maximum value and the lower value to 0.
The MPLS comparator block used in the OAM-optimized engine differs from the one used in the PTP-
optimized engine.
Just like the Ethernet comparator block, there are two sets of next protocol blocks along with a next
protocol association configuration field per-flow. This allows two different encapsulations to occur in a
single engine.
Source Address
16/128 Destination Address
Source Port Destination Port
UDP
24/192 Length Checksum (over-write with 0)
Per flow validation is performed on the Source or Destination Address in the IPv4 header. The
comparator can be configured to indicate a match in the flow if the source, destination, or either the
source or destination fields match.
Source Address
IPv6
Destination Address
24/288
Source Port Destination Port
UDP 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Length Checksum
40/352 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Per flow validation is performed on the Source or Destination Address in the IPv6 header. The
comparator can be configured to indicate a match in the flow if the source, destination, or either the
source or destination fields match.
If the IPv6 frame is the inner most IP protocol, then the checksum field must be valid. This is
accomplished using a pair of pad bytes after the PTP frame. The checksum is computed using one's
compliment of the one's compliment sum of the IPv6 header, UDP header, and payload including the pad
bytes. If any of the fields in the frame are updated, the pad byte field must be updated so that the
checksum field does not have to be modified.
Note: IPv6 extension headers are not supported.
4/32 Protocol ID
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
3.6.16.7 IPSec
IPSec adds security to the IP frame using an Integrity Check Value (ICV), a variable-length checksum
that is encoded with a special key. The key value is known by the sender and the receiver, but not any of
the devices in between. A frame must have a correct ICV to be valid. The sequence number field is a
continuously incrementing value that is used to prevent replay attacks (resending a known good frame).
Little can be done with frames when IPSec is used, because the IEEE 1588 block cannot recalculate the
ICV and the frame cannot be modified on egress. Therefore, one-step processing cannot be performed-
only two-step processing can be done. The only task here is to verify the presence of the protocol
header. Stored time stamps in the TS FIFO are used to create follow-up messages. On ingress, the time
stamp can be added to the PTP frame by writing it into the reserved bytes or by overwriting the CRC with
it and appending a new CRC. The CPU must know how to handle these cases correctly.
The following illustration shows the format of the IPSec frame. It normally appears between the IP
header (IPv4 or IPv6) and the UDP header or at the start of the payload.
Figure 55 • IPSec Header Format
0 31
Octet/Bit
Next Header Payload Length Reserved
0/0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
31 30 29 28 27 26 25 24 23 22 21 20
Security Parameters Index (SPI)
19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Sequence Number
8/64 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
There is only one set of match/mask registers associated with IPSec, and they are used to verify the
presence of the IPSec header. The following illustration shows the largest possible IP frame header with
IPv6, IPSec, and UDP.
Figure 56 • IPv6 with UDP and IPSec
0 31
Octet/Bit
0/0 3
Version
2 1 0 7 6
Traffic Class
5 4 3 2 1 0 19 18 17 16 15 14 13 12 11
Flow Label
10 9 8 7 6 5 4 3 2 1 0
Source Address
IPv6
Destination Address
36/288
Next Header Payload Length Reserved
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IPSec
Integrity Check Value (ICV)
variable #
of octets Source Port Destination Port
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
UDP
Length Checksum
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Protocol Next Protocol Fields NPF Bit Widths Flow Fields Flow Bit Widths
IPv4 Header length One 4-bit field Source/ One 32-bit field
Destination
Address
UDP Source/Destination Port One 32-bit field
IPv6 Next header One 8-bit field Source/ One 128-bit field
Destination
Address
UDP Source/Destination Port One 32-bit field
ACH Entire ACH header One 64-bit field
IPSec Next Header/Payload Length/ One 64-bit field
SPI
The IP/ACH Comparator Flow Verification registers are used to verify the current frame against a
particular flow within the engine. When this engine is used to verify IPv4 or IPv6 protocol, the flow is
verified using either the source or destination address in the frame.
If the protocol is something other than IPv4 or IPv6, then the flow match can be used to match either a 32
or 128 bit field pointed to by the IP_Flow_Offset register. Mask bits can be used to shorten the length of
the match, but there is no concept of source or destination address in this mode.
Correction Field
Reserved
Source Port Identity [79:48 ]
79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48
Unlike most of the other stages, there is no protocol validation for PTP frames; only interpretation of the
header to determine what action to take. The first eight bytes of the header are used to determine the
action to be taken. These match fields in the flow comparison registers with a corresponding set of
command registers for each flow.
TxTimeStampf
TxTimeStampf
TxTimeStampf
RxTimeStampf
TxTimeStampb
As with PTP, there is no protocol validation for Y.1731 frames; only interpretation of the header to
determine what action to take. The first four bytes of the header are used to determine the action to be
taken.
As with PTP, there is no protocol validation for MPLS OAM; only interpretation of the header to determine
what action to take. The first four bytes of the header are used to determine the action to be taken.
The following table shows controls that are common to all flows.
at least one 64-bit word of separation between the start of the protocol and where the second starts to
operate.
3.6.16.15 Reconfiguration
There are three ways to perform reconfiguration:
1. Disable an entire encapsulation engine.
Once an engine has been disabled, any of the configuration registers associated with it may be
modified in any order. If other encapsulation engines are still active, they will still operate normally.
2. Disable a flow in an active engine.
Each stage in the engine has an enable bit for each flow. If a flow is disabled in a stage, its registers
may be modified. Once reconfiguration for a flow in a stage is complete, it can be enabled.
3. Disable a comparator.
Each comparator within the active encapsulation engine can be disabled. If an Ethernet header
according to the configuration Type I or Type II with SNAP/LLC is not found then subsequent flows
will not be matched. The ETH1 comparator can also be disabled so that all frames flowing through
the IEEE 1588 block are time stamped.
The disabling of engines and flows is always done in a clean manner so that partial matches do not
occur. Flows and engines are always enabled or disabled during inter-packet gaps or at the end of a
packet. This guarantees that when a new packet is received that it will be analyzed cleanly.
If strict flow matching is enabled and a flow is disabled in one of the stages, then the entire flow is
automatically disabled.
If any register in a stage that applies to all flows needs to be modified, then the entire encapsulation
engine must be disabled.
Configuration registers in each comparator block supply an address to select if it is the source address or
the destination address.
A frame signature can be extracted from frames matching in all the three engines. The frame signature
address selection is limited to Ethernet Block1 because only a limited number of encapsulations are
supported in the third engine, Engine C.
Engine C has two parts: part A and part B. Part A supports ETH1, ETH2, MPLS protocols while part B
supports only ETH1 protocol. Selection of Ethernet block 1 or 2 is dependent on whether part A flow
matches or part B flow matches.
If a frame matches part A flow configuration, then the frame signature as configured in
ETH1_NXT_PROTOCOL_A and ETH2_NXT_PROTOCOL_A using FSB_ADR_SEL will be considered
in computing the frame signature.
If a frame matches part B flow configuration, then the frame signature as configured in
ETH1_NXT_PROTOCOL_A and FSB_ADR_SEL will be considered in computing the frame signature. In
this configuration if FSB_ADR_SEL is set to 1, to select ETH2 then all zeros are padded as frame
signature because ETH2 is not supported by part B.
40 MHz) ~6625 ns. This corresponds to a time stamp bandwidth of > 0.15 M time stamp/second/port.
The following illustration shows the serial time stamp/frame signature output.
Figure 63 • Serial Time Stamp/Frame Signature Output
SPI_CS
SPI_Clk
SPI_ DO 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 12 9 8 7 6 5 4 3 2 1 00
3.6.20 Rewriter
When the rewriter block gets a valid indication it overwrites the input data starting at the offset specified
in Rewrite_offset and replaces N bytes of the input data with updated N bytes. Frames are modified by
the rewriter as indicated by the analyzer-only PTP/OAM frames are modified by the rewriter.
The output of the rewriter block is the frame data stream that includes both unmodified frames and
modified PTP frames. The block also outputs a count of the number of modified PTP frames in
INGR_RW_MODFRM_CNT/EGR_RW_MODFRM_CNT, depending upon the direction. This counter
accumulates the number of PTP frames to which a write was performed and includes errored frames.
Because the rewriter cannot modify the IFG or change the size of the frame, if the original FCS is
overwritten with time stamp data a new FCS needs to be appended and the frame shortened by reducing
the preamble. The preamble length includes the /S/ character and all preamble characters up to but not
including the SFD. In this mode, it is assumed that all incoming preambles are of sufficient (5 to 7-byte)
length to delete four bytes and the preamble of every frame (not only PTP frames) will be reduced by
four bytes by deleting four bytes of the preamble. Then, the new FCS is written at the end of the matched
frame. For unmatched frames, or if the PTP_REWRITE_BYTES is anything but 0xE, the IFG is
increased by adding four IDLE (/I/) characters after the /T/ which ends the packet.
To time stamp a frame in one of the modes, the actual length of the preamble is then checked and if the
preamble is too short to allow a deletion of four bytes (if the preamble is not five bytes or more) then no
operations are performed on the preamble, the FCS is not overwritten, and no time stamp is appended.
For all such frames, a counter is maintained and every time an unsuccessful operation is encountered,
the counter is incremented. This counter is read through register
INGR_RW_PREAMBLE_ERR_CNT/EGR_RW_PREAMBLE_ERR_CNT. The following illustration shows
the deleted preamble bytes.
Figure 64 • Preamble Reduction in Rewriter
SFD SFD
Pre3
0xD5 0xD5
An internal counter keeps track of the accumulated error. When the accumulated error exceeds 1
nanosecond, an extra nanosecond is either added or subtracted from the local time counter. Use the
following as an example to program a 5.9 ns period:
LTC_SEQUENCE.LTC_SEQUENCE_A = 6 (6 ns)
LTC_SEQ.LTC_SEQ_E = 100000 (0.1 ns)
LTC_SEQ.LTC_SEQ_ADD_SUB = 0 (subtract an extra nanosecond, i.e add 5 ns)
To support automatic PPM adjustments, an internal counter runs on the same clock as the local time
counter, and increments using the same sequence to count nanoseconds. The maximum (rollover) value
of the internal counter in nanoseconds is given in register
LTC_AUTO_ADJUST.LTC_AUTO_ADJUST_NS. At rollover, the next increment of the local time counter
is increased by one additional or one less nanosecond as determined by the
LTC_AUTO_ADJUST.LTC_AUTO_ADD_SUB_1NS register. When
LTC_AUTO_ADJUST.LTC_AUTO_ADD_SUB_1NS is set to 0x1, an additional nanosecond is added to
the local time counter. When it is set to 0x2, one less nanosecond is added to the local timer counter. No
PPM adjustments are made when the register is set to 0x0 or 0x3.
PPM adjustments to the local time counter can be made on an as-needed basis by writing to the one-
shot LTC_CTRL.LTC_ADD_SUB_1NS_REQ register. One nanosecond is added or subtracted from the
local time counter each time LTC_CTRL.LTC_ADD_SUB_1NS_REQ is asserted. The
LTC_CTRL.LTC_ADD_SUB_1NS register setting controls whether the local time counter adjustment is
an addition or a subtraction.
The current time is loaded into the local time counter with the following procedure.
1. Configure the 1588_LOAD_SAVE pin.
2. Write the time to be loaded into the local time counter in registers LTC_LOAD_SEC_H,
LTC_LOAD_SEC_L and LTC_LOAD_NS.
3. Program LTC_CTRL.LTC_LOAD_ENA to a 1.
4. Drive the 1588_LOAD_SAVE pin from low to high.
The time in registers LTC_LOAD_SEC_H, LTC_LOAD_SEC_L and LTC_LOAD_NS is loaded into the
local time counter when the rising edge of the 1588 LOAD_SAVE strobe is detected. The LOAD_SAVE
strobe is synchronized to the local time counter clock domain.
When the 1588_DIFF_INPUT_CLK_P/N pins are the clock source for the local time counter, and the
LOAD_SAVE strobe is synchronous to 1588_DIFF_INPUT_CLK_P/N, the LTC_LOAD* registers are
loaded into the local time counter, as shown in the following illustration.
Figure 65 • Local Time Counter Load/Save Timing
LOAD_SAVE
CLK1588P
System generates
LOAD_SAVE here
Time loaded into Local
Device captures Time Counter here
LOAD_SAVE here
When LTC_CTRL.LTC_SAVE_ENA register is asserted when the 1588 LOAD_SAVE input transitions
from low to high, the state of the local time counter is stored in the LTC_SAVED_SEC_H,
LTC_SAVED_SEC_L, and LTC_SAVED_NS registers.
The current local time can be stored in registers with the following procedure.
1. Configure the 1588_LOAD_SAVE pin.
2. Program LTC_CTRL.LTC_SAVE_ENA to a 1.
3. Set SER_TOD_INTF.LOAD_SAVE_AUTO_CLR to 1 if the operation is one-time save operation.
This will clear LTC_CTRL.LTC_SAVE_ENA after the operation.
4. Drive the 1588_LOAD_SAVE pin from low to high.
5. Read the value from LTC_SAVED_SEC_H, LTC_SAVED_SEC_L, and LTC_SAVED_NS registers.
As with loading the local time counter, there is one clock cycle of uncertainty as to when the time is saved
if the LOAD_SAVE strobe is not synchronous to the clock driving the counter.
Standard
PPS Signal
High Voltage
1PPS with
ToD Signal Low Voltage
A B C D
1.0 µs 20 µs 160 µs 999819.0 µs
benefit of changing the value of this field when leap year or leap second occurs. (The Date field is
ignored at the serial ToD input and is not generated at the serial ToD output.)
• Reserved field: 4 octets. Reserved for future use.
The ToD information is represented in units of octet, with each octet being transmitted with the low-order
bit first. The following illustration shows an octet is transmitted between a start bit with high voltage and a
stop bit with low voltage. The other octets are transmitted in the same manner. As a result,
(1+8+1) × 1 µs = 10 µs are needed to transport one octet. This segment lasts 16 × 10 µs = 160 µs to
convey the ToD information.
Figure 67 • ToD Octet Waveform
Transmitting 1 ToD Octet (10 µs)
LSB MSB
0 0 1 0 1 0 1 1
High Voltage
Low Voltage
The entire Time-of-Day segment should be detected. If the second 6 octets representing the Date field
are not used by the upper layer, the Date field should still be detected and its value can be ignored.
When SER_TOD_INTF.SERIAL_ToD_OUTPUT_EN is set, the PPS output is driven with a serial ToD
output based on the LTC timer value.
LTC counter is loaded with 2 sec, 80 ns. Now 1 ns is adjusted when counter increments from 10 ns and
rolls over 100 ns. It does not add/subtract when LTC timer rolls over 100 ns.
Example 3. LTC_AUTO_ADJ_M_NS value is loaded with 400 ns and after some time
LTC_AUTO_ADJ_M_NS value is loaded with 500 ns. The AUTO_ADJ_M_COUNTER value when the
new value is loaded is 333 ns. Then the next adjustment happens after 177 ns after load because the
AUTO_ADJ_M_COUNTER continues to count until it reaches the newly loaded value 500 ns.
Example 4. LTC_AUTO_ADJ_M_NS value is loaded with 400 ns and after some time
LTC_AUTO_ADJ_M_NS value is loaded with 100 ns. The AUTO_ADJ_M_COUNTER value when the
new value is loaded is 333 ns. Then adjustment happens immediately because 333 > 100 and the
AUTO_ADJ_M_COUNTER is reset to zero after the adjustment
If LTC counter is loaded with a new value, set LTC_AUTO_ADJ_M_UPDATE bit to 1 and reload the
LTC_AUTO_ADJ_M_NS value.
In addition to the preceding frequencies, a specific frequency can be chosen by enabling the synthesizer
on the PPS pin using the following steps.
1. Set LTC_FREQ_SYNTH.LTC_FREQ_SYNTH_EN to 1.
2. A toggle signal with the frequency specified will be pushed out onto PPS. The number of
nanoseconds the signal stays high can be specified by
LTC_FREQ_SYNTH.FREQ_HI_DUTY_CYC_NS. The number of nanoseconds the signal stays low
can be specified by LTC_FREQ_SYNTH.FREQ_LO_DUTY_CYC_NS.
3. The above nanoseconds should be exactly divisible by clock frequency, otherwise the signal may
have a jitter as high as the high duration/clock period or low duration/clock period.
4. To disable the this feature and revert back to PPS functionality, reset
LTC_FREQ_SYNTH.LTC_FREQ_SYNTH_EN to 0
For example, to output a 10 MHz signal, set the FREQ_HI_DUTY_CYC_NS to 50 ns and
FREQ_LO_DUTY_CYC_NS to 50 ns. On a 250 MHz LTC clock, this will make high time and low time of
signal shift between 48 ns and 52 ns.
3.6.26 Resolution
The IEEE 1588 processor achieves time stamp resolution in any mode of operation of 1 ns utilizing
special high-resolution circuitry. The accuracy of a device using high-resolution circuitry is improved
more than 100% over the first generation IEEE 1588 engine. High accuracy for these devices will be
supported regardless of the local time counter clock frequency supplied to the reference clock input. The
timestamp accuracy is a system-level property and may depend upon oscillator selection, port type, and
speed, system configuration, and calibration decisions. Supported frequencies of the local time counter
are 125 MHz, 156.25 MHz, 200 MHz, and 250 MHz.
There are a total of five high resolution blocks per port to improve resolution for the following events:
• One pulse-per-second (1PPS) output signal
• 1588_PPS_RI input signal
• Start-of-frame in the egress direction
• Start-of-frame in the ingress direction
• 1588_LOAD_SAVE input (strobe) signal direction
Each of these blocks can individually be enabled using ACC_CFG_STATUS. Contact Microsemi with any
questions regarding PTP accuracy calculations.
3.6.27 Loopbacks
Loopback options provide a means to measure the delay at different points to evaluate delays between
on chip wire delays and external delays down to a nanosecond.
clk
clk_en
Bypass
Rx Input Output
Token Token
RX Pkt Input
Hdr Classification
Token M Post-
64to128 Adap Process
Bypass Engine Context U
conv ter X Engine
proc
rx_adr
Bypass
Statistics
Update
Engine
Transform
CSR Statistics
Records
Target RAM
RAM
Interrupt
Outputs
The following sections describe the blocks in the MACsec data flow.
3.7.1.1 PKT64to128
The Packet 64to128 block is the Rx interface of the MACsec IP with the other blocks. It converts the 64-
bit packet interface to the 128-bit packet interface with which the MACsec IP works. It also presents the
port information associated with the current frame. In the egress configuration, the PKT64to128 block
has a FIFO to temporarily handle back-pressure from the MACsec IP due to frame expansion. Based on
packet expansion within the MACsec IP, the PKT64to128 block provides flow control feedback to the flow
control buffer, which manages all data build up that occurs as a result of MACsec frame expansion.
• Flow Lookup Frame Classification and Frame Handling- Classifies frames based on frame
header field contents and outputs of the control frame classification, VLAN tag detection, and
MACsec tag detection modules. Flow control registers define what to do with a frame (drop, bypass,
or MACsec process) when matching entries. A programmable per-rule priority level resolves any
overlap between these rules.
• Flow Lookup/Default Classification Multiplexer- Gives priority to the decision from the flow
lookup frame classification. The default frame handling is used for a frame only if none of the flow
lookup entries match.
3.7.1.10 PKT128to64
The Packet 128to64 block is the interface of the MACsec IP with the other blocks. It converts the 128-bit
packet interface of MACsec IP to the 64-bit packet interface used to communicate with other blocks. It
also prepares the security fail debug code to be put into FCS field for packets failing security check.
MACsec-Secured MACsec-Secured
MACsec-Secured LAN infrastructure
WAN access port Service Provider infrastructure
Each host has a dedicated physical link to an Enterprise Ethernet switch, and the switches are
connected to an enterprise branch router that also provides WAN access. In smaller configurations,
hosts can also connect directly to the branch router. All internal branch office, Ethernet ports are secured
using MACsec.
The branch router connects across an access link to a service provider’s service edge router, and this
access link is secured using MACsec. MACsec may also be used to secure the service provider's
network.
The 802.1X security protocols can be used for authentication and to automate the distribution and
management of MACsec encryption keys. The VSC8491-17 device supports 128-bit and 256-bit
encryption.
MACsec-secured data
over MEF EVC or MPLS
With traditional MACsec, VLAN tags or MPLS labels are fully encrypted and hidden from the Carrier
Ethernet network, thereby limiting the enterprise to only the simplest point-to-point private line
connectivity services.
The VSC8491-17 device supports leaving the VLAN tags or MPLS labels unencrypted for use by the
Carrier Ethernet network while fully securing the enterprise's Ethernet data inside these encapsulations.
This approach uses standard, non-proprietary encapsulation formats with 128-bit and 256-bit encryption.
By enabling these features, the enterprise is able to take advantage of the latest Layer-2 (L2) VPN
services available from a Carrier Ethernet network. These L2 VPN services can be point-to-point or
multipoint, and can use standardized Metro Ethernet Forum (MEF) Carrier Ethernet and Internet
Engineering Task Force (IETF) MPLS service offerings, including multiple Virtual Private Lines per WAN
port.
MACsec-secured data
through Access Operator's network
Mobile Service
Provider
Mobile Service Mobile Service
Provider NID Provider NID
Timing Access Operator
Network
Mobile Service
IEEE-1588 IEEE-1588
Provider Base Station
Slave Transparent Clock
or Boundary Clock
The mobile service provider may choose to leave VLAN tags or MPLS labels unencrypted so that the
access operator can map the virtual private line services.
In addition to backhauling data, IEEE 1588 packet-based timing technology delivers high-precision
frequency and phase synchronization to the base stations. IEEE 1588 packets may be encrypted along
with backhaul data and tunneled through the access operator network, or delivered as an unencrypted
synchronization service directly from the access operator network. To meet 4G/LTE specifications,
nanosecond-accurate time stamping of IEEE 1588 packets is required. However, such tight tolerances
cannot be achieved using traditional MACsec, even if the IEEE 1588 packets themselves are
unencrypted.
The Microsemi IEEE 1588 time stamping engine in the VSC8491-17 device works in conjunction with the
MACsec engine to deliver 4G/LTE timing quality over Carrier Ethernet connections, while using MACsec
for end-to-end security across the access operator network.
Pre-Decryption (Rx)
Unencrypted Format Pre-Encryption (Tx) Classification Fields Classification Fields
Untagged Ethernet DA, SA, Etype DA, SA, SecTAG
Single-tagged Ethernet DA, SA, TPID, VID, Etype DA, SA, SecTAG
Dual-tagged Ethernet DA, SA, TPID1, VID1, TPID2, VID2, Etype DA, SA, SecTAG
The following illustrations show each frame format before and after standard MACsec transformation.
Figure 72 • Untagged Ethernet
Classifiable Pre-Encryption
Protected by ICV
Classifiable Pre-Encryption
Protected by ICV
Protected by ICV
The following illustrations show each frame format before and after advanced MACsec transformation.
Figure 78 • Single-Tagged Ethernet
Classifiable Pre-Encryption
P rotected by IC V P rotected by IC V
Protected by ICV
Protected by ICV
Protected by ICV
Protected by ICV
IEEE 802.3 pause flow control generation to handle MACsec frame expansion. The IEEE 1588 block is
on the host-side of MACsec, and the IEEE 1588 PTP frames are also subjected to MACsec
transformations.
The following illustration shows the integration of MACsec in the PHY.
Figure 86 • MACsec in PHY
PHY with MACSec
MACSec SubSystem
xMII
xMII Host FC Line PCS +
S 1588 MACSec
PHY XS MAC Rx Buffer MAC Tx PMA
Y (Egress) (Egress)
(Egress) (Egress) (Egress) L
S I
T N
E E
M
Host FC Line
xMII 1588 MACSec PCS +
PHY XS MAC Tx Buffer MAC Rx
(Ingress) (Ingress) PMA
(Ingress) (Ingress) (Ingress) xMII
Note: The de-padding action is applicable only for MACsec frames that are going to be decrypted/validated by
the MACsec flow and will not change the regular MACsec processing latency. No de-padding action is
performed on bypass/drop frames.
After ingress MACsec processing, it is possible for the frame to become smaller than 64 bytes. Such
frames are then padded by the host MAC (if enabled), and the packet processing switch/system receives
64 byte frames after Ethernet padding.
In the egress direction, the MACsec core calculates and updates the SL field in the MACsec header, and
authenticates and encrypts (optionally) the frame if a frame's size (including the MACsec header and
ICV) is less than 64-bytes.
Note: This short length field indicates frame data from after the first byte of the MACsec header to byte
immediately before ICV.
For this feature to work, host MAC receiver should be configured to allow undersized frames, and line
MAC transmitter should be configured to pad frames.
Host and line MACs do not accept less than 64 byte frames (without Ethernet padding) from system/line
interfaces, and do not remove the Ethernet padding from the frames.
Each frame at input is accompanied by the following signals:
• Port Number- Two-bit signal that indicates the source port (common, reserved, controlled, or
uncontrolled) of the packet as defined in the IEEE 802.1AE standard.
• Bad CRC/Packet Error- Bits that indicate that the packet has a bad CRC/packet error.
Frames with a bad CRC or other packet errors are forwarded to the output with the same errors, unless
their classification leads to a decision to drop them. Because error signals appear at the end of a frame
and processing must start before the end of a frame is received, classification and processing is
performed, but statistics are not updated.
The source port for MAC data/control frames is configurable. Typically, egress MAC data frames are put
on the controlled port and MAC control frames are put on the uncontrolled port. All ingress frames are put
on the common port. This configuration is controlled using MAC_DATA_FRAMES_SRC_PORT and
MAC_CTRL_FRAMES_SRC_PORT in the MACSEC_CTL_CFG register. Control packet classification
determines the frames that are assumed to have come from controlled/uncontrolled ports in egress and
the frames that should go to controlled/uncontrolled ports in ingress.
LPI and fault signals that appear on the Ethernet interface can be detected by the MAC and converted
into internal status frames (single-byte frames containing the state of the signals). The MACsec block can
recognize these status frames on the input and propagate them to its output.
Status frames travel through the pipeline along with normal Ethernet frames, so they appear at the output
after the preceding Ethernet frame and before any frames that appear after the status change. However,
status frames do not take part in any operations of the pipeline. They are invisible to static classification,
flow lookup, MACsec processing, and consistency checking.
The following illustrations show the egress and ingress MACsec data flows.
Programmable latency
29 way
control control
control frame
classification drop/
MTU Checking and
8 entry default packet bypass
blocking module
handling registers drop/
0 bypass/
MACSec tag process
S detection drop/ MACSec crypto -core L
Y bypass/ with Vlan Tag bypass I
and MPLS header
S process N
bypass 128
T E
128 1
E VLAN tag VLAN, 64/16 entry 64/16 entry S
64/16 entry transform Static
M detection QinQ.. parameters & state bypass
flow flow
lookup packet Statistics module
packet handling
classification registers
EoMPLS header MPLS
bypass proc flow hit
M A CS ec In gress
2 9 w ay Prog ram m ab le
con trol Drop / laten cy con trol
con trol fram e Byp ass
classification MT U C h eckin g
8 en try d efau lt p acket an d
Drop /
h an d lin g reg isters b lockin g m od u le
Byp ass /
0
Process
MAC Sec tag
d etection Drop / MAC Sec cryp to - 6 4/ 1 6 en try S
Byp ass / core w ith vlan tag p rog ram m ab l Y
L b yp ass an d MPLS e con sisten cy
Process S
I h ead er b yp ass ch eckin g 128 T
N (on ly on E
128 1 6 4/ 1 6 en try
E VLAN tag VLAN , Static
6 4 /1 6 en try 6 4 /1 6 en try S tran sform in g ress sid e ) M
d etection Q in Q.. flow flow b yp ass
p aram eters & state
looku p p acket Statistics m od u le
p acket h an d lin g
classification reg isters
E oMPLS h ead er M PLS
b yp ass p roc flow h it
The following sections describe the pipeline stages. Of these pipeline stages, the MACsec transform
stage is the only one that can modify the frame data or drop a frame completely (no frame will appear at
the output of the pipeline in that case). Other stages can only perform the following actions for frame
data:
• Inspect the frame data, such as performing a classification based on fields in a header.
• Drop the frame (which is already streaming out) by setting the frame abort signal along with the last
word of data.
Static Classification
This is the first stage of packet classification. Control packet classification, MACsec tag parsing, and
VLAN tag parsing are carried out in parallel.
Flow Lookup
Each table of 16 SA flows can match on a number of criteria. An action and a MACsec context is
associated with each flow. If the packet does not match any of these 16 flows, one of eight default actions
is selected, depending on the results of MACsec tag parsing and control packet classification.
MACsec Transform
This stage carries out the actual MACsec encryption and authentication. It uses the MACsec context
associated with the flow that was matched in the previous stage. A MACsec context is a data structure
containing all information (such as key and sequence numbers) needed to carry out a MACsec
transform. This stage can also bypass or drop certain packets.
The MACsec transform stage can be bypassed by setting MACSEC_BYPASS_ENA = 1 in the
MACSEC_ENA_CFG register. Setting the MACSEC_BYPASS_ENA = 0 and MACSEC_ENA = 1 results
in traffic passing through the MACsec transform block. Setting the MACSEC_BYPASS_ENA and
MACSEC_ENA bits to 0 results in all traffic being dropped at the input interface of MACsec.
Ingress Consistency Checking
This stage is not present in the egress-only version of the MACsec block. It extracts information from the
decrypted packet and checks it against a table of 64/16 rules. Rules can either reject or pass certain
packets. Separate default actions can be configured for control and non-control packets (in case no
match is found in the table).
Output Postprocessor
This stage checks the results of the MACsec transform operation. It also checks that the length of a
packet does not exceed the MTU (incrementing a counter if the MTU is exceeded, and optionally tagging
the packet for deletion). Each of the eight VLAN user priorities and non-VLAN packets can have a
different MTU. This stage implements the MACsec-compliant post-processing decision tree, and updates
all MACsec statistics.
MACsec tag parsing checks are controlled by configuring the SAM_NM_PARSING register.
The VLAN tag parsing logic generates the following signals that can be used by flow lookup and other
processing stages.
• VLAN Valid- Single bit that is set when a VLAN tag (of any type) is successfully parsed.
• Stag Valid- Single bit that is set if the first valid VLAN tag is an 802.1S tag.
• Qtag Valid- Single bit that is set if the first valid VLAN tag is an 802.1Q tag.
• Q-in-Q Found- Single bit that is set if two valid VLAN tags were found.
• VLAN User Priority- Three-bit field derived from the first VLAN tag. For non-VLAN tag packets the
default user priority is returned. User priority processing can be disabled to also return the default
user priority.
• VLAN ID- Twelve-bit field taken from the first VLAN tag. Undefined for non- VLAN packets.
• Inner VLAN User Priority- Three-bit field derived from the second (inner) VLAN tag. This value is
always passed through the re-mapping table (the SAM_CP_TAG2 register), and the result value is
used in classification. Undefined for non-VLAN packets or VLAN packets without a second VLAN
tag.
• Inner VLAN ID- Twelve-bit field that is taken from the second (inner) VLAN tag. Undefined for non-
VLAN packets or VLAN packets without a second VLAN tag.
• Ethertype- Ethertype extracted from the packet after zero, one, or two VLAN tags.
VLAN parsing is controlled by configuring the SAM_CP_TAG, SAM_PP_TAGS, SAM_PP_TAGS2, and
SAM_CP_TAG2 registers.
The parsed VLAN fields (including UP) are used in SA flow classification lookup. The MACsec block also
maintains VLAN statistics on a per user priority basis. This includes dropped and oversize packets on a
user priority basis.
The following table shows the match criteria and maskable bits.
If all four MACsec tag match bits are set and none of the mask bits are set, the flow matches all possible
packets. If none of the MACsec tag match bits are set, the flow does not match any packets.
If an exact match of the MAC source address is desired, all six mac_sa_mask bits must be set. If an
exact match of the MAC destination address is desired, all six ma_da_mask bits must be set.
The SCI and TCI.AN fields are used in only in the ingress SA flow classification. The TCI.AN field match
can be masked per bit. If an exact match of the TCI.AN field is desired, all eight tci_an_mask bits must be
set. If a match on the SCI field is desired, make sure that the SCI field is expected in the packet and
match on the SC bit in the TCI field (SC bit must be set). For packets without an SCI field, the TCI field in
combination with the MAC source address determines the match criterion (as defined in the
IEEE 802.1AE standard).
The VLAN ID output can be undefined for non-VLAN packets. When matching packets on VLAN ID, also
match on vlan_valid = 1.
A packet is matched on the parsed Ethertype from the VLAN classification logic. This differs from the
Ethertype used by the control packet classification logic.
Each flow can be enabled or disabled individually. Only enabled flows are selected when they match a
frame. When multiple enabled flows match a frame, the one with the highest match_priority field (a
number from 0 to 15) will be selected; among equal priority flows the one with the lowest index will be
selected.
The match_priority field is always 4-bit wide (16 priority levels) regardless of the number of SAs
supported in the given configuration. The SA_MATCH_PARAMS registers control the SA match criteria.
The following table shows the ingress SA flow action related to a matching entry, as defined in the
SAM_FLOW_CTRL_IGR register.
MACsec contexts, which store the sequence number, keys, SCI, and other information, are used for
further transformation of frames for MACsec egress/ingress flow type processes.
The actions specified for each flow are a subset of those specified for SA flows (only pass and drop are
possible). Each of these flows can specify that a packet must be dropped or bypassed. It also specifies
the destination port. The way a packet must be dropped can also be specified.
Protected by ICV
Protected By ICV
The following restrictions are applied to the EoMPLS header bypass format.
• The mode is statically controlled by programming the size of the bypassed header. Size of zero
indicates absence of the bypassed header.
• No other secure format is possible on the port when header bypass is enabled.
• 2B–16B field is always one size on a port, configurable to be 2, 4, 6...16 Bytes. A static configuration
register specifies size of the field. For EoMPLS this is generally configured as multiple of 4B.
The following logic is used to process the EoMPLS header bypass format.
• Control Packet Detection- Based on Etype2 matching a configured (static) value.
If Etype2 matches, detect and process control packets using MAC_DA, MAC_SA, and parsed Etype
(after MAC_SA) to detect EAPOL/MKA transported in MPLS tunnels.
Other Etype2 values, detect and process control packets using MAC_DA2, MAC_SA2, and Etype2
to detect any other MAC control frames.
• SecTAG Position- Determined by size of 2B–16B field and located right after it.
• Egress SA Match- Uses Etype2, up to first 64 bits of the 2B–16B field, MAC_DA, and MAC_SA.
The 2B–16B match field in the SA is bit-maskable.
• Ingress SA Match- Uses Etype2, up to first 64 bits of the 2B–16B field, MAC_DA, MAC_SA, and
SecTAG fields. The 2B–16B match field in the SA is bit-maskable.
controlled port without checking the authentication simply by stripping the SecTAG and ICV. This will
occur if all the following conditions are met.
• The frame is classified as tagged.
• The frame is not matched by any installed MACsec SAs. The frame may either match no SA flow at
all or a non-MACsec SA flow.
• The flow type of SAM_NM_FLOW_CP/SAM_NM_FLOW_NCP (whichever is applicable to that
packet) for tagged frames is set to bypass.
• The TCI field has C = 0, E = 0.
• The nm_macsec_en bit is set.
• The validate_frames setting is either disabled or check, but not strict.
1. For MACsec, MASK is an unsigned integer controlling a valid range of packet numbers.
All fields of the transform record must be populated by the host software before the corresponding SA
flow can be enabled. The ctx_size bit in the CONTEXT_CTRL register controls the size of the context
that must be fetched. For bypass and drop flows, the transform record is not used. The hardware only
updates the sequence number field; it does not modify the other fields during MACsec egress and
ingress processing.
The context control word is the first 32-bit word in each transform record. It specifies the type of
operation. Only those settings that are relevant for MACsec operations need to be defined. The following
table shows the fields in context control word.
The following list shows the other fields of the transform record.
• Context ID
Unique identifier for each context. It is sufficient to give all transform records a different context ID,
possibly by assigning them a number from 0 to maximum index.
• Key 0 … Key 7
AES encryption key for the MACsec SA. Each word of the key is a 32-bit integer representing four
bytes of the key in little-endian order. The number of words depends on AES key length.
• H_Key 0, H_Key 1, H_Key 2, and H_Key 3
128-bit key for the authentication operation. It is represented in the same byte order as Key 0...Key
7. It is derived from Key 0...Key 7 as follows: H_key = E (Key, 128'h0). This means performing a
128/256 bit AES-ECB block encryption operation with Key 0...Key 7 as the key and a block of 128
zero bits as the plaintext input. The cipher-text result of the AES block encryption is the 128-bit
H_Key.
• Sequence Number
For egress MACsec, this is one less than the sequence number (PN) that is to be inserted into the
MACsec frame. For a new SA, this must be initialized to 0. After each egress packet, this field is
incremented by 1. If it rolls over from 0xFFFFFFFF to 0, a sequence number error occurs and the
context is not updated, which means that the same error will occur again for any subsequent egress
packets with that context - the external system will forward these packets to the line with CRC/packet
error. For ingress MACsec, the sequence number must be initialized to 1.
• Mask (replay window size)
Window size for ingress sequence number checking. By default, it is 0 (strict ordering enforced). It
can be set to any integer value up to 232–1, in which case any nonzero sequence number is
accepted.
• SCI 0 and SCI 1
SCI that belongs to the specific MACsec SA. An SCI that depends on the source MAC address and
the ES and SCB bits is defined, even in modes that do not explicitly transmit or receive the SCI with
each packet. This is a 64-bit block, represented by two 32-bit integers in little-endian order. It is the
same byte order in which SAM_SCI_MATCH_HI/SAM_SCI_MATCH_LO represent an SCI.
When the sequence number of an egress SA is about to roll over, it must be replaced by a new SA with
different keys. It is not allowed to reset the sequence number of an egress SA to a lower value because
doing so generally leads to sequence number checking failures at the receiving end of the connection.
For inbound frames, the PN is compared against the sequence number (PN) from the context, resulting
in one of the following three cases:
• If the received number is above or equal to the number in the context:
{received_PN? next_PN}
In this case the context sequence number (PN) is updated (if the update_seq bit is set to 1b). The
updated value is the received number plus one.
• If the received number is below the number from the context, but within the replayWindow:
{received_PN < next_PN and received_PN ≥ (next_PN - replayWindow)
In this case no context update is required.
• If the received number is below the number from the context, and outside the replayWindow:
{received_PN < (next_PN - replayWindow)
In this case the sequence number check fails and error bit e10 is set in the result token. No context
update is done.
• User Priority field from the first VLAN tag it encounters, to be used by the MTU checking logic and
statistics counters update logic.
• VLAN ID and VLAN Up from the second VLAN tag in case of Q-in-Q.
Each consistency check rule can match on a set of mask-able match criteria. If the corresponding mask
bit is cleared, the match criterion is not checked and packets can satisfy the rule regardless of the value
in the packet. If the corresponding mask bit is set, a packet only satisfies the rule if the value in the packet
matches the value in the rule. The following list shows the mask-able match criteria.
• sai_hit (1b or 0b)- The packet was matched by one of the SA flows during flow lookup.
• sai_nr (range 0 to SAmax-1)- The packet was matched by the specific SA flow (or is not matched
by any SA flow and has a specific combination of control packet and MACsec tag classification). To
match packets that were matched by a specific SA flow, also match on sai_hit = 1
• vlan_valid (1b or 0b)- The packet contains a valid VLAN tag.
• vlan_id (12 bits value)- The packet has the specified VLAN ID. A match on this criterion is only
meaningful if also matched on vlan_valid = 1.
• vlan_id_inner (12 bits value)- The packet has the specified VLAN ID at second VLAN tag. A match
on this criterion is only meaningful if also matched on vlan_valid = 1 and Q-in-Q is detected.
• vlan_up_inner (3 bits value)- The packet has the specified VLAN Up at second VLAN tag. A match
on this criterion is only meaningful if also matched on vlan_valid = 1 and Q-in-Q is detected.
• etype_valid (1b or 0b)- The Ethertype is greater than cp_etype_max_len.
• payload_e_type (16 bits value)- The packet has a specific Ethertype if a VLAN packet is detected,
this value is the Ethertype following the VLAN tag.
• ctrl_packet (1b or 0b)- The packet is a control packet.
If all mask bits are cleared, the rule will match every possible packet.
Each of the consistency check rules can be enabled or disabled individually. If a rule is disabled, it will not
be selected for match checking. If more than one enabled rule is matched, the one with the highest
priority (3 bit number from 0 to 7) is picked. The lowest numbered rule is picked from equal priority rules.
The rule that is eventually selected specifies either a pass or a drop action.
If no rules match, the default action is taken (pass or drop). It is possible to define different default actions
for control and non-control packets. After reset, the default action for both of them is drop.
ICC rule configuration is controlled by the IG_CC_PARAMS and IG_CC_PARAMS2 registers.
• The frame length is the size of the output frame (including header and excluding Ethernet preamble,
start-of-frame byte, and CRC).
• The VLAN user priority is the one provided by the VLAN parsing logic in the static classification logic.
MTU checking is configured using the VLAN_MTU_CHECK and NON_VLAN_MTU_CHECK registers.
3.7.5.6.2 Statistics
The following two types of statistics counters are used.
• Per-frame counters are 40 bits wide. They overflow after about 1012 frames. A MACsec block
processing 10 Gbps traffic can process in the order of 107 frames per second so that the 40-bit
counters only saturate after 105 seconds (one day).
• Per-octet counters are 80 bits wide. They overflow after about 1024 octets. Even for a system that
processes in excess of 109 bytes per second, this means that they will never overflow during the
expected lifetime of the system.
The statistics counters can be configured to be auto-cleared on read. They can also be configured to
saturate at maximum value instead of rolling over.
There are three classes of statistics counters, as follows.
• Global Statistics- The MACsec block maintains global statistics counters to implement MACsec.
Some global statistics are maintained per-SA, so they must be obtained by accumulating (summing)
the per-SA statistics of the relevant SAs.
• Per-SA Statistics- The MACsec block maintains all per-SA statistics for ingress and egress
MACsec operations. Software maintains statistics for all four SAs that might belong to an SC. It
keeps the per-SA statistics, even for SAs that it has deleted from the SA flow table. When an SA flow
is deleted, its final SA statistics must be collected and added into the per-SA and per-SC statistics.
• Per-SC Statistics- The MACsec block does not maintain any per-SC statistics. However, the per-
SC statistics are the sum of per-SA statistics of the SAs belonging to that SC. Whenever the
software reads per-SA statistics from the hardware, it must not only add them to the per-SA statistics
administration, but to the per-SC statistics administration as well.
The following tables show the per SA (per SC), global (SecY), and per user priority egress statistics
generated. Eight sets of user priority counters are implemented. If a frame is detected as VLAN, it also
increments user priority counters in addition to per-SA/global (SecY) counters.
The following tables show the per SA (per SC), global (SecY), and per user priority ingress statistics
generated. Eight sets of user priority counters are implemented. If a frame is detected as VLAN, it also
increments user priority counters in addition toper-SA/global (SecY) counters.
3.7.5.8 Interrupts
The MACsec block can raise five interrupts from ingress and four from the egress block. The available
interrupts are as follows.
• Context error (bit 3) indicates an error in the transform record, probably the context control word,
especially the settings for encryption and authentication algorithms.
• Sequence number threshold (bit 4) indicates that an egress flow has exceeded its sequence number
threshold. The MACsec SA must be re-keyed to prevent a sequence number rollover. Exceeding the
sequence number threshold will not affect packet processing; it is meant to be used as a warning for
imminent sequence number rollover.
• Sequence number rollover (bit [5]) indicates that an egress flow has encountered a sequence
number rollover. The software must look in the transform record table to see which active egress SA
has a sequence number value of 0xFFFFFFFF in case of 32-bit Packet number or
0xFFFFFFFF_FFFFFFFF in case of 64-bit packet number. This egress SA flow must immediately be
disabled, and it must be re-keyed.
Use the following steps to make effective use of the sequence number threshold interrupt.
1. .Set the SEQ_NUM_THRESHOLD register to an appropriate value. A suitable value might be
0xF0000000 for a 32-bit packet number.
2. Make sure the sequence number threshold interrupt is enabled.
Use the following steps if the sequence number threshold interrupt occurs.
1. Temporarily disable the sequence number threshold interrupt, then clear that interrupt bit.
2. Check all transform records of active egress SAs for a sequence number that is either over the
threshold or close to it (any egress SA with a sequence number above 0xE0000000).
3. Start a re-keying procedure for all those SAs.
4. After re-keying has been completed (and new SAs are installed on both sides of the connection), re-
enable the sequence number threshold interrupt.
failing packet. The FCS of a frame failing security check is corrupted on the output. The corrupted FCS
field contains a fault code for debugging using a frame analyzer. The fault code uses 31 bits, with the last
FCS bit reserved to make sure the FCS check fails.
The following table shows the FCS fault code for the 32 bits.
Bit Description
31 Reserved to make sure that FCS check fails
30 SA hit
29:24 SA pointer
If the SA-hit bit[30] is 0, then
bits[29:27] are reserved, bit[26] indicates if the frame is classified as control
frame, and bits[25:24] indicate the MACsec tag classification of the frame:
00b = untagged, 01b = tagged, 10b = bad tag, 11b = KaY tag
23:10 Global stat event vector
9:0 SA stat event vector
The following tables show the format of the ingress global and SA stat event vectors.
The following tables show the format of the egress global and SA stat event vectors.
ADM_HDR0
ADM_HDR1
PKT1
ADM_HDR0
128-deep ADM_HDR1
PKT2
Each stored packet is preceded by a 64-bit administration header that contains the following information.
3.7.7.1 ADM_HDR0
22 bits reserved, 1 bit truncated, 9 bit pkt_size
3.7.7.4 ADM_HDR1
32-bit security fail debug code, see section 4.4.1.
The status of the capture FIFO can be accessed using the CAPT_DEBUG_STATUS register
(PKT_COUNT, FULL, WR_PTR).
Use the following steps to capture frames.
FC Buffer
(Egress)
xMII
Host Line
1588 MACSec
4 MAC Rx MAC Tx
(Egress) (Egress)
(Egress) 2 (Egress) xMII
H L
Host/ OR
Switch/
MAC AND
Tx-XOFF Tx-XON
Host Line
1588 MACSec
3 MAC Tx MAC Rx
(Ingress) (Ingress)
xMII (Ingress) (Ingress) xMII
FC Buffer
(Ingress) 1
The following steps describe the sequence of events depicted in the illustration.
1. Pause frame (XOFF) is received by PHY at line MAC Rx. This frame is internally consumed by MAC.
The MAC Rx signals the Tx FC buffer with pause received indication and pause quanta.
2. The Tx FC buffer goes to pause state at the next frame boundary. Pause timer will be maintained by
Tx FC buffer and is started only after it goes to pause state, which may be immediate in some cases.
The Tx FC buffer drain rate is 0 and fill rate can be max port speed. The Tx FC buffer signals XOFF
to host MAC Tx to schedule a pause transmission upstream. This signaling is shown via the optional
OR gate. Without back-pressured from the remote link partner the Tx FC buffer uses XOFF/XON
thresholds to signal XOFF/XON to host MAC Tx to manage frame expansion due to MACsec.
3. The host MAC Tx can schedule a pause frame for transmission at the next frame boundary. The Tx
FC buffer needs to be able to hold at least one jumbo frame until XOFF pause is scheduled so that it
can continue to receive data downstream. The XOFF frame is then received by host/switch.
4. The host device can only stop transmission at next frame boundary because it may have started
transmitting a second jumbo frame.
The following configuration signals control the basic flow control mode.
3.7.8.1.1 PAUSE_REACT_ENA
Enables pause reaction and pause timer maintenance in egress flow control buffer. Set to 1.
3.7.8.1.2 PAUSE_GEN_ENA
Enables XON and XOFF pause frame signaling to host MAC based on XON and XOFF thresholds. Set
to 1.
3.7.8.1.3 INCLUDE_PAUSE_RCVD_IN_PAUSE_GEN
Enables the optional OR and AND gate. Set to 1. If not enabled, the pause gen signaling to host MAC is
purely based on XOFF/XON thresholds.
The following illustration shows the sequence of events when a pause frame is received from host.
3
CRTL Queue
2 5
FC Buffer
(Egress)
xMII xMII
Host 4 Line
1588 MACSec
1 MAC Rx MAC Tx
(Egress) (Egress)
Host/ (Egress) (Egress)
Switch/
MAC
Host Line
1588 MACSec
MAC Tx MAC Rx
(Ingress) (Ingress)
xMII (Ingress) (Ingress) xMII
FC Buffer
(Ingress)
The following steps describe the sequence of events depicted in the illustration.
1. Host experiences congestion in ingress and sends pause (XOFF) to line.
2. Host MAC Rx receives pause frame. It is not enabled to react on received pause frames, so it
passes the pause frame to Tx FC buffer.
3. Tx FC buffer maintains two logical queues, one for data and one for MAC control frames. If a data
frame is already scheduled and in progress, it passes on MAC control frames at the next boundary
to quickly relay MAC control frames to line, despite the presence of other data frames in the data
queue.
4. Tx FC buffer transmits any or all control frames in the control queue.
5. Pause frame passes through the MACsec block. The MACsec egress block detects frame as a
control frame and does not encrypt it. Frame eventually passes through the line MAC Tx block and
the rest of the PHY blocks.
TX_CTRL_QUEUE_ENA determines if the control queue is enabled in the egress flow control buffer.
This should be set to 1 in basic flow control mode. The physical memory of egress FC buffer can be
partitioned between data and control queues using TX_CTRL_QUEUE_START/END and
TX_DATA_QUEUE_START/END configuration fields.
FC Buffer
xMII (Egress)
Host Line
1588 MACSec
4 MAC Rx MAC Tx
(Egress) (Egress)
(Egress) (Egress) xMII
H L
2
Host/ Pause
Switch/
MAC
Host Line
1588 MACSec
3 MAC Tx MAC Rx
(Ingress) (Ingress)
xMII (Ingress) (Ingress) xMII
FC Buffer
(Ingress) 1
The following steps describe the sequence of events depicted in the illustration.
3.7.8.3.1 TX_CTRL_QUEUE_OVERFLOW_DROP_CNT
Number of control frame drops due to overflow in the control queue of the egress flow control buffer.
3.7.8.3.2 TX_CTRL_QUEUE_UNDERFLOW_DROP_CNT
Number of control frame drops due to underflow in the control queue of the egress flow control buffer.
3.7.8.3.3 TX_CTRL_UNCORRECTED_FRM_DROP_CNT
Number of control frames aborted due to ECC check fail during reading from RAM in egress flow control
buffer.
3.7.8.3.4 TX_DATA_QUEUE_OVERFLOW_DROP_CNT
Number of data frame drops due to overflow in the data queue of the egress flow control buffer.
3.7.8.3.5 TX_DATA_QUEUE_UNDERFLOW_DROP_CNT
Number of data frame drops due to underflow in the data queue of the egress flow control buffer.
3.7.8.3.6 TX_DATA_UNCORRECTED_FRM_DROP_CNT
Number of data frames aborted due to ECC check fail during reading from RAM in egress flow control
buffer.
3.7.8.3.7 RX_OVERFLOW_DROP_CNT
Number of frame drops due to overflow in the ingress flow control buffer.
3.7.8.3.8 RX_UNDERFLOW_DROP_CNT
Number of frame drops due to underflow in the ingress flow control buffer.
3.7.8.3.9 RX_UNCORRECTED_FRM_DROP_CNT
Number of frames aborted due to ECC check fail during reading from RAM in ingress flow control buffer.
Early Pause
Detector
WRAPPER
KERNEL
Host I/ F to Packet Rx I /F
Packet I/F
Pause Converter Pause frame Indication
xMII Rx I /F Frame
RX-MAC Detector
LF/ RF Status CW
LPI Detect Generator
Pause State
Early Pause Detect
Packet Tx I/F
Packet /I F to
Host I/F Pause gen Signalling
Converter
MAC ready Indication
xMII Tx I /F Pause
TX- MAC Frame
Generator
Force
LF/ RF/ LPI
CW Detect
Tx Clock Domain
The MAC Tx kernel block handles the reconciliation sublayer functions as per IEEE 802.3.
• Calculates the CRC for pause frames generated by the pause frame generator.
• Converts MAC frames to the xMII format and adds control characters for framing as required by
IEEE 802.3.
• Generates the interframe gap (IFG) on the xMII using the deficit idle count algorithm to achieve an
average IPG of 12 bytes.
• Shapes all the traffic to go out with an average IPG of 12 bytes after MACsec frame expansion.
• Analyzes each packet and increments statistical counters used for RMON support.
The Pause Frame Generator (PFG) block performs the following two major functions.
• Requests packets from the upstream blocks, when packets are present and the Tx direction is not in
the pause state (because a pause frame has been received in the Rx direction). They are forwarded
to the MAC Tx kernel block for further processing.
• Generates flow control packets. Pause frames are generated based upon seeing the
MAC_PAUSE_FRM_GEN signal. For the Host MAC, this signal is generated by the FC buffer based
upon programmable XOFF/XON threshold values in the FC buffer. In advance flow control mode of
operation, the line MAC can also generate pause frames based on MAC_PAUSE_FRM_GEN signal
from Host MAC to relay pause frames that are deleted in Host MAC in this mode.
When the pause frame generator sees the MAC_PAUSE_FRM_GEN signal asserted, it generates pause
frames using settings in configuration registers. Part of the pause frame is the pause value, which
specifies how long the link partner (the network entity that the pause frame is destined for) stops sending
traffic. The pause value specifies the requested delay in bit times and uses the equation 512 ×
PAUSE_VALUE.
After the PFG starts generating pause frames, it continues to generate pause frames at specified
intervals until the de-assertion of the MAC_PAUSE_FRM_GEN signal. When this signal is deasserted,
the PFG does one of two things, depending upon the configuration in MAC_TX_PAUSE_MODE. In
normal mode, the PFG stops sending pause frames. This causes the link partner to start sending frames
again after its pause frame timer has expired. In XON mode, the PFG generates a single pause frame
with a pause value of 0 and sends it to the link partner. This causes the link partner to start sending
frames again right away.
The PFG contains a configurable pause frame interval register, MAC_TX_PAUSE_INTERVAL. This
register controls the time between generated pause frames when the FC buffer continues to request that
pause frames be generated.
The packet interface wrapper handles the following functions:
• Provides the packet interfacing support to MACsec and FC buffer blocks. On this packet interface,
frames are transported without preamble and FCS.
• Supports LF/RF/LPI generation on xMII interface through special control word received on packet
interface. This special control word is received on packet interface if relaying of LF/RF/LPI is desired
in MACsec subsystem.
• Padding of frames whose length is less than 64 bytes. This is required for padding of MACsec short
length frames whose length is less than 64 bytes. This padding is enabled by configuring
ENABLE_TX_PADDING in host MAC.
• Standard preamble insertion.
• FCS insertion.
The pause frame detector (PFD) detects and reacts to valid pause frames received by the MAC from the
xMII interface. The PFD reacts to PAUSE frames with a DMAC equal to either the multicast address (01-
80-c2-00-00-01) or the address of the MAC (MAC_ADDRESS_LSB/MSB register value), in accordance
with IEEE 802.3-2008, Annex 31B. Pause frames that are too short, or have invalid CRC, are abort
marked and ignored by the PFD. Pause frames carry a pause value that indicates the desired pause time
in units of pause quanta, where 1 pause-quantum equals 512 bit times. Because the data path in the
MAC is 8 bytes (or 64 bits) wide, the extracted pause value is multiplied by 8 and stored in the pause
counter. A signal from the PFG indicates if a packet is currently being transmitted.
After the current packet has completed or if there is no packet, the PFD tells the PFG to stop requesting
packets (XOFF) and the pause counter is decremented by one for each MAC Rx clock cycle. When the
counter reaches 0, the PFG is instructed that it may resume requesting packets from the upstream
blocks. Pause frames must have a destination address equal to either the multicast address (01-80-c2-
00-00-01) or the address of the MAC (MAC_ADDRESS_LSB/MSB register value). If there is no match,
then the pause frame is ignored. If a pause frame is received while the Tx direction is already being
paused (because a valid pause frame was already received and the pause counter had not yet counted
down to 0), the pause counter is simply updated with the new value. If the received pause value is 0, then
the state machine transitions immediately to END_PAUSE and frames are again requested from the
upstream blocks.
The packet interface wrapper handles the following functions:
• Provides the packet interfacing support to MACsec and FC buffer blocks. On this packet interface,
frames are transported without preamble and FCS.
• Supports LF/RF/LPI indication on packet interface through special control word. This special control
word is relayed to other MAC if relaying of LF/RF/LPI is desired.
• Preamble strip on packet interface.
• FCS check and strip.
3.10 Loopback
The VSC8491-17 device has several options available for routing traffic between the host-side and the
line-side. The following table shows the name and location of the loopback modes. These modes may be
extremely useful for both test and debug purposes.
L1 H2 L2 H3 H4 L3
Setting Mode
1Ex0003 =0x00 XAUI channel_0 to/from SFI interface
XAUI channel_1 from SFI interface
1Ex0003 = 0x01 XAUI channel_0 from SFI interface
XAUI channel_1 to/from SFI interface
1Ex0003 =0x20 XAUI channel_0 to/from SFI interface
Datapath clock to channel_1 WIS, PCS
XAUI channel_1 output data is local faults
1Ex0003 =0x11 Datapath clock to channel_0 WIS, PCS
XAUI channel_0 output data is local faults
XAUI channel_1 data to/from SFI interface
XRX0[3:0] /4 1 PMA
XAUI RX CORE TX TXDOUT0
0 TX
Channel 0
XAUI0_DOUT_SRC = 0
PMA_DOUT_SRC = 0 or 1
XRX1[3:0] /4
XAUI RX CORE TX
Channel 1
XTX1[3:0] /4 XAUI 1
CORE RX 0
TX
XAUI1_DOUT_SRC = 0
2x 6.25 Gbps
1x 1.25 Gbps
1x 1.25 Gbps
4x 3.125 Gbps
XRX_3 NC NC 1G_RX
OR
XTX_0 XTX_0 1G_TX NC
XTX_1 NC NC NC
XTX_2 XTX_1 NC NC
XTX_3 NC NC 1G_TX
Mode1 Mode2
De-interleaving uses XAUI ||A|| column
(align column).
Transmitter: No internal logic modification. Transmitter: Replaces some |K| code groups with
Two 10b characters are presented to one other code groups to allow receiver to perform
physical lane at a time. de-interleaving (comma replacement).
Receiver: Separates two characters in
double rate lane into two physical standard
rate lanes. Lane byte ordering block
ensures first |A| character mapped to first
logical lane and |A| column aligned for the
deskew block.
Obeys 6.25 Gbps disparity rules. Obeys 6.25 Gbps disparity rules.
A host-side SerDes macro (SD6G) is used by each XAUI lane. The SerDes macros are automatically
configured to send/receive the proper data rate when the host interface changes between the
XAUI/RXAUI/1 GbE modes. The appropriate lanes are also powered down when not in use. For
example, XAUI lanes 1 and 3 are powered down when the RXAUI interface is in use.
3.13 Clocking
The following sections describe the clocking functionality of the VSC8491-17 device.
3.13.1 PLL
The VSC8491-17 device includes two PLLs, one on the line-side and another on the host-side. The line-
side PLL uses either XREFCK or WREFCK as its reference clock. The host-side PLL uses XREFCK. The
following table shows the supported reference clock frequencies.
The following table shows the supported clock rates and modes.
SerDes
SerDes Flow
Host Line 10G TXOUT
XRX[3:0] XGXS
MAC
Control 1588 MACsec
MAC PCS
SerDes
SerDes Buffer
SerDes
HOST LINE
XAUI/RXAUI SFP+/KR
XAUI: 4x 3.125 Gbps LAN: 10.3125 Gbps
RXAUI: 2x 6.25 Gbps (Ln0 and Ln2)
SerDes
SerDes Flow
Host Line 10G RXIN
XTX[3:0] XGXS
MAC
Control 1588 MACsec
MAC PCS
SerDes
SerDes Buffer
SerDes
SerDes
SerDes 10G
XRX[3:0] XGXS FIFO 1588 SerDes TXOUT
PCS
SerDes
SerDes
HOST LINE
XAUI/RXAUI SFP+/KR
XAUI: 4x 3.125 Gbps LAN: 10.3125 Gbps
RXAUI: 2x 6.25 Gbps (Ln0 and Ln2)
SerDes
SerDes 10G
XTX[3:0] XGXS FIFO 1588 SerDes TXIN
PCS
SerDes
SerDes
SerDes
SerDes 10G
XR X [3 :0] XGXS FIFO SerDes TXOUT
PCS
SerDes
SerDes
HO ST LIN E
XAUI /R XAUI SFP+ /K R
XAUI : 4 x 3 .125 Gbps LAN : 10 .3125 Gbps
R XAUI : 2x 6.25 Gbps (Ln 0 and Ln2 )
SerDes
SerDes 10G
XTX [3:0 ] XGXS FIFO SerDes TXIN
PCS
SerDes
SerDes
SerDes Flow
Host Line 10G
XRX[3:0] XGXS Control 1588 MACsec WIS SerDes TXOUT
MAC MAC PCS
SerDes Buffer
SerDes
HOST LINE
XAUI/RXAUI SONET/SDH STS-192c
SerDes
SerDes Flow
Host Line 10G RXIN
XTX[3:0] XGXS
MAC
Control 1588 MACsec
MAC PCS
WIS SerDes
SerDes Buffer
SerDes
SerDes
SerDes 10G
XRX[3:0] XGXS FIFO 1588 WIS SerDes TXOUT
PCS
SerDes
SerDes
HOST LINE
XAUI/RXAUI SONET/SDH STS-192c
SerDes
SerDes 10G
XTX[3:0] XGXS FIFO 1588 WIS SerDes RXIN
PCS
SerDes
SerDes
SerDes
SerDes 10G
XRX[3:0] XGXS FIFO WIS SerDes TXOUT
PCS
SerDes
SerDes
HOST LINE
XAUI /RXAUI SONET/SDH STS -192c
XAUI: 4x 3.125 Gbps WAN: 9.95328 Gbps
RXAUI: 2x 6.25 Gbps (Ln0 and Ln2)
SerDes
SerDes 10G
XTX[3:0] XGXS FIFO WIS SerDes RXIN
PCS
SerDes
SerDes
XRX[3] Flow
Host Line
or SerDes 1G PCS Control 1588 MACsec 1G PCS SerDes TXOUT
MAC MAC
XRX[0] Buffer
HOST LINE
1 GbE SFP
XTX[3] Flow
Host Line RXIN
or SerDes 1G PCS Control 1588 MACsec 1G PCS SerDes
MAC MAC
XTX[0] Buffer
XRX[3] Flow
or Host Line
SerDes 1G PCS Control 1588 1G PCS SerDes TXOUT
MAC MAC
XRX[0] Buffer
HOST LINE
1 GbE SFP
1G/SGMII 1.25 Gbps 1G/SGMII 1.25 Gbps
XTX[3] Flow
Host Line TXIN
or SerDes 1G PCS Control 1588 1G PCS SerDes
MAC MAC
XTX[0] Buffer
3.14.9 1 GbE
In 1 GbE mode, one XAUI lane on the host interface services the 1 GbE signal (1.25 Gbps). A single
reference clock input pin, XREFCK, is used by both the line-and host-side interfaces to transmit
appropriate rates. For more information about supported reference clock frequencies, see Table 65,
page 141. MACs should be enabled to meet the pause turn around time spec, as defined in the IEEE
specifications.
Figure 107 • 1 GbE
XRX[3] Flow
Host Line
or SerDes 1G PCS Control 1G PCS SerDes TXOUT
MAC MAC
XRX[0] Buffer
HOST LINE
1 GbE SFP
XTX[3] Flow
Host Line TXIN
or SerDes 1G PCS Control 1G PCS SerDes
MAC MAC
XTX[0] Buffer
pre-programmed number indicating the channel number. Up to sixteen VSC8491-17 devices can be
controlled by a single MDIO host.
SPI instruction. The serial data bits consist of 1 read/write command bit, 23 address bits and 32 register
data bits.
The 23-bit addressing scheme consists of a 2-bit channel number, a 5-bit MDIO device number, and a
16-bit register number. For example, the 23-bit register address for accessing the
GPIO_0_Config_Status register in channel 1 (device number is 0x1E and register number is 0x0100) is
0x3E0100. The notion of device number conforms to MDIO register groupings. For example, device 2 is
assigned to WIS registers.
The following table shows the order in which the bits are transferred on the interface. Bit 55 is transferred
first, and bit 0 is transferred last. This sequence applies to both the MOSI and MISO pins.
The register data received on the MOSI pin during a write operation is the data value to be written to a
VSC8491-17 register. Register data received on the MOSI pin during a read operation is not used, but
must still be delivered to the device.
The VSC8491-17 device SPI slave has a pipelined read process. Two read instructions must be sent to
read a single register. The first read instruction identifies the register address to be read. The MISO data
transmitted on the second read instruction contains the register contents from the address specified in
the first instruction. While a pipelined read implementation is not the most efficient use of bandwidth to
read a single register, it is very efficient when performing multiple back-to-back reads (as would be the
case when reading 1588's TSFIFO_* registers). The second read instruction contains the address for the
second register to be read, plus the data read from the first register. The third read instruction contains
the address for the third register to be read, plus the data read from the second register. Register reads
can continue in this fashion indefinitely. The following illustrations show the situations where back-to-
back read instructions are issued.
Figure 108 • SPI Single Register Read
(Don t (Don t
MOSI R ADDR A R ADDR B
care) care)
SPI Read
SPI Read
Instruction
Instruction #2
#1
The SPI read instruction illustrations also point out the read/write state and address bits on the MISO
output match the information received in the previous instruction. The SPI master could use this data to
verify the device captured the previous instruction properly, or simply ignore the data. The following
illustration shows the MISO output during write instructions reporting the previous instruction's read/write
state, address, and register write data.
Figure 110 • SPI Multiple Register Writes
Write Write Write
MOSI W ADDR A W ADDR B W ADDR C
DATA A DATA B DATA C
The following illustration shows that when a read instruction followings a write instruction, the MISO data
during the read instruction is the data field from the previous write.
Figure 111 • SPI Read Following Write
Write Write (Don t
MOSI W ADDR A W ADDR B R ADDR C
DATA A DATA B care)
The following illustration shows that when a write instruction followings a read instruction, the MISO data
during the write instruction is not pipelined read data. MISO contains all 0's in the data field.
Figure 112 • SPI Write Following Read
(Don t (Don t Write
MOSI R ADDR A R ADDR B W ADDR C
care) care) DATA C
Some VSC8491-17 registers are made up of less than 32 data bits. Any bits not defined for a register will
return a 0 when the register is read. Reading an invalid register address will return 0x0.
There is one hazard condition to be aware of when issuing two read instructions to read a single clear-
on-read register. Issuing two read instructions internally fetches data twice, even though valid read data
is present only in the second instruction. Fetching data also resets a clear-on-read register. The address
specified in the second read instruction should be something other than the clear-on-read register
address. This prevents an event causing register re-assertion occurring between the two read
instructions from being cleared and never detected. The address in the second instruction can be any
register not having a clear-on-read function. Device_ID is one example. The same address can be used
in each read instruction when continuously polling a clear-on-read register. This works because
subsequently fetched data is transmitted from the interface, allowing assertion between reads to be
detected. Only the last read instruction where fetched data is not transmitted, should some other address
in the instruction be used.
MISO R/W ADDR[22] ADDR[21] ... DATA[31] DATA[30] ... DATA[0] R/W
R/W data matches this instruction and carries over to next instruction
MISO R/W ADDR[22] ADDR[21] ... DATA[31] DATA[30] ... DATA[0] R/W
R/W data matches this instruction and carries over to next instruction
MISO output timing is the only difference between the two SPI modes. Sampling of MOSI on the rising
SCK clock edge remains the same, so writing to the VSC8491-17 device registers is identical in both
modes. Thus, the SPI_CTRL.FAST_MODE register setting may be modified using the SPI slave port to
change the port's MISO output timing.
Note: The two-wire serial slave interface does not work with two-wire serial masters using 10-bit slave
addresses.
A valid START condition is generated by a two-wire serial master device by transitioning the SDA line
from high to low while the SCL line is high. Data is then transferred on the SDA line, most significant bit
(MSB) first, with the SCL line clocking data. Data transitions during SCL low periods are valid (read) or
latched (write) when SCL pulses high then low. Data transfers are acknowledged (ACK) by the receiving
device for data writes and by the master for data reads. An acknowledge is signaled by holding the SDA
signal low while pulsing SCL high then low. The master terminates data transfer by generating a STOP
condition by transitioning SDA low to high while SCL is high.
Note: If the external two-wire serial master device gets out of sync with the two-wire serial slave interface, the
master device must issue a bus reset sequence. This puts the two-wire serial slave interface back into a
state that allows it to receive future two-wire serial instructions. The external two-wire serial master
device and the two-wire serial slave interface can become out-of-sync and freeze the bus if either device
is reset during an instruction.
The following illustration shows a two-wire serial bus reset sequence. The reset sequence consists of a
START symbol, nine SCK clock pulses while SDA is high, another START symbol, and a STOP symbol.
Figure 115 • Two-Wire Serial Bus Reset Sequence
1 2 8 9
SCL
SDA
Registers in the VSC8491-17 device are accessed using the 24-bit addressing scheme. The first 8 bits
consist of one logic LOW, the channel number (00, 01, 10, 11), and the 5-bit MDIO device number of the
register to be accessed. The next 16 bits are the register number. For example, the 24-bit register
address for accessing the GPIO_0_Config_Status register in channel 1 (device number 0x1E and
register number 0x0100) is 0x3E0100. The notion of device number conforms to MDIO register
groupings. For example, device 2 is assigned to WIS registers. The following illustration shows the 24-bit
addressing scheme used to access registers.
Figure 116 • Two-Wire Serial Slave Register Address Format
An illegal two-wire serial slave read instruction to an invalid channel number, device number, or register
address will return a read value of 0x0000 when the slave address matches this device.
Four bytes of data are transferred on the two-wire serial bus after the address when a register is read or
written. Data register bits [31:24] are transferred first, followed by bits [23:16], bits [15:8] and finally bits
[7:0]. An ACK symbol is sent between each byte of data. Any bits not defined in a register will return a 0
when the register is read.
The following illustration shows the data transferred on the SDA pin during a register write operation. The
R/W bit following the slave address is set to logic low to specify a write operation.
1 0 0 0 0 0
R A A A A
/ C C C C
W K K K K
S
T
O
P
B A A A B A
I C C C I C
T K K K T K
3 0
1
The register address to be accessed is specified by initiating a write operation. After the slave address
and three register address bytes are sent to the VSC8491-17 device, a START condition must be re-
sent, followed by the slave address with the read/write bit set to logic high. The four-byte data register
contents are then transmitted from the VSC8491-17 device. The two-wire serial (master) sends NO ACK
after the fourth data byte to indicate it has finished reading data. The following illustration shows data
transferred on the SDA pin during a register read operation.
Figure 118 • Two-Wire Serial Read Instruction
S W S
T R T R
A I Register Address A E
R T R A
T Slave Address E T Slave Address D
1 0 0 0 0 0 0 1 0 0 0 1
R A A A A R A
/ C C C C / C
W K K K K W K
S
T
O
P
B A A A B N
I C C C I O
T K K K T
A
3 0 C
1 K
The two-wire serial slave interface supports sequential read and sequential write instructions.
The two-wire serial master interface must be configured before initiating any instructions. The slave ID to
be transmitted in the first byte of every instruction is selectable in the SLAVE_ID register. The default
setting is 0x50. The interface's data rate is determined by the PRESCALE register. The default data rate
is 400 kbps.
The two-wire serial master transmits instructions for slave devices with 8-bit data registers and 256
register addresses per slave ID. Always read register I2C_BUS_STATUS.I2C_BUS_BUSY or
I2C_READ_STATUS_DATA.I2C_BUS_BUSY to verify the previous instruction has finished prior to
initiating a new instruction. Instructions initiated when the interface is busy will be ignored. Both registers
report the same interface busy status. The same busy status is reported in two registers for user
convenience.
The two-wire serial master initiates a write instruction when the I2C_WRITE_CTRL register is written.
The value written to I2C_WRITE_CTRL.WRITE_ADDR is the register address to be modified in the slave
device. The value written to I2C_WRITE_CTRL.WRITE_DATA is the data to be written to the slave
device's register. The I2C_BUS_STATUS register reports the status of the write instruction.
I2C_BUS_STATUS.I2C_BUS_BUSY indicates when the instruction has finished.
I2C_BUS_STATUS.I2C_WRITE_ACK=1 means the two-wire serial master received ACKs from the slave
at appropriate times. I2C_BUS_STATUS.I2C_WRITE_ACK is cleared each time a new instruction is
issued. If the two-wire serial master did not receive ACKs from the slave at appropriate times
(I2C_BUS_STATUS.I2C_WRITE_ACK=0), the interface is likely stuck in a state waiting for the ACK.
Writing a 1 to the BLOCK_LEVEL_RESET1.I2CM_RESET register will reset the two-wire serial master
and release it from its stuck state. The slave device should then be put into a known state by writing any
value to the I2C_RESET_SEQ register. The two-wire serial master issues a bus reset sequence when
this register is written. For more information, see Two-Wire Serial (Slave) Interface, page 150.
The two-wire serial master initiates a read instruction when the I2C_READ_ADDR register is written. The
value written to I2C_READ_ADDR.READ_ADDR is the register address to be accessed in the slave
device. I2C_READ_STATUS_DATA.READ_DATA contains the data read from the slave device.
READ_DATA is not valid until I2C_READ_STATUS_DATA.I2C_BUS_BUSY=0 to indicate the instruction
completed. The two-wire serial master does not support read-increment instructions.
3.15.6 GPIO
General purpose input/output (GPIO) pins in the VSC8491-17 device serve multiple functions. The GPIO
pins are bidirectional where the driver portion is an open-drain buffer. The following table shows the
functions that each pin supports and the registers used to configure the pin functions. Leave GPIO pins
unconnected when not in use. When configured as output, they are open-drained and a pull-up is
required.
When a GPIO pin is programmed to be a traditional I/O, the pin may be driven high or low. It may also
serve as an input and an LED driver capable of blinking at various rates. An interrupt pending register
may optionally be asserted when the pin is in input mode and the pin changes state. All of these
functions are configured using the pin configuration register settings shown in the preceding table.
The GPIO pin's output driver is automatically enabled when the pin function is set to observe internal
signals. The second configuration register listed for each pin selects which internal signal is transmitted
from the pin.
3.15.7 JTAG
The VSC8491-17 device has a IEEE 1149.1–2001 compliant JTAG interface. The following table shows
the supported instructions and corresponding instruction register codes. The code's least significant bit is
shifted into TDI first when loading an instruction (the 0 is shifted in first when loading the IDCODE
instruction).
4 Registers
Information about the registers for this product is available in the attached Adobe Acrobat file. To view or
print the information, double-click the attachment icon.
5 Electrical Specifications
5.1 DC Characteristics
This section contains the DC specifications for the VSC8491-17 device.
1. Determined by the loading current of the other devices connecting to this pin, the IOZH current of this pin, and
the value of the pull-up resistor used.
5.2 AC Characteristics
This section contains the AC specifications for the VSC8491-17 device. The specifications apply to all
channels. All the XAUI/RXAUI/SFI I/Os should be AC-coupled and work in differential.
Table 73 • Line-Side 10G Receiver Input (SFI Point D 9.95328G) AC Characteristics (continued)
The following illustration shows the sinusoidal jitter tolerance for the SFI datacom.
Figure 119 • SFI Datacom Sinusoidal Jitter Tolerance
Sinusoidal Jitter Tolerance (UIp-p)
–20 dB/Dec
5.0
0.05
0.04 0.4 4 40
Frequency (MHz)
The following table lists the 10G input jitter specifications for the VSC8491-17 device.
The host-side 6.25 Gbps receiver operating in RXAUI mode complies with the AC characteristics
specified for CEI-6G-SR interfaces according to OIF-CEI-02.0.
The following table lists the host-side 3.125 Gbps receiver characteristics when operating in XAUI mode
following IEEE 802.3 clauses 47, 54, and 71.
1. Total jitter includes sinusoidal jitter according to IEEE 802.3 clause 47.3.4.6.
The following illustration shows the sinusoidal jitter tolerance for the XAUI receiver input.
Figure 120 • XAUI Receiver Input Sinusoidal Jitter Tolerance
Sinusoidual Jitter Amplitude (UIp-p)
8.5
0.1
22.1 k 1.875 M 20 M
Frequency (Hz)
The following table lists the line-side 1.25 Gbps SFI input specifications for the VSC8491-17 device.
The host-side 1.25 Gbps receiver operating in 1000BASE-KX mode complies with IEEE 802.3 clause 70.
1. Jitter requirements represent high-frequency jitter (above 637 kHz) and not low-frequency jitter or wander.
1. Reflection coefficient given by the equation SDD22(dB) = –6.68 + 12.1 Log10(f/5.5), with f in GHz.
2. S-parameter equation SCC22(dB) = -7 + 1.6 × f, with f in GHz.
The following illustration shows the compliance mask associated with the Tx SFI transmit differential
output.
Y2
Y1
Voltage
0
–Y1
–Y2
The following table shows the transmit path output specifications for SFI point B with 7 dB SFI channel
loss.
The following table shows that the 10 Gbps transmitter operating in 10GBASE-KR mode complies with
IEEE 802.3 clause 72.7.
The following table shows the transmit path SONET jitter specifications for point A, measured with
register optimization and using a clock rate of 156.25 MHz or 155.52 MHz.
The near-end 6.25 Gbps transmitter output operating in RXAUI mode complies with the AC
characteristics specified for CEI-6G-SR interfaces according to OIF-CEI-02.0.
The far-end 6.25 Gbps transmitter output operating in RXAUI mode complies with the AC characteristics
specified for CEI-6G-SR interfaces according to OIF-CEI-02.0.
The following table lists the far-end XAUI output specifications for the VSC8491-17 device.
The following illustration shows the compliance mask for the XAUI output.
Figure 122 • XAUI Output Compliance Mask
Differential Signal Amplitude (V)
A2
A1
−A1
−A2
0 X1 X2 1-X2 1-X1 1
The following table lists the line-side 1.25 Gbps SFI output specifications for the VSC8491-17 device.
The host-side transmitter operating in 1000BASE-KX mode complies with IEEE 802.3 clause 70.
1. XREFCK (LAN mode applications) frequency may be set to 125 MHz or 156.25 MHz. WREFCK (LAN or WAN mode Synchronous
Ethernet applications) frequency may be set to 155.52 MHz. SREFCK (LAN mode Synchronous Ethernet applications) frequency
is 156.25 MHz.
2. Contact your Microsemi representative for other frequencies.
The following illustration shows the worst-case clock jitter transfer characteristic for the XREFCK input.
Figure 123 • XREFCK to Data Output Jitter Transfer
3.0 dB
0 dB
-3.0 dB
-6.0 dB
-9.0 dB
gain
-12.0 dB
-15.0 dB
-18.0 dB
-21.0 dB
-24.0 dB
frequency
1. Minimum value is determined from IOL and internal reliability requirements. Maximum value is determined by
load capacitance. Microsemi recommends 10 kΩ for typical applications in which capacitance loads are
below the specified minimums.
SDA
SCL
The following illustration shows the timing with the MDIO sourced by STA.
MDC
VIH (MIN)
VIH (MIN)
MDIO
VIH (MIN)
10 ns minimum
10 ns minimum
The following illustration shows the timing with the MDIO sourced by MMD.
Figure 126 • Timing with MDIO Sourced by MMD
VIH (MIN)
MDC
VIH (MIN)
VIH (MIN)
MDIO
VIH (MIN)
0 ns Minimum
300 ns Maximum
The following table lists the clock output specifications (RX0CKOUT, RX1CKOUT, TX0CKOUT,
TX1CKOUT) for the VSC8491-17 device.
Load/Save Load/Save
thold tsetup
SSN
MOSI
tSU,MOSI tHD,MOSI
SCK
tDLY,NORM
MISO,
Normal
Mode
tON,MISO tDLY,FAST tOFF,MISO
MISO,
Fast
Mode
The following table lists the AC characteristics for the 3-pin push-out SPI.
SPI_CLK
SPI_DO
SPI_CS
1. This device has completed all required testing as specified in the JEDEC standard JESD22-A114,
Electrostatic Discharge (ESD) Sensitivity Testing Human Body Model (HBM), and complies with a Class 2
rating. The definition of Class 2 is any part that passes an ESD pulse of 2000 V, but fails an ESD pulse of
4000 V.
Warning This device can be damaged by electrostatic discharge (ESD) voltage. Microsemi
recommends that all integrated circuits be handled with appropriate precautions. Failure to observe
proper handling and installation procedures may adversely affect reliability of the device.
6 Pin Descriptions
The VSC8491-17 device has 196 pins, which are described in this section.
The pin information is also provided as an attached Microsoft Excel file, so that you can copy it
electronically. In Adobe Reader, double-click the attachment icon.
B GND GND XTX0_3N XTX0_2N XTX0_1N XTX0_0N TDION RX0CKOUTP GND TX0CKOUTP GND GND RXIN0N RXIN0P
C XRX0_0P XRX0_0N VDDTTL GND GND RESETN VDDMDIO PADDR2 VDDTTL GPIO_12 GPIO_13 GND GND GND
D XRX0_1P XRX0_1N GND GPIO_0 GPIO_1 LOPC0 MDC CLK1588P SSN PADDR1 SC K GND TXOUT0P TXOUT0N
E XRX0_2P XRX0_2N GND GPIO_2 GPIO_3 PADDR4 MDIO CLK1588N MOSI PADDR3 MISO GND GND GND
F XRX0_3P XRX0_3N GND GPIO_4 GPIO_5 GND VDDAL GND VDDHSL VDDHSL GND GND XREFCKP XREFCKN
G GND GND GND VDDAH VDDAH GND VDDAL GND VDDAL VDDHSL GND GND GND GND
H XTX1_0P XTX1_0N GND VDDL VDDL GND VDDL GND VDDAL VDDHSL GND SREFCKP GND WREFCKP
J XTX1_1P XTX1_1N GND VDDAH VDDAH GND VDDAL GND VDDHSL VDDHSL GND SREFCKN GND WREFCKN
K XTX1_2P XTX1_2N GND GPIO_6 GPIO_7 GPIO_8 SPI_CLK TDO TC K TRSTB MODE0 GND GND GND
L XTX1_3P XTX1_3N GND GPIO_9 GPIO_10 GPIO_11 SPI_DO TDI SCAN_EN SPI_CS RCOMPP GND NC NC
M GND GND GND GND TMS VDDTTL NC NC MODE1 GND RCOMPN GND GND GND
N GND XRX1_0P XRX1_1P XRX1_2P XRX1_3P GND NC GND NC GND GPIO_14 GND NC NC
P GND XRX1_0N XRX1_1N XRX1_2N XRX1_3N GND NC GND NC GND GPIO_15 GND GND GND
The following table lists the definitions for the pin type symbols.
JTAG TCK K9 I LVTTL Boundary scan, test clock input. Internally pulled high.
JTAG TDI L8 I LVTTL Boundary scan, test data input. Internally pulled high.
JTAG TMS M5 I LVTTL Boundary scan, test mode select. Internally pulled high.
JTAG TRSTB K10 I LVTTL Boundary scan, test reset input. Internally pulled high.
Power and Ground VDDAH G4 P Supply 1.0 V power supply for host side analog
Power and Ground VDDAH G5 P Supply 1.0 V power supply for host side analog
Power and Ground VDDAH J4 P Supply 1.0 V power supply for host side analog
Power and Ground VDDAH J5 P Supply 1.0 V power supply for host side analog
Power and Ground VDDAL F7 P Supply 1.0 V power supply for line side analog
Power and Ground VDDAL G7 P Supply 1.0 V power supply for line side analog
Power and Ground VDDAL G9 P Supply 1.0 V power supply for line side analog
Power and Ground VDDAL H9 P Supply 1.0 V power supply for line side analog
Power and Ground VDDAL J7 P Supply 1.0 V power supply for line side analog
Power and Ground VDDHSL F9 P Supply 1.2 V power supply for line side IOs
Power and Ground VDDHSL F10 P Supply 1.2 V power supply for line side IOs
Power and Ground VDDHSL G10 P Supply 1.2 V power supply for line side IOs
Power and Ground VDDHSL H10 P Supply 1.2 V power supply for line side IOs
Power and Ground VDDHSL J9 P Supply 1.2 V power supply for line side IOs
Power and Ground VDDHSL J10 P Supply 1.2 V power supply for line side IOs
Power and Ground VDDL H4 P Supply 1.0 V power supply for chip core
Power and Ground VDDL H5 P Supply 1.0 V power supply for chip core
Power and Ground VDDL H7 P Supply 1.0 V power supply for chip core
XAUI Channel XTX1_1P J1 O CML XAUI channel 1, Tx path lane 1, serial data output, true
XAUI channel 1, Tx path lane 2, serial data output,
XAUI Channel XTX1_2N K2 O CML
complement
XAUI Channel XTX1_2P K1 O CML XAUI channel 1, Tx path lane 2, serial data output, true
XAUI channel 1, Tx path lane 3, serial data output,
XAUI Channel XTX1_3N L2 O CML
complement
XAUI Channel XTX1_3P L1 O CML XAUI channel 1, Tx path lane 3, serial data output, true
JTAG TDI L8 I LVTTL Boundary scan, test data input. Internally pulled high.
Power and
GND A14 P GND Ground
Ground
Power and
GND B1 P GND Ground
Ground
Power and
GND B2 P GND Ground
Ground
Power and
GND B9 P GND Ground
Ground
Power and
GND B11 P GND Ground
Ground
Power and
GND B12 P GND Ground
Ground
Power and
GND C3 P GND Ground
Ground
Power and
GND C4 P GND Ground
Ground
Power and
GND C5 P GND Ground
Ground
Power and
GND C12 P GND Ground
Ground
Power and
GND C13 P GND Ground
Ground
Power and
GND C14 P GND Ground
Ground
Power and
GND D3 P GND Ground
Ground
Power and
GND D12 P GND Ground
Ground
Power and
GND E3 P GND Ground
Ground
Power and
GND E12 P GND Ground
Ground
Power and
GND E13 P GND Ground
Ground
Power and
GND E14 P GND Ground
Ground
Power and
GND F3 P GND Ground
Ground
Power and
GND F6 P GND Ground
Ground
Power and
GND F8 P GND Ground
Ground
Power and
GND F11 P GND Ground
Ground
Power and
GND F12 P GND Ground
Ground
Power and
GND G1 P GND Ground
Ground
Power and
GND G2 P GND Ground
Ground
Power and
GND G3 P GND Ground
Ground
Power and
GND G6 P GND Ground
Ground
Power and
GND G8 P GND Ground
Ground
Power and
GND G11 P GND Ground
Ground
Power and
GND G12 P GND Ground
Ground
Power and
GND G13 P GND Ground
Ground
Power and
GND G14 P GND Ground
Ground
Power and
GND H3 P GND Ground
Ground
Power and
GND H6 P GND Ground
Ground
Power and
GND H8 P GND Ground
Ground
Power and
GND H11 P GND Ground
Ground
Power and
GND H13 P GND Ground
Ground
Power and
GND J3 P GND Ground
Ground
Power and
GND J6 P GND Ground
Ground
Power and
GND J8 P GND Ground
Ground
Power and
GND J11 P GND Ground
Ground
Power and
GND J13 P GND Ground
Ground
Power and
GND K3 P GND Ground
Ground
Power and
GND K12 P GND Ground
Ground
Power and
GND K13 P GND Ground
Ground
Power and
GND K14 P GND Ground
Ground
Power and
GND L3 P GND Ground
Ground
Power and
GND L12 P GND Ground
Ground
Power and
GND M1 P GND Ground
Ground
Power and
GND M2 P GND Ground
Ground
Power and
GND M3 P GND Ground
Ground
Power and
GND M4 P GND Ground
Ground
Power and
GND M10 P GND Ground
Ground
Power and
GND M12 P GND Ground
Ground
Power and
GND M13 P GND Ground
Ground
Power and
GND M14 P GND Ground
Ground
Power and
GND N1 P GND Ground
Ground
Power and
GND N6 P GND Ground
Ground
Power and
GND N8 P GND Ground
Ground
Power and
GND N10 P GND Ground
Ground
Power and
GND N12 P GND Ground
Ground
Power and
GND P1 P GND Ground
Ground
Power and
GND P6 P GND Ground
Ground
Power and
GND P8 P GND Ground
Ground
Power and
GND P10 P GND Ground
Ground
Power and
GND P12 P GND Ground
Ground
Power and
GND P13 P GND Ground
Ground
Power and
GND P14 P GND Ground
Ground
Power and
VDDAH G4 P Supply 1.0 V power supply for host side analog
Ground
Power and
VDDAH G5 P Supply 1.0 V power supply for host side analog
Ground
Power and
VDDAH J4 P Supply 1.0 V power supply for host side analog
Ground
Power and
VDDAH J5 P Supply 1.0 V power supply for host side analog
Ground
Power and
VDDAL F7 P Supply 1.0 V power supply for line side analog
Ground
Power and
VDDAL G7 P Supply 1.0 V power supply for line side analog
Ground
Power and
VDDAL G9 P Supply 1.0 V power supply for line side analog
Ground
Power and
VDDAL H9 P Supply 1.0 V power supply for line side analog
Ground
Power and
VDDAL J7 P Supply 1.0 V power supply for line side analog
Ground
Power and
VDDHSL F9 P Supply 1.2 V power supply for line side IOs
Ground
Power and
VDDHSL F10 P Supply 1.2 V power supply for line side IOs
Ground
Power and
VDDHSL G10 P Supply 1.2 V power supply for line side IOs
Ground
Power and
VDDHSL H10 P Supply 1.2 V power supply for line side IOs
Ground
Power and
VDDHSL J9 P Supply 1.2 V power supply for line side IOs
Ground
Power and
VDDHSL J10 P Supply 1.2 V power supply for line side IOs
Ground
Power and
VDDL H4 P Supply 1.0 V power supply for chip core
Ground
Power and
VDDL H5 P Supply 1.0 V power supply for chip core
Ground
Power and
VDDL H7 P Supply 1.0 V power supply for chip core
Ground
Power and
VDDMDIO C7 P Supply MDIO power supply
Ground
Power and
VDDTTL C9 P Supply LVTTL power supply
Ground
Power and
VDDTTL M6 P Supply LVTTL power supply
Ground
Receive and Loss of optical carrier, channel 0. Internally pulled
LOPC0 D6 I LVTTL
Transmit Path high.
Receive and Loss of optical carrier, channel 1. Internally pulled
LOPC1 M7 I LVTTL
Transmit Path high.
Receive and
RXIN0N B13 I CML Receive channel 0 input data, complement
Transmit Path
Receive and
RXIN0P B14 I CML Receive channel 0 input data, true
Transmit Path
Receive and
RXIN1N L14 I CML Receive channel 1 input data, complement
Transmit Path
Receive and
RXIN1P L13 I CML Receive channel 1 input data, true
Transmit Path
Receive and
TXOUT0N D14 O CML Transmit channel 0 output data, complement
Transmit Path
Receive and
TXOUT0P D13 O CML Transmit channel 0 output data, true
Transmit Path
Receive and
TXOUT1N N13 O CML Transmit channel 1 output data, complement
Transmit Path
Receive and
TXOUT1P N14 O CML Transmit channel 1 output data, true
Transmit Path
Reserved/No
NC D8 No connect
Connect
Reserved/No
NC E8 No connect
Connect
Reserved/No
NC K7 No connect
Connect
Reserved/No
NC L7 No connect
Connect
Reserved/No
NC L10 No connect
Connect
Reserved/No
NC M8 No connect (formerly labeled as ANATEST)
Connect
SPI MISO E11 O LVTTL SPI slave data output
SPI MOSI E9 I LVTTL SPI slave data input
SPI SCK D11 I LVTTL SPI slave clock input
SPI SSN D9 I LVTTL SPI slave chip select input
XAUI channel 0, Rx path lane 0, serial data input,
XAUI Channel XRX0_0N C2 I CML
complement
XAUI channel 0, Rx path lane 0, serial data input,
XAUI Channel XRX0_0P C1 I CML
true
XAUI channel 0, Rx path lane 1, serial data input,
XAUI Channel XRX0_1N D2 I CML
complement
XAUI channel 0, Rx path lane 1, serial data input,
XAUI Channel XRX0_1P D1 I CML
true
XAUI channel 0, Rx path lane 2, serial data input,
XAUI Channel XRX0_2N E2 I CML
complement
XAUI channel 0, Rx path lane 2, serial data input,
XAUI Channel XRX0_2P E1 I CML
true
XAUI channel 0, Rx path lane 3, serial data input,
XAUI Channel XRX0_3N F2 I CML
complement
XAUI channel 0, Rx path lane 3, serial data input,
XAUI Channel XRX0_3P F1 I CML
true
XAUI channel 1, Rx path lane 0, serial data input,
XAUI Channel XRX1_0N P2 I CML
complement
XAUI channel 1, Rx path lane 0, serial data input,
XAUI Channel XRX1_0P N2 I CML
true
XAUI channel 1, Rx path lane 1, serial data input,
XAUI Channel XRX1_1N P3 I CML
complement
XAUI channel 1, Rx path lane 1, serial data input,
XAUI Channel XRX1_1P N3 I CML
true
7 Package Information
The VSC8491YJU-17 package is a lead-free (Pb-free), 196-pin, flip chip ball grid array (FCBGA) with a
15 mm × 15 mm body size, 1 mm pin pitch, and 1.4 mm maximum height.
Lead-free products from Microsemi comply with the temperatures and profiles defined in the joint IPC
and JEDEC standard IPC/JEDEC J-STD-020. For more information, see the IPC and JEDEC standard.
This section provides the package drawing, thermal specifications, and moisture sensitivity rating for the
VSC8491-17 device.
B
C
e
D
E
F
G
D D1
H
J
K
L
M
N
P
e
B
E1
A E
0.20 (4×) Øb
Ø 0.10 M C
Ø 0.25 M C A B
0.35 C
Side View
0.20 C
PCB). For more information about the thermal measurement method used for this device, see the
JESD51-1 standard.
To achieve results similar to the modeled thermal measurements, the guidelines for board design
described in the JESD51 family of publications must be applied. For information about applications using
FCBGA packages, see the following:
• JESD51-2A, Integrated Circuits Thermal Test Method Environmental Conditions, Natural Convection
(Still Air)
• JESD51-6, Integrated Circuit Thermal Test Method Environmental Conditions, Forced Convection
(Moving Air)
• JESD51-8, Integrated Circuit Thermal Test Method Environmental Conditions, Junction-to-Board
• JESD51-9, Test Boards for Area Array Surface Mount Package Thermal Measurements
8 Design Considerations
This section provides information about design considerations for the VSC8491-17 device.
9 Ordering Information
The VSC8491YJU-17 package is a lead-free (Pb-free), 196-pin, flip chip ball grid array (FCBGA) with a
15 mm × 15 mm body size, 1 mm pin pitch, and 1.4 mm maximum height.
Lead-free products from Microsemi comply with the temperatures and profiles defined in the joint IPC
and JEDEC standard IPC/JEDEC J-STD-020. For more information, see the IPC and JEDEC standard.
The following table lists the ordering information for the VSC8491-17 device.