Escolar Documentos
Profissional Documentos
Cultura Documentos
Dan Rautio
www.juniper.net
Overview
Complete Ichip packet flow
Iwi Ifi wan and fabric in
Ipktwr packet writer
Im packet memory and Notification Memory Buffer
Iif incoming interface index lookup
Ir route lookup
Isr Route Lookup and IIF/WO RLDRAM memory access
Ip Host Packet
Imq Scheduling and queueing
Ipktrd packet reader
Iwo Ifo wan and fabric output
Copyright 2006 Juniper Networks, Inc.
www.juniper.net
www.juniper.net
I chip
www.juniper.net
www.juniper.net
Error counters
www.juniper.net
Strip 12B from fabric first cell and re-cellify packet data
www.juniper.net
www.juniper.net
www.juniper.net
Im Packet memory
There are totally 4 DIMMs (16
banks) of memory with
256MB per DIMM. 3 of them
(12 banks) would be used for
data packet memory and 1 of
them (4 bnaks) would be used
for notification memory
(TNQ to DRAMQ / DRAMQ
to HNQ transfer)
www.juniper.net
10
Im Packet memory
www.juniper.net
11
Iif Incoming
Interface
www.juniper.net
12
Ir route lookup
This is the route lookup block we have
on the Ichip. Similar to the other
platform, the route lookup is based on
a Jtree format. However, there are
some enhancements on the jtree
structure which makes the route
lookup a lot more flexible.
RICP: This block receives
notification/key pairs and sends them
on to free key engines.
RKP: This is a pool of 13 key engines.
The key engines perform the lookups
for the incoming packets.
RRCP: This block is responsible for
reordering the packets from the key
engines. It also handles sampling.
RJTBL: This block holds the JTable
memory and handles transactions from
the various key engines / translation
table transactions.
RMLP: This block does multicast list
processing.
www.juniper.net
13
Ir route lookup
Once the Jtree has been constructed, it would be stored on the
RLDRAM. There are two partitions on the RLDRAM parts and each
of them has effective 16MB size.
The route lookup result would be the Lout_key combined with a
Stream ID (SID) which indicates whether the packet should be
forwarded to the Wan side or the Fabric side
When the per-packet load sharing is enabled, a final nexthop selection
process will be done to make sure that we can evenly distribute the
loading among the equal cost paths.
When the "m" bit in the lookup reset is 1, the result is multicast, and
the final nexthop is interpreted as a pointer to a multicast list. The
Rmlp (multicast list processor) block processes the multicast list on
the Ichip. The primary function of the block is to retrieve the
Multicast Final Next Hop list at the end of a key processing after
the reordering logic in the Rrcp block.
www.juniper.net
14
www.juniper.net
15
www.juniper.net
16
Imq - queueing
Imq is the notification enqueued/dequeue
block of the Ichip. It gets the
notifications from Ir, queues them in
internal buffers (TNQ,HNQ) or to
external DRAM(DRAMQ) through
Im_ntf, and subsequently sends them
to Ipktrd.
The whole memory queue is separated
into three different parts TNQ,
DRAMQ and HNQ.
The TNQ receives the notification from
the Irlkp block, then, it maps the
SID[6:0] and QS[2:0] in the incoming
notification into the Imq internal
queue-number.
The DRAMQ is soft partitioned for
each queue and being configured by a
start and end pointers. Each pointer is
23 bits in cell (64 bytes) unit, which
includes 21 bits of bank cell address
and 2 bits of bank address. Within
each cell, there are 3 notifications and
the notification cells for each queue
are evenly sprayed across 4 DRAM
banks.
www.juniper.net
17
Imq - queueing
Wan is given enough to get 100ms buffer, and the rest is used for
fabric. The fabric memory is further partitioned equally between the
32 queues, This partition results in ~100ms delay-bandwidth buffer
even with 256MB DIMMs for average 8 cells packets (IMIX traffic).
HNQ: A global buffer is soft partitioned for each queue which is
configured by a start and end pointer pair. The HNQ is carved
statically between the queues. The Fabric is allocated 512
notifications and Wan is allocated 1536 notifications. The Fabric
space is split equally between the 32 queues resulting in an HNQ size
of 16.
RED is supprted on both the WAN and FAB queues of Imq. For each
queue, Imq maintains several counts: Mu, Mas, Bu, Buavg, Prv. These
counters are used to determine which queues need to be bisited by
RED.
Imq supports 8 priority levels. Four priorities are applicable to all
queues with positive credit (hi, medium-hi, medium-lo, & low priority)
and four different priorities are applicable to all queues with
negative credit (bonus-hi, bonus-medium-hi, bonus-medium-lo, &
bonus-low priority).
Error Statistics; aging, SID error, ECC error, mu overflow,
www.juniper.net
18
Ipktrd packet
reader
www.juniper.net
19
The packet length and address handle will be stroed in Plen_and_Handle buffer
(PHBUF), a free pool buffer, for every stream.
The incoming notification of each stream will form the first-in first-out perqueue based queue called packet read queue (PRQ). The notification will be
processed in order for the same stream. The stream arbitration (STABR) will
select the next qualified stream for content switch.
The arbitration scheme in STARB across all streams from WAN is TDM. The
time slots will be based on the stream bandwidth programmed by sw
For more than 5 cells packet, the address handle may be processed to calculate
the first Icell address for reading. If the stream speed is equal or greater than
GE, the first icell of the following packet in the same PRQ will be prefetched.
When the stream is selected as a result of arbitration, either the address
handle, or the Icell, or the stream state will be fetched by the stream
processing engine (STPRC)
The Icells will be returned to Ipktrd and stored in icell buffer (ICBUF) for
further processing
The indirect cell prefetch is required in the case of GE or higher speed streams.
The ICBUF space of each stream is separated into two sections. One is for
regular icell and the other is for prefetch icells.
There is a sw programmed aging window for read address aging check against
the latest write address from Ipktwr.
www.juniper.net
20
www.juniper.net
21
www.juniper.net
22
Question or Suggestion
If you have any question regarding I-chip
trouble-shooting, please contact
mx-escalation@juniper.net
www.juniper.net
23