US 5732080 Method and apparatus for controlling data flow within a switching device

ABSTRACT – A method and apparatus for controlling data flow within a switching device are provided. The switching device includes a cell-switched backplane. Both packet switched and cell switched network interface cards may be coupled to the cell-switched backplane. A destination tag is created for each unique destination port and for each unique set of destination ports. The destination tags are used to index a master destination tag table. The entry of the master destination tag table that corresponds to a given destination tag includes a destination mask that indicates which ports are destination ports the given destination tag. Local tables are built and maintained within each network interface card based on the information contained in the master destination tag table. When a network interface receives data from an external device, the network interface determines the destination tag associated with the data. Once the destination tag is determined, it is used as an index to the locally stored tables to determine whether the data should be forwarded to any local ports, and whether the data should be sent over the cell-switched backplane to other network interfaces within the switching device. When a network interface receives data over the backplane, the network interface uses the destination tag as an index to a locally stored table to determine to which local ports the data should be sent. Tables also establish correlations between destination tags and control information for converting data between packets and cells.

FIELD OF THE INVENTION

The present invention relates to controlling data flow within a switch, and more specifically, to a method and apparatus for controlling data flow between multiple network interfaces over a common backplane.

BACKGROUND OF THE INVENTION

Many types of computer networks have been developed, including token ring, Ethernet, asynchronous transfer mode (ATM) and FDDI networks. In general, the way each type of network encapsulates and communicates data is incompatible with the other types of networks. To allow communication between devices on otherwise incompatible networks, mechanisms have been developed which convert data from one form of data encapsulation to other forms.

Such conversion mechanisms may be used by switching devices to allow interface cards for different types of networks to communicate with each other over a common backplane. Multiple types of data transfers may take place between interface cards when multiple types of network interface cards are present in the same switching device. For example, if multiple token ring, Ethernet and ATM cards are present in the same system, numerous types of data transfers may occur between the interfaces (e.g. token ring to token ring, token ring to Ethernet, Ethernet to token ring, etc.)

Typically, switching devices that allow communication between various types of network interfaces provide numerous mechanisms for internally forwarding data between the interfaces. The forwarding mechanism used for a particular transfer depends on the source and destination of the data to be transferred. For example, one mechanism may be used to transfer packets between Ethernet interfaces, a second mechanism may be used to transfer cells between ATM interfaces, and a third mechanism may be used to transfer data from packets on an Ethernet interface to cells on an ATM interface.

The use of numerous forwarding mechanisms within a single switching device is complicated and, under many circumstances, inefficient. For example, two forwarding mechanisms may be required to transmit the same data from one token ring card to a port on another token ring card and to a port on an ATM card. Further, each of the forwarding mechanisms may require that the data be encapsulated in a different manner. Consequently, multiple conversion operations may be required, and multiple copies of the data may have to be routed though the switching device.

In light of the foregoing, it is clearly desirable to provide a mechanism that allows devices on different types of networks to communicate with each other. It is further desirable to provide a single mechanism for routing cells between interfaces within a switching device, regardless of the types of interfaces involved. It is further desirable to provide a forwarding mechanism that may be used for both transfers between ports on the same interface card, and between interface cards on the same switching device.

SUMMARY OF THE INVENTION

A method and apparatus for controlling data flow within a switching device are provided. The switching device includes a cell-switched backplane. Both packet switched and cell switched network interface cards may be coupled to the cell-switched backplane. A destination tag is created for each unique destination port and for each unique set of destination ports. The destination tags are used to index a master destination tag table. The entry of the master destination tag table that corresponds to a given destination tag includes a destination mask that indicates which ports are destination ports of the given destination tag.

Local tables are built and maintained within each network interface card based on the information contained in the master destination tag table. Specifically, each network interface card includes a table that indicates which local ports are destination ports for destination tags, and a table that indicates which other interfaces have destination ports for destination tags.

When a network interface receives data from an external device, the network interface determines the destination tag associated with the data. Once the destination tag is determined, it is used as an index to the locally stored tables to determine whether the data should be forwarded to any local ports, and whether the data should be sent over the cell-switched backplane to other network interfaces within the switching device. When a network interface receives data over the backplane, the network interface uses the destination tag as an index to a locally stored table to determine to which local ports the data should be sent. Tables also establish correlations between destination tags and control information for convening data between packets and cells.

 

Related Posts