network coprocessor ( netcp ) overview

25
CI Training KeyStone Training Network Coprocessor (NETCP) Overview

Upload: pierce

Post on 23-Feb-2016

73 views

Category:

Documents


0 download

DESCRIPTION

Network Coprocessor ( NETCP ) Overview. Agenda. NETCP Overview Packet DMA Packet Accelerator (PA) Security Accelerator (SA) Gigabit Ethernet ( GbE ) Switch Subsystem Receive Processing Example. Agenda. NETCP Overview Packet DMA Packet Accelerator (PA) Security Accelerator (SA) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Network Coprocessor ( NETCP ) Overview

CI Training

KeyStone Training

Network Coprocessor (NETCP)Overview

Page 2: Network Coprocessor ( NETCP ) Overview

CI Training

Agenda

• NETCP Overview• Packet DMA• Packet Accelerator (PA)• Security Accelerator (SA)• Gigabit Ethernet (GbE) Switch Subsystem• Receive Processing Example

Page 3: Network Coprocessor ( NETCP ) Overview

CI Training

Agenda

• NETCP Overview• Packet DMA• Packet Accelerator (PA)• Security Accelerator (SA)• Gigabit Ethernet (GbE) Switch Subsystem• Receive Processing Example

Page 4: Network Coprocessor ( NETCP ) Overview

CI Training

What is the Network Coprocessor (NetCP)?

1 to 8 Cores @ up to 1.25 GHz

MSMC

MSMSRAM

64-Bit DDR3 EMIF

Application-SpecificCoprocessors

PowerManagement

Debug & Trace

Boot ROM

Semaphore

Memory Subsystem

SRIO

x4

PCIe

x2

UA

RT

Appl

icat

ion-

Spec

i fic

I/ O

SP

I

IC2

PacketDMA

Multicore Navigator

QueueManager

Oth

ers

x3

Network Coprocessor

Sw

it ch

Eth

erne

tSw

i tch

SG

MII

x2

PacketAccelerator

SecurityAccelerator

PLL

EDMA

x3

C66x™CorePac

L1P-Cache

L1D-Cache

L2 Cache

HyperLink TeraNet

• Hardware accelerator for doing L2, L3, and L4 processing with Encryption, Decryption, and Authentication that was previously done in software

Page 5: Network Coprocessor ( NETCP ) Overview

CI Training

Network Coprocessor (NETCP)

Network Coprocessor consists of the following modules:

• Packet DMA (PKTDMA) Controller

• Packet Accelerator (PA)• Security Accelerator

(SA)• Ethernet Switch

Subsystem

Page 6: Network Coprocessor ( NETCP ) Overview

CI Training

Agenda

• NETCP Overview• Packet DMA• Packet Accelerator (PA)• Security Accelerator (SA)• Gigabit Ethernet (GbE) Switch Subsystem• Receive Processing Example

Page 7: Network Coprocessor ( NETCP ) Overview

CI Training

Packet DMA in NETCP

PKTDMA

PKTDMA

PKTDMA

PKTDMA

PKTDMA

PKTDMA

Queue ManagerSRIO

Network Coprocessor

FFTC (A)

AIF

8192

543210

...

Queue Manager SubsystemFFTC (B)

Page 8: Network Coprocessor ( NETCP ) Overview

CI Training

Communication with the NETCPNETCP relies on QMSS and PKTDMA to communicate with the CorePac.

• TX Queue Mapping– Q640: PDSP1– Q641: PDSP2– Q642: PDSP3– Q643: PDSP4– Q644: PDSP5– Q645: PDSP6– Q646: SA0– Q647: SA1– Q648: Switch

• RX Queues – Can use any

general purpose queues (Q864-Q8191)

– Can also use other special purpose queues (e.g. 704-735)

Page 9: Network Coprocessor ( NETCP ) Overview

CI Training

Agenda

