System and method for efficient packetization of ATM cells transmitted over a packet network

A system and method for efficient packetization of cells transmitted over a packet network are described. Multiple virtual connections are received, each virtual connection carrying multiple cells. One or more cells of the cells carried by each virtual connection are stored for a predetermined time period. A cell counter of the stored cells is modified to indicate a number of the stored cells. Finally, a packet containing the stored cells is formed, the packet to be transmitted to a destination node over a network.

FIELD OF THE INVENTION

The present invention relates generally to data communications and, more particularly, to a system and method for efficient packetization of ATM cells transmitted over a packet network.

BACKGROUND OF THE INVENTION

Asynchronous Transfer Mode (ATM) or “cell switching” is a method of transmitting digital information wherein the information is broken into equal sized units called “cells.” The individual cells of information are transmitted from a source node to a destination node through a “connection”. A connection is a pathway through a digital network. A digital network is constructed of digital switches coupled together by digital communication links.

Each cell originates at a source node and is transmitted across the communication links. The communication links carry the cells of information between the digital switches along the connection pathway. The digital switches route the cells from incoming communication links to outgoing communication links and finally to a destination node.

Each digital switch can be connected to several communication links. Furthermore, each communication link can carry several different connections simultaneously. Typically, a cell memory or buffer is used for temporarily holding cells prior to transmission on a communication link. The cell memory is arranged into logical queues or class of service buffers (COSB). Several queues may be used for separating different types of services and connections. For example, cells belonging to higher priority connections may be stored in queues that have a higher priority of service. In some cases, a separate queue may be assigned to each connection. Servicing a queue entails removing a cell from the queue and sending the cell out on a communication link or to a destination node coupled to the digital switch. A service algorithm is employed to select a queue for service. To fully utilize the bandwidth of a communication link, a cell should be selected for service during each service time, where a service time is equal to the time required to transmit a cell on the communication link.

Typically, switches are capable of handling different classes of cell traffic, each class having different characteristics and different service requirements. The various classes of cell traffic might include high priority traffic, voice, high-speed deterministic traffic, bursty data, etc. Typically, each of these traffic types is buffered at each switch in accordance with its particular sensitivities to network delay and cell loss. Cell loss may occur due to intermittent short-term overload of network bandwidth and lack of adequate buffer capacity. Each class of traffic may be placed in a preassigned queue at each switch, each queue having a different service priority. Servicing algorithms are typically employed to discriminate between traffic classes in order to allocate bandwidth. Delay is managed by properly sizing the queue depths and prioritizing transmission within a class.

After cells are serviced and removed from a respective queue or COSB, in order to transfer the cells to a destination node over a non-ATM packet network, for example a MultiProtocol Label Switching (MPLS) network, multiple cells belonging to different connections need to be encapsulated in a single packet. When packets enter the MPLS-based network, label edge routers (LER) within the network assign a label to each packet. This label or identifier is attached to the packet formed from the ATM cells and contains information based on a routing table entry, such as destination, bandwidth, delay, and other metrics. This label is referred to as the tunnel label. Within the tunnel, there can be multiple data flows, each of which is identified by a virtual circuit (VC) label. Each VC label represents an aggregate flow of ATM connections. Each of the VC labels is mapped to a COSB. Multiple ATM connections belonging to the same class of service are bundled into one VC label. Since the entire cell is carried with the MPLS label stack within the corresponding packet, additional overhead is added within the network. In order to reduce the per cell overhead, multiple cells need to be encapsulated within the packet without exceeding the delay and jitter characteristics for the respective connection.

SUMMARY OF THE INVENTION

A system and method for efficient packetization of cells transmitted over a packet network are described. Multiple virtual connections are received, each virtual connection carrying multiple cells. One or more cells of the cells carried by each virtual connection are stored for a predetermined time period. A cell counter of the stored cells is modified to indicate a number of the stored cells. Finally, a packet containing the stored cells is formed, the packet to be transmitted to a destination node over a network.

DETAILED DESCRIPTION

According to embodiments described herein, a system and method for efficient packetization of cells transmitted over a packet network are described. Multiple virtual connections are received, each virtual connection carrying multiple cells. One or more cells belonging to one or more virtual connection are stored for a predetermined time period. Multiple virtual circuits belonging to the same class of service are assigned a virtual circuit (VC) label at the time of the packetization. Each VC label will be mapped to a class of service buffer (COSB) queue. Each of the COSB queues have a preconfigured maximum number of cells per packet and a maximum wait time to accumulate the cells for prioritization. The packet is formed out of these cells when a counter reaches a configured maximum number of cells or a timer counting the wait time has expired. An intended advantage of the embodiments described herein is to reduce the overhead within the network without exceeding the delay and jitter characteristics for the respective connection. Another intended advantage is to provide increased efficiency at the time of cell packetization.

FIG. 1is a block diagram of one embodiment of a network structure. As illustrated inFIG. 1, the network structure100includes three networks110,120, and130interconnected via one or more communication links115and125. For example, network120, such as a MultiProtocol Label Switching (MPLS) network, is connected to the network110, such as an Asynchronous Transfer Mode (ATM) network, via communication links115and to the network130, for example a second ATM network, via communication links125. Each ATM network110and130includes multiple ATM network nodes112,132, interconnected via communication links114and134, respectively. The packet network120contains multiple packet nodes122coupled through communication links124. Packet nodes122are also coupled to ATM nodes112within network110via communication links115and to ATM nodes132within network130via corresponding communication links125.

