The Power of the Express Architecture · • Flexible load balancing •equal and weighted...

62
The Power of the Express Architecture Brian Petersen ASIC Architect, Distinguished Engineer

Transcript of The Power of the Express Architecture · • Flexible load balancing •equal and weighted...

Page 1: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

The Power of the Express Architecture

Brian Petersen

ASIC Architect, Distinguished Engineer

Page 2: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

This statement of direction sets forth Juniper

Networks’ current intention and is subject to

change at any time without notice. No purchases

are contingent upon Juniper Networks delivering

any feature or functionality depicted in this

presentation.

This presentation contains proprietary roadmap

information and should not be discussed or shared

without a signed non-disclosure agreement (NDA).

Page 3: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

3

Goals

• Insights into:

• The nature of pipelines

• How to add flexibility to a pipeline

• Headline features of Express

• Where Express may be deployed

Page 4: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

4

Introduction

Trio: MX

Express: PTX, QFX10K

Page 5: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

5

Page 6: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

6

Page 7: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

7

Page 8: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

8

Page 9: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

9

The Express Pipeline

Page 10: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

10

The Express Pipeline

IngressParser

SourceLookup

DestinationLookup

IngressResultProcessor

IngressRewrite

EgressParser

EgressDescriptorFetch

EgressRewrite

(fabric—L2L)

(recirculation)

(loopback)

Page 11: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

11

The Express Pipeline

DestinationLookup

IngressResultProcessor

EgressDescriptorFetch

(recirculation)

Page 12: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

12

Packet Recirculation

Page 13: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

13

What is Recirculation?

• Returns headers to start

• Processing is repeated

• Outer header is advanced

• Effectively strips outer headers

• This is tunnel termination

IngressParser

SourceLookup

DestinationLookup

IngressResultProcessor

IngressRewrite

(recirc

ula

tion)

Page 14: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

14

Why Recirculate?

• Low overhead

• Header data only

• Processing speedup

• 1 recirculation: 167 -> 230

Page 15: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

15

The Power of Recirculation

Layer 2 Layer 3 Layer 4 ?

(terminate) (forward)

Page 16: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

16

The Power of Recirculation

Page 17: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

17

The Power of Recirculation

Layer 3 Layer 4 Layer 2

(forward)

Page 18: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

18

DestinationLookup

Page 19: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

19

Lookup Instructions

• Pre-lookup and post-lookup

• Pre-lookup:

• table ID

• search algorithm

• search argument format

• Post-lookup:

• hit vs. miss actions

• sequencing

Page 20: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

20

Table ID

• Distinguishes tables

• Shared key format

• Virtualization

Page 21: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

21

Search Algorithms

• Indexed read

• Exact match

• Longest-prefix match

Page 22: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

22

Search Argument Types

• Index selection

• indexed reads

• Four-part value

• exact and longest prefix match

Page 23: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

23

Four-Part Search Argument Format

AddressPrimary Secondary Tertiary

supplemental

Page 24: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

24

Forwarding Database Entry Format

AddressPrimary Secondary Tertiary

keyControl Word

Action Word

Action Word

Action Word…

associa

ted d

ata

Page 25: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

25

The Control Word

• Entry size

• Key length

• Lookup sequencing index

• Action word structure

Page 26: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

26

Action Words

• Next-hop instructions

• Effects

• Actions

Page 27: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

27

Actions and Effects

• MPLS handling

• Metadata updates

• IPv4 NAT

• RPF check

• Counter triggers

Page 28: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

28

Lookup Sequencing

Page 29: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

29

MPLS Label Sequencing

• Look up label

• Advance label index

• Update forwarding domain

• Update derived TTL

• Repeat

Page 30: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

30

Lookup Sequencing Summarized

• MPLS label stacks

• IP Parent routes

• Routing hierarchies

• Multicast

• Reverse path forwarding check

• Same header, new parameters, subsequent lookup

Page 31: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

31

IngressResultProcessor

Page 32: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

32

Lookups and Next-Hops

H

HSource

Destination

Next Hop

H Destination

H Destination

Page 33: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

33

Lookups and Next-Hops

HSourceNext Hops

H Destination

ECMP

Page 34: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

34

Lookups and Next-Hops

HSource

H Destination

LAG

Page 35: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

35

ECMP and LAG Behaviors

• Common infrastructure in IngressResultProcessor

• Multi-way branch

• Like C’s switch statement

• One-of-n

• Uses hash value

ECMPor

LAG

Path

Page 36: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

36

Load Balancing Instructions

