Information

Enhanced Three-Speed Ethernet Controllers
MPC8308 PowerQUICC II Pro Processor Reference Manual, Rev. 1
16-152 Freescale Semiconductor
16.6.4.3 Transmission Scheduling
Each eTSEC can maintain multiple TxBD rings (or transmission queues) to satisfy QoS requirements. The
ability to choose from a number of transmission streams dynamically is especially important during
periods of network congestion. Certain application such as voice and video streaming are delay sensitive,
but loss insensitive. For instance, VoIP applications require little bandwidth, but are highly sensitive to
latency. Conversely, FTP or SMTP protocols are delay insensitive, but loss sensitive.
eTSEC has a transmission scheduler that implements a programmable QoS regime. The scheduler is
responsible for choosing which of the prefetched TxBDs shall be processed next, and accordingly issuing
DMA requests to service the data stream described by the chosen BD(s). The scheduler cycle is as follows:
1. Decide on a TxBD queue
2. Transmit exactly one frame from that queue
3. Return to deciding on another queue, in step 1
If TCTRL[TXSCHED] is set to 00, no transmission scheduling occurs, and only TxBD ring 0 is polled for
new data to transmit, with DMACTRL controlling waiting or polling. TCTRL[TXSCHED], if not zero,
can be programmed to invoke one of two scheduling algorithms, namely priority-based queuing (PBQ),
and modified weighted round-robin queuing (MWRR). In all cases where TCTRL[TXSCHED] is not zero,
the scheduler can choose from among 1 to 8 TxBD rings per eTSEC, with individual rings being enabled
by the setting of TQUEUE[EN0–EN7] bits. For example, TxBD rings 3, 4, and 7 may be enabled for
scheduling by setting EN3, EN4, and EN7, and clearing all other EN bits.
Table 16-143. Filer Table Example—TCP and UDP Port Filing
Table
Entry
RQCTRL Fields
RQPROP Comment RQCTRL Word
CLE REJ AND Q CMP PID
0 1 0 1 000_000 00 1011 0x0000_0006 Enter cluster if layer 4 is TCP 0x0000_028B
1 0 0 1 000_000 01 1111 0x0000_0014 AND rule—FTP from TCP ports 20
and 21: file to ring 2
0x0000_00AF
2 0 0 0 000_010 11 1111 0x0000_0016 0x0000_086F
3 0 0 0 000_011 00 1111 0x0000_0017 telnet from TCP port 23: file to ring 3 0x0000_0C0F
4 0 0 0 000_000 00 1111 0x0000_0000 empty entry reserved for future use 0x0000_000F
5 0 0 0 000_000 00 1111 0x0000_0000 empty entry reserved for future use 0x0000_000F
6 1 0 0 000_001 01 0000 0x0000_0000 end cluster; default TCP: file to ring 1 0x0000_0620
7 1 0 1 000_000 00 1011 0x0000_0011 Enter cluster if layer 4 is UDP 0x0000_028B
8 0 0 0 000_101 00 1111 0x0000_0801 NFS from UDP port 2049 0x0000_140F
9 0 0 0 000_111 00 1111 0x0000_0208 Route from UDP port 520 0x0000_000F
10 0 0 0 000_110 00 1111 0x0000_0045 TFTP from UDP port 69 0x0000_180F
11 1 0 0 000_100 01 0000 0x0000_0000 End cluster; default UDP: file to ring 4 0x0000_1220
12 0 0 0 000_000 01 0000 0x0000_0000 By default, file to ring 0 0x0000_0020