US6084878A - External rules checker interface - Google Patents

External rules checker interface Download PDF

Info

Publication number
US6084878A
US6084878A US08/993,715 US99371597A US6084878A US 6084878 A US6084878 A US 6084878A US 99371597 A US99371597 A US 99371597A US 6084878 A US6084878 A US 6084878A
Authority
US
United States
Prior art keywords
data
information
frame
external device
forwarding
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
US08/993,715
Inventor
Ian Crayford
Denise Kerstein
Peter Ka-Fai Chow
Chandan Egbert
Thomas J. Runaldue
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GlobalFoundries Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Priority to US08/993,715 priority Critical patent/US6084878A/en
Assigned to ADVANCED MICRO DEVICES, INC. reassignment ADVANCED MICRO DEVICES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KERSTEIN, DENISE, CRAYFORD, IAN, RUNALDUE, THOMAS J., CHOW, PETER KA-FAI, EGBERT, CHANDAN
Application granted granted Critical
Publication of US6084878A publication Critical patent/US6084878A/en
Assigned to GLOBALFOUNDRIES INC. reassignment GLOBALFOUNDRIES INC. AFFIRMATION OF PATENT ASSIGNMENT Assignors: ADVANCED MICRO DEVICES, INC.
Anticipated expiration legal-status Critical
Assigned to GLOBALFOUNDRIES U.S. INC. reassignment GLOBALFOUNDRIES U.S. INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: WILMINGTON TRUST, NATIONAL ASSOCIATION
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]

