qmanager notes
DESCRIPTION
QManager Notes. Fred. > CLK. > CLK. > CLK. > CLK. DATA_DCHR_FREE_PTR_F (in, 17..0). FULL_DCHR_QLENC_F (in). FULL_DCHR_SWQM_F (in). FULL_DP_DCHR_OUTC_F (in). EMPTY_QMGR_F (in). EMPTY_DCHR_FREE_PTR_F (in). COUNT_DCHR_PKTC_F (in). READY_IN (in). QM Dispatcher. QMGR_F_CTL. > CLK. - PowerPoint PPT PresentationTRANSCRIPT
WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
fredkarlwustledu
QManager Notes
Fred
2WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
QM Dispatcher
STATE_TRANS
FULL_DP_DCHR_OUTC_F (in)
FULL_DCHR_SWQM_F (in)
FULL_DCHR_QLENC_F (in)
EMPTY_QMGR_F (in)
EMPTY_DCHR_FREE_PTR_F (in)
COUNT_DCHR_PKTC_F (in)
READY_IN (in)
DATA_QMGR_F (in 310)
next_stateCLK0
gt CLK
state
LATCH_WORD
gt CLK
FC_flag
copycount (10)
DEST_CTL
gt CLK
DATA_DCHR_FREE_PTR_F (in 170)
DP_flag
SR_flag
TO_flag
qid (90)
get_comref_entry
qid_new (90)
WRITE_HEADER
gt CLK
data_int (950)
pkt_ptr (190)
comm_ref_ptr (170)
destination (10)
RD_DCHR_FREE_PTR_F_DCHR (out)
FM_flag
SC_flagSB_flag
DATA_DCHR_QM_F_DCHR (out 950)
DATA_DCHR_PKTC_F_DCHR (out 350)
DATA_DP_DCHR_OUTC_F_DCHR (out 350)
WEN_DP_DCHR_OUTC_F_DCHR (out)
WEN_DCHR_PKTC_F_DCHR (out)
WEN_DCHR_SWQM_F_DCHR (out)
WEN_DCHR_QLENC_F_DCHR (out)
QMGR_F_CTL
gt CLK
RD_QMGR_F_QMGR (out)
DEC_HD_CNT_DCHR (out)
HEADER_ONLY_CTL
gt CLK
CARL FIFO EMPTY_QMGR_F RD_QMGR_F_QMGR DATA_QMGR_F
Line Card (QLNC) FIFO FULL_DCHR_QLENC_F WEN_DCHR_QLENC_F_DCHR DATA_DCHR_QM_F_DCHR
SW (SWQM) FIFOFULL_DCHR_SWQM_F WEN_DCHR_SWQM_F_DCHR DATA_DCHR_QM_F_DCHR
Drop (OUTC) FIFOFULL_DP_DCHR_OUTC_F WEN_DP_DCHR_OUTC_F_DCHR DATA_DP_DCHR_OUTC_F_DCHR
Signals Not Usedprev_stateDG_flag
Constants Defined but not used
SW_DATAGRAM_BASELC_DATAGRAM_BASE
3WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
Q Hdr table
next_q
deficit
next_q
deficit
active (0)
head_ptr
tail_ptr
deficit
active (1)
head_ptr
tail_ptr
next_q
deficit
active (1)
head_ptr
tail_ptr
next_q
deficit
active (0)
head_ptr
tail_ptr
next_q
deficit
active (1)
head_ptr
tail_ptr
next_q
active (0)
head_ptr
tail_ptr
1
2
3
4
5
511
qid(index)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Valid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Valid)
ext flagscp
y next pkt ptrint flags
total length ppn spi pkt ptr (InValid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Valid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (InValid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (InValid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Invalid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (InValid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Valid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Invalid)
SRAM (2 wordsentry 36-bitsword)
deficit
active (1)
head_ptr
tail_ptr
next_q
Previous
deficit
active (1)
head_ptr
tail_ptr
next_q
Current
cached copiesin LNQM may be outof sync with the table
next_q (11-bit)head_ptr (18-bit)deficit (32-bit)A head_ptr (18-bit)02947 11
Qhdr Table Entry (word size 80-bit))
79
4WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
CARL lt-gt QMGR
External Flags (8 bit)
NM EX HO HR FM TO
Internal Flags (8 bit)
N N-15N-7
DG SB SR IC FC LP SC --
5 4 3 2 1 0 7 6 5 4 3 2 1 0
DP RC
7 6
Total Length (11 bit)LFS Rate2 LFS Rate1
31 0101624
PPN Packet Pointer (20 bit)OVIN (5 bit)
63 32515661
Flags (8 bit) Queue Identifier (10 bit)DP RC NM EX HO HR FM TO
Internal Flags (8 bit)
95 64738088
Cpy Cnt
MB
DG SB SR IC FC LP SC --
7779
916 131531 0192429
CARL lt-gt QMGR
QMGR lt-gt OSAR
PPN OVIN (5 bit) Total Length (11 bit)
LFS Rate2 LFS Rate1
010
08
Packet Pointer (20 bit)
Flags (8 bit)
Queue Identifier (10 bit)
DP RC NM EX HO HR FM TO
Internal Flags (8 bit)31 1624
MB
DG SB SR IC FC LP SC --
29
Queue Length (24 bit)
0
31 24
23
2131 01922
bull External Flag Valuesndash DP (Drop Packet) SPC directive to FPX Will
always be zero coming into SPCndash RC (Reclassify Packet) SPC directive to FPX
May be 0 or 1 going to SPC SPC must redefinendash NM (No Match) FPX can not classify (no route)
FPX to SPC Set to 0 before returning to FPXndash EX (Exception Packet) Requires non-fast path
IP options Non IPv4 FPX to SPC Set to 0 before returning to FPX
ndash HO (Header Only) FPX to SPC Set if packet size gt 120B and only first chunk sent to SPC SPC must not modify SPC can not drop internally if this bit is set
ndash HR (Header Only Return) Internal FPX flag SPC must not modify
ndash FM (From LCSW) Set by FPX SPC can use but not modify
ndash TO (To LCSW) Set by FPX SPC can use but not modify
bull Internal Flag Valuesndash DG (DataGram)ndash SB (SPC-Bound)ndash SR (SPC-Return)ndash IC (Initial Copy) CARL to QMGR qmgr always
sets to 0ndash FC (Final Copy) CARL to QMGR qmgr always
sets to 0ndash LP (LFS oPtion)ndash SC (Single-Chunk)ndash MC
5WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
packet Header Flow through QMGR
SRAM Single Copy Packet Header Format
next packet header in SRAM
Total Length Packet Pointer
External Flags DP RC NM EX HO HR FM TO
Internal FlagsDG SB SR LP SC
2035 28
OPN
1718 023
MB MC
2035 25 19 022
Total Length (11 bit)LFS Rate2 LFS Rate1
31 0101924
PPN Packet Pointer (20 bit)OVIN (5 bit)
63 32515661
Flags (8 bit) Queue Identifier (10 bit)DP RC NM EX HO HR FM TO
Internal Flags (8 bit)
95 64738088cpycnt
MBDG SB SR IC FC LP SC --
7779
916 131531 0192429
CARL lt-gt QMGR
PPN OVIN (5 bit) Total Length (11 bit)
LFS Rate2 LFS Rate1
010
08
Packet Pointer (20 bit)
Flags (8 bit)
Queue Identifier (10 bit)
DP RC NM EX HO HR FM TO
Internal Flags (8 bit)
31 1624
MB
DG SB SR LP SC
--
29
Queue Length (24 bit)
0
31 24
23
2131 01922
QMGR lt-gt OSAR
lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquolsquo0rsquo
lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquolsquo0rsquo
lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquolsquo0rsquo
SPIOPN
31 0101624
SPIPPN
MClsquo0rsquo lsquo0rsquo
lsquo0rsquo current QID(80)
SPIOPN
NotesMC = (cpycnt == 0) 0 1
In
Out
6WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
SRAM Table Entries
SRAM Single Copy Packet Header Format
total length xxppn common reference ptr35 0192225
SRAM Multi-copy Packet Header Format
XXX
35X
0
35 01933common reference ptrcpy X
SRAM Multi-copy Common Reference Entry
35 0172027external flags internal flags cpy next header
35 0172027external flags internal flags cpy next header
35 0192225total length xxppn common reference ptr
External Flags (8 bit)DP RC NM EX HO HR FM TO
Internal Flags (8 bit)N N-15N-7
DG SB SR IC FC LP SC --
35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20
FIX
7WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
Token Bucket Constrained Output
tokens Bi
Bmax
Fill rate add z tokens every tick (T seconds)
remove Lx tokens to send a packet with L-bits
Sending continuouslyTRavx tokens used each period drain rate Ravx z tokens added every tick replenishment rate = zTz = ceil(RavTx) for Rav(z) lt Rmax zmax = floor(RmaxTx)
So the corresponding sending rates areRav(z) = z(Fx) Rav = Fx 2Fx 3Fx hellip zmaxFx
Ticks to send packet = LTRmax (tickspkt) Tokens to send packet LxGiven packet length in Bytes LB convert xB = 8xb RB = Rb8 Rb = zFxb = zF(xB8)VHDL uses xB = 8192 (tokB) =gt xb = 1024 (tokb)
Burst size(xL tokens to send L bytes zLTR tokens added during send)d = B ndash xBLB + zLBTRmax = B ndash L(x ndash zTRmax) stop sending when lt= 0 so min(n) gt= (BL) (x ndash zTRmax)But z = ceil(RavTx) gt= RavTx so a lower bound is (BxL) (1 ndash RavRmax) Let B = MTU x and L = MTU then n = ceil(Rmax(Rmax-RAV)) or RAV = Rmax(n-1)n for n = 1 2 hellip N
Bucket depth ranged = n(tick) z(toktick) = B ticks to fill = n = Bzit takes MTUrsquo = MTUxB tokens to send ndashMTUrsquo lt d lt= B so scale d as drsquo = d + MTUrsquo then 0 lt drsquo lt= B + MTUrsquoSo max scaled bucket depth = Brsquo = B + MTUrsquo B = MTUrsquo so Brsquo = 2MTUrsquo = 2MTUxMTU = 2048 = 211 x = 8192 = 213 Brsquo = 2 211 213 = 225
Examplex = 64 F = 625MHz Rmax = 1GbpsFx = 9766 Kbps zmax = 1024R (Mbps) = 98 19 29 39 hellip 1000
Packet length = L (b) Desired Rate = Rav (bs) Actual rate = Rmax (bs)Interval (tick) = T (s) F-1 F is nominally 625MHzFill rate = z (tokenstick)Drain rate = x (tokensbit)
Examplex = 1024 (xB = 8192) F = 625MHz Rmax = 1GbpsFx = 61 Kbps (FxB = 76KBps) zmax = 16384 (214)R (Mbps) = 061 hellip 98 104 11 hellip 1000Bmax = 225 Bmin = 224
8WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
using 8-bits for Z x = 64 (tokensByte)Definitions
Packet length = L (b) Desired Sending Rate = R (bs) Actual link rate = Rmax(bs) Clock period = T (s) (or 1F)
Tokens replenishmenttick = z (toktick) Tokens consumedByte = x (tokB)Max packet size = MTU = 2KB Max bucket depth = Bmax = 2MTU x Min bucket depth = MTU x
ConfigurationX = 26 (tokB) Rmax= 125MBs Bmax =2 MTU 26 = 218 (tok) Bmin = 217(tok) F = 55MHz
R(z) = zFX = z5510664 (Bs) = z 551068 (bs) = z558 (Mbps) alternatively z(R) = ceil(R(bs)855106) = ceil(R(Mbs)855)
SPC traffic is limited to 200Mbpsz = 30 (for 20625Mbs)
Test scenarios0) Link at 1Gbps z = 1450x91 (99688 Mbs) 1) Link at 900Mbps z = 1310x83 (90062 Mbs)2) Link at 500Mbps z = 730x49 (50188 Mbs)3) Link at 200Mbps z = 300x1e (20625 Mbs)4) Link at 100Mbps z = 150x0f (10312 Mbs)5) Link at 50Mbps z = 80x08 (5500 Mbs)6) Link at 10Mbps z = 20x02 (1375 Mbs)
7) Link at 1 Mbps z = 10x01 (688 Mbs)
2WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
QM Dispatcher
STATE_TRANS
FULL_DP_DCHR_OUTC_F (in)
FULL_DCHR_SWQM_F (in)
FULL_DCHR_QLENC_F (in)
EMPTY_QMGR_F (in)
EMPTY_DCHR_FREE_PTR_F (in)
COUNT_DCHR_PKTC_F (in)
READY_IN (in)
DATA_QMGR_F (in 310)
next_stateCLK0
gt CLK
state
LATCH_WORD
gt CLK
FC_flag
copycount (10)
DEST_CTL
gt CLK
DATA_DCHR_FREE_PTR_F (in 170)
DP_flag
SR_flag
TO_flag
qid (90)
get_comref_entry
qid_new (90)
WRITE_HEADER
gt CLK
data_int (950)
pkt_ptr (190)
comm_ref_ptr (170)
destination (10)
RD_DCHR_FREE_PTR_F_DCHR (out)
FM_flag
SC_flagSB_flag
DATA_DCHR_QM_F_DCHR (out 950)
DATA_DCHR_PKTC_F_DCHR (out 350)
DATA_DP_DCHR_OUTC_F_DCHR (out 350)
WEN_DP_DCHR_OUTC_F_DCHR (out)
WEN_DCHR_PKTC_F_DCHR (out)
WEN_DCHR_SWQM_F_DCHR (out)
WEN_DCHR_QLENC_F_DCHR (out)
QMGR_F_CTL
gt CLK
RD_QMGR_F_QMGR (out)
DEC_HD_CNT_DCHR (out)
HEADER_ONLY_CTL
gt CLK
CARL FIFO EMPTY_QMGR_F RD_QMGR_F_QMGR DATA_QMGR_F
Line Card (QLNC) FIFO FULL_DCHR_QLENC_F WEN_DCHR_QLENC_F_DCHR DATA_DCHR_QM_F_DCHR
SW (SWQM) FIFOFULL_DCHR_SWQM_F WEN_DCHR_SWQM_F_DCHR DATA_DCHR_QM_F_DCHR
Drop (OUTC) FIFOFULL_DP_DCHR_OUTC_F WEN_DP_DCHR_OUTC_F_DCHR DATA_DP_DCHR_OUTC_F_DCHR
Signals Not Usedprev_stateDG_flag
Constants Defined but not used
SW_DATAGRAM_BASELC_DATAGRAM_BASE
3WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
Q Hdr table
next_q
deficit
next_q
deficit
active (0)
head_ptr
tail_ptr
deficit
active (1)
head_ptr
tail_ptr
next_q
deficit
active (1)
head_ptr
tail_ptr
next_q
deficit
active (0)
head_ptr
tail_ptr
next_q
deficit
active (1)
head_ptr
tail_ptr
next_q
active (0)
head_ptr
tail_ptr
1
2
3
4
5
511
qid(index)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Valid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Valid)
ext flagscp
y next pkt ptrint flags
total length ppn spi pkt ptr (InValid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Valid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (InValid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (InValid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Invalid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (InValid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Valid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Invalid)
SRAM (2 wordsentry 36-bitsword)
deficit
active (1)
head_ptr
tail_ptr
next_q
Previous
deficit
active (1)
head_ptr
tail_ptr
next_q
Current
cached copiesin LNQM may be outof sync with the table
next_q (11-bit)head_ptr (18-bit)deficit (32-bit)A head_ptr (18-bit)02947 11
Qhdr Table Entry (word size 80-bit))
79
4WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
CARL lt-gt QMGR
External Flags (8 bit)
NM EX HO HR FM TO
Internal Flags (8 bit)
N N-15N-7
DG SB SR IC FC LP SC --
5 4 3 2 1 0 7 6 5 4 3 2 1 0
DP RC
7 6
Total Length (11 bit)LFS Rate2 LFS Rate1
31 0101624
PPN Packet Pointer (20 bit)OVIN (5 bit)
63 32515661
Flags (8 bit) Queue Identifier (10 bit)DP RC NM EX HO HR FM TO
Internal Flags (8 bit)
95 64738088
Cpy Cnt
MB
DG SB SR IC FC LP SC --
7779
916 131531 0192429
CARL lt-gt QMGR
QMGR lt-gt OSAR
PPN OVIN (5 bit) Total Length (11 bit)
LFS Rate2 LFS Rate1
010
08
Packet Pointer (20 bit)
Flags (8 bit)
Queue Identifier (10 bit)
DP RC NM EX HO HR FM TO
Internal Flags (8 bit)31 1624
MB
DG SB SR IC FC LP SC --
29
Queue Length (24 bit)
0
31 24
23
2131 01922
bull External Flag Valuesndash DP (Drop Packet) SPC directive to FPX Will
always be zero coming into SPCndash RC (Reclassify Packet) SPC directive to FPX
May be 0 or 1 going to SPC SPC must redefinendash NM (No Match) FPX can not classify (no route)
FPX to SPC Set to 0 before returning to FPXndash EX (Exception Packet) Requires non-fast path
IP options Non IPv4 FPX to SPC Set to 0 before returning to FPX
ndash HO (Header Only) FPX to SPC Set if packet size gt 120B and only first chunk sent to SPC SPC must not modify SPC can not drop internally if this bit is set
ndash HR (Header Only Return) Internal FPX flag SPC must not modify
ndash FM (From LCSW) Set by FPX SPC can use but not modify
ndash TO (To LCSW) Set by FPX SPC can use but not modify
bull Internal Flag Valuesndash DG (DataGram)ndash SB (SPC-Bound)ndash SR (SPC-Return)ndash IC (Initial Copy) CARL to QMGR qmgr always
sets to 0ndash FC (Final Copy) CARL to QMGR qmgr always
sets to 0ndash LP (LFS oPtion)ndash SC (Single-Chunk)ndash MC
5WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
packet Header Flow through QMGR
SRAM Single Copy Packet Header Format
next packet header in SRAM
Total Length Packet Pointer
External Flags DP RC NM EX HO HR FM TO
Internal FlagsDG SB SR LP SC
2035 28
OPN
1718 023
MB MC
2035 25 19 022
Total Length (11 bit)LFS Rate2 LFS Rate1
31 0101924
PPN Packet Pointer (20 bit)OVIN (5 bit)
63 32515661
Flags (8 bit) Queue Identifier (10 bit)DP RC NM EX HO HR FM TO
Internal Flags (8 bit)
95 64738088cpycnt
MBDG SB SR IC FC LP SC --
7779
916 131531 0192429
CARL lt-gt QMGR
PPN OVIN (5 bit) Total Length (11 bit)
LFS Rate2 LFS Rate1
010
08
Packet Pointer (20 bit)
Flags (8 bit)
Queue Identifier (10 bit)
DP RC NM EX HO HR FM TO
Internal Flags (8 bit)
31 1624
MB
DG SB SR LP SC
--
29
Queue Length (24 bit)
0
31 24
23
2131 01922
QMGR lt-gt OSAR
lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquolsquo0rsquo
lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquolsquo0rsquo
lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquolsquo0rsquo
SPIOPN
31 0101624
SPIPPN
MClsquo0rsquo lsquo0rsquo
lsquo0rsquo current QID(80)
SPIOPN
NotesMC = (cpycnt == 0) 0 1
In
Out
6WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
SRAM Table Entries
SRAM Single Copy Packet Header Format
total length xxppn common reference ptr35 0192225
SRAM Multi-copy Packet Header Format
XXX
35X
0
35 01933common reference ptrcpy X
SRAM Multi-copy Common Reference Entry
35 0172027external flags internal flags cpy next header
35 0172027external flags internal flags cpy next header
35 0192225total length xxppn common reference ptr
External Flags (8 bit)DP RC NM EX HO HR FM TO
Internal Flags (8 bit)N N-15N-7
DG SB SR IC FC LP SC --
35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20
FIX
7WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
Token Bucket Constrained Output
tokens Bi
Bmax
Fill rate add z tokens every tick (T seconds)
remove Lx tokens to send a packet with L-bits
Sending continuouslyTRavx tokens used each period drain rate Ravx z tokens added every tick replenishment rate = zTz = ceil(RavTx) for Rav(z) lt Rmax zmax = floor(RmaxTx)
So the corresponding sending rates areRav(z) = z(Fx) Rav = Fx 2Fx 3Fx hellip zmaxFx
Ticks to send packet = LTRmax (tickspkt) Tokens to send packet LxGiven packet length in Bytes LB convert xB = 8xb RB = Rb8 Rb = zFxb = zF(xB8)VHDL uses xB = 8192 (tokB) =gt xb = 1024 (tokb)
Burst size(xL tokens to send L bytes zLTR tokens added during send)d = B ndash xBLB + zLBTRmax = B ndash L(x ndash zTRmax) stop sending when lt= 0 so min(n) gt= (BL) (x ndash zTRmax)But z = ceil(RavTx) gt= RavTx so a lower bound is (BxL) (1 ndash RavRmax) Let B = MTU x and L = MTU then n = ceil(Rmax(Rmax-RAV)) or RAV = Rmax(n-1)n for n = 1 2 hellip N
Bucket depth ranged = n(tick) z(toktick) = B ticks to fill = n = Bzit takes MTUrsquo = MTUxB tokens to send ndashMTUrsquo lt d lt= B so scale d as drsquo = d + MTUrsquo then 0 lt drsquo lt= B + MTUrsquoSo max scaled bucket depth = Brsquo = B + MTUrsquo B = MTUrsquo so Brsquo = 2MTUrsquo = 2MTUxMTU = 2048 = 211 x = 8192 = 213 Brsquo = 2 211 213 = 225
Examplex = 64 F = 625MHz Rmax = 1GbpsFx = 9766 Kbps zmax = 1024R (Mbps) = 98 19 29 39 hellip 1000
Packet length = L (b) Desired Rate = Rav (bs) Actual rate = Rmax (bs)Interval (tick) = T (s) F-1 F is nominally 625MHzFill rate = z (tokenstick)Drain rate = x (tokensbit)
Examplex = 1024 (xB = 8192) F = 625MHz Rmax = 1GbpsFx = 61 Kbps (FxB = 76KBps) zmax = 16384 (214)R (Mbps) = 061 hellip 98 104 11 hellip 1000Bmax = 225 Bmin = 224
8WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
using 8-bits for Z x = 64 (tokensByte)Definitions
Packet length = L (b) Desired Sending Rate = R (bs) Actual link rate = Rmax(bs) Clock period = T (s) (or 1F)
Tokens replenishmenttick = z (toktick) Tokens consumedByte = x (tokB)Max packet size = MTU = 2KB Max bucket depth = Bmax = 2MTU x Min bucket depth = MTU x
ConfigurationX = 26 (tokB) Rmax= 125MBs Bmax =2 MTU 26 = 218 (tok) Bmin = 217(tok) F = 55MHz
R(z) = zFX = z5510664 (Bs) = z 551068 (bs) = z558 (Mbps) alternatively z(R) = ceil(R(bs)855106) = ceil(R(Mbs)855)
SPC traffic is limited to 200Mbpsz = 30 (for 20625Mbs)
Test scenarios0) Link at 1Gbps z = 1450x91 (99688 Mbs) 1) Link at 900Mbps z = 1310x83 (90062 Mbs)2) Link at 500Mbps z = 730x49 (50188 Mbs)3) Link at 200Mbps z = 300x1e (20625 Mbs)4) Link at 100Mbps z = 150x0f (10312 Mbs)5) Link at 50Mbps z = 80x08 (5500 Mbs)6) Link at 10Mbps z = 20x02 (1375 Mbs)
7) Link at 1 Mbps z = 10x01 (688 Mbs)
3WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
Q Hdr table
next_q
deficit
next_q
deficit
active (0)
head_ptr
tail_ptr
deficit
active (1)
head_ptr
tail_ptr
next_q
deficit
active (1)
head_ptr
tail_ptr
next_q
deficit
active (0)
head_ptr
tail_ptr
next_q
deficit
active (1)
head_ptr
tail_ptr
next_q
active (0)
head_ptr
tail_ptr
1
2
3
4
5
511
qid(index)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Valid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Valid)
ext flagscp
y next pkt ptrint flags
total length ppn spi pkt ptr (InValid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Valid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (InValid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (InValid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Invalid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (InValid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Valid)
ext flags
cpy next pkt ptrint flags
total length ppn spi pkt ptr (Invalid)
SRAM (2 wordsentry 36-bitsword)
deficit
active (1)
head_ptr
tail_ptr
next_q
Previous
deficit
active (1)
head_ptr
tail_ptr
next_q
Current
cached copiesin LNQM may be outof sync with the table
next_q (11-bit)head_ptr (18-bit)deficit (32-bit)A head_ptr (18-bit)02947 11
Qhdr Table Entry (word size 80-bit))
79
4WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
CARL lt-gt QMGR
External Flags (8 bit)
NM EX HO HR FM TO
Internal Flags (8 bit)
N N-15N-7
DG SB SR IC FC LP SC --
5 4 3 2 1 0 7 6 5 4 3 2 1 0
DP RC
7 6
Total Length (11 bit)LFS Rate2 LFS Rate1
31 0101624
PPN Packet Pointer (20 bit)OVIN (5 bit)
63 32515661
Flags (8 bit) Queue Identifier (10 bit)DP RC NM EX HO HR FM TO
Internal Flags (8 bit)
95 64738088
Cpy Cnt
MB
DG SB SR IC FC LP SC --
7779
916 131531 0192429
CARL lt-gt QMGR
QMGR lt-gt OSAR
PPN OVIN (5 bit) Total Length (11 bit)
LFS Rate2 LFS Rate1
010
08
Packet Pointer (20 bit)
Flags (8 bit)
Queue Identifier (10 bit)
DP RC NM EX HO HR FM TO
Internal Flags (8 bit)31 1624
MB
DG SB SR IC FC LP SC --
29
Queue Length (24 bit)
0
31 24
23
2131 01922
bull External Flag Valuesndash DP (Drop Packet) SPC directive to FPX Will
always be zero coming into SPCndash RC (Reclassify Packet) SPC directive to FPX
May be 0 or 1 going to SPC SPC must redefinendash NM (No Match) FPX can not classify (no route)
FPX to SPC Set to 0 before returning to FPXndash EX (Exception Packet) Requires non-fast path
IP options Non IPv4 FPX to SPC Set to 0 before returning to FPX
ndash HO (Header Only) FPX to SPC Set if packet size gt 120B and only first chunk sent to SPC SPC must not modify SPC can not drop internally if this bit is set
ndash HR (Header Only Return) Internal FPX flag SPC must not modify
ndash FM (From LCSW) Set by FPX SPC can use but not modify
ndash TO (To LCSW) Set by FPX SPC can use but not modify
bull Internal Flag Valuesndash DG (DataGram)ndash SB (SPC-Bound)ndash SR (SPC-Return)ndash IC (Initial Copy) CARL to QMGR qmgr always
sets to 0ndash FC (Final Copy) CARL to QMGR qmgr always
sets to 0ndash LP (LFS oPtion)ndash SC (Single-Chunk)ndash MC
5WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
packet Header Flow through QMGR
SRAM Single Copy Packet Header Format
next packet header in SRAM
Total Length Packet Pointer
External Flags DP RC NM EX HO HR FM TO
Internal FlagsDG SB SR LP SC
2035 28
OPN
1718 023
MB MC
2035 25 19 022
Total Length (11 bit)LFS Rate2 LFS Rate1
31 0101924
PPN Packet Pointer (20 bit)OVIN (5 bit)
63 32515661
Flags (8 bit) Queue Identifier (10 bit)DP RC NM EX HO HR FM TO
Internal Flags (8 bit)
95 64738088cpycnt
MBDG SB SR IC FC LP SC --
7779
916 131531 0192429
CARL lt-gt QMGR
PPN OVIN (5 bit) Total Length (11 bit)
LFS Rate2 LFS Rate1
010
08
Packet Pointer (20 bit)
Flags (8 bit)
Queue Identifier (10 bit)
DP RC NM EX HO HR FM TO
Internal Flags (8 bit)
31 1624
MB
DG SB SR LP SC
--
29
Queue Length (24 bit)
0
31 24
23
2131 01922
QMGR lt-gt OSAR
lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquolsquo0rsquo
lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquolsquo0rsquo
lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquolsquo0rsquo
SPIOPN
31 0101624
SPIPPN
MClsquo0rsquo lsquo0rsquo
lsquo0rsquo current QID(80)
SPIOPN
NotesMC = (cpycnt == 0) 0 1
In
Out
6WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
SRAM Table Entries
SRAM Single Copy Packet Header Format
total length xxppn common reference ptr35 0192225
SRAM Multi-copy Packet Header Format
XXX
35X
0
35 01933common reference ptrcpy X
SRAM Multi-copy Common Reference Entry
35 0172027external flags internal flags cpy next header
35 0172027external flags internal flags cpy next header
35 0192225total length xxppn common reference ptr
External Flags (8 bit)DP RC NM EX HO HR FM TO
Internal Flags (8 bit)N N-15N-7
DG SB SR IC FC LP SC --
35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20
FIX
7WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
Token Bucket Constrained Output
tokens Bi
Bmax
Fill rate add z tokens every tick (T seconds)
remove Lx tokens to send a packet with L-bits
Sending continuouslyTRavx tokens used each period drain rate Ravx z tokens added every tick replenishment rate = zTz = ceil(RavTx) for Rav(z) lt Rmax zmax = floor(RmaxTx)
So the corresponding sending rates areRav(z) = z(Fx) Rav = Fx 2Fx 3Fx hellip zmaxFx
Ticks to send packet = LTRmax (tickspkt) Tokens to send packet LxGiven packet length in Bytes LB convert xB = 8xb RB = Rb8 Rb = zFxb = zF(xB8)VHDL uses xB = 8192 (tokB) =gt xb = 1024 (tokb)
Burst size(xL tokens to send L bytes zLTR tokens added during send)d = B ndash xBLB + zLBTRmax = B ndash L(x ndash zTRmax) stop sending when lt= 0 so min(n) gt= (BL) (x ndash zTRmax)But z = ceil(RavTx) gt= RavTx so a lower bound is (BxL) (1 ndash RavRmax) Let B = MTU x and L = MTU then n = ceil(Rmax(Rmax-RAV)) or RAV = Rmax(n-1)n for n = 1 2 hellip N
Bucket depth ranged = n(tick) z(toktick) = B ticks to fill = n = Bzit takes MTUrsquo = MTUxB tokens to send ndashMTUrsquo lt d lt= B so scale d as drsquo = d + MTUrsquo then 0 lt drsquo lt= B + MTUrsquoSo max scaled bucket depth = Brsquo = B + MTUrsquo B = MTUrsquo so Brsquo = 2MTUrsquo = 2MTUxMTU = 2048 = 211 x = 8192 = 213 Brsquo = 2 211 213 = 225
Examplex = 64 F = 625MHz Rmax = 1GbpsFx = 9766 Kbps zmax = 1024R (Mbps) = 98 19 29 39 hellip 1000
Packet length = L (b) Desired Rate = Rav (bs) Actual rate = Rmax (bs)Interval (tick) = T (s) F-1 F is nominally 625MHzFill rate = z (tokenstick)Drain rate = x (tokensbit)
Examplex = 1024 (xB = 8192) F = 625MHz Rmax = 1GbpsFx = 61 Kbps (FxB = 76KBps) zmax = 16384 (214)R (Mbps) = 061 hellip 98 104 11 hellip 1000Bmax = 225 Bmin = 224
8WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
using 8-bits for Z x = 64 (tokensByte)Definitions
Packet length = L (b) Desired Sending Rate = R (bs) Actual link rate = Rmax(bs) Clock period = T (s) (or 1F)
Tokens replenishmenttick = z (toktick) Tokens consumedByte = x (tokB)Max packet size = MTU = 2KB Max bucket depth = Bmax = 2MTU x Min bucket depth = MTU x
ConfigurationX = 26 (tokB) Rmax= 125MBs Bmax =2 MTU 26 = 218 (tok) Bmin = 217(tok) F = 55MHz
R(z) = zFX = z5510664 (Bs) = z 551068 (bs) = z558 (Mbps) alternatively z(R) = ceil(R(bs)855106) = ceil(R(Mbs)855)
SPC traffic is limited to 200Mbpsz = 30 (for 20625Mbs)
Test scenarios0) Link at 1Gbps z = 1450x91 (99688 Mbs) 1) Link at 900Mbps z = 1310x83 (90062 Mbs)2) Link at 500Mbps z = 730x49 (50188 Mbs)3) Link at 200Mbps z = 300x1e (20625 Mbs)4) Link at 100Mbps z = 150x0f (10312 Mbs)5) Link at 50Mbps z = 80x08 (5500 Mbs)6) Link at 10Mbps z = 20x02 (1375 Mbs)
7) Link at 1 Mbps z = 10x01 (688 Mbs)
4WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
CARL lt-gt QMGR
External Flags (8 bit)
NM EX HO HR FM TO
Internal Flags (8 bit)
N N-15N-7
DG SB SR IC FC LP SC --
5 4 3 2 1 0 7 6 5 4 3 2 1 0
DP RC
7 6
Total Length (11 bit)LFS Rate2 LFS Rate1
31 0101624
PPN Packet Pointer (20 bit)OVIN (5 bit)
63 32515661
Flags (8 bit) Queue Identifier (10 bit)DP RC NM EX HO HR FM TO
Internal Flags (8 bit)
95 64738088
Cpy Cnt
MB
DG SB SR IC FC LP SC --
7779
916 131531 0192429
CARL lt-gt QMGR
QMGR lt-gt OSAR
PPN OVIN (5 bit) Total Length (11 bit)
LFS Rate2 LFS Rate1
010
08
Packet Pointer (20 bit)
Flags (8 bit)
Queue Identifier (10 bit)
DP RC NM EX HO HR FM TO
Internal Flags (8 bit)31 1624
MB
DG SB SR IC FC LP SC --
29
Queue Length (24 bit)
0
31 24
23
2131 01922
bull External Flag Valuesndash DP (Drop Packet) SPC directive to FPX Will
always be zero coming into SPCndash RC (Reclassify Packet) SPC directive to FPX
May be 0 or 1 going to SPC SPC must redefinendash NM (No Match) FPX can not classify (no route)
FPX to SPC Set to 0 before returning to FPXndash EX (Exception Packet) Requires non-fast path
IP options Non IPv4 FPX to SPC Set to 0 before returning to FPX
ndash HO (Header Only) FPX to SPC Set if packet size gt 120B and only first chunk sent to SPC SPC must not modify SPC can not drop internally if this bit is set
ndash HR (Header Only Return) Internal FPX flag SPC must not modify
ndash FM (From LCSW) Set by FPX SPC can use but not modify
ndash TO (To LCSW) Set by FPX SPC can use but not modify
bull Internal Flag Valuesndash DG (DataGram)ndash SB (SPC-Bound)ndash SR (SPC-Return)ndash IC (Initial Copy) CARL to QMGR qmgr always
sets to 0ndash FC (Final Copy) CARL to QMGR qmgr always
sets to 0ndash LP (LFS oPtion)ndash SC (Single-Chunk)ndash MC
5WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
packet Header Flow through QMGR
SRAM Single Copy Packet Header Format
next packet header in SRAM
Total Length Packet Pointer
External Flags DP RC NM EX HO HR FM TO
Internal FlagsDG SB SR LP SC
2035 28
OPN
1718 023
MB MC
2035 25 19 022
Total Length (11 bit)LFS Rate2 LFS Rate1
31 0101924
PPN Packet Pointer (20 bit)OVIN (5 bit)
63 32515661
Flags (8 bit) Queue Identifier (10 bit)DP RC NM EX HO HR FM TO
Internal Flags (8 bit)
95 64738088cpycnt
MBDG SB SR IC FC LP SC --
7779
916 131531 0192429
CARL lt-gt QMGR
PPN OVIN (5 bit) Total Length (11 bit)
LFS Rate2 LFS Rate1
010
08
Packet Pointer (20 bit)
Flags (8 bit)
Queue Identifier (10 bit)
DP RC NM EX HO HR FM TO
Internal Flags (8 bit)
31 1624
MB
DG SB SR LP SC
--
29
Queue Length (24 bit)
0
31 24
23
2131 01922
QMGR lt-gt OSAR
lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquolsquo0rsquo
lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquolsquo0rsquo
lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquolsquo0rsquo
SPIOPN
31 0101624
SPIPPN
MClsquo0rsquo lsquo0rsquo
lsquo0rsquo current QID(80)
SPIOPN
NotesMC = (cpycnt == 0) 0 1
In
Out
6WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
SRAM Table Entries
SRAM Single Copy Packet Header Format
total length xxppn common reference ptr35 0192225
SRAM Multi-copy Packet Header Format
XXX
35X
0
35 01933common reference ptrcpy X
SRAM Multi-copy Common Reference Entry
35 0172027external flags internal flags cpy next header
35 0172027external flags internal flags cpy next header
35 0192225total length xxppn common reference ptr
External Flags (8 bit)DP RC NM EX HO HR FM TO
Internal Flags (8 bit)N N-15N-7
DG SB SR IC FC LP SC --
35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20
FIX
7WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
Token Bucket Constrained Output
tokens Bi
Bmax
Fill rate add z tokens every tick (T seconds)
remove Lx tokens to send a packet with L-bits
Sending continuouslyTRavx tokens used each period drain rate Ravx z tokens added every tick replenishment rate = zTz = ceil(RavTx) for Rav(z) lt Rmax zmax = floor(RmaxTx)
So the corresponding sending rates areRav(z) = z(Fx) Rav = Fx 2Fx 3Fx hellip zmaxFx
Ticks to send packet = LTRmax (tickspkt) Tokens to send packet LxGiven packet length in Bytes LB convert xB = 8xb RB = Rb8 Rb = zFxb = zF(xB8)VHDL uses xB = 8192 (tokB) =gt xb = 1024 (tokb)
Burst size(xL tokens to send L bytes zLTR tokens added during send)d = B ndash xBLB + zLBTRmax = B ndash L(x ndash zTRmax) stop sending when lt= 0 so min(n) gt= (BL) (x ndash zTRmax)But z = ceil(RavTx) gt= RavTx so a lower bound is (BxL) (1 ndash RavRmax) Let B = MTU x and L = MTU then n = ceil(Rmax(Rmax-RAV)) or RAV = Rmax(n-1)n for n = 1 2 hellip N
Bucket depth ranged = n(tick) z(toktick) = B ticks to fill = n = Bzit takes MTUrsquo = MTUxB tokens to send ndashMTUrsquo lt d lt= B so scale d as drsquo = d + MTUrsquo then 0 lt drsquo lt= B + MTUrsquoSo max scaled bucket depth = Brsquo = B + MTUrsquo B = MTUrsquo so Brsquo = 2MTUrsquo = 2MTUxMTU = 2048 = 211 x = 8192 = 213 Brsquo = 2 211 213 = 225
Examplex = 64 F = 625MHz Rmax = 1GbpsFx = 9766 Kbps zmax = 1024R (Mbps) = 98 19 29 39 hellip 1000
Packet length = L (b) Desired Rate = Rav (bs) Actual rate = Rmax (bs)Interval (tick) = T (s) F-1 F is nominally 625MHzFill rate = z (tokenstick)Drain rate = x (tokensbit)
Examplex = 1024 (xB = 8192) F = 625MHz Rmax = 1GbpsFx = 61 Kbps (FxB = 76KBps) zmax = 16384 (214)R (Mbps) = 061 hellip 98 104 11 hellip 1000Bmax = 225 Bmin = 224
8WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
using 8-bits for Z x = 64 (tokensByte)Definitions
Packet length = L (b) Desired Sending Rate = R (bs) Actual link rate = Rmax(bs) Clock period = T (s) (or 1F)
Tokens replenishmenttick = z (toktick) Tokens consumedByte = x (tokB)Max packet size = MTU = 2KB Max bucket depth = Bmax = 2MTU x Min bucket depth = MTU x
ConfigurationX = 26 (tokB) Rmax= 125MBs Bmax =2 MTU 26 = 218 (tok) Bmin = 217(tok) F = 55MHz
R(z) = zFX = z5510664 (Bs) = z 551068 (bs) = z558 (Mbps) alternatively z(R) = ceil(R(bs)855106) = ceil(R(Mbs)855)
SPC traffic is limited to 200Mbpsz = 30 (for 20625Mbs)
Test scenarios0) Link at 1Gbps z = 1450x91 (99688 Mbs) 1) Link at 900Mbps z = 1310x83 (90062 Mbs)2) Link at 500Mbps z = 730x49 (50188 Mbs)3) Link at 200Mbps z = 300x1e (20625 Mbs)4) Link at 100Mbps z = 150x0f (10312 Mbs)5) Link at 50Mbps z = 80x08 (5500 Mbs)6) Link at 10Mbps z = 20x02 (1375 Mbs)
7) Link at 1 Mbps z = 10x01 (688 Mbs)
5WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
packet Header Flow through QMGR
SRAM Single Copy Packet Header Format
next packet header in SRAM
Total Length Packet Pointer
External Flags DP RC NM EX HO HR FM TO
Internal FlagsDG SB SR LP SC
2035 28
OPN
1718 023
MB MC
2035 25 19 022
Total Length (11 bit)LFS Rate2 LFS Rate1
31 0101924
PPN Packet Pointer (20 bit)OVIN (5 bit)
63 32515661
Flags (8 bit) Queue Identifier (10 bit)DP RC NM EX HO HR FM TO
Internal Flags (8 bit)
95 64738088cpycnt
MBDG SB SR IC FC LP SC --
7779
916 131531 0192429
CARL lt-gt QMGR
PPN OVIN (5 bit) Total Length (11 bit)
LFS Rate2 LFS Rate1
010
08
Packet Pointer (20 bit)
Flags (8 bit)
Queue Identifier (10 bit)
DP RC NM EX HO HR FM TO
Internal Flags (8 bit)
31 1624
MB
DG SB SR LP SC
--
29
Queue Length (24 bit)
0
31 24
23
2131 01922
QMGR lt-gt OSAR
lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquolsquo0rsquo
lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquolsquo0rsquo
lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquo lsquo0rsquolsquo0rsquo
SPIOPN
31 0101624
SPIPPN
MClsquo0rsquo lsquo0rsquo
lsquo0rsquo current QID(80)
SPIOPN
NotesMC = (cpycnt == 0) 0 1
In
Out
6WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
SRAM Table Entries
SRAM Single Copy Packet Header Format
total length xxppn common reference ptr35 0192225
SRAM Multi-copy Packet Header Format
XXX
35X
0
35 01933common reference ptrcpy X
SRAM Multi-copy Common Reference Entry
35 0172027external flags internal flags cpy next header
35 0172027external flags internal flags cpy next header
35 0192225total length xxppn common reference ptr
External Flags (8 bit)DP RC NM EX HO HR FM TO
Internal Flags (8 bit)N N-15N-7
DG SB SR IC FC LP SC --
35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20
FIX
7WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
Token Bucket Constrained Output
tokens Bi
Bmax
Fill rate add z tokens every tick (T seconds)
remove Lx tokens to send a packet with L-bits
Sending continuouslyTRavx tokens used each period drain rate Ravx z tokens added every tick replenishment rate = zTz = ceil(RavTx) for Rav(z) lt Rmax zmax = floor(RmaxTx)
So the corresponding sending rates areRav(z) = z(Fx) Rav = Fx 2Fx 3Fx hellip zmaxFx
Ticks to send packet = LTRmax (tickspkt) Tokens to send packet LxGiven packet length in Bytes LB convert xB = 8xb RB = Rb8 Rb = zFxb = zF(xB8)VHDL uses xB = 8192 (tokB) =gt xb = 1024 (tokb)
Burst size(xL tokens to send L bytes zLTR tokens added during send)d = B ndash xBLB + zLBTRmax = B ndash L(x ndash zTRmax) stop sending when lt= 0 so min(n) gt= (BL) (x ndash zTRmax)But z = ceil(RavTx) gt= RavTx so a lower bound is (BxL) (1 ndash RavRmax) Let B = MTU x and L = MTU then n = ceil(Rmax(Rmax-RAV)) or RAV = Rmax(n-1)n for n = 1 2 hellip N
Bucket depth ranged = n(tick) z(toktick) = B ticks to fill = n = Bzit takes MTUrsquo = MTUxB tokens to send ndashMTUrsquo lt d lt= B so scale d as drsquo = d + MTUrsquo then 0 lt drsquo lt= B + MTUrsquoSo max scaled bucket depth = Brsquo = B + MTUrsquo B = MTUrsquo so Brsquo = 2MTUrsquo = 2MTUxMTU = 2048 = 211 x = 8192 = 213 Brsquo = 2 211 213 = 225
Examplex = 64 F = 625MHz Rmax = 1GbpsFx = 9766 Kbps zmax = 1024R (Mbps) = 98 19 29 39 hellip 1000
Packet length = L (b) Desired Rate = Rav (bs) Actual rate = Rmax (bs)Interval (tick) = T (s) F-1 F is nominally 625MHzFill rate = z (tokenstick)Drain rate = x (tokensbit)
Examplex = 1024 (xB = 8192) F = 625MHz Rmax = 1GbpsFx = 61 Kbps (FxB = 76KBps) zmax = 16384 (214)R (Mbps) = 061 hellip 98 104 11 hellip 1000Bmax = 225 Bmin = 224
8WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
using 8-bits for Z x = 64 (tokensByte)Definitions
Packet length = L (b) Desired Sending Rate = R (bs) Actual link rate = Rmax(bs) Clock period = T (s) (or 1F)
Tokens replenishmenttick = z (toktick) Tokens consumedByte = x (tokB)Max packet size = MTU = 2KB Max bucket depth = Bmax = 2MTU x Min bucket depth = MTU x
ConfigurationX = 26 (tokB) Rmax= 125MBs Bmax =2 MTU 26 = 218 (tok) Bmin = 217(tok) F = 55MHz
R(z) = zFX = z5510664 (Bs) = z 551068 (bs) = z558 (Mbps) alternatively z(R) = ceil(R(bs)855106) = ceil(R(Mbs)855)
SPC traffic is limited to 200Mbpsz = 30 (for 20625Mbs)
Test scenarios0) Link at 1Gbps z = 1450x91 (99688 Mbs) 1) Link at 900Mbps z = 1310x83 (90062 Mbs)2) Link at 500Mbps z = 730x49 (50188 Mbs)3) Link at 200Mbps z = 300x1e (20625 Mbs)4) Link at 100Mbps z = 150x0f (10312 Mbs)5) Link at 50Mbps z = 80x08 (5500 Mbs)6) Link at 10Mbps z = 20x02 (1375 Mbs)
7) Link at 1 Mbps z = 10x01 (688 Mbs)
6WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
SRAM Table Entries
SRAM Single Copy Packet Header Format
total length xxppn common reference ptr35 0192225
SRAM Multi-copy Packet Header Format
XXX
35X
0
35 01933common reference ptrcpy X
SRAM Multi-copy Common Reference Entry
35 0172027external flags internal flags cpy next header
35 0172027external flags internal flags cpy next header
35 0192225total length xxppn common reference ptr
External Flags (8 bit)DP RC NM EX HO HR FM TO
Internal Flags (8 bit)N N-15N-7
DG SB SR IC FC LP SC --
35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20
FIX
7WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
Token Bucket Constrained Output
tokens Bi
Bmax
Fill rate add z tokens every tick (T seconds)
remove Lx tokens to send a packet with L-bits
Sending continuouslyTRavx tokens used each period drain rate Ravx z tokens added every tick replenishment rate = zTz = ceil(RavTx) for Rav(z) lt Rmax zmax = floor(RmaxTx)
So the corresponding sending rates areRav(z) = z(Fx) Rav = Fx 2Fx 3Fx hellip zmaxFx
Ticks to send packet = LTRmax (tickspkt) Tokens to send packet LxGiven packet length in Bytes LB convert xB = 8xb RB = Rb8 Rb = zFxb = zF(xB8)VHDL uses xB = 8192 (tokB) =gt xb = 1024 (tokb)
Burst size(xL tokens to send L bytes zLTR tokens added during send)d = B ndash xBLB + zLBTRmax = B ndash L(x ndash zTRmax) stop sending when lt= 0 so min(n) gt= (BL) (x ndash zTRmax)But z = ceil(RavTx) gt= RavTx so a lower bound is (BxL) (1 ndash RavRmax) Let B = MTU x and L = MTU then n = ceil(Rmax(Rmax-RAV)) or RAV = Rmax(n-1)n for n = 1 2 hellip N
Bucket depth ranged = n(tick) z(toktick) = B ticks to fill = n = Bzit takes MTUrsquo = MTUxB tokens to send ndashMTUrsquo lt d lt= B so scale d as drsquo = d + MTUrsquo then 0 lt drsquo lt= B + MTUrsquoSo max scaled bucket depth = Brsquo = B + MTUrsquo B = MTUrsquo so Brsquo = 2MTUrsquo = 2MTUxMTU = 2048 = 211 x = 8192 = 213 Brsquo = 2 211 213 = 225
Examplex = 64 F = 625MHz Rmax = 1GbpsFx = 9766 Kbps zmax = 1024R (Mbps) = 98 19 29 39 hellip 1000
Packet length = L (b) Desired Rate = Rav (bs) Actual rate = Rmax (bs)Interval (tick) = T (s) F-1 F is nominally 625MHzFill rate = z (tokenstick)Drain rate = x (tokensbit)
Examplex = 1024 (xB = 8192) F = 625MHz Rmax = 1GbpsFx = 61 Kbps (FxB = 76KBps) zmax = 16384 (214)R (Mbps) = 061 hellip 98 104 11 hellip 1000Bmax = 225 Bmin = 224
8WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
using 8-bits for Z x = 64 (tokensByte)Definitions
Packet length = L (b) Desired Sending Rate = R (bs) Actual link rate = Rmax(bs) Clock period = T (s) (or 1F)
Tokens replenishmenttick = z (toktick) Tokens consumedByte = x (tokB)Max packet size = MTU = 2KB Max bucket depth = Bmax = 2MTU x Min bucket depth = MTU x
ConfigurationX = 26 (tokB) Rmax= 125MBs Bmax =2 MTU 26 = 218 (tok) Bmin = 217(tok) F = 55MHz
R(z) = zFX = z5510664 (Bs) = z 551068 (bs) = z558 (Mbps) alternatively z(R) = ceil(R(bs)855106) = ceil(R(Mbs)855)
SPC traffic is limited to 200Mbpsz = 30 (for 20625Mbs)
Test scenarios0) Link at 1Gbps z = 1450x91 (99688 Mbs) 1) Link at 900Mbps z = 1310x83 (90062 Mbs)2) Link at 500Mbps z = 730x49 (50188 Mbs)3) Link at 200Mbps z = 300x1e (20625 Mbs)4) Link at 100Mbps z = 150x0f (10312 Mbs)5) Link at 50Mbps z = 80x08 (5500 Mbs)6) Link at 10Mbps z = 20x02 (1375 Mbs)
7) Link at 1 Mbps z = 10x01 (688 Mbs)
7WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
Token Bucket Constrained Output
tokens Bi
Bmax
Fill rate add z tokens every tick (T seconds)
remove Lx tokens to send a packet with L-bits
Sending continuouslyTRavx tokens used each period drain rate Ravx z tokens added every tick replenishment rate = zTz = ceil(RavTx) for Rav(z) lt Rmax zmax = floor(RmaxTx)
So the corresponding sending rates areRav(z) = z(Fx) Rav = Fx 2Fx 3Fx hellip zmaxFx
Ticks to send packet = LTRmax (tickspkt) Tokens to send packet LxGiven packet length in Bytes LB convert xB = 8xb RB = Rb8 Rb = zFxb = zF(xB8)VHDL uses xB = 8192 (tokB) =gt xb = 1024 (tokb)
Burst size(xL tokens to send L bytes zLTR tokens added during send)d = B ndash xBLB + zLBTRmax = B ndash L(x ndash zTRmax) stop sending when lt= 0 so min(n) gt= (BL) (x ndash zTRmax)But z = ceil(RavTx) gt= RavTx so a lower bound is (BxL) (1 ndash RavRmax) Let B = MTU x and L = MTU then n = ceil(Rmax(Rmax-RAV)) or RAV = Rmax(n-1)n for n = 1 2 hellip N
Bucket depth ranged = n(tick) z(toktick) = B ticks to fill = n = Bzit takes MTUrsquo = MTUxB tokens to send ndashMTUrsquo lt d lt= B so scale d as drsquo = d + MTUrsquo then 0 lt drsquo lt= B + MTUrsquoSo max scaled bucket depth = Brsquo = B + MTUrsquo B = MTUrsquo so Brsquo = 2MTUrsquo = 2MTUxMTU = 2048 = 211 x = 8192 = 213 Brsquo = 2 211 213 = 225
Examplex = 64 F = 625MHz Rmax = 1GbpsFx = 9766 Kbps zmax = 1024R (Mbps) = 98 19 29 39 hellip 1000
Packet length = L (b) Desired Rate = Rav (bs) Actual rate = Rmax (bs)Interval (tick) = T (s) F-1 F is nominally 625MHzFill rate = z (tokenstick)Drain rate = x (tokensbit)
Examplex = 1024 (xB = 8192) F = 625MHz Rmax = 1GbpsFx = 61 Kbps (FxB = 76KBps) zmax = 16384 (214)R (Mbps) = 061 hellip 98 104 11 hellip 1000Bmax = 225 Bmin = 224
8WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
using 8-bits for Z x = 64 (tokensByte)Definitions
Packet length = L (b) Desired Sending Rate = R (bs) Actual link rate = Rmax(bs) Clock period = T (s) (or 1F)
Tokens replenishmenttick = z (toktick) Tokens consumedByte = x (tokB)Max packet size = MTU = 2KB Max bucket depth = Bmax = 2MTU x Min bucket depth = MTU x
ConfigurationX = 26 (tokB) Rmax= 125MBs Bmax =2 MTU 26 = 218 (tok) Bmin = 217(tok) F = 55MHz
R(z) = zFX = z5510664 (Bs) = z 551068 (bs) = z558 (Mbps) alternatively z(R) = ceil(R(bs)855106) = ceil(R(Mbs)855)
SPC traffic is limited to 200Mbpsz = 30 (for 20625Mbs)
Test scenarios0) Link at 1Gbps z = 1450x91 (99688 Mbs) 1) Link at 900Mbps z = 1310x83 (90062 Mbs)2) Link at 500Mbps z = 730x49 (50188 Mbs)3) Link at 200Mbps z = 300x1e (20625 Mbs)4) Link at 100Mbps z = 150x0f (10312 Mbs)5) Link at 50Mbps z = 80x08 (5500 Mbs)6) Link at 10Mbps z = 20x02 (1375 Mbs)
7) Link at 1 Mbps z = 10x01 (688 Mbs)
8WashingtonWASHINGTON UNIVERSITY IN ST LOUIS
Fred Kuhns - 041923
using 8-bits for Z x = 64 (tokensByte)Definitions
Packet length = L (b) Desired Sending Rate = R (bs) Actual link rate = Rmax(bs) Clock period = T (s) (or 1F)
Tokens replenishmenttick = z (toktick) Tokens consumedByte = x (tokB)Max packet size = MTU = 2KB Max bucket depth = Bmax = 2MTU x Min bucket depth = MTU x
ConfigurationX = 26 (tokB) Rmax= 125MBs Bmax =2 MTU 26 = 218 (tok) Bmin = 217(tok) F = 55MHz
R(z) = zFX = z5510664 (Bs) = z 551068 (bs) = z558 (Mbps) alternatively z(R) = ceil(R(bs)855106) = ceil(R(Mbs)855)
SPC traffic is limited to 200Mbpsz = 30 (for 20625Mbs)
Test scenarios0) Link at 1Gbps z = 1450x91 (99688 Mbs) 1) Link at 900Mbps z = 1310x83 (90062 Mbs)2) Link at 500Mbps z = 730x49 (50188 Mbs)3) Link at 200Mbps z = 300x1e (20625 Mbs)4) Link at 100Mbps z = 150x0f (10312 Mbs)5) Link at 50Mbps z = 80x08 (5500 Mbs)6) Link at 10Mbps z = 20x02 (1375 Mbs)
7) Link at 1 Mbps z = 10x01 (688 Mbs)