• NETCP Overview• Packet DMA• Packet Accelerator (PA)• Security Accelerator (SA)• Gigabit Ethernet (GbE) Switch Subsystem• Receive Processing Example

Page 10: Network Coprocessor ( NETCP ) Overview

CI Training

PA: High-Level Overview• L2 Classify Engine

– Used for matching L2 headers– Example headers: MAC, VLAN, LLC snap

• L3 Classify Engine 0– Used for matching L3 headers– Example headers: IPv4, IPv6, Custom L3– Also match ESP headers and direct packets to SA via Multicore

Navigator• L3 Classify Engine 1

– Typically used for matching L3 headers in IPSec tunnels– Example headers: IPv4, IPv6, Custom L3

• L4 Classify Engine– Used for matching L4 Headers– Example headers: UDP, TCP, Custom L4

• Modify/Multi-Route Engines– Used for Modification, Multi-route, and Statistics requests– Modification Example: generate IP or UDP header checksums– Multi-route Example: route a packet to multiple queues

• PA Statistics Block– Stores statistics for packets processed by the classify engines– Statistics requests typically handled by Modify/Multi-route engines

• Packet ID Manager– Assigns packet ID to packets

L2 Classify Engine

PDSP 0Pass 1 LUT 0

Timer 0

L3 Classify Engine 0

PDSP 1Pass 1 LUT 1

Timer 1

L3 Classify Engine 1

PDSP 2Pass 1 LUT 2

Timer 2

L4 Classify Engine

PDSP 3Pass 2 LUT

Timer 3

Modify/Multi-Route Engine 0

PDSP 4Timer 4

Modify/Multi-Route Engine 1

PDSP 5Timer 5

Packet ID Manager

PA Statistics

Connections to Packet Streaming

Switch

Page 11: Network Coprocessor ( NETCP ) Overview

CI Training

Agenda

• NETCP Overview• Packet DMA• Packet Accelerator (PA)• Security Accelerator (SA)• Gigabit Ethernet (GbE) Switch Subsystem• Receive Processing Example

Page 12: Network Coprocessor ( NETCP ) Overview

CI Training

SA: High Level Overview

Connections to Packet Streaming

Switch

Connections to Configuration

Bus

Security Context Cache

PHP1 PDSP

Encryption and Decryption Engine

Authentication Engine

PHP2 PDSP

Air Cipher Engine

Interconnect

Public Key Acclerator

True Random Number Generator

SA0 Input/Output

Ports

SA1 Input/Output

Ports

Page 13: Network Coprocessor ( NETCP ) Overview

CI Training

Agenda

• NETCP Overview• Packet DMA• Packet Accelerator (PA)• Security Accelerator (SA)• Gigabit Ethernet (GbE) Switch Subsystem• Receive Processing Example

Page 14: Network Coprocessor ( NETCP ) Overview

CI Training

GbE Switch: High Level Overview

Page 15: Network Coprocessor ( NETCP ) Overview

CI Training

Agenda

• NETCP Overview• Packet DMA• Packet Accelerator (PA)• Security Accelerator (SA)• Gigabit Ethernet (GbE) Switch Subsystem• Receive Processing Example

Page 16: Network Coprocessor ( NETCP ) Overview

CI Training

Receive Hardware ProcessingStep 1: A IPSec packet formatted with MAC, IPv4, and UDP headers arrives from the gigabit Ethernet switch subsystem and is routed over the packet streaming switch to the L2 Classify Engine.

Q643: PDSP3

Q644: PDSP4

Q645: PDSP5

Q646: SA0

Q647: SA1

Q648: GbE SW

Q641: PDSP1

Q642: PDSP2

Q640: PDSP0

Q900: RXQUEUE

L2 Classify Engine

PDSP 0Pass 1 LUT 0

Timer 0

L3 Classify Engine 0

PDSP 1Pass 1 LUT 1

Timer 1

L3 Classify Engine 1

PDSP 2Pass 1 LUT 2

Timer 2

L4 Classify Engine