Definitions

  • This invention relates to network communications and more particularly to transmitting and receiving data used to make data forwarding decisions.
  • Ethernet is a commonly used local area network scheme in which multiple stations are connected to a single shared serial data path. These stations typically communicate with a switch located between the shared data path and the stations connected to that path.
  • the interface device may be a Media Access Controller (MAC) which is connected between each station and the shared data path.
  • MAC Media Access Controller
  • Each network node may include a MAC which performs a number of functions involved in the transmission and reception of data packets. For example, during the transmission of data, the MAC may assemble the data to be transmitted into a packet with address and error detection fields. Conversely, during the reception of a packet, the MAC must determine whether a received packet is addressed to its station.
  • each MAC includes a receive FIFO (first-in-first-out) which is used to store data captured from the shared path.
  • the MAC takes the serial information and assembles it into frames which are loaded frame-by-frame into a receive FIFO.
  • the MAC determines whether the destination address corresponds to the physical address of the MAC. If a match occurs, the MAC captures the packet. However, if there is no match, the packet is rejected and the MAC FIFO is flushed.
  • data packets that may eventually be flushed are read. This uses bus bandwidth and may slow the system.
  • a MAC may be required to receive packets on behalf of more than one station.
  • a MAC may be located within a bridge between two networks. This MAC, located within the bridge, must be able to compare the destination address in each received packet with a very large number of station addresses in the network to which it is connected. However, the MAC must make the decision before the packet has been completely received in the MAC FIFO. If the MAC has not finished its processing before the packet has been completely received, the packet may still be dumped onto the serial bus. This causes a problem if the MAC then determines that the packet should not have been received. Retracking buffer locations caused by sending such a packet causes increased processing and may delay the system.
  • the MAC must make a decision for the frames in the order in which they are received.
  • the large number of addresses supported by a bridge MAC, or a MAC in a large network results in an increased amount of logic contained within the MAC to support the increased number of network stations. In situations where space is at a premium, the amount of space needed to support the MAC logic may not be available.
  • a network switch where data received by a network switch is routed to an external decision making engine located external to the switch.
  • the switch includes an interface which routes data to the external device and receives the data routing decision from the external device.
  • a network switch utilizes an interface device located on the switch that controls communication of data frames between network stations.
  • the interface device includes an input that receives header information from the data frames and outputs this information to an external device.
  • the external device contains logic functions and generates data forwarding information based on the header information. This data forwarding information is sent back to an input of the interface device and the switch performs the data forwarding function.
  • Another aspect of the present invention provides a method for making data forwarding decisions.
  • the method includes receiving header information from received data frames, transmitting the header information to an external device and receiving data forwarding information from the external device.
  • the external device generates the data forwarding information from the header information and transmits this information back to the switch which forwards the data.
  • FIG. 1 is a block diagram of a packet switched system in which the present invention may be utilized.
  • FIGS. 2, 2A and 2B are block diagrams of a multiport switch constructed in accordance with an embodiment of the present invention and used in the packet switched system of FIG. 1.
  • FIG. 3 is a detailed block diagram of the switch subsystem of FIG. 2.
  • FIG. 4 illustrates the data transmitted to the external rules checker via the external rules checker interface.
  • FIG. 5 illustrates the timing of the data transfer of FIG. 4.
  • FIG. 6 illustrates the data transmitted from the external rules checker to the external rules checker interface.
  • FIG. 7 illustrates timing of the data transfer of FIG. 6.
  • the present invention will be described with the example of a switch in a packet switched network, such as an Ethernet (IEEE 802.3) network.
  • a description will first be given of the switch architecture, followed by the detailed description of the external rules checker interface. It will become apparent, however, that the present invention is also applicable to other packet switched systems, as described in detail below.
  • FIG. 1 is a block diagram of an exemplary system in which the present invention may be advantageously employed.
  • the exemplary system 10 is a packet switched network, such as an Ethernet network.
  • the packet switched network includes an integrated multiport switch (IMS) 12 that enables communication of data packets between network stations.
  • the network may include network stations having different configurations, for example twenty-four (24) 10 megabit per second (Mb/s) network stations 14 that send and receive data at a network data rate of 10 Mb/s, and two 100 Mb/s network stations 16 that send and receive data packets at a network speed of 100 Mb/s.
  • the multiport switch 12 selectively forwards data packets received from the network stations 14 or 16 to the appropriate destination based upon Ethernet protocol.
  • the 10 Mb/s network stations 14 send and receive data packets to and from the multiport switch 12 via a media 18 and according to half-duplex Ethernet protocol.
  • the Ethernet protocol ISO/IEC 8802-3 (ANSI/IEEE Std. 802.3, 1993 Ed.) defines a half-duplex media access mechanism that permits all stations 14 to access the network channel with equality. Traffic in a half-duplex environment is not distinguished or prioritized over the medium 18. Rather, each station 14 includes an Ethernet interface card that uses carrier-sense multiple access with collision detection (CSMA/CD) to listen for traffic on the media. The absence of network traffic is detected by sensing a deassertion of a receive carrier on the media.
  • CSMA/CD carrier-sense multiple access with collision detection
  • Any station 14 having data to send will attempt to access the channel by waiting a predetermined time after the deassertion of a receive carrier on the media, known as the interpacket gap interval (IPG). If a plurality of stations 14 have data to send on the network, each of the stations will attempt to transmit in response to the sensed deassertion of the receive carrier on the media and after the IPG interval, resulting in a collision. Hence, the transmitting station will monitor the media to determine if there has been a collision due to another station sending data at the same time. If a collision is detected, both stations stop, wait a random amount of time, and retry transmission.
  • IPG interpacket gap interval
  • the 100 Mb/s network stations 16 preferably operate in full-duplex mode according to the proposed Ethernet standard IEEE 802.3x Full-Duplex with Flow Control--Working Draft (0.3).
  • the full-duplex environment provides a two-way, point-to-point communication link between each 100 Mb/s network station 16 and the multiport switch 12, where the IMS and the respective stations 16 can simultaneously transmit and receive data packets without collisions.
  • the 100 Mb/s network stations 16 each are coupled to network media 18 via 100 Mb/s physical (PHY) devices 26 of type 100 Base-TX, 100 Base-T4, or 100 Base-FX.
  • the multiport switch 12 includes a media independent interface (MII) 28 that provides a connection to the physical devices 26.
  • MII media independent interface
  • the 100 Mb/s network stations 16 may be implemented as servers or routers for connection to other networks.
  • the 100 Mb/s network stations 16 may also operate in half-duplex mode, if desired.
  • the 10 Mb/s network stations 14 may be modified to operate according to full-duplex protocol with flow control.
  • the network 10 includes a series of switch transceivers 20 that perform time division multiplexing and time division demultiplexing for data packets transmitted between the multiport switch 12 and the 10 Mb/s stations 14.
  • a magnetic transformer module 19 maintains the signal waveform shapes on the media 18.
  • the multiport switch 12 includes a transceiver interface 22 that transmits and receives data packets to and from each switch transceiver 20 using a time-division multiplexed protocol across a single serial non-return to zero (NRZ) interface 24.
  • the switch transceiver 20 receives packets from the serial NRZ interface 24, demultiplexes the received packets, and outputs the packets to the appropriate end station 14 via the network media 18.
  • each switch transceiver 20 has four independent 10 Mb/s twisted-pair ports and uses 4:1 multiplexing across the serial NRZ interface enabling a four-fold reduction in the number of PINs required by the multiport switch 12.
  • the multiport switch 12 contains a decision making engine, switching engine, buffer memory interface, configuration/control/status registers, management counters, and MAC (media access control) protocol interface to support the routing of data packets between the Ethernet ports serving the network stations 14 and 16.
  • the multiport switch 12 also includes enhanced functionality to make intelligent switching decisions, and to provide statistical network information in the form of management information base (MIB) objects to an external management entity, described below.
  • the multiport switch 12 also includes interfaces to enable external storage of packet data and switching logic in order to minimize the chip size of the multiport switch 12.
  • the multiport switch 12 includes a synchronous dynamic RAM (SDRAM) interface 32 that provides access to an external memory 34 for storage of received frame data, memory structures, and MIB counter information.
  • SDRAM synchronous dynamic RAM
  • the memory 34 may be an 80, 100 or 120 MHz synchronous DRAM having a memory size of 2 or 4 Mb.
  • the multiport switch 12 also includes a management port 36 that enables an external management entity to control overall operations of the multiport switch 12 by a management MAC interface 38.
  • the multiport switch 12 also includes a peripheral component interconnect (PCI) interface 39 enabling access by the management entity via a PCI host and bridge 40.
  • PCI host and bridge 40 may serve as an expansion bus for a plurality of IMS devices 12.
  • the multiport switch 12 includes an internal decision making engine that selectively transmits data packets received from one source to at least one destination station.
  • the multiport switch 12 includes an external rules checker interface (ERCI) 42 that allows an external rules checker (ERC) 44 to make frame forwarding decisions in place of the internal decision making engine.
  • ERCI external rules checker interface
  • ERP external rules checker
  • frame forwarding decisions can be made either by the internal switching engine or the external rules checker 44.
  • the multiport switch 12 also includes an LED interface 46 that clocks out the status of conditions per port and drives LED external logic 48.
  • the LED external logic 48 drives LED display elements 50 that are human readable.
  • An oscillator 30 provides a 40 MHz clock input for the system functions of the multiport switch 12.
  • FIG. 2 is a block diagram of the multiport switch 12 of FIG. 1.
  • the multiport switch 12 includes twenty-four (24) 10 Mb/s media access control (MAC) ports 60 for sending and receiving data packets in half-duplex between the respective 10 Mb/s network stations 14 (ports 1-24) and two 100 Mb/s MAC ports 62 for sending and receiving data packets in full-duplex between the respective 100 Mb/s network stations 16 (ports 25, 26).
  • the management interface 36 also operates according to MAC layer protocol (port 0).
  • Each of the MAC ports 60, 62 and 36 has a receive first-in-first-out (FIFO) buffer 64 and transmit FIFO 66. Data packets from a network station are received by the corresponding MAC port and stored in the corresponding receive FIFO 64. The received data packet is output from the corresponding receive FIFO 64 to the external memory interface 32 for storage in the external memory 34.
  • FIFO receive first-in-first-out
  • a management data interface 72 enables the multiport switch 12 to exchange control and status information with the switch transceivers 20 and the 100 Mb/s physical devices 26 according to the MII management specification (IEEE 802.3u).
  • the management data interface 72 outputs a management data clock (MDC) providing a timing reference on the bidirectional management data IO (MDIO) signal path.
  • MDC management data clock
  • the PCI interface 39 is a 32-bit PCI revision 2.1 compliant slave interface for access by the PCI host processor 40 to internal IMS status and configuration registers 74, and access external memory SDRAM 34.
  • the PCI interface can also serve as an expansion bus for multiple IMS devices.
  • the management port 36 interfaces to an external MAC engine through a standard seven-wire inverted serial GPSI interface, enabling a host controller access to the multiport switch 12 via a standard MAC layer protocol.
  • FIG. 3 depicts the switch subsystem 70 of FIG. 2 according to an exemplary embodiment of the present invention. Other elements of the multiport switch 12 of FIG. 2 are reproduced in FIG. 3 to illustrate the connections of the switch subsystem 70 to these other elements.
  • the switch subsystem 70 contains the core switching engine for receiving and forwarding frames.
  • the main functional blocks used to implement the switching engine include: a port vector FIFO 63, a buffer manager 65, a plurality of port output queues 67, a management port output queue 75, an expansion bus port output queue 77, a free buffer pool 104, a multicopy queue 90, a multicopy cache 96 and a reclaim queue 98.
  • a unicopy frame is a frame that is received at a port which is to be transmitted by the multiport switch 12 to only one other port.
  • a multicopy frame is a frame that is received at one port for transmission to more than one port.
  • each port is represented by a corresponding MAC 60, 62, or 36 having its own receive FIFO 64 and transmit FIFO 66.
  • Each data frame has a header including at least a destination address, a source address, and type/length information.
  • the header of the received packet is also forwarded to a decision making engine to determine which MAC ports will output the data packet.
  • the multiport switch 12 supports two decision making engines, an internal rules checker (IRC) 68 and an external rules checker (ERC) 44.
  • IRC internal rules checker
  • ERC external rules checker
  • the multiport switch 12 sends data to the ERC 44 via the external rules checker interface (ERCI) 42.
  • the ERCI 42 is enabled and disabled via a rules checker configuration register 74 located on the multiport switch 12.
  • the IRC 68 and ERCI 42 do not operate simultaneously.
  • the IRC 68 and ERC 44 provide the decision making logic for determining the destination MAC port for a given data packet.
  • the decision making engine may determine that a given data packet is transmitted to either a single port, multiple ports, or all ports (i.e., broadcast).
  • the present invention is directed to the external rules checker interface and use of the external rules checker interface to transfer frame routing information between the multiport switch 12 and the external rules checker 44.
  • the multiport switch 12 provides the switching logic for receiving and forwarding frames to the appropriate output ports.
  • the frame forwarding decisions however, are made by the rules checker, either the IRC 68 or the ERC 44.
  • the rules checker contains a set of addresses along with VLAN associations and forwarding port vectors. When a port on multiport switch 12 receives a frame, it sends a frame pointer (location in external memory 34 where the frame is stored), the receive port number, destination address (DA) and source address (SA) to the rules checker.
  • DA destination address
  • SA source address
  • the port also forwards hash keys and VLAN ID (if applicable).
  • the rules checker searches its address table for the appropriate addresses and makes a forwarding decision based upon the SA, receive port, DA and VLAN associations. It then forwards the frame pointer, a forwarding port vector, the VLAN index (if appropriate) and a control opcode to the port vector FIFO 63 (See FIG. 3).
  • the IRC 68 provides logic to support 512 user addresses and capabilities for 32 unique VLANs.
  • the ERC 44 via the ERCI 42 supports a much larger number of addresses, VLANs and routing functions. In the exemplary embodiment, the ERC 44 supports over 8000 addresses.
  • the logic for the ERC 44 and IRC 68 function in the same manner. The discussion below assumes that the ERCI 42 is enabled.
  • the rules checker configuration register 74 which enables the ERCI 42, also programs the number of bytes of data forwarded to the ERC 44, described in detail below.
  • the ERCI 42 is sized to support communication with all of the ports on multiport switch 12. Specifically, the ERCI 42 is sized so that when all of the ports on the network are simultaneously active, the ERCI 42 transmits header information from each packet to the ERC 44.
  • the ERC 44 makes its forwarding decision and transmits the decision back to the multiport switch 12, via the ERCI 42, before the packet must be forwarded.
  • there is no restriction on the length of time required for the ERC 44 to make the forwarding decisions such as to make the decisions before the frame is completely buffered to external memory.
  • the ERC 44 may make a decision for some packets based on the DA and SA.
  • the ERC 44 may look at the packet data and determine that the packet contains data which has a higher priority, for example, the data may be multicast data which is being sent to all the stations. In this situation, the ERC 44 may prioritize this multicast data and send forwarding information to the ERCI 42 before lower-priority data which was received earlier. Further, the ERC 44 may push the multicast data out more quickly than for standard data using a hardware assist or other procedure to enable the data to be transmitted back to the multiport switch more quickly than for normal data packets.
  • the ERCI 42 in the multiport switch 12 forwards data to the ERC on a 16-bit ERC data bus, ERC DATA [15:0], synchronous to the system clock, SCLK.
  • SCLK is a 40 MHz oscillator shared by the multiport switch 12 and switch transceivers 20.
  • the ERCI transmits a 5-bit receive port number on ERC DATA [4:0], the frame pointer on ERC DATA [13:0] and a programmed number of bytes of the received frame.
  • the data after frame pointer in FIG. 4 represents the programmable bytes of data.
  • the frame pointer is the address in external memory 34 where the frame is stored.
  • the ERCI transmits a maximum of 64 bytes of the received frame and the actual number of bytes transmitted is programmed in the rules checker configuration register 74. At a minimum, the ERCI 42 transmits the receive port, destination address (DA), source address (SA) and the frame pointer. In situations where the ERCI 42 transmits an odd number of bytes to the ERC 44, ERC DATA [7:0] is the active byte lane on the last transfer.
  • the ERCI 42 also outputs control data on a 2-bit ERC control bus, ERC CTRL.
  • the ERC control signal indicates when ERC DATA is active. For example, ERC CTRL bits "00" indicate that the ERC DATA is idle, "01” indicate that both bytes on ERC DATA are active, and "10” indicate that this the current transfer is the last transfer and one or both bytes on ERC DATA are active.
  • FIG. 5 shows a data timing diagram of ERC DATA [15:0] and ERC CTRL [1:0].
  • the ERC 44 receives the data from ERCI 42 and searches its address table for the appropriate addresses and makes a forwarding decision based upon the received data. With reference to FIG. 6, the ERC 44 sends a frame pointer (14 bits), the forwarding Port Vector (28 bits), the Control Opcode (8 bits) and the VLAN Index (5 bits) on a four bit port vector bus, PRT VCTR [3:0] to the ERCI 42. The ERCI 42 transmits the data on PRT VCTR [3:0], synchronous to SCLK, to the switch subsystem 70. ERC 44 pads the fields to 16 bits for the frame pointer, 28 bits for the Port Vector, 8 bits for the VLAN Index and 8 bits for the Control Opcode.
  • a frame signal, port vector strobe, PV STRB, indicates when data is valid on PRT VCTR [3:0].
  • the multiport switch 12 can be monitored on port vector, PRT VCTR or PV STRB.
  • FIG. 7 shows a timing diagram of the port vector bus and port vector strobe signal in relation to SCLK.
  • the ERCI 42 outputs the forwarding decision to switch subsystem 70.
  • the switch subsystem 70 fetches the data packet identified in the port vector from the external memory 34 via the external memory interface 32, and supplies the retrieved data packet to the appropriate transmit FIFO 66 of the identified ports.
  • the switch subsystem may send a given data packet to either a single port, multiple ports, or all ports (i.e., broadcast) based on the output from ERC 44.
  • the received data packet may include a destination address that identifies a plurality of network stations.
  • the received packet may include a VLAN (virtual LAN) tagged frame according to IEEE 802.1d protocol that specifies another network (via a router at one of the 100 Mb/s stations 16) or a prescribed group of stations.
  • the ERC 44 via the ERCI 42 decides whether a frame temporarily stored in the buffer memory 34 should be output to a single MAC or multiple MAC ports.
  • the ERC 44 determines from where the frame packet will be transmitted. The description below assumes that either the IRC 68 or ERC 44 is operating.
  • the buffer manager 65 obtains a free frame pointer from the free buffer pool 104.
  • the free frame pointer specifies a location in external memory 34 available for storing the data frame currently stored in the receive FIFO 64.
  • the buffer manager 65 transfers the data frame from the receive FIFO 64 over a data bus 80 (see FIG. 2) to the external memory 34 in a direct memory access (DMA) transaction, and the data frame is stored in the location pointed to by the free frame pointer obtained from the free buffer pool 104.
  • the port vector is a 28-bit vector with a bit set for each output port identified as a destination port to which the data frame should be forwarded.
  • the rules checker 44 or 68 uses the port vector to assign the frame pointer to at least one destination port.
  • the rules checker, 44 or 68 places the port vector and the corresponding frame pointer (as well as a control opcode and a VLAN index) into the port vector FIFO 63.
  • the port vector is examined by the port vector FIFO 63 to determine into which particular output queue 67 (or queues) the frame pointer associated with the port vector should be input.
  • the port vector FIFO 63 assigns the frame pointer to the appropriate destination port(s) by placing the frame pointer into the top of the appropriate output queue 67, queuing the transmission of the data frame from the corresponding destination port. Hence, the frame pointer becomes an "assigned frame pointer," where it is assigned to a destination port.
  • the assigned frame pointer reaches the bottom of the output queue 67 after passing through the output queue 67.
  • the buffer manager 65 takes the assigned frame pointer from the bottom of the output queue 67 using a frame pointer read bus 86, fetches the corresponding data frame in a DMA transaction from the location in external memory 34 pointed to by the assigned frame pointer, and places the fetched data frame into the appropriate transmit FIFO 66 via a data bus 82 (see FIG. 2) for transmission by the corresponding MAC layer.
  • An advantage of the invention is that the ERC 44 via the ERCI 42 enables the switch to increase its capacity and support more stations/networks.
  • Another advantage of the invention is that frame forwarding decisions can be made before the frame is completely buffered to external memory and decisions can be made in an order independent from the order in which the frames are received by the multiport switch 12. This enables the switch to forward data in a more efficient manner.

