Design and Architecture of Data Center Networking Platforms
Lincoln Dale <ltd@cisco.com>
TME, Data Center Switching
Agenda
Part I—Design Considerations
Part II—Architectures
Part III—Real World Implementation
Part IV—The Future
Part I – Design
Considerations
Part I—Design Considerations
Many Factors to Weigh
Buffering
Multiprotocol
One Plus One Is Not Necessarily Equal to Two
Future (Investment Protection)
Many Factors to Weigh
Standards requirements
Market requirements
Designability
Silicon technology
Processor technology
Applicable to Any Switch/Router Design
Product is chassis and network
Manufacturability
Time to market
Flexibility
Budget
Many Factors to Weigh
Buffering
No packet drop
Throughput
Port count
Modular
No single point of failure
In-order delivery
Future protocol
Data Plane
Modular
Restartable (including
active-active state handling)
Non-disruptive code load &
activation
No single point of failure
Scaleable
Unit Testable
Future protocol compatibility
Control plane
Baseline Data Center Switch requirements
Part I—Design Considerations
Many Factors to Weigh
Buffering
Multiprotocol
One Plus One Is Not Necessarily Equal to Two
Future (Investment Protection)
In A
In B
Out C
Out D
Switch Switch
Buffering
A-C
Output Output
Input Input
Out C
Out D
Switch Switch
Output Output
Input Input
In A
In B
Switch Switch
Buffering
A-C
In A
In B
Out C
Out D
Buffering
A-C
Switch Switch
Output Output
Input Input
In A
In B
Out C
Out D
Buffering
A-C
B-C
Switch Switch
Output Output
Input Input
In A
In B
Out C
Out D
Switch Switch
Output Output
Input Input
Buffering
X X
A-C
B-C
Buffering
In A A-C
In B
Out C
Out D
Switch Switch
Output Output
Input Input
Out C
Out D Out C
Out D In A
In B
Switch Switch
Output Output
Input Input
Switch Switch
Buffering
A-C
B-C
Out C
Out D
Switch Switch
Output Output
Input Input
In A
In B
Buffering
A-C
B-C
Out C
Out D
Switch Switch
Output Output
Input Input
In A
In B
Buffering
A-C
B-C
Buffering
A-C B-C In A
In B
Out C
Out D
Switch Switch
Output Output
Input Input
Part I—Design Considerations
Many Factors to Weigh
Buffering
Multiprotocol
One Plus One Is Not Necessarily Equal to Two
Future (Investment Protection)
Multi Protocol
Protocol Agnostic
Protocol Translation
Drop Behavior
Shared Uplinks
Multiple Topologies
IP/Ethernet
802.11 “WiFi”
802.16 “WiMax”
FDDI
Vines
XNS
AppleTalk
IPX/SPX
Netbeui
DECnet
OSI/ISO
ArcNet
10Base{2,5,T} / 100Base{S,T,TX} / 1000BaseT
10GbE
Fibre Channel
FICON
ESCON
Token Ring
IP & TCP
IPv4/IPv6
802.1q VLANs
MPLS /
MPLS {P,PE} / MPLE {CE,..}, ..
VPLS
q-in-q VLAN encapsulation
802.2 LLC/SNAP
ATM
Frame Relay
DOCSIS
Part I—Design Considerations
Many Factors to Weigh
Buffering
Multiprotocol
One Plus One Is Not Necessarily Equal to Two
Future (Investment Protection)
One Plus One Does Not Equal Two
Switch A Switch A Switch BSwitch B
10 Links @ 1Gbps Each Bandwidth = 10Gbps Flow Bandwidth = 1Gbps Serialization Delay = 20uS
1 Link @ 10Gbps Each Bandwidth = 10Gbps Flow Bandwidth = 10Gbps
Serialization Delay = 2uS
Switch A Switch A Switch B Switch B
Part II –
Architectures
Part II—Architectures
Centralized Memory
Switch on a Chip / “System on Chip” (SoC)
Bus
Mesh
Centralized memory in a mesh
Two-Tier / Banyan / Clos
Centralized memory in two tiers
Cross-Bar
Part II—Architectures
Centralized Memory
Switch on a chip / “System on Chip” (SoC)
Bus
Mesh
Centralized memory in a mesh
Two-Tier / Banyan / Clos
Centralized memory in two tiers
Cross-Bar
Centralized Memory
Input 3 Input 2 Input 1 Output 3 Output 2 Output 1
Scalability limited by memory bandwidth/size
Typically optimized for fixed configuration—
inflexible
Port count 8–32
Cost effective with small port counts
Often used as building block
Almost required for Blade
Input 3 Input 2 Input 1 Output 3 Output 2 Output 1
Centralized Memory
Scalability limited by memory bandwidth/size
Typically optimized for
fixed configuration— inflexible
Port count 8–32
Cost effective with small port counts
Often used as building block
Almost required for Blade
Server Applications
Input 3 Input 2 Input 1 Output 3 Output 2 Output 1
Centralized Memory
Scalability limited by memory bandwidth/size
Typically optimized for
fixed configuration— inflexible
Port count 8–32
Cost effective with small port counts
Often used as building block
Almost required for Blade
Server Applications
Input 3 Input 2 Input 1 Output 3 Output 2 Output 1
Centralized Memory
Scalability limited by memory bandwidth/size
Typically optimized for
fixed configuration— inflexible
Port count 8–32
Cost effective with small port counts
Often used as building block
Almost required for Blade
Server Applications
Input 3 Input 2 Input 1 Output 3 Output 2 Output 1
Centralized Memory
Scalability limited by memory bandwidth/size
Typically optimized for
fixed configuration— inflexible
Port count 8–32
Cost effective with small port counts
Often used as building block
Almost required for Blade
Server Applications
Input 3 Input 2 Input 1 Output 3 Output 2 Output 1
Centralized Memory
3
2
1
Scalability limited by memory bandwidth/size
Typically optimized for
fixed configuration— inflexible
Port count 8–32
Cost effective with small port counts
Often used as building block
Almost required for Blade
Server Applications
Input 3 Input 2 Input 1 Output 3 Output 2 Output 1
Centralized Memory
3
2
1
Scalability limited by memory bandwidth/size
Typically optimized for
fixed configuration— inflexible
Port count 8–32
Cost effective with small port counts
Often used as building block
Almost required for Blade
Server Applications
Input 3 Input 2 Input 1 Output 3 Output 2 Output 1
Centralized Memory
3
2
1
Scalability limited by memory bandwidth/size
Typically optimized for
fixed configuration— inflexible
Port count 8–32
Cost effective with small port counts
Often used as building block
Almost required for Blade
Server Applications
Input 3 Input 2 Input 1 Output 3 Output 2 Output 1
Centralized Memory
3
Scalability limited by memory bandwidth/size
Typically optimized for
fixed configuration— inflexible
Port count 8–32
Cost effective with small port counts
Often used as building block
Almost required for Blade
Server Applications
Centralized Memory
Input 3 Input 2 Input 1 Output 3 Output 2 Output 1
Scalability limited by memory bandwidth/size
Typically optimized for
fixed configuration— inflexible
Port count 8–32
Cost effective with small port counts
Often used as building block
Almost required for Blade
Server Applications
Part II—Architectures
Centralized Memory
“Switch on a chip” / System on Chip (SoC)
Bus
Mesh
Centralized memory in a mesh
Two-Tier / Banyan / Clos
Centralized memory in two tiers
Cross-Bar
Bus
Input 1 Input 2 Input 3 Out put 1 Out put 2 Out put 3
3
2
1
Input 1 Input 2 Input 3 Out put 1 Out put 2 Out put 3
Bus
3 2
1
Input 1 Input 2 Input 3 Out put 1 Out put 2 Out put 3
Bus
X X
X X
3 2
1
Input 1 Input 2 Input 3 Out put 1 Out put 2 Out put 3
X X
Bus
X X
3
2
1
Input 1 Input 2 Input 3 Out put 1 Out put 2 Out put 3
X X
Bus
X X
3
2
1
Input 1 Input 2 Input 3 Out put 1 Out put 2 Out put 3
Bus
3
2
1
Input 1 Input 2 Input 3 Out put 1 Out put 2 Out put 3
Bus
3
2
1
Bus
Input 1 Input 2 Input 3 Out put 1 Out put 2 Out put 3
Bus with centralized memory
In 1 In 2 In 3 In 4 In 5 In 6 In 7 In 8
In 1 In 2 In 3 In 4 In 5 In 6 In 7 In 8
In 1 In 2 In 3 In 4 In 5 In 6 In 7
Out 1 Out 2 Out 3 Out 4 Out 5 Out 6 Out 7 Out 8
Out 1 Out 2 Out 3 Out 4 Out 5 Out 6 Out 7 Out 8
Out 1
Out 2
Out 3
Out 4
Out 5
Out 6
Out 7
Part II—Architectures
Centralized Memory
Switch on Chip / “System on Chip” (SoC)
Bus
Mesh
Centralized memory in a mesh
Two-Tier / Banyan / Clos
Centralized memory in two tiers
Cross-Bar
Mesh
16- 16 -Port Port Central Central Memory Memory
16- 16 -Port Port Central Central Memory Memory 16- 16 -Port Port
Central Central Memory Memory
16 16- -Port Port Central Central Memory Memory
13 External Ports
Total 52 External Ports
13:1 Blocking Factor
16- 16 -Port Port Central Central Memory Memory
16- 16 -Port Port Central Central Memory Memory 16- 16 -Port Port
Central Central Memory Memory
16 16- -Port Port Central Central Memory Memory
Total 52 External Ports
Mesh
Input A Output B
16- 16 -Port Port Central Central Memory Memory
16- 16 -Port Port Central Central Memory Memory 16- 16 -Port Port
Central Central Memory Memory
16 16- -Port Port Central Central Memory Memory
Total 52 External Ports
Input A1 Output B1’
Mesh
13:1 Over-Subscription
Input A2 Input A13
Output B2’
Output B13’
16- 16 -Port Port Central Central Memory Memory
16- 16 -Port Port Central Central Memory Memory 16- 16 -Port Port
Central Central Memory Memory
16 16- -Port Port Central Central Memory Memory
10 External Ports
Total 40 External Ports
Mesh
16- 16 -Port Port Central Central Memory Memory
16- 16 -Port Port Central Central Memory Memory 16
16- -Port Port Central Central Memory Memory
16- 16 -Port Port Central Central Memory Memory
Total 40 External Ports
Mesh
Input A1 Output B1’
10:2 Over-Subscription
Input A2 Input A10
Output B2’
Output B10’
16- 16 -Port Port Central Central Memory Memory
16- 16 -Port Port Central Central Memory Memory 16- 16 -Port Port
Central Central Memory Memory
16 16- -Port Port Central Central Memory Memory
Total 16 External Ports Non-Blocking
Mesh
4 External Ports
4 Links
Mesh
SAME
Total 16 External Ports Non-Blocking
16- 16 -Port Port Central Central Memory Memory
16- 16 -Port Port Central Central Memory Memory 16- 16 -Port Port
Central Central Memory Memory
16- 16 -Port Port Central Central Memory
Memory 4 Links
16- 16 -Port Port
Central
Central
Memory
Memory
Mesh-Based Switch
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
Mesh-Based Switch
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
Mesh-Based Switch
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
Mesh-Based Switch
A
B
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
Mesh-Based Switch
A
B C
D
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
A
B C
D E
F
Mesh Based Switch
2:1 Over-Subscription 2:1 Over-Subscription
G
H
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
Mesh-Based Switch
A
B
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
Mesh-Based Switch
A C
B D
2:1 Over-Subscription
2:1 Over-Subscription
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
A
B C
D
Mesh-Based Switch
E
F G
H
4:1 Over-Subscription
4:1 Over-Subscription
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch 16 Port Switch
16 Port Switch
16 Port Switch
16 Port Switch
Switch Switch Switch Switch
16 Port Switch 16 Port Switch 16 Port Switch 16 Port Switch