In one embodiment, cells carried on multiple virtual connections and transmitted from a source node (not shown) arrive at a node112within the network110and travel across the communication links114through various network nodes112within the network110. The cells are subsequently encapsulated in packets and transmitted across the communication links115to the packet network120. After being transmitted across the communication links124through multiple packet nodes122within the network120, individual cells within the formed packets are transmitted across the communication links125to network nodes132within the network130and further to a destination node (not shown).

FIG. 2is a block diagram of one embodiment of a network node112within the network structure100. As illustrated inFIG. 2, the network node112includes an ingress linecard210to receive the cells transmitted across one or more communication links114, a switch fabric220coupled to the ingress linecard210to switch the cells to an outgoing communication link115, and an egress linecard230coupled to the switch fabric220to collect and encapsulate the cells into packets to be transmitted along the communication link115. The egress linecard230will be described in further detail below in connection withFIG. 3.

FIG. 3is a block diagram of one embodiment of a linecard230within the network node112. As illustrated inFIG. 3, the linecard230includes multiple input ports310configured to receive the cells from different virtual connections transmitted from the switch fabric220shown inFIG. 2. Each cell is subsequently directed to one of multiple storage modules320within the linecard230via internal links315. Each storage module320encapsulates the stored cells into packets to be transmitted to corresponding output ports330via internal links325. The output ports330further transmit the packets to a network node122within network120via communication links335. The storage modules320will be described in further detail below in connection withFIG. 4.

FIG. 4is a block diagram of one embodiment of a storage module320within the linecard230. As illustrated inFIG. 4, each storage module320includes a timing buffer410to receive and store cells405and a class of service buffer (COSB)420coupled to the timing buffer410to receive cells407from the timing buffer410. In one embodiment, the COSB420receives the cells407at predetermined periods of time. Each predetermined time period is selected based on an inter-cell gap parameter (ICG) and a cell delay variation tolerance parameter (CDVT) between two adjacent cells corresponding to a virtual connection having the highest speed among all virtual connections sent to the respective COSB420.

FIG. 5is a block diagram of a conventional flow of cells transmitted within the network structure. As illustrated inFIG. 5, in a flow of cells510–540carried by the fastest virtual connection, i.e. the virtual connection having the highest speed, each two adjacent cells are spaced apart at a predetermined time period equal to ICG±CDVT.

Referring back toFIG. 4, in one embodiment, the timing buffer410receives cells405carried by multiple virtual connections and stores the cells405for a predetermined period of time, for example a time period equal to ICG of the fastest virtual connection belonging to the same COSB. A cell counter (not shown) corresponding to the timing buffer410is incremented after each cell405is received and stored within the timing buffer410. At the same time, a timer (not shown) counts the time elapsed and compares the time with the predetermined time period.

If the cell counter reaches a value equal to the size of a packet and the predetermined time period has not expired, the stored cells407are transmitted from the timing buffer410to the COSB420. At the same time, the cell counter and the timer are reset. The COSB420subsequently encapsulates the cells into the packet and transmits the packet408at the next service selection.

Otherwise, if the predetermined time period of the timer expires, and the cell counter is still below the value of the packet size, the stored cells405are transmitted from the timing buffer410to the COSB420and the timer is reset. The COSB420further encapsulates the cells407into the packet and transmits the packet408at the next service selection.

FIG. 6is a flow diagram of one embodiment of a method for efficient packetization of cells. As illustrated inFIG. 6, at processing block610, virtual connections carrying multiple cells405are received in the timing buffer410.

At processing block620, the cells405are stored for a predetermined period of time. At processing block630, a cell counter is incremented after each cell405is received and stored in the timing buffer410.

At processing block640, a decision is made whether the cell counter is equal to the size of a packet408to be formed with the stored cells. If the cell counter is equal to the packet size, at processing block645, the stored cells407are transmitted from the timing buffer410to the COSB420. Next, at processing block650, a packet408containing the transmitted cells is formed by the COSB420. At processing block655, the cell counter and the timer of the timing buffer410are reset and blocks620–640are repeated.

Otherwise, if the cell counter is not equal to the packet size, at processing block660, a decision is made whether the predetermined time period has expired. If the predetermined time period has expired, at processing block665, the stored cells407are transmitted from the timing buffer410to the COSB420. Next, at processing block670, a packet408containing the transmitted cells is formed by the COSB420. At processing block675, the timer and the cell counter within the timing buffer410are reset and blocks620–660are repeated.

It is to be understood that embodiments of this invention may be used as or to support software programs executed upon some form of processing core (such as the CPU of a computer) or otherwise implemented or realized upon or within a machine or computer readable medium. A machine readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine readable medium includes read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.); or any other type of media suitable for storing or transmitting information. While embodiments of the present invention will be described with reference to the Internet and the World Wide Web, the system and method described herein is equally applicable to other network infrastructures or other data communication systems.