Flow-based Fast Path
By default, the packets are not handled by the AP. They are instead passed on the higher layer software running on the host CPU. The software running on the host CPU determines if the APs should handle the subsequent packets of the same flow. A flow is defined as a sequence of packet that has same end point identification. Once a flow is identified and exchanged with data path APs, subsequent packets are processed by the AP without involving Host CPU.
The flow-based approach allows the host CPU to have full control over which flows are accelerated. This provides flexibility to the system designer, by allowing the system software to determine which flows require wire speed performance. The flow-based approach also means that only the packets that are part of a flow are accelerated and get performance benefit of AP. This approach is very practical and efficient because packets are not entirely random. A group of packets usually form a common purpose, such as accessing a web page, downloading a file or streaming a music or video clip. On an IP network this translates into a connection or a flow. Even a Stateful Firewalls are implemented by monitoring flows.
In a typical application, a flow would be defined for all established TCP connections, where a TCP handshake is completed. This would ensure that once a TCP connection is established, the data transfer over it happens through APs. TCP is a connection oriented protocol and offers reliable guaranteed data transfer capability. Typically Applications that can not tolerate any loss of data e.g. file transfer use TCP connections for data transfer. For applications using UDP connection a flow can be defined by higher layer application like voice signaling. UDP is a connectionless protocol and does not guarantee reliable transfer of packets. Hence higher layer applications participate in flow identification.
The Accelerator Processor connected to the xDSL interface can be used for ATM processing if ATM is applied over DSL. Many ADSL deployments and a few VDSL deployments use ATM as a transport mechanism.
If configured as ATM processing, the xDSL AP performs ATM functions. If IP or Ethernet is used as a transport mechanism, then the xDSL AP would execute the same functions as described in Ethernet AP section. Figure 3 represents ATM processing in ATM Accelerator Processor.
Typical ATM processing includes:
- ATM AAL 5 Segmentation and Reassembly;(SAR)
- IP to ATM subnetwork dependant convergence function ( Ex IPOA);
- ATM traffic shaping based on Class of Service traffic descriptors; and
- ATM cell reception and transmission.
ATM Processing is divided into several tasks. The encapsulation task constructs the encapsulation header and encapsulation trailer. The constructed header and trailer is copied on the original packet in the main memory. SAR function ensures variable packet is segmented into ATM cells and reassembly of received cells into packets.
Traffic shaping tasks schedules cell transmission based on traffic parameters configured for various ATM virtual connections and based on link speed. Traffic shaping is based on dual leaky bucket algorithm. Cell transmission task transmits the cells scheduled by scheduler to xDSL engine.