PDSP 3Pass 2 LUT

Timer 3

Modify/Multi-Route Engine 0

PDSP 4Timer 4

Modify/Multi-Route Engine 1

PDSP 5Timer 5

Packet ID Manager

PA Statistics

Packet Streaming Switch

PKTDMA Controller

SA

INTD

stat_pend_raw[1:0]

SGMII0

SGMII1

PHY

misc_int

buf_starve_intr

mdio_link_intr[1:0]mdio_user_intr[1:0]

GbE SwitchSubsystem

Page 17: Network Coprocessor ( NETCP ) Overview

CI Training

Receive Hardware ProcessingStep 2: PDSP0 in the L2 Classify Engine submits the MAC header for lookup. Assume that the lookup is successful. The packet will then be routed to its next destination. Assume that the destination is L3 Classify Engine 0.

L2 Classify Engine

PDSP 0Pass 1 LUT 0

Timer 0

L3 Classify Engine 0

PDSP 1Pass 1 LUT 1

Timer 1

L3 Classify Engine 1

PDSP 2Pass 1 LUT 2

Timer 2

L4 Classify Engine

PDSP 3Pass 2 LUT

Timer 3

Modify/Multi-Route Engine 0

PDSP 4Timer 4

Modify/Multi-Route Engine 1

PDSP 5Timer 5

Packet ID Manager

PA Statistics

Packet Streaming Switch

PKTDMA Controller

SA

INTD

stat_pend_raw[1:0]

SGMII0

SGMII1

PHY

misc_int

buf_starve_intr

mdio_link_intr[1:0]mdio_user_intr[1:0]

GbE SwitchSubsystem

PDSP0 LUT1 matches MAC entry.

Q643: PDSP3

Q644: PDSP4

Q645: PDSP5

Q646: SA0

Q647: SA1

Q648: GbE SW

Q641: PDSP1

Q642: PDSP2

Q640: PDSP0

Q900: RXQUEUE

Page 18: Network Coprocessor ( NETCP ) Overview

CI Training

Q643: PDSP3

Q644: PDSP4

Q645: PDSP5

Q646: SA0

Q647: SA1

Q648: GbE SW

Q641: PDSP1

Q642: PDSP2

Q640: PDSP0

Q900: RXQUEUE

Receive Hardware ProcessingStep 3: The packet is routed from the L3 Classify Engine 0, through the packet streaming switch to the PKTDMA controller. When the IPv4 entry is matched with the SPI, the PKTDMA will then transfer the packet from the NETCP to the SA1 transmit queue.

L2 Classify Engine

PDSP 0Pass 1 LUT 0

Timer 0

L3 Classify Engine 0

PDSP 1Pass 1 LUT 1

Timer 1

L3 Classify Engine 1

PDSP 2Pass 1 LUT 2

Timer 2

L4 Classify Engine

PDSP 3Pass 2 LUT

Timer 3

Modify/Multi-Route Engine 0

PDSP 4Timer 4

Modify/Multi-Route Engine 1

PDSP 5Timer 5

Packet ID Manager

PA Statistics

Packet Streaming Switch

PKTDMA Controller

SA

INTD

stat_pend_raw[1:0]

SGMII0

SGMII1

PHY

misc_int

buf_starve_intr

mdio_link_intr[1:0]mdio_user_intr[1:0]

GbE SwitchSubsystem

PDSP1 LUT1 matches IPv4 entry.

Page 19: Network Coprocessor ( NETCP ) Overview

CI Training

Q643: PDSP3

Q644: PDSP4

Q645: PDSP5

Q646: SA0

Q647: SA1

Q648: GbE SW

Q641: PDSP1

Q642: PDSP2

Q640: PDSP0

Q900: RXQUEUE

Receive Hardware ProcessingStep 4: Once the data transfer from the SA1 transmit queue to the NETCP has completed, the PKTDMA controller transfers the packet through the packet streaming switch to the SA, where the packet is decrypted and authenticated.

