WO1992019058A1 - Address caching network interface circuit for transparent bridge - Google Patents

Address caching network interface circuit for transparent bridge Download PDF

Info

Publication number
WO1992019058A1
WO1992019058A1 PCT/CA1992/000152 CA9200152W WO9219058A1 WO 1992019058 A1 WO1992019058 A1 WO 1992019058A1 CA 9200152 W CA9200152 W CA 9200152W WO 9219058 A1 WO9219058 A1 WO 9219058A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
bridge
ian
nic
data
Prior art date
Application number
PCT/CA1992/000152
Other languages
French (fr)
Inventor
David M. Delaney
Peter M. K. Cottreau
Paul V. Chefurka
Lisanne M. Glavin
Original Assignee
Canai Computer And Network Architecture Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canai Computer And Network Architecture Inc. filed Critical Canai Computer And Network Architecture Inc.
Publication of WO1992019058A1 publication Critical patent/WO1992019058A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge

Definitions

  • This invention relates to data transmission networks, and in particular to a system for transferring data between local area networks (LANs) .
  • LANs local area networks
  • a local area network carries data between stations connected to the network.
  • Examples of local area networks are, for example, the Arcnet LAN, the Ethernet LAN, the IBM Token Passing LAN, etc.
  • a bridge is connected between the LANs.
  • FIG. 1 A simplified LAN configuration is shown in Figure 1.
  • the bridge 10 forms a point at which data traffic (frames) is transferred by the bridge between the three LANs 11, 12, and 13 in order that stations connected to different LANs may communicate with each other.
  • Each LAN is connected to the bridge by means of a network interface circuit, or NIC, 14, 15, 16.
  • the NIC is usually, but not necessarily, a printed circuit card distinct from the other parts of the bridge, and is usually connected to the LAN by means of a backplane component of the bridge or by other means, such as a connector on the main printed circuit board of the bridge.
  • Each NIC performs the functions necessary to connect the bridge to a particular type of LAN
  • NIC typically includes all of the hardware necessary to connect to the specific type of LAN for which it is designed. Several LANS of different types may be connected in this way to a single bridge. Although NICs are usually considered to be components of the bridge in which they are found, the term bridge is used herein to refer to the bridge exclusive of the NICs.
  • a NIC attached to a transparent bridge performs promiscuous reception.
  • a NIC performs promiscuous reception by transferring to its bridge all frames it receives from the LAN.
  • Promiscuous reception is appropriate only in a bridge, or in a special station which has the responsibility of gathering statistics about the operation of the LAN.
  • a NIC operating in an ordinary station transfers to the station only those frames which are addressed to the station.
  • a bridge processes data frames received from its NICs by utilizing addresses in the structure of the frames.
  • Addresses in IEEE LANs (and some other LANs, such as FDDI) conform to the IEEE standard for LAN addresses described in IEEE standard 802.1: each frame has a destination address field and a source address field (see Figure 2) . Both destination and source addresses have the same standard format.
  • Each NIC attached to a IAN must have an individual IEEE address which is unique within the LAN to which the NIC is attached, and which is also unique within the extended LAN formed by that LAN and other LANs to which it is connected, either directly or indirectly, by bridges.
  • the destination address field may contain either an individual address, or a group address.
  • the first bit of an address determines whether the address is an individual address or a group address.
  • the first bit of an individual address is 0; the first bit of a group address is 1.
  • a station places the unique individual address of its NIC into the source address field of each frame it originates. Only individual addresses may appear in the source address field. In the destination address field, the station places either the unique individual address of a single NIC, or a group address. In normal operation, a NIC attached to a station will pass a frame from the LAN to the station only if the destination address field of the frame contains either the individual address of the NIC, or a group address to which the station belongs. The use of an individual address in the destination address field of a frame results in only a single station receiving the frame; the use of a group address results in potentially many stations receiving the frame.
  • Some prior art NICs have a feature for filtering group addresses by hashing addresses found in the destination field into a bit location in a hash register in the NIC.
  • the bits of the hash register of the NIC can be set individually by the station software.
  • the station software sets bits corresponding to group addresses which it should receive.
  • the NIC passes a frame bearing a group address to the station if the bit of the hash register corresponding to the group address is set.
  • a NIC attached to a bridge performs promiscuous reception, ignoring both the destination and source address fields of received frames, and transferring every frame to the bridge.
  • a NIC attached to a station inspects the destination address field of each frame received from the LAN, and transfers a frame to the station when the destination address of the frame is identical to the address of the NIC, or when the destination address of the frame is a group address.
  • a transparent bridge builds and maintains an internal routing table. Each entry of the routing table has two components: an individual address designating a station somewhere on the extended LAN, and a number designating an outgoing NIC for the address.
  • the outgoing NIC is one of the NICs attached to the bridge.
  • the outgoing NIC for an address must be connected to a LAN (or extended LAN) to which the NIC bearing the address is attached.
  • the NIC of a bridge through which the bridge receives a frame is the source NIC of the frame.
  • a transparent bridge builds and maintains its routing table by inspecting the source address fields of frames received from its NICs. (Hence the alternative name learning bridge.) If a frame bearing a given address in its source address field is received via a given NIC, then the bridge may transmit other frames destined for the given address through that NIC. Thus the following procedure is performed on each frame received.
  • the bridge determines whether the source address of the received frame is in the routing table. If the address is not in the table, the bridge creates a routing table entry containing the source address and the number of the source NIC.
  • the bridge transmits the frame through all of its NICs except the source NIC. If the destination address of a received frame is an individual address, the bridge routes the frame as follows:
  • the bridge determines whether the destination address is in the routing table.
  • the bridge transmits the frame through all of its NICs except the source NIC. 3. Otherwise, if the outgoing NIC for the destination address (the NIC specified in the routing table entry for the destination address) is the same as the source NIC, the bridge discards the frame.
  • IEEE transparent bridging standard IEEE 802.Id
  • procedures the so-called spanning tree algorithm
  • routing table entries are aged. A given entry is permitted to remain in the table only a few minutes before it is deleted. IEEE 802.Id recommends five minutes as the default lifetime permitted for a routing table entry.
  • the present invention enhances the performance of transparent bridges by introducing a new kind of NIC.
  • this NIC discards frames that the bridge would otherwise discard before the frames reach the bridge.
  • the bridge is spared the requirement to copy every frame seen by the NIC from the NIC into the bridge, and the requirement to perform two address lookups for the frame, one for the destination address and one for the source address. This allows the bridge processor to handle more NICs than in the prior art. Significant enhancement of the bridge-NIC combination is thus obtained.
  • the NIC of the present invention performs selective reception. Bridge processing steps need not be affected by the difference between selective reception and promiscuous reception. Attaching a NIC which embodies selective reception does not require modifying the existing bridge procedures; such NICs may be fitted to existing bridges with little effort. In this case, the unmodified transparent bridge may handle an increased number of NICs without blocking, since the bridge need
  • a NIC with bridge-assistance hardware operates as follows:
  • the NIC has a source address filter cache (SAFC) containing up to some fixed number (e.g. 256) individual source addresses found in frames received from the IAN.
  • SAFC source address filter cache
  • the network interface card searches the SAFC for the source address of the frame and for the destination address of the frame. If the source address is not present in the SAFC, the NIC inserts the source address into the SAFC and passes the frame to the bridge, ensuring that the bridge always discovers which frames are present on the IAN. If the source address is present in the SAFC, the NIC discards the frame if the destination address is present in the SAFC, and otherwise passes the frame to the bridge.
  • SAFC source address filter cache
  • the bridge When the NIC passes a frame to the bridge it provides an indication of the results of this processing in a so-called maintenance word which accompanies the frame in the frame buffer.
  • the bridge can find out by checking the value of two bits in the maintenance word whether each of the source and destination addresses was found in the SAFC of the NIC.
  • the bridge updates its routing table only when the maintenance word of a frame indicates that the NIC did not find the source address of the frame in its SAFC. After checking the indicator for the source address and possibly (infrequently) updating the routing table, the bridge discards any frame for which the destination address of the frame was found in the SAFC of the NIC.
  • Frames which remain after this check may have to be forwarded or discarded, but only one further table lookup is required to determine whether the frame is to be forwarded or discarded.
  • the bridge looks up the destination address in the routing table, if the address is not found, the frame is flooded to all LANs connected to the bridge except the LAN on which the frame was received. If the destination address is found in the routing table, the bridge forwards the frame to the IAN specified in the entry in the routing table, unless the specified IAN is the one on which the frame was received, in which case the frame is discarded.
  • the NICs autonomously discard many frames, preventing the CPU from expending any time whatsoever on such frames.
  • Figure 1 is a block diagram of a IAN data transfer system in accordance with the prior art.
  • a NIC possesses a source address cache memory.
  • the NIC places the source address of a frame received from the IAN into the source address cache and passes the frame to the bridge, if the address is not already present in the cache, and otherwise discards a frame received from the IAN if the destination address is found in the source address cache.
  • the addresses are located in the part of the frame which is received first.
  • the relevant aspects of the format of frames of IEEE LANS and FDDI are displayed in Figure 2. It may be seen that each frame is comprised of a frame destination address, a frame source address, the data bits to be transferred, and a frame check sequence (FCS) .
  • FCS frame check sequence
  • FIG 4 is a block diagram of a structure for implementing the present invention. The structure is similar to that of Figure 1 , except that one of the NICs 14 is replaced by a NIC 20.
  • the NIC 20 contains a cache memory 22, as will be described below.
  • the bridge 10 contains in a memory a routing table 24 which contains a source address column 26 and a corresponding source NIC identification number column 28. Each source address has an entry in column 26 opposite a source NIC identification number in column 28.
  • the source addresss cache memory 22 is preferably a content addressable memory such as type
  • AM99C10A produced by Advanced Micro Devices (AMD) .
  • the performance of the cache must be such as to permit two lookups for every frame at the maximum rate at which frames may be received from the IAN, and leave time to perform cache management activities and other processing associated with the frame. For example, approximately fifty thousand lookups per second are required for connection to an Ethernet LAN, and five hundred thousand lookups per second are required for connection to a FDDI IAN.
  • Address processing includes looking up the source and destination addresses in the source address cache, and deciding on the disposition of the frame. The actions consequent upon address processing (inserting the source address
  • FCS Frame Check Sequence
  • Address processing is preferably concurrent with the reception of the portion of the frame subsequent to the addresses, ensuring that address processing will be complete, and that consequent actions will have been determined, and will be ready for execution, by the time the result of the FCS calculation becomes available at the end of the frame.
  • a data frame carried on IAN 11 appears at the input of a frame buffer 30, a frame address discriminator 31, and an FCS checker 35, connected at the input of the
  • Frame address discriminator 31 passes the destination address and the source address of each received packet to the address cache 22 via cache address bus 32 which is shared between the frame address discriminator and the NIC controller 100.
  • the preferred embodiment utilizes a content addressable memory (CAM) , such as type AM99C10A, made by Advanced Micro Devices, Inc., as the source address cache 22.
  • CAM content addressable memory
  • a typical CAM has two modes of access, the lookup mode and the direct access mode.
  • the CAM is arranged as a linear sequence of memory locations. In -li ⁇ the lookup mode, the CAM is presented with a search argument and responds with a signal specifying whether the search argument is present in one of the memory locations of the CAM.
  • the direct access mode individual locations of the CAM may be read, written, or made empty.
  • the NIC uses the lookup mode to determine whether the destination and source addresses of the frame are present in the source address cache.
  • the status of the address lookup operation is communicated to the NIC controller 100 via an address match status signal on path 103.
  • the NIC uses the direct access mode to conditionally insert source addresses into the source address cache.
  • the NIC controller signals the source address cache when the source address of the frame is to be inserted into the cache via an insert source address control signal.
  • the NIC controller maintains a pointer to the sequence of memory locations of the source address cache. When the NIC inserts a source address into the source address cache it does so at the location specified by its pointer into the cache which the NIC controller communicates to the source address cache via the cache address bus 32.
  • the NIC controller increments the pointer so that it points at the next location of the CAM, resetting the pointer so that it points to the first location of the CAM if the incrementation results in pointing farther than the last location of the CAM.
  • Newly inserted source addresses eventually overwrite old source addresses.
  • the frame is written into the frame buffer 30.
  • the frame data is also processed by the FCS checker 35.
  • the last bits in the frame are the frame check sequence which are also stored in the buffer 30, and processed by the FCS checker 35.
  • the status of the FCS verification is communicated to the NIC control logic via the FCS status signal path 102.
  • SDS may be considered to be FALSE always, if the type of the LAN is such that frames sent by a station and addressed to itself cannot be received by the station. Note that SDS cannot be TRUE for a frame bearing a group address in its destination address field.
  • the predicate "source address in cache” (SC) is TRUE if and only if the source address of the frame is present in the source address cache.
  • the NIC computes the value of SC by looking up the source address of the frame in the source address cache of the NIC.
  • the table of Figure 3 specifies the address processing procedure, as follows:
  • the maximum number of source addresses that the source address cache may hold can be substantially smaller than the number of active station on the extended IAN.
  • the bursty nature of the traffic created by or for any particular station ensures that even a relatively small cache, say 256 entries, should be adequate for a very large IAN of several thousand stations.
  • the lifetimes of addresses in the source address cache of the NIC must also be limited.
  • the NIC cannot rely on the overwriting of old addresses by new ones, since too few distinct source addresses may be received by the NIC within the lifetime permitted for entries in the cache.
  • the direct access mode of the CAM may be used to remove entries from the source address cache as follows:

Abstract

A data transfer system between local area networks to which stations are connected comprising a transparent bridge (10), network interface circuits (NICs) (16, 20) connected between the networks and the bridge, at least one NIC comprising cache memory apparatus (22) for maintaining temporary record of the source address of station(s) transmitting data on an associated LAN, apparatus for determining the destination address of frames received on the LAN from a given station or another bridge attached to the LAN, apparatus for transferring (or allowing the transfer of) the frames to the bridge for further transmission to another NIC in the event the destination address is not one of the addresses in the cache memory.

Description

-. -
ADDRESS CACHING NETWORK INTERFACE CIRCUIT
FOR TRANSPARENT BRIDGE
Field of the Invention This invention relates to data transmission networks, and in particular to a system for transferring data between local area networks (LANs) . Background to the Invention
A local area network carries data between stations connected to the network. Examples of local area networks are, for example, the Arcnet LAN, the Ethernet LAN, the IBM Token Passing LAN, etc. In order to enable the communication of data from one station on one LAN to another station on another LAN, a bridge is connected between the LANs.
A simplified LAN configuration is shown in Figure 1. The bridge 10 forms a point at which data traffic (frames) is transferred by the bridge between the three LANs 11, 12, and 13 in order that stations connected to different LANs may communicate with each other. Each LAN is connected to the bridge by means of a network interface circuit, or NIC, 14, 15, 16. The NIC is usually, but not necessarily, a printed circuit card distinct from the other parts of the bridge, and is usually connected to the LAN by means of a backplane component of the bridge or by other means, such as a connector on the main printed circuit board of the bridge.
Each NIC performs the functions necessary to connect the bridge to a particular type of LAN; each
NIC typically includes all of the hardware necessary to connect to the specific type of LAN for which it is designed. Several LANS of different types may be connected in this way to a single bridge. Although NICs are usually considered to be components of the bridge in which they are found, the term bridge is used herein to refer to the bridge exclusive of the NICs.
SUBSTITUTE SHEET Description of the Prior Art
In the prior art, a NIC attached to a transparent bridge performs promiscuous reception. A NIC performs promiscuous reception by transferring to its bridge all frames it receives from the LAN.
Promiscuous reception is appropriate only in a bridge, or in a special station which has the responsibility of gathering statistics about the operation of the LAN. A NIC operating in an ordinary station transfers to the station only those frames which are addressed to the station.
A bridge processes data frames received from its NICs by utilizing addresses in the structure of the frames. Addresses in IEEE LANs (and some other LANs, such as FDDI) conform to the IEEE standard for LAN addresses described in IEEE standard 802.1: each frame has a destination address field and a source address field (see Figure 2) . Both destination and source addresses have the same standard format. Each NIC attached to a IAN must have an individual IEEE address which is unique within the LAN to which the NIC is attached, and which is also unique within the extended LAN formed by that LAN and other LANs to which it is connected, either directly or indirectly, by bridges.
The destination address field may contain either an individual address, or a group address. The first bit of an address determines whether the address is an individual address or a group address. The first bit of an individual address is 0; the first bit of a group address is 1.
A station places the unique individual address of its NIC into the source address field of each frame it originates. Only individual addresses may appear in the source address field. In the destination address field, the station places either the unique individual address of a single NIC, or a group address. In normal operation, a NIC attached to a station will pass a frame from the LAN to the station only if the destination address field of the frame contains either the individual address of the NIC, or a group address to which the station belongs. The use of an individual address in the destination address field of a frame results in only a single station receiving the frame; the use of a group address results in potentially many stations receiving the frame. Some prior art NICs have a feature for filtering group addresses by hashing addresses found in the destination field into a bit location in a hash register in the NIC. The bits of the hash register of the NIC can be set individually by the station software. The station software sets bits corresponding to group addresses which it should receive. The NIC passes a frame bearing a group address to the station if the bit of the hash register corresponding to the group address is set. In the prior art, a NIC attached to a bridge performs promiscuous reception, ignoring both the destination and source address fields of received frames, and transferring every frame to the bridge. A NIC attached to a station inspects the destination address field of each frame received from the LAN, and transfers a frame to the station when the destination address of the frame is identical to the address of the NIC, or when the destination address of the frame is a group address. A transparent bridge builds and maintains an internal routing table. Each entry of the routing table has two components: an individual address designating a station somewhere on the extended LAN, and a number designating an outgoing NIC for the address. The outgoing NIC is one of the NICs attached to the bridge. The outgoing NIC for an address must be connected to a LAN (or extended LAN) to which the NIC bearing the address is attached.
SUBSTITUTE SHEET The NIC of a bridge through which the bridge receives a frame is the source NIC of the frame.
A transparent bridge builds and maintains its routing table by inspecting the source address fields of frames received from its NICs. (Hence the alternative name learning bridge.) If a frame bearing a given address in its source address field is received via a given NIC, then the bridge may transmit other frames destined for the given address through that NIC. Thus the following procedure is performed on each frame received.
The bridge determines whether the source address of the received frame is in the routing table. If the address is not in the table, the bridge creates a routing table entry containing the source address and the number of the source NIC.
If the destination address of a received frame is a group address, the bridge transmits the frame through all of its NICs except the source NIC. If the destination address of a received frame is an individual address, the bridge routes the frame as follows:
1. The bridge determines whether the destination address is in the routing table.
2. If the destination address of the frame is not present in the table, the bridge transmits the frame through all of its NICs except the source NIC. 3. Otherwise, if the outgoing NIC for the destination address (the NIC specified in the routing table entry for the destination address) is the same as the source NIC, the bridge discards the frame.
4. Otherwise, the source and outgoing NICs are different, and the bridge transmits the frame through the outgoing NIC.
SUBSTIT The IEEE transparent bridging standard, IEEE 802.Id, specifies procedures (the so-called spanning tree algorithm) by which the bridges of an extended LAN manage their routing tables so that there will be only a single path which frames may follow between any two points of an extended LAN. This property ensures that a given source address will be observed in frames received by only one of the NICs of a bridge.
In order to permit physical reconfiguration of the extended LAN, routing table entries are aged. A given entry is permitted to remain in the table only a few minutes before it is deleted. IEEE 802.Id recommends five minutes as the default lifetime permitted for a routing table entry. Summary of the Invention
The present invention enhances the performance of transparent bridges by introducing a new kind of NIC. In a prefiltering function, this NIC discards frames that the bridge would otherwise discard before the frames reach the bridge.
The bridge is spared the requirement to copy every frame seen by the NIC from the NIC into the bridge, and the requirement to perform two address lookups for the frame, one for the destination address and one for the source address. This allows the bridge processor to handle more NICs than in the prior art. Significant enhancement of the bridge-NIC combination is thus obtained.
Instead of promiscuous reception, the NIC of the present invention performs selective reception. Bridge processing steps need not be affected by the difference between selective reception and promiscuous reception. Attaching a NIC which embodies selective reception does not require modifying the existing bridge procedures; such NICs may be fitted to existing bridges with little effort. In this case, the unmodified transparent bridge may handle an increased number of NICs without blocking, since the bridge need
SUBSTITUTE SHEET not handle data frames having both source and destination addresses related to the same IAN, in many cases. The exceptions will be described below. A NIC with bridge-assistance hardware operates as follows: The NIC has a source address filter cache (SAFC) containing up to some fixed number (e.g. 256) individual source addresses found in frames received from the IAN. As the network interface card receives each frame, it searches the SAFC for the source address of the frame and for the destination address of the frame. If the source address is not present in the SAFC, the NIC inserts the source address into the SAFC and passes the frame to the bridge, ensuring that the bridge always discovers which frames are present on the IAN. If the source address is present in the SAFC, the NIC discards the frame if the destination address is present in the SAFC, and otherwise passes the frame to the bridge.
When the NIC passes a frame to the bridge it provides an indication of the results of this processing in a so-called maintenance word which accompanies the frame in the frame buffer. The bridge can find out by checking the value of two bits in the maintenance word whether each of the source and destination addresses was found in the SAFC of the NIC. The bridge updates its routing table only when the maintenance word of a frame indicates that the NIC did not find the source address of the frame in its SAFC. After checking the indicator for the source address and possibly (infrequently) updating the routing table, the bridge discards any frame for which the destination address of the frame was found in the SAFC of the NIC. Frames which remain after this check may have to be forwarded or discarded, but only one further table lookup is required to determine whether the frame is to be forwarded or discarded. The bridge looks up the destination address in the routing table, if the address is not found, the frame is flooded to all LANs connected to the bridge except the LAN on which the frame was received. If the destination address is found in the routing table, the bridge forwards the frame to the IAN specified in the entry in the routing table, unless the specified IAN is the one on which the frame was received, in which case the frame is discarded.
To summarize, the presence of the bridge- assistance feature in all NICs connected to a bridge reduces the load on the bridge CPU in two ways, as follows:
(1) The NICs autonomously discard many frames, preventing the CPU from expending any time whatsoever on such frames.
(2) The NICs provide the CPU with an efficient indication of whether the source address needs to be looked up by the CPU. In situations where forwarding is frequent, the source address will almost always have been found in the SAFC of the NIC, and no source address lookup will be required by the CPU. It is precisely when forwarding is most frequent that the bridge-assistance feature is most effective and most needed to reduce the CPU resource required for the forwarding task. An embodiment of the present invention is a data transfer system between local area networks to which stations are connected comprising a transparent bridge, NICs connected between the networks and the bridge, at least one NIC comprising: a cache memory for maintaining temporary record of the source address of a station transmitting data on the associated IAN, apparatus for determining the destination address of data received on the LAN, an apparatus for transferring
SUBSTITUTE SHEET or allowing the transfer of the data to the bridge for further transmission to another NIC in the event the destination address is not one of the addresses in the cache memory. In accordance with a particular form of the invention, it is determined whether the source address of a frame of data is stored in the cache memory, and the data is discarded in the event the destination address is the same as a source address stored in the cache memory. If the source address of a data frame is not stored in the cache memory, it is stored and the frame is passed to the bridge. For subsequent frames the source address is determined, and the system operates as above. Brief Introduction to the Drawings
A better understanding of the invention will be obtained by reference to the detailed description below, in conjunction with the following drawings, in which: Figure 1 is a block diagram of a IAN data transfer system in accordance with the prior art.
Figure 2 is a diagram of the configuration of a frame of data.
Figure 3 is a truth table relating to the operation of the invention,
Figure 4 is a block diagram of the present inventio , and
Figure 5 is a logic diagram of a portion of the present invention. Description of the Preferred Embodiments
In accordance with the present invention, a NIC possesses a source address cache memory. Briefly, the NIC places the source address of a frame received from the IAN into the source address cache and passes the frame to the bridge, if the address is not already present in the cache, and otherwise discards a frame received from the IAN if the destination address is found in the source address cache. The addresses are located in the part of the frame which is received first. The relevant aspects of the format of frames of IEEE LANS and FDDI are displayed in Figure 2. It may be seen that each frame is comprised of a frame destination address, a frame source address, the data bits to be transferred, and a frame check sequence (FCS) .
Figure 4 is a block diagram of a structure for implementing the present invention. The structure is similar to that of Figure 1 , except that one of the NICs 14 is replaced by a NIC 20. The NIC 20 contains a cache memory 22, as will be described below.
The bridge 10, the same as in the prior art, contains in a memory a routing table 24 which contains a source address column 26 and a corresponding source NIC identification number column 28. Each source address has an entry in column 26 opposite a source NIC identification number in column 28.
The source addresss cache memory 22 is preferably a content addressable memory such as type
AM99C10A produced by Advanced Micro Devices (AMD) . The performance of the cache must be such as to permit two lookups for every frame at the maximum rate at which frames may be received from the IAN, and leave time to perform cache management activities and other processing associated with the frame. For example, approximately fifty thousand lookups per second are required for connection to an Ethernet LAN, and five hundred thousand lookups per second are required for connection to a FDDI IAN.
As soon as the destination and source addresses of each frame arrive in the NIC from the IAN, the NIC starts to perform an address processing procedure, described later. Address processing includes looking up the source and destination addresses in the source address cache, and deciding on the disposition of the frame. The actions consequent upon address processing (inserting the source address
SUBSTITUTE S in the cache, forwarding the frame to the bridge, etc) should not be performed until the Frame Check Sequence (FCS) (Cycle Redundancy Calculation) at the end of the frame has been received and validated by the NIC, since the addresses may have been corrupted. If the frame check calculation indicates that the frame has been corrupted, the frame is discarded and none of the pending actions consequent upon the address processing are performed. If the frame check calculation indicates that the frame has not been corrupted, the pending actions consequent upon address processing are then performed. Address processing is preferably concurrent with the reception of the portion of the frame subsequent to the addresses, ensuring that address processing will be complete, and that consequent actions will have been determined, and will be ready for execution, by the time the result of the FCS calculation becomes available at the end of the frame. In order to implement the above, as well as to implement the functional steps described below, reference is made to the block diagram shown in Figure 5. A data frame carried on IAN 11 appears at the input of a frame buffer 30, a frame address discriminator 31, and an FCS checker 35, connected at the input of the
NIC 20 which is connected to the IAN 11. Buffer 30 is of sufficient size to hold an entire frame of data. Frame address discriminator 31 passes the destination address and the source address of each received packet to the address cache 22 via cache address bus 32 which is shared between the frame address discriminator and the NIC controller 100.
The preferred embodiment utilizes a content addressable memory (CAM) , such as type AM99C10A, made by Advanced Micro Devices, Inc., as the source address cache 22. A typical CAM has two modes of access, the lookup mode and the direct access mode. The CAM is arranged as a linear sequence of memory locations. In -li¬ the lookup mode, the CAM is presented with a search argument and responds with a signal specifying whether the search argument is present in one of the memory locations of the CAM. In the direct access mode, individual locations of the CAM may be read, written, or made empty.
The NIC uses the lookup mode to determine whether the destination and source addresses of the frame are present in the source address cache. The status of the address lookup operation is communicated to the NIC controller 100 via an address match status signal on path 103. The NIC uses the direct access mode to conditionally insert source addresses into the source address cache. The NIC controller signals the source address cache when the source address of the frame is to be inserted into the cache via an insert source address control signal. The NIC controller maintains a pointer to the sequence of memory locations of the source address cache. When the NIC inserts a source address into the source address cache it does so at the location specified by its pointer into the cache which the NIC controller communicates to the source address cache via the cache address bus 32. The NIC controller then increments the pointer so that it points at the next location of the CAM, resetting the pointer so that it points to the first location of the CAM if the incrementation results in pointing farther than the last location of the CAM. Newly inserted source addresses eventually overwrite old source addresses.
As the destination and source address lookups are proceeding, the frame is written into the frame buffer 30. The frame data is also processed by the FCS checker 35. The last bits in the frame are the frame check sequence which are also stored in the buffer 30, and processed by the FCS checker 35. The status of the FCS verification is communicated to the NIC control logic via the FCS status signal path 102.
SUBSTITUT Some LANs, such as FDDI, permit the reception by a NIC of frames transmitted to the IAN by the same NIC. If the IAN permits frames transmitted by a station and addressed to itself to be received by the same station, then frames having the same address in both the source and destination address fields must not be discarded. In a NIC for such a IAN, the NIC determines the value of the predicate "source address equals destination address equals self address" (SDS) . The NIC uses the resource of the self address comparator 106 to generate the SDS predicate. The status of the SDS predicate is communicated to the NIC control logic via the SDS status signal 107.
Once the frame reception is complete then, assuming that the FCS checks correctly, the NIC control logic manipulates the resource of the NIC based on status signals on paths 102, 103 and 107 according to the truth table given in Figure 3.
In the process, with reference to the truth table of Figure 3 carried out by the NIC, SDS may be considered to be FALSE always, if the type of the LAN is such that frames sent by a station and addressed to itself cannot be received by the station. Note that SDS cannot be TRUE for a frame bearing a group address in its destination address field.
For a given frame, the predicate "source address in cache" (SC) is TRUE if and only if the source address of the frame is present in the source address cache. The NIC computes the value of SC by looking up the source address of the frame in the source address cache of the NIC.
For a given frame, the predicate "destination address in cache" (DC) is TRUE if and only if the destination address of the frame is present in the source address cache. The NIC computes the value of DC by looking up the destination address of the frame in the source address cache of the NIC. The action by which the electronic logic of the NIC forwards a frame to the bridge is denoted FF.
The action by which the electronic logic of the NIC discards a frame so that the bridge does not become aware of its reception is denoted DF.
The action by which the electronic logic of the NIC inserts the source address of a frame into the source address cache is denoted ISC.
With the above definitions, the table of Figure 3 specifies the address processing procedure, as follows:
1. If the address of the NIC is the same as both the destination and source addresses of a frame received from the IAN, then forward the frame to the bridge.
2. Otherwise, if the source address of the frame is present in the source address cache, then forward the frame to the bridge if the destination address of the frame is NOT in the source address cache, otherwise discard the frame.
3. Otherwise the source address is NOT in the source address cache; the source address should be inserted into the source address cache, and the frame should be forwarded to the bridge. Forwarding a frame whenever the source address is not present in the source address cache ensures that the bridge learns the location of all source addresses.
The above is correct provided that group addresses are never found in the source address cache. The presence of a group address in the source address cache would result in frames destined for that group address being discarded by the NIC, which would be wrong, since the bridge must receive all such frames. Before address processing is performed, the NIC should
SUBSTITU discard all frames which have a 1 in the first bit of the source address field, thus ensuring the required condition even in the presence of errors or source routed frames, which use the first bit of the source address field as a flag to indicate that a route has been inserted in the frame following the source address.
The maximum number of source addresses that the source address cache may hold can be substantially smaller than the number of active station on the extended IAN. The bursty nature of the traffic created by or for any particular station ensures that even a relatively small cache, say 256 entries, should be adequate for a very large IAN of several thousand stations.
In order to meet the requirement of the IEEE 802.Id standard that individual addresses should reside in the routing table of the bridge for only a limited time, the lifetimes of addresses in the source address cache of the NIC must also be limited. The NIC cannot rely on the overwriting of old addresses by new ones, since too few distinct source addresses may be received by the NIC within the lifetime permitted for entries in the cache. The direct access mode of the CAM may be used to remove entries from the source address cache as follows:
The NIC or the bridge maintains a pointer (a deletion pointer) to a location of the CAM. At regular intervals, the location of the CAM specified by the pointer is made empty using the direct access mode of the CAM. The pointer is then incremented to point to the following location of the CAM, and is reset to point to one end of the CAM if incrementation results in pointing outside of the CAM. The frequency of this process is chosen so that every location of the CAM will be erased within a period less than the lifetime permitted for residence of an address in the routing table of the bridge. There is no need to track the age of individual entries of the source address cache. A slight benefit can be obtained by incrementing the deletion pointer in the direction opposite to that in which the insertion pointer is incremented. Variations or other embodiments of the invention may now be designed, using the principles described above. All those which fall within the bounds of the claims are considered to be part of the present invention.
SUBSTITUTE SHEET

Claims

WE CLAIM:
1. A data transfer system between local area networks (LANs) to which stations are connected comprising: (a) a transparent bridge,
(b) network interface circuits (NICs) , one connected between each IAN and said bridge,
(c) at least one NIC comprising
(i) cache memory means for maintaining temporary record of the source address of stations transmitting data on the associated IAN, (ii) means for determining the destination address of data received on the IAN from said station, (iii) means for determining the source address of data received on the IAN from the station, (iv) means for determining whether the source address in the data is stored in the cache memory, and for discarding the data in the event the destination address is the same as a source address stored in the cache memory, and (v) means for transferring said data to the bridge for further transmission to another NIC in the event the destination address is not the same as a source address stored in the cache memory.
2. A system as defined in claim 1, further including means for storing the source address in the cache memory in the event the source address of data received from the IAN is not stored in the cache memory.
3. A system as defined in claim 2, further including means for maintaining particular addresses in the cache memory for a limited period of time.
4. A method of transferring data between a first IAN and a transparent bridge comprising receiving data carried on the IAN, prefiltering the data to remove frames of data destined for stations connected to said first IAN, and transferring or allowing transfer of data destined for stations connected to another IAN to the transparent bridge for further transfer to said another IAN, thereby reducing the amount of data to be dealt with by the transparent bridge.
5. A method as defined in claim 4 including the step of temporarily storing source addresses of data received from said first IAN in a cache memory, and in the prefiltering step comparing the destination address of data received from said first IAN with said stored source addresses to determine whether the data should or should not be transferred or allowed to be transferred.
6. A method as defined in claim 5, including the step of storing the source address in the cache memory in the event the source address of the data received from said first IAN is not stored in the cache memor .
7. A method as defined in claim 6, including the step of clearing the cache memory after source addresses have been stored for a predetermined period of time.
SUBSTITUTE SHEET
PCT/CA1992/000152 1991-04-15 1992-04-14 Address caching network interface circuit for transparent bridge WO1992019058A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US68477591A 1991-04-15 1991-04-15
US684,775 1991-04-15

Publications (1)

Publication Number Publication Date
WO1992019058A1 true WO1992019058A1 (en) 1992-10-29

Family

ID=24749518

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CA1992/000152 WO1992019058A1 (en) 1991-04-15 1992-04-14 Address caching network interface circuit for transparent bridge

Country Status (3)

Country Link
AU (1) AU1584692A (en)
CA (1) CA2066006A1 (en)
WO (1) WO1992019058A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721874A (en) * 1995-06-16 1998-02-24 International Business Machines Corporation Configurable cache with variable, dynamically addressable line sizes
US6654853B1 (en) * 1996-12-23 2003-11-25 Lsi Logic Corporation Method of secondary to secondary data transfer with mirroring
US7032035B2 (en) * 2000-12-08 2006-04-18 Intel Corporation Method and apparatus for improving transmission performance by caching frequently-used packet headers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0156542A2 (en) * 1984-03-19 1985-10-02 International Computers Limited Interconnection of communications networks
EP0222584A2 (en) * 1985-11-08 1987-05-20 University Of Salford A bridge for and a method for routeing signals between local area networks
US4922503A (en) * 1988-10-28 1990-05-01 Infotron Systems Corporation Local area network bridge

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0156542A2 (en) * 1984-03-19 1985-10-02 International Computers Limited Interconnection of communications networks
EP0222584A2 (en) * 1985-11-08 1987-05-20 University Of Salford A bridge for and a method for routeing signals between local area networks
US4922503A (en) * 1988-10-28 1990-05-01 Infotron Systems Corporation Local area network bridge

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM TECHNICAL DISCLOSURE BULLETIN. vol. 33, no. 7, 7 December 1990, NEW YORK US pages 63 - 68; 'Bridge for Interconnecting Local Area Networks Having Different Architectures' *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721874A (en) * 1995-06-16 1998-02-24 International Business Machines Corporation Configurable cache with variable, dynamically addressable line sizes
US6654853B1 (en) * 1996-12-23 2003-11-25 Lsi Logic Corporation Method of secondary to secondary data transfer with mirroring
US7032035B2 (en) * 2000-12-08 2006-04-18 Intel Corporation Method and apparatus for improving transmission performance by caching frequently-used packet headers

Also Published As

Publication number Publication date
CA2066006A1 (en) 1992-10-16
AU1584692A (en) 1992-11-17

Similar Documents

Publication Publication Date Title
US7924833B2 (en) Packet transfer unit
EP0469812A1 (en) Detection of duplicate alias addresses
US5949786A (en) Stochastic circuit identification in a multi-protocol network switch
US6757279B1 (en) Method for synchronizing databases in stacked network units
US7701941B2 (en) Network switch with mutually coupled look-up engine and network processor
US5528592A (en) Method and apparatus for route processing asynchronous transfer mode cells
US5151899A (en) Tracking sequence numbers in packet data communication system
US6697325B1 (en) System, device, and method for expediting reconvergence in a communication network
EP1019833B1 (en) Mechanism for packet field replacement in a multi-layered switched network element
US7738385B2 (en) Mirroring of data in a network device
US5568613A (en) Dataframe bridge filter with communication node recordkeeping
US20030058856A1 (en) Stackable switch port collapse mechanism
US7346059B1 (en) Header range check hash circuit
US8462804B2 (en) Self-cleaning mechanism for error recovery
CN108306835B (en) Input caching and data forwarding method of Ethernet switch
US20060114915A1 (en) VLAN translation in a network device
US6625146B1 (en) Method and apparatus for operating a network switch in a CPU-less environment
US20070230469A1 (en) Transmission apparatus
JP2008079056A (en) Communication apparatus and search table managing method used for it
US20040095936A1 (en) Classification search scheme and rules engine for network unit
US6452908B1 (en) Route searching circuit and communication apparatus using the same
US6731596B1 (en) Network switch having system for automatically detecting change in network node connection
US20110078181A1 (en) Communication device
US7286528B1 (en) Multiple address databases in a switch without the need for extra memory
WO1992019058A1 (en) Address caching network interface circuit for transparent bridge

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AT AU BB BG BR CH CS DE DK ES FI GB HU JP KP KR LK LU MG MN MW NL NO PL RO RU SD SE

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BF BJ CF CG CH CI CM DE DK ES FR GA GB GN GR IT LU MC ML MR NL SE SN TD TG

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642