Abstract

An interface located on a network switch transmits header information to an external device that makes data forwarding decisions. The interface receives and transmits header information that includes the source and destination address of the data. The external device generates data forwarding information and transmits the information back to the switch via the interface device. The network switch uses the information obtained via the interface and forwards the data packets to the appropriate destination.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority from provisional patent application Ser. No. 60/038,025, filed Feb. 14, 1997, entitled INTEGRATED MULTIPORT SWITCH (attorney docket 1033-230PRO), which is incorporated herein by reference.
This application is related to commonly-assigned, copending application, filed concurrently herewith, entitled AN APPARATUS AND METHOD FOR DISABLING EXTERNAL FRAME FORWARDING DEVICE FOR USE WITH A NETWORK SWITCH (attorney docket 1033-249), and commonly-assigned copending application, filed concurrently herewith, entitled INTERNAL RULES CHECKER DIAGNOSTIC MODE (attorney docket 1033-250).
TECHNICAL FIELD
This invention relates to network communications and more particularly to transmitting and receiving data used to make data forwarding decisions.
BACKGROUND ART
In computer networks, a plurality of network stations are interconnected via a communications medium. For example, Ethernet is a commonly used local area network scheme in which multiple stations are connected to a single shared serial data path. These stations typically communicate with a switch located between the shared data path and the stations connected to that path. The interface device may be a Media Access Controller (MAC) which is connected between each station and the shared data path. Each network node may include a MAC which performs a number of functions involved in the transmission and reception of data packets. For example, during the transmission of data, the MAC may assemble the data to be transmitted into a packet with address and error detection fields. Conversely, during the reception of a packet, the MAC must determine whether a received packet is addressed to its station.
When all of the stations connected to the network are simultaneously operating, packet traffic on the shared serial path can be heavy with little time between packets. In typical prior art systems, each MAC includes a receive FIFO (first-in-first-out) which is used to store data captured from the shared path. As the packet passes by on the shared path, the MAC takes the serial information and assembles it into frames which are loaded frame-by-frame into a receive FIFO. As the frames are loaded, the MAC determines whether the destination address corresponds to the physical address of the MAC. If a match occurs, the MAC captures the packet. However, if there is no match, the packet is rejected and the MAC FIFO is flushed. In such prior art systems, data packets that may eventually be flushed are read. This uses bus bandwidth and may slow the system.
In other networks, a MAC may be required to receive packets on behalf of more than one station. For example, a MAC may be located within a bridge between two networks. This MAC, located within the bridge, must be able to compare the destination address in each received packet with a very large number of station addresses in the network to which it is connected. However, the MAC must make the decision before the packet has been completely received in the MAC FIFO. If the MAC has not finished its processing before the packet has been completely received, the packet may still be dumped onto the serial bus. This causes a problem if the MAC then determines that the packet should not have been received. Retracking buffer locations caused by sending such a packet causes increased processing and may delay the system.
Alternatively, if the decision is not made by the MAC before the packet is completely received, queuing problems may result since the MAC must make a decision for the frames in the order in which they are received. Further, the large number of addresses supported by a bridge MAC, or a MAC in a large network, results in an increased amount of logic contained within the MAC to support the increased number of network stations. In situations where space is at a premium, the amount of space needed to support the MAC logic may not be available.
SUMMARY OF THE INVENTION
There exists a need for a switching device in a network that can perform data routing decisions in a timely manner without unduly delaying the network.
There is also a need for a switching device that can perform data routing decisions at any desired time, independent of the order that a frame of data is received.
There is an additional need for a switching device to support a large number of network stations without substantially increasing the size of the switching device.
These and other needs are met by the present invention, where data received by a network switch is routed to an external decision making engine located external to the switch. The switch includes an interface which routes data to the external device and receives the data routing decision from the external device.
According to one aspect of the invention, a network switch utilizes an interface device located on the switch that controls communication of data frames between network stations. The interface device includes an input that receives header information from the data frames and outputs this information to an external device. The external device contains logic functions and generates data forwarding information based on the header information. This data forwarding information is sent back to an input of the interface device and the switch performs the data forwarding function.
Another aspect of the present invention provides a method for making data forwarding decisions. The method includes receiving header information from received data frames, transmitting the header information to an external device and receiving data forwarding information from the external device. The external device generates the data forwarding information from the header information and transmits this information back to the switch which forwards the data.
Other objects and advantages of the present invention will become readily apparent to those skilled in this art from the following detailed description. The embodiments shown and described provide illustration of the best mode contemplated for carrying out the invention. The invention is capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawings are to be regarded as illustrative in nature, and not as restrictive.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a packet switched system in which the present invention may be utilized.
FIGS. 2, 2A and 2B are block diagrams of a multiport switch constructed in accordance with an embodiment of the present invention and used in the packet switched system of FIG. 1.
FIG. 3 is a detailed block diagram of the switch subsystem of FIG. 2.
FIG. 4 illustrates the data transmitted to the external rules checker via the external rules checker interface.
FIG. 5 illustrates the timing of the data transfer of FIG. 4.
FIG. 6 illustrates the data transmitted from the external rules checker to the external rules checker interface.
FIG. 7 illustrates timing of the data transfer of FIG. 6.
DETAILED DESCRIPTION OF THE INVENTION
The present invention will be described with the example of a switch in a packet switched network, such as an Ethernet (IEEE 802.3) network. A description will first be given of the switch architecture, followed by the detailed description of the external rules checker interface. It will become apparent, however, that the present invention is also applicable to other packet switched systems, as described in detail below.
SWITCH ARCHITECTURE
FIG. 1 is a block diagram of an exemplary system in which the present invention may be advantageously employed. The exemplary system 10 is a packet switched network, such as an Ethernet network. The packet switched network includes an integrated multiport switch (IMS) 12 that enables communication of data packets between network stations. The network may include network stations having different configurations, for example twenty-four (24) 10 megabit per second (Mb/s) network stations 14 that send and receive data at a network data rate of 10 Mb/s, and two 100 Mb/s network stations 16 that send and receive data packets at a network speed of 100 Mb/s. The multiport switch 12 selectively forwards data packets received from the network stations 14 or 16 to the appropriate destination based upon Ethernet protocol.
According to the disclosed embodiment, the 10 Mb/s network stations 14 send and receive data packets to and from the multiport switch 12 via a media 18 and according to half-duplex Ethernet protocol. The Ethernet protocol ISO/IEC 8802-3 (ANSI/IEEE Std. 802.3, 1993 Ed.) defines a half-duplex media access mechanism that permits all stations 14 to access the network channel with equality. Traffic in a half-duplex environment is not distinguished or prioritized over the medium 18. Rather, each station 14 includes an Ethernet interface card that uses carrier-sense multiple access with collision detection (CSMA/CD) to listen for traffic on the media. The absence of network traffic is detected by sensing a deassertion of a receive carrier on the media. Any station 14 having data to send will attempt to access the channel by waiting a predetermined time after the deassertion of a receive carrier on the media, known as the interpacket gap interval (IPG). If a plurality of stations 14 have data to send on the network, each of the stations will attempt to transmit in response to the sensed deassertion of the receive carrier on the media and after the IPG interval, resulting in a collision. Hence, the transmitting station will monitor the media to determine if there has been a collision due to another station sending data at the same time. If a collision is detected, both stations stop, wait a random amount of time, and retry transmission.
The 100 Mb/s network stations 16 preferably operate in full-duplex mode according to the proposed Ethernet standard IEEE 802.3x Full-Duplex with Flow Control--Working Draft (0.3). The full-duplex environment provides a two-way, point-to-point communication link between each 100 Mb/s network station 16 and the multiport switch 12, where the IMS and the respective stations 16 can simultaneously transmit and receive data packets without collisions. The 100 Mb/s network stations 16 each are coupled to network media 18 via 100 Mb/s physical (PHY) devices 26 of type 100 Base-TX, 100 Base-T4, or 100 Base-FX. The multiport switch 12 includes a media independent interface (MII) 28 that provides a connection to the physical devices 26. The 100 Mb/s network stations 16 may be implemented as servers or routers for connection to other networks. The 100 Mb/s network stations 16 may also operate in half-duplex mode, if desired. Similarly, the 10 Mb/s network stations 14 may be modified to operate according to full-duplex protocol with flow control.
As shown in FIG. 1, the network 10 includes a series of switch transceivers 20 that perform time division multiplexing and time division demultiplexing for data packets transmitted between the multiport switch 12 and the 10 Mb/s stations 14. A magnetic transformer module 19 maintains the signal waveform shapes on the media 18. The multiport switch 12 includes a transceiver interface 22 that transmits and receives data packets to and from each switch transceiver 20 using a time-division multiplexed protocol across a single serial non-return to zero (NRZ) interface 24. The switch transceiver 20 receives packets from the serial NRZ interface 24, demultiplexes the received packets, and outputs the packets to the appropriate end station 14 via the network media 18. According to the disclosed embodiment, each switch transceiver 20 has four independent 10 Mb/s twisted-pair ports and uses 4:1 multiplexing across the serial NRZ interface enabling a four-fold reduction in the number of PINs required by the multiport switch 12.
The multiport switch 12 contains a decision making engine, switching engine, buffer memory interface, configuration/control/status registers, management counters, and MAC (media access control) protocol interface to support the routing of data packets between the Ethernet ports serving the network stations 14 and 16. The multiport switch 12 also includes enhanced functionality to make intelligent switching decisions, and to provide statistical network information in the form of management information base (MIB) objects to an external management entity, described below. The multiport switch 12 also includes interfaces to enable external storage of packet data and switching logic in order to minimize the chip size of the multiport switch 12. For example, the multiport switch 12 includes a synchronous dynamic RAM (SDRAM) interface 32 that provides access to an external memory 34 for storage of received frame data, memory structures, and MIB counter information. The memory 34 may be an 80, 100 or 120 MHz synchronous DRAM having a memory size of 2 or 4 Mb.
The multiport switch 12 also includes a management port 36 that enables an external management entity to control overall operations of the multiport switch 12 by a management MAC interface 38. The multiport switch 12 also includes a peripheral component interconnect (PCI) interface 39 enabling access by the management entity via a PCI host and bridge 40. Alternatively, the PCI host and bridge 40 may serve as an expansion bus for a plurality of IMS devices 12.
The multiport switch 12 includes an internal decision making engine that selectively transmits data packets received from one source to at least one destination station. The multiport switch 12 includes an external rules checker interface (ERCI) 42 that allows an external rules checker (ERC) 44 to make frame forwarding decisions in place of the internal decision making engine. Hence, frame forwarding decisions can be made either by the internal switching engine or the external rules checker 44.
The multiport switch 12 also includes an LED interface 46 that clocks out the status of conditions per port and drives LED external logic 48. The LED external logic 48, in turn, drives LED display elements 50 that are human readable. An oscillator 30 provides a 40 MHz clock input for the system functions of the multiport switch 12.
FIG. 2 is a block diagram of the multiport switch 12 of FIG. 1. The multiport switch 12 includes twenty-four (24) 10 Mb/s media access control (MAC) ports 60 for sending and receiving data packets in half-duplex between the respective 10 Mb/s network stations 14 (ports 1-24) and two 100 Mb/s MAC ports 62 for sending and receiving data packets in full-duplex between the respective 100 Mb/s network stations 16 (ports 25, 26). As described above, the management interface 36 also operates according to MAC layer protocol (port 0). Each of the MAC ports 60, 62 and 36 has a receive first-in-first-out (FIFO) buffer 64 and transmit FIFO 66. Data packets from a network station are received by the corresponding MAC port and stored in the corresponding receive FIFO 64. The received data packet is output from the corresponding receive FIFO 64 to the external memory interface 32 for storage in the external memory 34.
Additional interfaces provide management and control information. For example, a management data interface 72 enables the multiport switch 12 to exchange control and status information with the switch transceivers 20 and the 100 Mb/s physical devices 26 according to the MII management specification (IEEE 802.3u). For example, the management data interface 72 outputs a management data clock (MDC) providing a timing reference on the bidirectional management data IO (MDIO) signal path.
The PCI interface 39 is a 32-bit PCI revision 2.1 compliant slave interface for access by the PCI host processor 40 to internal IMS status and configuration registers 74, and access external memory SDRAM 34. The PCI interface can also serve as an expansion bus for multiple IMS devices. The management port 36 interfaces to an external MAC engine through a standard seven-wire inverted serial GPSI interface, enabling a host controller access to the multiport switch 12 via a standard MAC layer protocol.
FIG. 3 depicts the switch subsystem 70 of FIG. 2 according to an exemplary embodiment of the present invention. Other elements of the multiport switch 12 of FIG. 2 are reproduced in FIG. 3 to illustrate the connections of the switch subsystem 70 to these other elements. The switch subsystem 70 contains the core switching engine for receiving and forwarding frames. The main functional blocks used to implement the switching engine include: a port vector FIFO 63, a buffer manager 65, a plurality of port output queues 67, a management port output queue 75, an expansion bus port output queue 77, a free buffer pool 104, a multicopy queue 90, a multicopy cache 96 and a reclaim queue 98.
There are two basic types of frames that enter the multiport switch 12 from the ports: unicopy frames and multicopy frames. A unicopy frame is a frame that is received at a port which is to be transmitted by the multiport switch 12 to only one other port. By contrast, a multicopy frame is a frame that is received at one port for transmission to more than one port. In FIG. 3, each port is represented by a corresponding MAC 60, 62, or 36 having its own receive FIFO 64 and transmit FIFO 66.
Frames, whether unicopy or multicopy, are received by the internal MAC engines 60, 62, or 36, and placed in the corresponding receive FIFO 64. Each data frame has a header including at least a destination address, a source address, and type/length information. The header of the received packet is also forwarded to a decision making engine to determine which MAC ports will output the data packet. The multiport switch 12 supports two decision making engines, an internal rules checker (IRC) 68 and an external rules checker (ERC) 44. In order for the ERC 44 to function, the multiport switch 12 sends data to the ERC 44 via the external rules checker interface (ERCI) 42. The ERCI 42 is enabled and disabled via a rules checker configuration register 74 located on the multiport switch 12. The IRC 68 and ERCI 42 do not operate simultaneously. The IRC 68 and ERC 44 provide the decision making logic for determining the destination MAC port for a given data packet. The decision making engine may determine that a given data packet is transmitted to either a single port, multiple ports, or all ports (i.e., broadcast).
EXTERNAL RULES CHECKER INTERFACE
The present invention is directed to the external rules checker interface and use of the external rules checker interface to transfer frame routing information between the multiport switch 12 and the external rules checker 44. As described above, the multiport switch 12 provides the switching logic for receiving and forwarding frames to the appropriate output ports. The frame forwarding decisions however, are made by the rules checker, either the IRC 68 or the ERC 44. The rules checker contains a set of addresses along with VLAN associations and forwarding port vectors. When a port on multiport switch 12 receives a frame, it sends a frame pointer (location in external memory 34 where the frame is stored), the receive port number, destination address (DA) and source address (SA) to the rules checker. If the IRC 68 is enabled, the port also forwards hash keys and VLAN ID (if applicable). The rules checker searches its address table for the appropriate addresses and makes a forwarding decision based upon the SA, receive port, DA and VLAN associations. It then forwards the frame pointer, a forwarding port vector, the VLAN index (if appropriate) and a control opcode to the port vector FIFO 63 (See FIG. 3).
The IRC 68 provides logic to support 512 user addresses and capabilities for 32 unique VLANs. The ERC 44 via the ERCI 42 supports a much larger number of addresses, VLANs and routing functions. In the exemplary embodiment, the ERC 44 supports over 8000 addresses. The logic for the ERC 44 and IRC 68 function in the same manner. The discussion below assumes that the ERCI 42 is enabled.
The rules checker configuration register 74 which enables the ERCI 42, also programs the number of bytes of data forwarded to the ERC 44, described in detail below.
The ERCI 42 is sized to support communication with all of the ports on multiport switch 12. Specifically, the ERCI 42 is sized so that when all of the ports on the network are simultaneously active, the ERCI 42 transmits header information from each packet to the ERC 44. The ERC 44 makes its forwarding decision and transmits the decision back to the multiport switch 12, via the ERCI 42, before the packet must be forwarded. However, there is no restriction on the length of time required for the ERC 44 to make the forwarding decisions, such as to make the decisions before the frame is completely buffered to external memory. There is also no requirement to make forwarding decisions in the same order as frames are received. For example, the ERC 44 may make a decision for some packets based on the DA and SA. For other packets, the ERC 44 may look at the packet data and determine that the packet contains data which has a higher priority, for example, the data may be multicast data which is being sent to all the stations. In this situation, the ERC 44 may prioritize this multicast data and send forwarding information to the ERCI 42 before lower-priority data which was received earlier. Further, the ERC 44 may push the multicast data out more quickly than for standard data using a hardware assist or other procedure to enable the data to be transmitted back to the multiport switch more quickly than for normal data packets.
With reference to FIG. 4, the ERCI 42 in the multiport switch 12 forwards data to the ERC on a 16-bit ERC data bus, ERC DATA [15:0], synchronous to the system clock, SCLK. In the exemplary embodiment, SCLK is a 40 MHz oscillator shared by the multiport switch 12 and switch transceivers 20. The ERCI transmits a 5-bit receive port number on ERC DATA [4:0], the frame pointer on ERC DATA [13:0] and a programmed number of bytes of the received frame. The data after frame pointer in FIG. 4 represents the programmable bytes of data. The frame pointer is the address in external memory 34 where the frame is stored. The ERCI transmits a maximum of 64 bytes of the received frame and the actual number of bytes transmitted is programmed in the rules checker configuration register 74. At a minimum, the ERCI 42 transmits the receive port, destination address (DA), source address (SA) and the frame pointer. In situations where the ERCI 42 transmits an odd number of bytes to the ERC 44, ERC DATA [7:0] is the active byte lane on the last transfer.
The ERCI 42 also outputs control data on a 2-bit ERC control bus, ERC CTRL. The ERC control signal indicates when ERC DATA is active. For example, ERC CTRL bits "00" indicate that the ERC DATA is idle, "01" indicate that both bytes on ERC DATA are active, and "10" indicate that this the current transfer is the last transfer and one or both bytes on ERC DATA are active. FIG. 5 shows a data timing diagram of ERC DATA [15:0] and ERC CTRL [1:0].
The ERC 44 receives the data from ERCI 42 and searches its address table for the appropriate addresses and makes a forwarding decision based upon the received data. With reference to FIG. 6, the ERC 44 sends a frame pointer (14 bits), the forwarding Port Vector (28 bits), the Control Opcode (8 bits) and the VLAN Index (5 bits) on a four bit port vector bus, PRT VCTR [3:0] to the ERCI 42. The ERCI 42 transmits the data on PRT VCTR [3:0], synchronous to SCLK, to the switch subsystem 70. ERC 44 pads the fields to 16 bits for the frame pointer, 28 bits for the Port Vector, 8 bits for the VLAN Index and 8 bits for the Control Opcode. A frame signal, port vector strobe, PV STRB, indicates when data is valid on PRT VCTR [3:0]. For diagnostic purposes, the multiport switch 12 can be monitored on port vector, PRT VCTR or PV STRB. FIG. 7 shows a timing diagram of the port vector bus and port vector strobe signal in relation to SCLK.
The ERCI 42 outputs the forwarding decision to switch subsystem 70. The switch subsystem 70 fetches the data packet identified in the port vector from the external memory 34 via the external memory interface 32, and supplies the retrieved data packet to the appropriate transmit FIFO 66 of the identified ports. The switch subsystem may send a given data packet to either a single port, multiple ports, or all ports (i.e., broadcast) based on the output from ERC 44. For example, the received data packet may include a destination address that identifies a plurality of network stations. Alternatively, the received packet may include a VLAN (virtual LAN) tagged frame according to IEEE 802.1d protocol that specifies another network (via a router at one of the 100 Mb/s stations 16) or a prescribed group of stations. Hence, the ERC 44 via the ERCI 42 decides whether a frame temporarily stored in the buffer memory 34 should be output to a single MAC or multiple MAC ports.
As described above, the ERC 44, based on the information in the header, determines from where the frame packet will be transmitted. The description below assumes that either the IRC 68 or ERC 44 is operating.
At the same time as the rules checker, 44 or 68, is making a forwarding determination, the buffer manager 65 obtains a free frame pointer from the free buffer pool 104. The free frame pointer specifies a location in external memory 34 available for storing the data frame currently stored in the receive FIFO 64. The buffer manager 65 transfers the data frame from the receive FIFO 64 over a data bus 80 (see FIG. 2) to the external memory 34 in a direct memory access (DMA) transaction, and the data frame is stored in the location pointed to by the free frame pointer obtained from the free buffer pool 104. In the exemplary illustrated embodiment, the port vector is a 28-bit vector with a bit set for each output port identified as a destination port to which the data frame should be forwarded. Assuming that the received frame is a unicopy frame, only one bit corresponding to the one destination port is set in the port vector generated by the rules checker 44 or 68. Hence, the rules checker uses the port vector to assign the frame pointer to at least one destination port. The rules checker, 44 or 68, places the port vector and the corresponding frame pointer (as well as a control opcode and a VLAN index) into the port vector FIFO 63. The port vector is examined by the port vector FIFO 63 to determine into which particular output queue 67 (or queues) the frame pointer associated with the port vector should be input. The port vector FIFO 63 assigns the frame pointer to the appropriate destination port(s) by placing the frame pointer into the top of the appropriate output queue 67, queuing the transmission of the data frame from the corresponding destination port. Hence, the frame pointer becomes an "assigned frame pointer," where it is assigned to a destination port.
At some point in time, the assigned frame pointer reaches the bottom of the output queue 67 after passing through the output queue 67. The buffer manager 65 takes the assigned frame pointer from the bottom of the output queue 67 using a frame pointer read bus 86, fetches the corresponding data frame in a DMA transaction from the location in external memory 34 pointed to by the assigned frame pointer, and places the fetched data frame into the appropriate transmit FIFO 66 via a data bus 82 (see FIG. 2) for transmission by the corresponding MAC layer.
Described has been a system and method for receiving data from network stations and making frame forwarding decisions in a timely manner with minimal delay. An advantage of the invention is that the ERC 44 via the ERCI 42 enables the switch to increase its capacity and support more stations/networks. Another advantage of the invention is that frame forwarding decisions can be made before the frame is completely buffered to external memory and decisions can be made in an order independent from the order in which the frames are received by the multiport switch 12. This enables the switch to forward data in a more efficient manner. In this disclosure, there is shown and described only the preferred embodiments of the invention, but, as aforementioned, it to be understood that the invention is capable of use in various other combinations and environments and is capable of changes or modifications within the scope of the inventive concept as expressed herein.

