A switched ethernet controller (SEC) device and associated method that provides processor based intervention in the packet routing decision process is provided. The method of routing a multicast packet between a source port on a source device and a plurality of destination ports on a plurality of destination devices, utilizes a processor. The method includes the steps of the source device receiving the multicast packet via the source port, the source device sending the multicast packet to the processor, the processor examining the multicast packet, the processor determining the plurality of destination devices and corresponding the plurality of destination ports based on the results obtained during the step of examining, the processor transferring the multicast packet to the plurality of destination devices, and the plurality of destination devices sending the multicast packet to the plurality of destination ports.
|
0. 8. A network device, comprising:
a source communication unit to receive data that includes unicast packet data from a source device;
a destination communication unit to transmit data to a destination device; and
a processor to receive a buffer request from the source communication unit, wherein the buffer request does not include the unicast packet data,
wherein the processor, in response to the buffer request, selectively causes one of:
a.) the data to be discarded,
b.) a transfer of the buffer request to the destination communication unit, and
c.) a transfer of the data to the processor.
0. 15. A network device, comprising:
a source communication means for receiving data from a source device;
a destination communication means for transmitting data that includes unicast packet data to a destination device; and
a processor means for receiving a buffer request from the source communication means, wherein the buffer request does not include the unicast packet data,
wherein the processor means, in response to the buffer request, selectively causes one of:
a.) the data to be discarded,
b.) a transfer of the buffer request to the destination communication means, and
c.) a transfer of the data to the processor means.
1. A method of routing a unicast packet between a source port on a source device and a destination port on a destination device, utilizing a processor, the method comprising the steps of:
a. receiving said unicast packet via said source port;
b. sending a first buffer request from said source device to said processor, wherein said first buffer request does not include said unicast packet;
c. examining said buffer request; and
d. at said processor, selecting to perform one of the following steps based on the results obtained during said step of examining:
i. causing said unicast packet to be discarded;
ii. causing said source device to send said unicast packet to said destination device, or
iii. receiving said unicast packet from said source device.
0. 14. A network device for communicating on an ethernet media, comprising:
a source communication unit, comprising:
a plurality of source ports,
wherein one of the plurality of source ports receives data from the ethernet media;
a source controller responsive to the data received from the plurality of source ports; and
a source memory to store the data from the plurality of source ports at respective source locations in the source memory;
a destination communication unit, comprising:
a destination controller;
a destination memory to store the data from the source communication unit at respective destination locations in the destination memory; and
a plurality of destination ports,
wherein one of the plurality of destination ports transmits the data stored in the destination memory to the ethernet media, and
wherein the source controller selects one of the plurality of destination ports in accordance with the data; and
a processor to receive a buffer request from the source communication unit,
wherein the destination controller is responsive to the processor, and
wherein the processor, in response to the buffer request, selectively causes one of:
a.) the data to be discarded,
b.) a transfer of the buffer request to the selected one of the plurality of destination ports, and
c.) a transfer of the data to the processor,
wherein the buffer request comprises:
an identification of a selected one of the plurality of source ports;
an identification of the selected one of the plurality of destination ports; and
an amount of the data, and
the buffer request does not include packet data.
0. 21. A network device for communicating on an ethernet media, comprising:
a source communication means, comprising:
a plurality of source port means,
wherein one of the plurality of source port means receives data from the ethernet media;
a source controller means responsive to the data received from the plurality of source port means; and
a source memory means for storing the data from the plurality of source port means at respective source locations in the source memory means;
a destination communication means, comprising:
a destination controller means;
a destination memory means for storing the data from the source communication means at respective destination locations in the destination memory means; and
a plurality of destination port means,
wherein one of the plurality of destination port means transmits the data stored in the destination memory means to the ethernet media, and
wherein the source controller selects one of the plurality of destination port means in accordance with the data; and
a processor means for receiving a buffer request from the source communication means,
wherein the destination controller means is responsive to the processor means, and
wherein the processor means, in response to the buffer request, selectively causes one of:
a.) the data to be discarded,
b.) a transfer of the buffer request to the selected one of the plurality of destination port means, and
c.) a transfer of the data to the processor means,
wherein the buffer request comprises:
an identification of a selected one of the plurality of source port means;
an identification of the selected one of the plurality of destination port means; and
an amount of the data, and
the buffer request does not include packet data.
2. The device according to
a. sending a second buffer request from said source processor to said destination device;
b. transferring said unicast packet from said source device to said destination device; and
c. sending said unicast packet from said destination device to said destination port.
3. The method according to
4. The method according to
a. sending a second buffer request start of packet message from said processor to said source device; and
b. sending said unicast packet from said source device to said processor.
0. 5. The method of
0. 6. The method of
0. 7. The method of
0. 9. The network device of
a source port identification;
a destination port identification; and
an amount of the data.
0. 10. The network device of
a source port to receive the data from the source device;
a source controller responsive to the data from the source port; and
a source memory to store the data from the source port at a source location in the source memory.
0. 11. The network device of
a destination port to transmit the data to the destination device;
a destination controller responsive to the processor; and
a destination memory to store the data from the source communication unit at a destination location in the destination memory.
0. 12. The network device of
a source port identification;
a destination port identification; and
an amount of the data,
wherein when the processor causes a transfer of the buffer request to the destination communication unit, the destination communication unit allocates space in the destination memory at the destination location in accordance with the amount of the data, and the source controller transfers the data from the source memory starting at the source location to the destination memory starting at the destination location.
0. 13. The network device of
a plurality of destination ports,
wherein the source controller determines at least a selected one of the plurality of destination ports in accordance with the data received by the source port.
0. 16. The network device of
a source port means identification;
a destination port means identification; and
an amount of the data.
0. 17. The network device of
a source port means for receiving the data from the source device;
a source controller means, responsive to the data from the source port means, for controlling the source port means; and
a source memory means for storing the data from the source port means at a source location in the source memory means.
0. 18. The network device of
a destination port means for transmitting the data to the destination device;
a destination controller means, responsive to the processor means, for controlling the destination port means; and
a destination memory means for storing the data from the source communication means at a destination location in the destination memory means.
0. 19. The network device of
a source port means identification;
a destination port means identification; and
an amount of the data,
wherein when the processor means causes a transfer of the buffer request to the destination communication means, the destination communication means allocates space in the destination memory means at the destination location in accordance with the amount of the data, and the source controller means transfers the data from the source memory means starting at the source location to the destination memory means starting at the destination location.
0. 20. The network device of
a plurality of destination port means,
wherein the source controller means determines at least a selected one of the plurality of destination port means in accordance with the data received by the source port means.
|
The present invention relates to switched Ethernet controller devices and more specifically to switched Ethernet controller devices for providing processor based intervention in the packet routing decision process.
Traditional Ethernet switching hub equipment operates by examining Ethernet header information to perform local switching functions. If it is determined that a frame is destined for a local port, the hub transfers the frame between the inbound port and the outbound port. Typically this transfer occurs between multiple switching Ethernet controller devices in hardware using a direct memory access transfer scheme, common in many computer designs. The disadvantage of using direct memory transfer to transfer Ethernet frames is that it precludes the provision of any upper OSI level processing such as Level 3 processing or routing. The OSI stack defines seven levels or layers that operate independently of one another. Each level or layer has a distinct task or function to perform. In the OSI model Level 1 is defined as the physical layer, Level 2 as the link layer, and Level 3 as the network level. Traditional Ethernet switching is performed at the Level 2 layer. However, in many situations it is desirable to be able to perform some Level 3 processing also (i.e. by a processing device other than the switching Ethernet controller device), using suitable hardware or software techniques. Using direct memory transfer techniques to transfer the frame from one port to another makes this possible.
Accordingly, it is an object of the present invention to provide a switched Ethernet controller device able to intervene in the packet routing decision mechanism.
It is another object of the present invention to provide a switched Ethernet controller device able to intervene in the packet routing decision mechanism for both multicast and unicast packets.
A switched Ethernet controller (SEC) device and associated method that provides processor based intervention in the packet routing decision process is disclosed. A suitably programmed processor in combination with the switched Ethernet controller device enables a user or network designer to exert control over the packet routing decision process. Thus, routing capabilities can be incorporated in a switching hub constructed using SEC devices of the present invention. Processes are disclosed for handling both multicast and unicast packets. For multicast packets, rather than perform conventional lookup operations to determine the destination device and corresponding port number, a method is disclosed whereby the multicast packet, received from a source device, is first sent to the processor. The processor, in turn, examines the Level 3 or network layer routing information in the payload of the Ethernet frame and determines the destination device and corresponding port to transfer the packet to. For unicast packets, a buffer request is first sent to the processor rather than being immediately sent to all ports. The processor, based on an examination of the Level 3 data contained in the payload of the Ethernet frame, either discards the packet, causes the packet to be transferred from the source device to the destination device or requests to receive the packet directly.
Thus, there is provided in accordance with a preferred embodiment of the present invention, a method of routing a multicast packet between a source port on a source device and a plurality of destination ports on a plurality of destination devices, utilizing a processor, the method including the steps of the source device receiving the multicast packet via the source port, the source device sending the multicast packet to the processor, the processor examining the multicast packet, the processor determining the plurality of destination devices and corresponding the plurality of destination ports based on the results obtained during the step of examining, the processor transferring the multicast packet to the plurality of destination devices, and the plurality of destination devices sending the multicast packet to the plurality of destination ports.
In accordance with a preferred embodiment of the present invention, the step of causing the source device to send the unicast packet to the destination device, includes the steps of the processor sending a second buffer request to the destination device, transferring the unicast packet from the source device to the destination device, and the destination device sending the unicast packet to the destination port. In addition, said step of transferring includes transferring the unicast packet utilizing direct memory transfer.
The step of receiving the unicast packet from the source device includes the steps of the processor sending a second buffer request message to the source device, and the source device sending the unicast packet to the processor.
The invention is herein described, by way of example only, with reference to the accompanying drawings, wherein:
A high level block diagram of an example switching hub built using switched Ethernet controller devices constructed in accordance with a preferred embodiment of the present invention is illustrated in FIG. 1. The switching hub, generally referenced 10, comprises a processor 12 coupled to memory 14. Processor 12 can be any suitable processor, such as a microprocessor or equivalent. Memory 14 can be any suitable memory device or devices, such as random access memory (RAM), either of the dynamic or static type. In the example illustrated in
The present invention provides the network with the ability to both transfer data directly between SEC devices and to enable the processor 12 to intervene in the switching operations. Such an intervention is typically software controlled such that the criteria regarding the decisions to be made can be changed overtime.
In a preferred embodiment, each SEC device is coupled to its own memory array. SEC 16 is coupled to RAM 18 and SEC 20 is coupled to RAM 22. External Ethernet devices are coupled to the Ethernet ports on the SEC devices. Ethernet port 30 is coupled to the external Ethernet device 34 and Ethernet port 32 is coupled to external Ethernet device 36. Both external Ethernet devices are coupled to their respective Ethernet ports through a wire connecting the two.
The manner of performing Ethernet switching between switches (i.e. non-intervention mode) will now be described, with reference to the high level flow diagram illustrated in FIG. 2. First, a packet is received over the wire from an external Ethernet device, in this example, Ethernet device 34. The packet is received by SEC device 16, designated as the source SEC device, for purposes of this example (step 40). Source SEC 16 stores the packet in RAM 18 (step 42). Source SEC 16 determines the destination SEC device and the appropriate port number within the SEC device to send the packet to (step 44). For the purposes of this example, SEC 20 is designated the destination SEC. Each SEC device maintains an address table within its associated memory with includes, among other things, the 48 bit media access control (MAC) address, device number and port number. Source SEC 16 looks up the destination address included in the received packet. If the destination address is found, source SEC 16 reads the corresponding device and port numbers from the table. As described in more detail in Applicant's co-pending application Ser. No. 08/790,151 entitled “A Bus Protocol” and filed on the same day herewith, the SECs transfer data therebetween in accordance with a “write-only” data transfer protocol. Other data transfer protocols are also incorporated in to the present invention.
In accordance with the write-only data transfer protocol, once source SEC 16 has determined where to send the data, it first writes a buffer request to destination SEC 20 (i.e. the SEC device found during step 44), requesting that the destination device prepare for a packet transfer (step 46). Destination SEC 20 then allocates a buffer for the packet to be received and writes a start of packet message to source SEC 16 with an indication of the location of the allocated buffer. A direct memory access (DMA) transfer then occurs directly between RAM 18 and RAM 22, thus transferring the packet to the allocated buffer in destination SEC 20 (step 48). Once the DMA transfer is complete, destination SEC 20 outputs the packet to the proper port (step 50). In this example, the packet is transferred between Ethernet port 32 and external Ethernet device 36 over the wire.
As discussed previously, it would be beneficial to network hardware and software application designers if it were possible to control the routing mechanism within a switching hub. Thus, a preferred embodiment of the present invention teaches a hardware/software intervention mechanism. The intervention mechanism allows a user or network designer to exert finer control over the packet routing decision process than is possible with just switch to switch transfers. To achieve an intervention function, processor 12 examines the Level 3 or network layer header information in the payload of the Ethernet frame. The intervention process is different for multicast packets and for unicast packets. The intervention process for multicast packets will be described first.
For multicast packets, a high level flow diagram of the process of intervening in the packet routing decision mechanism is illustrated in FIG. 3. Referring also to
For unicast packets, a high level flow diagram of the process of intervening in the packet routing decision mechanism is illustrated in FIG. 4. Referring also to
To discard a packet (step 86), processor 12 sends a start of packet message to the source SEC device 16 with the byte count field set to zero. If processor 12 decides to forward the packet to a destination device, it first sends a buffer request to destination SEC 20 device (step 90). In response to the buffer request, destination SEC device 20 allocates buffer space and sends a start of packet message to source SEC device 16. Source SEC device 16 performs a DMA transfer of the packet to destination SEC 20 (step 92). When the DMA transfer is complete, source SEC 16 sends an end of packet message to destination SEC 20. Subsequently, destination SEC 20 transfers the packet to the appropriate port (step 94).
If processor 12 decides to request the packet, it first sends a buffer request start of packet message to source SEC 16 with the target device, within the buffer request start of packet message, set to correspond to the processor itself (step 100). Source SEC 16 then sends the packet to processor 12 followed by an end of packet message (step 102).
Thus, for both multicast and unicast packets, the SEC provides a mechanism, for a device other than itself (i.e. processor 12), to intervene in and play a role in the packet routing process. Processor 12 can be suitably programmed by the user to tailor the decision process to a set of particular user defined requirements.
While the invention has been described with respect to limited number of embodiments, it will be appreciated that many variations, modifications and other applications of the invention may be made.
Willenz, Avigdor, Shemla, David, Sholt, Yosi
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
4947390, | Mar 22 1989 | Hewlett-Packard Company | Method for data transfer through a bridge to a network requiring source route information |
5058109, | Jun 28 1989 | ENTERASYS NETWORKS, INC | Exclusionary network adapter apparatus and related method |
5130981, | Mar 22 1989 | Hewlett-Packard Company | Three port random access memory in a network bridge |
5163131, | Sep 08 1989 | NetApp, Inc | Parallel I/O network file server architecture |
5274631, | Mar 11 1991 | Cisco Technology, Inc | Computer network switching system |
5291481, | Oct 04 1991 | AMERICAN TELEPHONE AND TELEGRAPH COMPANY A CORP OF NY | Congestion control for high speed packet networks |
5521913, | Sep 12 1994 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Distributed processing ethernet switch with adaptive cut-through switching |
5598581, | Aug 06 1993 | Cisco Technology, Inc | Variable latency cut through bridge for forwarding packets in response to user's manual adjustment of variable latency threshold point while the bridge is operating |
5632021, | Oct 25 1995 | Cisco Technology, Inc | Computer system with cascaded peripheral component interconnect (PCI) buses |
5633865, | Mar 31 1995 | ENTERASYS NETWORKS, INC | Apparatus for selectively transferring data packets between local area networks |
5634138, | Jun 07 1995 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Burst broadcasting on a peripheral component interconnect bus |
5724529, | Nov 22 1995 | Cirrus Logic, Inc. | Computer system with multiple PC card controllers and a method of controlling I/O transfers in the system |
5740175, | Oct 03 1995 | National Semiconductor Corporation | Forwarding database cache for integrated switch controller |
5761431, | Apr 12 1996 | Cirrus Logic, INC | Order persistent timer for controlling events at multiple processing stations |
5764996, | Nov 27 1995 | Hewlett Packard Enterprise Development LP | Method and apparatus for optimizing PCI interrupt binding and associated latency in extended/bridged PCI busses |
5781549, | Feb 23 1996 | ALLIED TELESIS, INC | Method and apparatus for switching data packets in a data network |
5784003, | Mar 25 1996 | RPX Corporation | Network switch with broadcast support |
5784373, | Feb 23 1995 | PANASONIC ELECTRIC WORKS CO , LTD | Switching device for LAN |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 04 2001 | Marvell Israel (M.I.S.L) Ltd. | (assignment on the face of the patent) | / | |||
Dec 15 2002 | GALILEO TECHNOLOGY LTD | Marvell Semiconductor Israel Ltd | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 014015 | /0846 | |
Apr 14 2008 | Marvell Semiconductor Israel Ltd | MARVELL ISRAEL M I S L LTD | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 024399 | /0635 |
Date | Maintenance Fee Events |
Jun 07 2011 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Jul 27 2013 | 4 years fee payment window open |
Jan 27 2014 | 6 months grace period start (w surcharge) |
Jul 27 2014 | patent expiry (for year 4) |
Jul 27 2016 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 27 2017 | 8 years fee payment window open |
Jan 27 2018 | 6 months grace period start (w surcharge) |
Jul 27 2018 | patent expiry (for year 8) |
Jul 27 2020 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 27 2021 | 12 years fee payment window open |
Jan 27 2022 | 6 months grace period start (w surcharge) |
Jul 27 2022 | patent expiry (for year 12) |
Jul 27 2024 | 2 years to revive unintentionally abandoned end. (for year 12) |