
PXB 4330 E
ABM Buffer Configuration
Semiconductor Group
33
Application Note 11.98
/************************************ Begin EPD algorithm ***********************************/
/*
First if-condition
: Evaluation if this cell is the first cell of a
packet and a user-to-user-cell.
Second if-condition
: Evaluation if one of the EPD thresholds was exceeded.
Then discarding of this cell (strictly speaking of this packet) is
prepared (LCItable-EPDdiscardPacket-flag_1 is set to 1). */
if (LCItable-EPDlastCellofPacketReceived-flag_2=1 AND utu=1)
then
if {(EPD_globalBuffer=1 AND CLPT=1) OR
(EPD_globalBuffer=1 AND EPD_GFR_queue=1) OR
EPD_CLP1_globalBuffer=1 OR
EPD_queue=1 OR
EPD_scheduler=1}
then
LCItable-EPDdiscardPacket-flag_1 = 1;
else
LCItable-EPDdiscardPacket-flag_1 = 0;
else
don’t modify LCItable-EPDdiscardPacket-flag_1;
end if
/* Description of the command lines of the
second if-condition
:
(EPD_globalBuffer=1 AND CLPT=1)
= query if the global buffer EPD threshold
of a traffic class (= BufNrtEPD) was exceeded, besides BufNrtEPD of GFR
(due to CLPT=1). To trigger BufNrtEPD of GFR additionally the queue
threshold QCICLP1 case c) has to be exceeded (= "
high water mark
", see
second command line of this if-condition).
(EPD_globalBuffer=1 AND EPD_GFR_queue=1) =
query if "
high water mark
" of
GFR was exceeded (BufNrtEPD of GFR + QCICLP1 case c)).
EPD_CLP1_globalBuffer=1
= query if the global buffer EPD threshold (=
registers UEC/DEC) for CLP1 frames of a traffic class (especially GFR) was
exceeded (= "
low water mark
" of GFR).
EPD_queue=1
= query if the EPD threshold of an individual queue (= QmaxEPD
case a)) was exceeded.
EPD_scheduler=1
= query if the EPD threshold of an individual scheduler
(= SbMaxEpdCi case b) was exceeded. */