Claims (15)

What is claimed is:
1. In a multiport switch that controls communication of data frames between network stations, an interface device located on the multiport switch comprising:
a first input configured for receiving frame header information from the data frames;
an output configured for transmitting the frame header information to an external device, wherein the external device generates data forwarding information based on the frame header information; and
a second input configured for receiving the data forwarding information from the external device, wherein the data frames are forwarded based on the data forwarding information.
2. The interface device of claim 1, wherein the frame header information comprises:
location information specifying where the frame is stored, a source address of the frame and a destination address of the frame.
3. The interface device of claim 2, wherein the data forwarding information further comprises forwarding port data.
4. The interface device of claim 1, wherein the interface device is enabled via a configuration register located on the multiport switch.
5. The interface device of claim 1, wherein the frame header information further comprises a programmable number of bytes of data.
6. The interface device of claim 2, wherein the data forwarding information comprises:
virtual local area network (VLAN) index information specifying another network or a prescribed group of stations.
7. In an integrated switch that enables and controls communication of data frames between network stations, a method of making data forwarding decisions comprising:
a) receiving data from at least one of the network stations;
b) sending header information from the received data to an external device via an interface located on the integrated switch, wherein the external device generates data forwarding information based on the header information; and
c) receiving the data forwarding information from the external device for transmission of the received data.
8. The method of claim 6, further comprising:
transmitting control information to the external device indicating a valid portion of the header information.
9. The method of claim 8, further comprising:
receiving control information from the external device indicating that the forwarding information is valid.
10. In an integrated switch that controls communication of data packets between network stations, an interface device located on the switch comprising:
a first input configured for receiving frame header information from the data packets;
a first output configured for transmitting the frame header information to an external device;
a second input configured for receiving control information indicating what portion of the frame header information is valid;
a second output configured for transmitting the control information to the external device;
a third input configured for receiving forwarding information from the external device, wherein the forwarding information is used by the integrated switch to forward the data packets; and
a fourth input configured for receiving control information from the external device indicating that the forwarding information is valid.
11. The integrated switch of claim 10, wherein the frame header information comprises:
location information specifying a source address of the frame and a destination address of the frame.
12. The interface device of claim 11, wherein the forwarding information comprises:
location information specifying where the frame is stored and forwarding port data.
13. The interface device of claim 10, wherein the interface device is enabled via a configuration register located on the multiport switch.
14. The interface device of claim 11, wherein the frame header information further comprises:
a programmable number of bytes of data.
15. The interface device of claim 12, wherein the forwarding information further comprises:
virtual local area network (VLAN) index information specifying another network or a prescribed group of stations.
US08/993,715 1997-12-18 1997-12-18 External rules checker interface Expired - Lifetime US6084878A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/993,715 US6084878A (en) 1997-12-18 1997-12-18 External rules checker interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/993,715 US6084878A (en) 1997-12-18 1997-12-18 External rules checker interface