L2 Classify Engine

PDSP 0Pass 1 LUT 0

Timer 0

L3 Classify Engine 0

PDSP 1Pass 1 LUT 1

Timer 1

L3 Classify Engine 1

PDSP 2Pass 1 LUT 2

Timer 2

L4 Classify Engine

PDSP 3Pass 2 LUT

Timer 3

Modify/Multi-Route Engine 0

PDSP 4Timer 4

Modify/Multi-Route Engine 1

PDSP 5Timer 5

Packet ID Manager

PA Statistics

Packet Streaming Switch

PKTDMA Controller

SA

INTD

stat_pend_raw[1:0]

SGMII0

SGMII1

PHY

misc_int

buf_starve_intr

mdio_link_intr[1:0]mdio_user_intr[1:0]

GbE SwitchSubsystem

Page 20: Network Coprocessor ( NETCP ) Overview

CI Training

Q643: PDSP3

Q644: PDSP4

Q645: PDSP5

Q646: SA0

Q647: SA1

Q648: GbE SW

Q641: PDSP1

Q642: PDSP2

Q640: PDSP0

Q900: RXQUEUE

Receive Hardware ProcessingStep 5: The packet is routed from the SA, through the packet streaming switch to the PKTDMA controller. The PKTDMA will then transfer the packet from the NETCP to the PDSP2 transmit queue.

L2 Classify Engine

PDSP 0Pass 1 LUT 0

Timer 0

L3 Classify Engine 0

PDSP 1Pass 1 LUT 1

Timer 1

L3 Classify Engine 1

PDSP 2Pass 1 LUT 2

Timer 2

L4 Classify Engine

PDSP 3Pass 2 LUT

Timer 3

Modify/Multi-Route Engine 0

PDSP 4Timer 4

Modify/Multi-Route Engine 1

PDSP 5Timer 5

Packet ID Manager

PA Statistics

Packet Streaming Switch

PKTDMA Controller

SA

INTD

stat_pend_raw[1:0]

SGMII0

SGMII1

PHY

misc_int

buf_starve_intr

mdio_link_intr[1:0]mdio_user_intr[1:0]

GbE SwitchSubsystem

Page 21: Network Coprocessor ( NETCP ) Overview

CI Training

Q643: PDSP3

Q644: PDSP4

Q645: PDSP5

Q646: SA0

Q647: SA1

Q648: GbE SW

Q641: PDSP1

Q642: PDSP2

Q640: PDSP0

Q900: RXQUEUE

Receive Hardware ProcessingStep 6: Once the data transfer from PDSP2 transmit queue to the NETCP has completed, the PKTDMA controller transfers the packet through the packet streaming switch to the L3 Classify Engine 1.

L2 Classify Engine

PDSP 0Pass 1 LUT 0

Timer 0

L3 Classify Engine 0

PDSP 1Pass 1 LUT 1

Timer 1

L3 Classify Engine 1

PDSP 2Pass 1 LUT 2

Timer 2

L4 Classify Engine

PDSP 3Pass 2 LUT

Timer 3

Modify/Multi-Route Engine 0

PDSP 4Timer 4

Modify/Multi-Route Engine 1

PDSP 5Timer 5

Packet ID Manager

PA Statistics

Packet Streaming Switch

PKTDMA Controller

SA

INTD

stat_pend_raw[1:0]

SGMII0

SGMII1

PHY

misc_int

buf_starve_intr

mdio_link_intr[1:0]mdio_user_intr[1:0]

GbE SwitchSubsystem

Page 22: Network Coprocessor ( NETCP ) Overview

CI Training

Receive Hardware ProcessingL2 Classify Engine

PDSP 0Pass 1 LUT 0

Timer 0

L3 Classify Engine 0

PDSP 1Pass 1 LUT 1

Timer 1

L3 Classify Engine 1

PDSP 2Pass 1 LUT 2

Timer 2

L4 Classify Engine

