Claims
- 1. A network communication device, comprising:
a plurality of ports, each that receive and send packets of data; and port control circuitry coupled to said plurality of ports, comprising:
a port manager that directs packets between said plurality of ports, and port bonding circuitry coupled to said port manager that bonds at least two of said plurality of ports together into a bonded port set, and, for each packet to be sent via said bonded port set, said port bonding circuitry selects one bonded port of said bonded port set.
- 2. The network communication device of claim 1, wherein said port bonding circuitry includes at least one port bonding register that identifies which of said plurality of ports are bonded in said bonded port set.
- 3. The network communication device of claim 1, wherein said port bonding circuitry selects a bonded port on a packet by packet basis so as to achieve a relatively even distribution of packets sent by bonded ports of said bonded port set.
- 4. The network communication device of claim 1, further comprising:
each of said packets including source identifiers; and memory coupled to said port control circuitry that stores a plurality of entries, each of said plurality of entries including a unique source identifier and a corresponding port identifier.
- 5. The network communication device of claim 4, further comprising:
for each entry in said memory that includes a source identifier that was received at any bonded port of said bonded port set, said port bonding circuitry programming said corresponding port identifier to represent said bonded port set.
- 6. The network communication device of claim 4, further comprising:
said packets including unicast packets having a destination identifier; for each entry in said memory that includes a source identifier that was received at any bonded port of said bonded port set, said port bonding circuitry programming said port identifier to identify one bonded port of said bonded port set so as to achieve a relatively even distribution of source identifiers among said bonded ports of said bonded port set; and said port manager using said programmed port identifier that corresponds to a destination identifier of a unicast packet to select a bonded port to send said unicast packet via said bonded port set.
- 7. The network communication device of claim 6, further comprising:
said port bonding circuitry monitoring unicast packets sent via each bonded port of said bonded port set and periodically reprogramming said port identifier of each of said plurality of entries so as to achieve a relatively even distribution of unicast packet traffic among the bonded ports of said bonded port set.
- 8. The network communication device of claim 4, further comprising:
each of said plurality of entries in said memory that has a source identifier that was received at any non-bonded port of said plurality of ports further including a bit map having a bit corresponding to each of said bonded ports; and said port bonding circuitry programming each bit map of each of said plurality of entries to assign one bonded port of said bonded port set so as to achieve a relatively even distribution of bonded port assignments to source identifiers corresponding to non-bonded ports.
- 9. The network communication device of claim 8, further comprising:
said memory including a default bit map table that includes a default bit map for each of said plurality of ports, each said default bit map including a bit corresponding to each of said bonded ports; and said port bonding circuitry programing each of said default bit maps to assign one bonded port of said bonded port set so as to achieve a relatively even distribution of bonded port assignments among said plurality of ports.
- 10. The network communication device of claim 8, further comprising:
said packets including broadcast packets that are received by any non-bonded ports to be sent to said bonded ports as determined by said port control circuitry; and said port bonding circuitry monitoring broadcast packets sent by each bonded port of said bonded port set and periodically reprogramming each bit map of each of said plurality of entries so as to achieve a relatively even distribution of broadcast packet traffic among the bonded ports of said bonded port set.
- 11. A packet-based network system, comprising:
a first communication device for sending and receiving packets including a first plurality of ports and a first bonded port set including at least two bonded ports; a second communication device for sending and receiving packets including a second plurality of ports and a second bonded port set including at least two bonded ports; a bonded link coupled between said first and second bonded port sets of said first and second communication devices, said bonded link including a connection link between respective bonded ports of said first and second bonded port sets; said first communication device selecting any one of its bonded ports for each packet received by said first communication device to be sent to said second communication device; and said second communication device selecting any one of its bonded ports for each packet received by said second communication device to be sent to said first communication device.
- 12. The network system of claim 11, wherein said first and second communication devices each select bonded ports to send packets so as to evenly distribute packets on said bonded port link.
- 13. The network system of claim 12, wherein said first and second communication devices select bonded ports on a packet by packet basis.
- 14. The network system of claim 12, each packet including a unique source identifier, wherein said first and second communication devices select bonded ports by assigning a bonded port to each source identifier.
- 15. The network system of claim 14, wherein:
said first communication device assigns source identifiers received by said first bonded port set to said bonded ports of said first bonded port set on an approximately equal basis; said first communication device assigns bonded ports among source identifiers received by its non-bonded ports on an approximately equal basis; said second communication device assigns source identifiers received by said second bonded port set to said bonded ports of said second bonded port set on an approximately equal basis; and said second communication device assigns bonded ports among source identifiers received by its non-bonded ports on an approximately equal basis.
- 16. The network system of claim 11, wherein:
said first and second bonded port sets including bonded ports operating at different bandwidths; and wherein said first and second communication devices select bonded ports to distribute packets sent on each bonded port in proportion to its bandwidth.
- 17. The network system of claim 11, wherein said first and second communication devices are network switches.
- 18. The network system of claim 11, further comprising:
a third communication device for sending and receiving packets including a third plurality of ports and a third bonded port set including at least two bonded ports; said first communication device including a fourth plurality of ports and a fourth bonded port set including at least two bonded ports; a second bonded link coupled between said third and fourth bonded port sets of said third and first communication devices, said bonded link including a connection link between respective bonded ports of said third and fourth bonded port sets; for each packet received by said first communication device to be sent to said third communication device, said first communication device selecting any one of its bonded ports; and for each packet received by said third communication device to be sent to said first communication device, said third communication device selecting any one of its bonded ports.
- 19. The network system of claim 18, wherein said first, second, third and fourth communication devices are network switches.
- 20. A method of bonding ports of a network communication device having a plurality of ports that send and receive packets, comprising steps of:
defining at least two of the plurality of ports as bonded ports forming a bonded port set; receiving a packet; determining that the received packet is to be sent via the bonded port set; selecting one of the bonded ports; and sending the packet via the selected bonded port.
- 21. The method of claim 20, further comprising a step of modifying a spanning tree function to prevent disabling any of the bonded ports.
- 22. The method of claim 20, wherein said selecting step comprises selecting bonded ports on a random basis.
- 23. The method of claim 20, further comprising steps of:
retrieving a source identifier from the packet; determining a port identifier of the selected bonded port; storing the source identifier with the port identifier of the selected bonded port; subsequently receiving a broadcast packet with an identical source identifier; retrieving the port identifier of the selected bonded port; and broadcasting the broadcast packet to selected ones of the plurality of ports including sending the broadcast packet via the selected bonded port.
- 24. The method of claim 23, further comprising steps of:
receiving a plurality of packets at the non-bonded ports; retrieving a source identifier from each packet; for each unique source identifier, assigning any one of the bonded ports so as to evenly distribute bonded port assignments among the unique source identifiers; and storing each unique source identifier along with a port identifier of the corresponding assigned bonded port.
- 25. The method of claim 20, further comprising steps of:
receiving a packet at a bonded port; retrieving a source identifier from the packet; assigning any one of the bonded ports of the same bonded port set to the source identifier; and storing the source identifier along with a port identifier of the assigned bonded port.
- 26. The method of claim 25, further comprising steps of:
receiving a plurality of packets at the bonded ports; retrieving a source identifier from each packet; for each unique source identifier, assigning any one of the bonded ports so as to evenly distribute unique source identifiers among the bonded ports of the bonded port set; and storing each unique source identifier along with a port identifier of the corresponding assigned bonded port.
- 27. A network system, comprising:
a first network device including a plurality of ports; a second network device including a plurality of ports; a plurality of data links coupled between corresponding ports of said first and second network devices; and said first network device sending data to said second network device by distributing data among said at least two data linkis.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present application is a continuation-in-part of U.S. application Ser. No. 08/774,605 filed Dec. 30, 1996, (Attorney Docket No. P-1108), which is hereby incorporated herein by reference in its entirety.
Divisions (1)
|
Number |
Date |
Country |
Parent |
08936072 |
Sep 1997 |
US |
Child |
10667649 |
Sep 2003 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
08774605 |
Dec 1996 |
US |
Child |
08936072 |
Sep 1997 |
US |