Publications (1)

Publication Number Publication Date
US6084878A true US6084878A (en) 2000-07-04

Family

ID=25539848

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/993,715 Expired - Lifetime US6084878A (en) 1997-12-18 1997-12-18 External rules checker interface

Country Status (1)

Country Link
US (1) US6084878A (en)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289015B1 (en) * 1998-09-17 2001-09-11 Tut Systems, Inc. Method and apparatus for the secure switching of a packet within a communications network
WO2002007383A2 (en) 2000-07-17 2002-01-24 Advanced Micro Devices, Inc. In-band management of a stacked group of switches by a single cpu
US20020009079A1 (en) * 2000-06-23 2002-01-24 Jungck Peder J. Edge adapter apparatus and method
WO2002091688A1 (en) * 2001-05-07 2002-11-14 Vitesse Semiconductor Corporation A data switching system
US20020194291A1 (en) * 2001-05-15 2002-12-19 Zahid Najam Apparatus and method for interfacing with a high speed bi-directional network
US6529503B1 (en) * 1999-05-21 2003-03-04 Advanced Micro Devices, Inc. Apparatus and method for storing header information in a network switch
US6625146B1 (en) * 1999-05-28 2003-09-23 Advanced Micro Devices, Inc. Method and apparatus for operating a network switch in a CPU-less environment
US6728785B1 (en) 2000-06-23 2004-04-27 Cloudshield Technologies, Inc. System and method for dynamic compression of data
US6829654B1 (en) 2000-06-23 2004-12-07 Cloudshield Technologies, Inc. Apparatus and method for virtual edge placement of web sites
US20050111434A1 (en) * 2003-11-06 2005-05-26 Joacim Halen Adaptable network bridge
US20050268072A1 (en) * 2001-05-15 2005-12-01 Zahid Najam Apparatus and method for interconnecting a processor to co-processors using shared memory
US20060069713A1 (en) * 2004-08-27 2006-03-30 Min Wei Securely and efficiently extending data processing pipeline functionality
US20060075139A1 (en) * 2000-06-23 2006-04-06 Cloudshield Technologies, Inc. Apparatus and method for domain name resolution
US7079533B1 (en) * 2001-05-02 2006-07-18 Advanced Micro Devices, Inc. Systems and methods for bypassing packet lookups
US7114008B2 (en) 2000-06-23 2006-09-26 Cloudshield Technologies, Inc. Edge adapter architecture apparatus and method
US20090262741A1 (en) * 2000-06-23 2009-10-22 Jungck Peder J Transparent Provisioning of Services Over a Network
US20100103837A1 (en) * 2000-06-23 2010-04-29 Jungck Peder J Transparent provisioning of network access to an application

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5305321A (en) * 1992-02-24 1994-04-19 Advanced Micro Devices Ethernet media access controller with external address detection interface and associated method
US5515376A (en) * 1993-07-19 1996-05-07 Alantec, Inc. Communication apparatus and methods
US5764636A (en) * 1996-03-28 1998-06-09 Cisco Technology, Inc. Color blocking logic mechanism for a high-performance network switch
US5946308A (en) * 1995-11-15 1999-08-31 Cabletron Systems, Inc. Method for establishing restricted broadcast groups in a switched network
US5963556A (en) * 1993-06-23 1999-10-05 Digital Equipment Corporation Device for partitioning ports of a bridge into groups of different virtual local area networks
US5987522A (en) * 1998-01-13 1999-11-16 Cabletron Systems, Inc. Privileged virtual local area networks
US6014380A (en) * 1997-06-30 2000-01-11 Sun Microsystems, Inc. Mechanism for packet field replacement in a multi-layer distributed network element
US6023563A (en) * 1996-08-20 2000-02-08 Shani; Ron Networking switch having the network presence of a bridge

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5305321A (en) * 1992-02-24 1994-04-19 Advanced Micro Devices Ethernet media access controller with external address detection interface and associated method
US5963556A (en) * 1993-06-23 1999-10-05 Digital Equipment Corporation Device for partitioning ports of a bridge into groups of different virtual local area networks
US5515376A (en) * 1993-07-19 1996-05-07 Alantec, Inc. Communication apparatus and methods
US5946308A (en) * 1995-11-15 1999-08-31 Cabletron Systems, Inc. Method for establishing restricted broadcast groups in a switched network
US5764636A (en) * 1996-03-28 1998-06-09 Cisco Technology, Inc. Color blocking logic mechanism for a high-performance network switch
US6023563A (en) * 1996-08-20 2000-02-08 Shani; Ron Networking switch having the network presence of a bridge
US6014380A (en) * 1997-06-30 2000-01-11 Sun Microsystems, Inc. Mechanism for packet field replacement in a multi-layer distributed network element
US5987522A (en) * 1998-01-13 1999-11-16 Cabletron Systems, Inc. Privileged virtual local area networks