PDSP 3Pass 2 LUT

Timer 3

Modify/Multi-Route Engine 0

PDSP 4Timer 4

Modify/Multi-Route Engine 1

PDSP 5Timer 5

Packet ID Manager

PA Statistics

Packet Streaming Switch

PKTDMA Controller

SA

INTD

stat_pend_raw[1:0]

SGMII0

SGMII1

PHY

misc_int

buf_starve_intr

mdio_link_intr[1:0]mdio_user_intr[1:0]

GbE SwitchSubsystem

Step 7: The packet is routed to the L3 Classify Engine 0. PDSP1 submits the IPv4 header for lookup. Assume that the lookup is successful. The packet will then be routed to its next destination. Assume that it is the L4 Classify Engine.

PDSP2 LUT1 matches IPv4 entry.

Q643: PDSP3

Q644: PDSP4

Q645: PDSP5

Q646: SA0

Q647: SA1

Q648: GbE SW

Q641: PDSP1

Q642: PDSP2

Q640: PDSP0

Q900: RXQUEUE

Page 23: Network Coprocessor ( NETCP ) Overview

CI Training

Receive Hardware ProcessingStep 8: The packet is routed to the L4 Classify Engine. PDSP3 submits the UDP header for lookup. Assume that the lookup is successful. The packet will then be routed to its next destination. Assume that the destination is the host on queue 900.

L2 Classify Engine

PDSP 0Pass 1 LUT 0

Timer 0

L3 Classify Engine 0

PDSP 1Pass 1 LUT 1

Timer 1

L3 Classify Engine 1

PDSP 2Pass 1 LUT 2

Timer 2

L4 Classify Engine

PDSP 3Pass 2 LUT

Timer 3

Modify/Multi-Route Engine 0

PDSP 4Timer 4

Modify/Multi-Route Engine 1

PDSP 5Timer 5

Packet ID Manager

PA Statistics

Packet Streaming Switch

PKTDMA Controller

SA

INTD

stat_pend_raw[1:0]

SGMII0

SGMII1

PHY

misc_int

buf_starve_intr

mdio_link_intr[1:0]mdio_user_intr[1:0]

GbE SwitchSubsystem

PDSP3 LUT2 matches UDP entry.

Q643: PDSP3

Q644: PDSP4

Q645: PDSP5

Q646: SA0

Q647: SA1

Q648: GbE SW

Q641: PDSP1

Q642: PDSP2

Q640: PDSP0

Q900: RXQUEUE

Page 24: Network Coprocessor ( NETCP ) Overview

CI Training

Q643: PDSP3

Q644: PDSP4

Q645: PDSP5

Q646: SA0

Q647: SA1

Q648: GbE SW

Q641: PDSP1

Q642: PDSP2

Q640: PDSP0

Q900: RXQUEUE

Receive Hardware ProcessingStep 9: The packet is routed from the L4 Classify Engine, through the packet streaming switch to the PKTDMA controller. The PKTDMA will then transfer the packet from the NETCP to host queue 900. From here the host can do processing on the receive packet.

L2 Classify Engine

PDSP 0Pass 1 LUT 0

Timer 0

L3 Classify Engine 0

PDSP 1Pass 1 LUT 1

Timer 1

L3 Classify Engine 1

PDSP 2Pass 1 LUT 2

Timer 2

L4 Classify Engine

PDSP 3Pass 2 LUT

Timer 3

Modify/Multi-Route Engine 0

PDSP 4Timer 4

Modify/Multi-Route Engine 1

PDSP 5Timer 5

Packet ID Manager

PA Statistics

Packet Streaming Switch

PKTDMA Controller

SA

INTD

stat_pend_raw[1:0]

SGMII0

SGMII1

PHY

misc_int

buf_starve_intr

mdio_link_intr[1:0]mdio_user_intr[1:0]

GbE SwitchSubsystem

Page 25: Network Coprocessor ( NETCP ) Overview

CI Training

Additional Questions?