• NH_EQ_LIST

• NH_EMBED_EQ_LIST

• NH_IDX_LIST

• NH_WT_LIST

• NH_EMBED_UB_LIST

• NH_TH_LIST

Path

ECMPor

LAG

Page 37: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

37

Load Balancing Scale

• NH_EQ_LIST 64

• NH_EMBED_EQ_LIST 8

• NH_IDX_LIST 256

• NH_WT_LIST 256

• NH_EMBED_UB_LIST 8

• NH_TH_LIST 256

Page 38: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

38

Load Balancing Scale

• >800 ports

• Many more logical interfaces

• 256-way load balancing?

Page 39: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

39

Load Balancing Scale

ECMP

ECMP or LAG Path

Page 40: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

40

MPLS Label Management

• Uses large DestinationLookup tables

• Up to four labels

Page 41: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

41

Metadata Updates

• Forwarding domains

• Traffic class

• Drop precedence

• Control packet class

• Receive contexts

• PacketType

• simple index

• updates several values

Page 42: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

42

Transmit Port and Encapsulation ID

• Global port ID

• Combined with trafficClass -> VOQ

• Encapsulation ID is abstract

• Sent across fabric

• Mapped to instruction pointer

Page 43: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

43

Next Hop Processing Examples

Tx Port 4

Switch

Simple:

LAG:

Encap ID 23 Tx Port 5

Encap ID 33

Tx Port 6

Encap ID 27

Tx Port 8

Encap ID 19

Tx Port 11

Encap ID 41

Page 44: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

44

Next Hop Processing Examples

Switch

ECMP + LAG:

Switch

Tx Port 8

Encap ID 23

Tx Port 10

Encap ID 47

Tx Port 11

Encap ID 22

Tx Port 19

Encap ID 57

Tx Port 21

Encap ID 57

Page 45: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

45

Next Hop Processing Examples

MPLS multicast with node protection:

(off chip)

X R

D

D

Page 46: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

46

Next Hop Processing Examples

Tx Port 37

(off chip)

Switch

MPLS multicast with node protection:

Index -> Label

Encap ID 57

(Multicast ID)

(MC count = 2)

(Rep PFE)

Page 47: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

47

Other Functions

• Sample processing

• Recirculation management

• Etc.

Page 48: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

48

EgressDescriptorFetch

Page 49: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

49

Descriptors

• Processed by EgressDescriptorFetch

• Updates forwarding header

• Builds and appends new headers

• Contains:

• operators

• operands

• continuation pointer (optional)

Page 50: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

50

Header Regions

Page 51: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

51

Forwarding Header Updates

• Swap MPLS labels

• VLAN translation

• VLAN tag pop/push

• QoS updates

• TTL decrement

• Update checksum

• QoS and TTL propagation

Page 52: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

52

Opaque vs. Transparent Tunnels

TTL: 8CE: No

TTL: 8CE: No

congestion point

congestion point

TTL: 7CE: No

TTL: 3CE: Yes

Page 53: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

53

New Encapsulations

• Three encapsulating types:

• layer 2

• MPLS

• tunnel

Page 54: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

54

Header Sequencing

• Tunnel + Layer 2 + MPLS

• Tunnel + MPLS + Layer 2

• Layer 2 + Tunnel + MPLS

• Layer 2 + MPLS + Tunnel

Page 55: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

55

Other Functions

• Counters

• Policers

• IPv4 fragmentation

• More…

Page 56: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

56

Recap

Page 57: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

57

Recirculation

• Powerful tunnel termination

• Advances to next header

• Efficient

• Flexible

• 3:2 speed-up

Page 58: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

58

DestinationLookup

• Four-part search argument assembly

• Branching and looping

• Label sequencing

• Expansive associated data

• Destination-specific behavior

• Offloads capacity burden

Page 59: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

59

IngressResultProcessor

• Flexible load balancing

• equal and weighted

• fine-grained and large-scale

• hierarchical

• Metadata updates

• Counter & policer operations

Page 60: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

60

EgressDescriptorFetch

• Flexible encapsulations

• Forwarding header updates:

• TTL, QoS, checksum, etc.

• Three sets of new headers:

• layer 2

• MPLS

• tunnel• opaque & transparent

Page 61: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

61

In Summary…

• Recirculation

• DestinationLookup

• IngressResultProcessor

• EgressDescriptorFetch

Page 62: The Power of the Express Architecture · • Flexible load balancing •equal and weighted •fine-grained and large-scale •hierarchical • Metadata updates • Counter & policer

62

Thank You