Title: Allocate and free code option instance, NPE resources and interface bandwidth.
1Slice-Centric View
MI1
q0
SRAM block
DRAM block
MI1 (tunnel)
...
wrr
stats
BW1,min
qi
MI1 myIP, Port1
qparams
Fast path Slicex
Slicex
MI2
qj
...
qlen, threshold, weight
MI2 (tunnel)
MIn myIP, Portn
...
wrr
TCAM (Filters)
BW2,min
substrate slice state
qk
- Allocate and free code option instance,NPE
resources and interface bandwidth. - Manage interfaces
- Get interface attributesifn, type, ipaddr,
linkBW, availBW, ... - If peering then get peers IP address
- Allocate aggregate interface bandwidth
- Allocate external port number(s)
- Define meta-interfaces
- Substrate adds line card filter(s)
- Slice may specify minimum BW
- Associate queues with meta-interfaces
- Substrate has to map meta-interface numbers used
in TCAM filters to the corresponding local
addresses - Manage queue parameters, get queue length
- threshold, bandwidth (weight)
...
max Buffers
qGPE
MIm
qj
VLAN
MIn (tunnel)
max weights
...
wrr
BWn,min
ql
GPE
- Manage TCAM filters
- add, remove, update, get, lookup
- Substrate remaps slice ids (qid, fid, mi, stats)
to global identifier - One-time or periodic statistics
- Periodic uses polled or callback model
- Read and write SRAM
- Substrate verifies address and length
- Extended to also support DRAM memory
2Mapping Slice Queue BW to Queuing Weights
Slice Interface and Queue Allocations Port,
BW, QList Qlist qid, weight, threshold,...
NPE
wrr
Physical Port (Interface) Attributes ifn,
type, ipaddr, linkBW, availBW ifn Interface
number type Internet, Peering Operations get_
interfaces() get_ifattrs(ifn) get_ifpeer(ifn) a
lloc_ifbw(ifn,bw)
q10
q11
FP slice1
...
qid in 0...n-1
BW11
q1n
q20
LC
q21
FP slice2
...
qid in 0...m-1
q2m
wrr
FP1
BW1
FP2
ipAddr
BW11 BW21 BW1
GPE
linkBW
GPE
BW21
3Single Interface Example
LC
- LC Ingress
- One queue per slice with reserved bandwidth
(really one per scheduler) - One queue for best effort traffic to each GPE
- One scheduler for CP with queues for reserved
traffic plus BE - LC Egress
- At least one scheduler for each physical
interface - One queue for each active slice with MI defined
for the associated scheduler - One best effort queue for each board (GPE, CP,
NPE?) - NPE
- Slice binds queues to meta-interfaces, hence
physical interfaces - Slice either reserves BW on a physical interface
or it is assigned the minimum - Substrate assigns a per interface maximum weight
for each slice - Substrate sets scheduler rates according to
aggregate allocations - Manage scheduler rates to control aggregate
traffic to interfaces and boards.
Ingress
wrr
qxs1
SchedNPE1
qxs2
...
Map fpMI to Q dip, dp, pr
qxsn
...
qps1
qps2
SchedGPE1
...
qpsn
qBE
wrr
...
interface 1
SchedCP
Egress
NPE
BWNPE1,GPE1
local delivery and exception
VLAN
wrr
qs1
...
qw,GPE1
wrr
...
qs2
Total weight for all slices (i) and queues (j)
max weight for scheduler s (Ws)
SchedI1
...
...
qsn
slices allocated BW
q11 w11
q12 w12
q1n w1n
...
qp1 wp1
qp2 wp2
qpm wpm
...
BWI1
...
qGPE
src addr proto port/icmp
...
wrr
BWs,k
Scheds,k
qCP
scheduler min rate
...
GPE
minimum weight 1 MTU sized packet
4Two Interface Example, Setting Queue Weights
Slice i, meta-interface j, qid k and scheduler s.
NPE
wrr
q1j0
q1j1
...
LC
BW11
q1jn
wrr
to interface 1
FP1
q2j0
BW1
FP2
IP1
q2j1
...
linkBW
GPE
q2jm
to interface 2
q1j0
wrr
q1j1
to interface 1
FP1
BW2
...
FP2
IP2
BW12
q1jn
linkBW
GPE
q2j0
to interface 2
q2j1
...
q2jm
wrr
5Formulas
- Slice i, meta-interface j, QID k and scheduler s.
scheduler
qid
meta-interface
fastpath