Cited By (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289015B1 (en) * 1998-09-17 2001-09-11 Tut Systems, Inc. Method and apparatus for the secure switching of a packet within a communications network
US6529503B1 (en) * 1999-05-21 2003-03-04 Advanced Micro Devices, Inc. Apparatus and method for storing header information in a network switch
US6625146B1 (en) * 1999-05-28 2003-09-23 Advanced Micro Devices, Inc. Method and apparatus for operating a network switch in a CPU-less environment
US7624142B2 (en) 2000-06-23 2009-11-24 Cloudshield Technologies, Inc. System and method for processing packets according to user specified rules governed by a syntax
US8694610B2 (en) 2000-06-23 2014-04-08 Cloudshield Technologies, Inc. Apparatus and method for domain name resolution
US9634943B2 (en) 2000-06-23 2017-04-25 Cloudshield Technologies, Inc. Transparent provisioning of services over a network
US20090262741A1 (en) * 2000-06-23 2009-10-22 Jungck Peder J Transparent Provisioning of Services Over a Network
US20020009079A1 (en) * 2000-06-23 2002-01-24 Jungck Peder J. Edge adapter apparatus and method
US7570663B2 (en) 2000-06-23 2009-08-04 Cloudshire Technologies, Inc. System and method for processing packets according to concurrently reconfigurable rules
US6728785B1 (en) 2000-06-23 2004-04-27 Cloudshield Technologies, Inc. System and method for dynamic compression of data
US6829654B1 (en) 2000-06-23 2004-12-07 Cloudshield Technologies, Inc. Apparatus and method for virtual edge placement of web sites
US20050021863A1 (en) * 2000-06-23 2005-01-27 Cloudshield Technologies, Inc. Apparatus and method for virtual edge placement of web sites
US9444785B2 (en) 2000-06-23 2016-09-13 Cloudshield Technologies, Inc. Transparent provisioning of network access to an application
US7437482B2 (en) 2000-06-23 2008-10-14 Cloudshield Technologies, Inc. Method and apparatus for facilitating client server communications over a network
US9258241B2 (en) 2000-06-23 2016-02-09 Cloudshield Technologies, Inc. Transparent provisioning of services over a network
US20060029104A1 (en) * 2000-06-23 2006-02-09 Cloudshield Technologies, Inc. System and method for processing packets according to concurrently reconfigurable rules
US20100103837A1 (en) * 2000-06-23 2010-04-29 Jungck Peder J Transparent provisioning of network access to an application
US7114008B2 (en) 2000-06-23 2006-09-26 Cloudshield Technologies, Inc. Edge adapter architecture apparatus and method
US20060075139A1 (en) * 2000-06-23 2006-04-06 Cloudshield Technologies, Inc. Apparatus and method for domain name resolution
US7032031B2 (en) 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
US7844740B2 (en) 2000-06-23 2010-11-30 Cloudshield Technologies, Inc. System and method for dynamic compression of data
US9537824B2 (en) 2000-06-23 2017-01-03 Cloudshield Technologies, Inc. Transparent provisioning of network access to an application
US8576881B2 (en) 2000-06-23 2013-11-05 Cloudshield Technologies, Inc. Transparent provisioning of services over a network
US20060029038A1 (en) * 2000-06-23 2006-02-09 Cloudshield Technologies, Inc. System and method for processing packets using location and content addressable memories
US8204082B2 (en) 2000-06-23 2012-06-19 Cloudshield Technologies, Inc. Transparent provisioning of services over a network
US7330908B2 (en) 2000-06-23 2008-02-12 Clouldshield Technologies, Inc. System and method for processing packets using location and content addressable memories
US6714556B1 (en) 2000-07-17 2004-03-30 Advanced Micro Devices, Inc. In-band management of a stacked group of switches by a single CPU
WO2002007383A3 (en) * 2000-07-17 2002-05-16 Advanced Micro Devices Inc In-band management of a stacked group of switches by a single cpu
WO2002007383A2 (en) 2000-07-17 2002-01-24 Advanced Micro Devices, Inc. In-band management of a stacked group of switches by a single cpu
US7079533B1 (en) * 2001-05-02 2006-07-18 Advanced Micro Devices, Inc. Systems and methods for bypassing packet lookups
WO2002091688A1 (en) * 2001-05-07 2002-11-14 Vitesse Semiconductor Corporation A data switching system
US20050268072A1 (en) * 2001-05-15 2005-12-01 Zahid Najam Apparatus and method for interconnecting a processor to co-processors using shared memory
US7428618B2 (en) 2001-05-15 2008-09-23 Cloudshield Technologies, Inc. Apparatus and method for interfacing with a high speed bi-directional network
US7318144B2 (en) 2001-05-15 2008-01-08 Cloudshield Teechnologies, Inc. Apparatus and method for interconnecting a processor to co-processors using shared memory
US7210022B2 (en) 2001-05-15 2007-04-24 Cloudshield Technologies, Inc. Apparatus and method for interconnecting a processor to co-processors using a shared memory as the communication interface
US20060004912A1 (en) * 2001-05-15 2006-01-05 Zahid Najam Apparatus and method for interfacing with a high speed bi-directional network
US7082502B2 (en) 2001-05-15 2006-07-25 Cloudshield Technologies, Inc. Apparatus and method for interfacing with a high speed bi-directional network using a shared memory to store packet data
US20020194291A1 (en) * 2001-05-15 2002-12-19 Zahid Najam Apparatus and method for interfacing with a high speed bi-directional network
US7672318B2 (en) * 2003-11-06 2010-03-02 Telefonaktiebolaget L M Ericsson (Publ) Adaptable network bridge
US20050111434A1 (en) * 2003-11-06 2005-05-26 Joacim Halen Adaptable network bridge
US8037123B2 (en) * 2004-08-27 2011-10-11 Microsoft Corporation Securely and efficiently extending data processing pipeline functionality
US20060069713A1 (en) * 2004-08-27 2006-03-30 Min Wei Securely and efficiently extending data processing pipeline functionality

Similar Documents

Publication Publication Date Title
US6058112A (en) Internal rules checker diagnostic mode
US6625157B2 (en) Apparatus and method in a network switch port for transferring data between buffer memory and transmit and receive state machines according to a prescribed interface protocol
US6463032B1 (en) Network switching system having overflow bypass in internal rules checker
US6091707A (en) Methods and apparatus for preventing under-flow conditions in a multiple-port switching device
US7027437B1 (en) Network switch multiple-port sniffing
US6813266B1 (en) Pipelined access to address table in a network switch
US6618390B1 (en) Method and apparatus for maintaining randomly accessible free buffer information for a network switch
JP3985061B2 (en) Integrated multiport switch with management information base (MIB) interface primary storage
US6546010B1 (en) Bandwidth efficiency in cascaded scheme
US6442137B1 (en) Apparatus and method in a network switch for swapping memory access slots between gigabit port and expansion port
US6084878A (en) External rules checker interface
US6636523B1 (en) Flow control using rules queue monitoring in a network switching system
JPH10215275A (en) Netowrk switch with multi-path architecture
JP4072583B2 (en) Integrated multiport switch with shared media access control circuit
US7031305B1 (en) Apparatus and method for programmable memory access slot assignment
US6724769B1 (en) Apparatus and method for simultaneously accessing multiple network switch buffers for storage of data units of data frames
US6741589B1 (en) Apparatus and method for storing data segments in a multiple network switch system using a memory pool
US6393028B1 (en) Method and apparatus for providing EOF for frame modification
US6574231B1 (en) Method and apparatus for queuing data frames in a network switch port
US6597693B1 (en) Common scalable queuing and dequeuing architecture and method relative to network switch data rate
US6529503B1 (en) Apparatus and method for storing header information in a network switch
US6771654B1 (en) Apparatus and method for sharing memory using a single ring data bus connection configuration
US6895015B1 (en) Dynamic time slot allocation in internal rules checker scheduler
US6993033B1 (en) Method and apparatus for synchronizing aging operations associated with an address table
US6335938B1 (en) Multiport communication switch having gigaport and expansion ports sharing the same time slot in internal rules checker

Legal Events

Date Code Title Description
AS Assignment

Owner name: ADVANCED MICRO DEVICES, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CRAYFORD, IAN;KERSTEIN, DENISE;CHOW, PETER KA-FAI;AND OTHERS;REEL/FRAME:009217/0876;SIGNING DATES FROM 19980421 TO 19980520

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: GLOBALFOUNDRIES INC., CAYMAN ISLANDS

Free format text: AFFIRMATION OF PATENT ASSIGNMENT;ASSIGNOR:ADVANCED MICRO DEVICES, INC.;REEL/FRAME:023119/0083

Effective date: 20090630

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: GLOBALFOUNDRIES U.S. INC., NEW YORK

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WILMINGTON TRUST, NATIONAL ASSOCIATION;REEL/FRAME:056987/0001

Effective date: 20201117