Pseudo-interface between control and switching modules of a data packet switching and load balancing system
First Claim
1. A data packet switching system comprising:
- a plurality of network interfaces each adapted to be coupled to respective external networks for receiving and sending data packets to and from said external networks via a particular communication protocol;
a plurality of symmetrical processors including a first processor providing a control processor and remaining ones of said processors each providing data packet switching processors, said control processor being coupled to a corresponding one of said plurality of network interfaces and each of said data packet switching processors being coupled to at least one other one of said plurality of network interfaces; and
a switch coupled to said control processor through said corresponding one of said plurality of network interfaces and coupled to at least one of said switching processors through said at least one other one of said plurality of network interfaces, said switching processors routing a received one of said data packets directed to said control processor through said switch to said control processor;
wherein said switching processors further include stored instructions to be executed by said switching processors, said stored instructions for;
reading routing information from a header portion of said received one of said data packets to identify a virtual address for said control processor, modifying said received one of said data packets by re-writing said routing information to reflect a real address for said control processor, and sending said modified data packet to at least one of said plurality of network interfaces coupled to said switch.
2 Assignments
0 Petitions
Accused Products
Abstract
A data packet switching system comprises a plurality of network interfaces each adapted to be coupled to respective external networks for receiving and sending data packets to and from the external networks via a particular communication protocol. The data packet switching system further includes a plurality of symmetrical processors, including a first processor providing a control processor and remaining ones of said processors each providing data packet switching processors. The control processor is coupled to a corresponding one of the plurality of network interfaces and the data packet switching processors are coupled to each remaining one of the plurality of network interfaces. A switch is coupled to the control processor through the corresponding one of the network interfaces and is coupled to at least one of the switching processors through at least one other one of the network interfaces. The switching processors thereby are capable of routing a received one of the data packets directed to the control processor through the switch to the control processor.
-
Citations
20 Claims
-
1. A data packet switching system comprising:
-
a plurality of network interfaces each adapted to be coupled to respective external networks for receiving and sending data packets to and from said external networks via a particular communication protocol;
a plurality of symmetrical processors including a first processor providing a control processor and remaining ones of said processors each providing data packet switching processors, said control processor being coupled to a corresponding one of said plurality of network interfaces and each of said data packet switching processors being coupled to at least one other one of said plurality of network interfaces; and
a switch coupled to said control processor through said corresponding one of said plurality of network interfaces and coupled to at least one of said switching processors through said at least one other one of said plurality of network interfaces, said switching processors routing a received one of said data packets directed to said control processor through said switch to said control processor;
wherein said switching processors further include stored instructions to be executed by said switching processors, said stored instructions for;
reading routing information from a header portion of said received one of said data packets to identify a virtual address for said control processor, modifying said received one of said data packets by re-writing said routing information to reflect a real address for said control processor, and sending said modified data packet to at least one of said plurality of network interfaces coupled to said switch.
-
-
2. A data packet switching system comprising:
-
a plurality of network interfaces each adapted to be coupled to respective external networks for receiving and sending data packets to and from said external networks via a particular communication protocol;
a plurality of symmetrical processors including a first processor providing a control processor and remaining ones of said processors each providing data packet switching processors, said control processor being coupled to a corresponding one of said plurality of network interfaces and each of said data packet switching processors being coupled to at least one other one of said plurality of network interfaces;
a switch coupled to said control processor through said corresponding one of said plurality of network interfaces and coupled to at least one of said switching processors through said at least one other one of said plurality of network interfaces, said switching processors routing a received one of said data packets directed to said control processor through said switch to said control processor; and
a main memory coupled to each of said plurality of processors, said control processor receiving raw load status data from said external networks and generating load distribution configuration data therefrom, said load distribution configuration data being stored in said main memory for access by said data packet switching processors, said switching processors routing received ones of said data packets to a selected one of said external networks in accordance with routing information included in a header portion of said data packets and said load distribution configuration data. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9)
polling a first one of said network interfaces for presence of a received data packet, if said received data packet is present at said first one of said network interfaces, routing said received data packet to said selected one of said external networks, and if said received data packet is not present at said first one of said network interfaces, polling another one of said network interfaces for presence of said received data packet.
-
-
8. The data packet switching system of claim 2, wherein said switching processors further include a filter module having stored instructions to be executed by said switching processors, said stored instructions comprising the steps of:
-
reading said routing information from said header portion of said data packet, accessing said load distribution configuration data stored in said main memory, selecting said selected one of said external networks based on said routing information and said load distribution configuration data, modifying said data packet by re-writing said routing information to reflect said selected one of said external networks, and sending said modified data packet to one of said plurality of network interfaces corresponding to said selected one of said external networks.
-
-
9. The data packet switching system of claim 8, wherein said stored instructions of said filter module further comprises the steps of:
-
reading transport information from said header portion of said data packet, and accessing connection status data stored in a connection table of said main memory reflecting status of previously received ones of said data packets, wherein, if said transport information indicates that said data packet corresponds to a previously received data packet, then said selecting step further comprises selecting said selected one of said external networks based on said routing information of said previously received data packet.
-
-
10. In a general-purpose multiprocessor computer system comprising a plurality of symmetrical processors, a main memory shared by said plurality of processors, and a plurality of network interfaces each adapted to be coupled to respective external networks for receiving data packets therefrom and sending data packets thereto via a particular communication protocol, a method for operating said computer system comprises the steps of:
-
configuring one of said plurality of processors as a control processor and remaining ones of said processors as data packet switching processors, said control processor being coupled to a corresponding one of said plurality of network interfaces and each of said data packet switching processors being coupled to at least one other one of said plurality of network interfaces;
coupling a switch to said control processor through said corresponding one of said plurality of network interfaces and to at least one of said switching processors through said at least one other one of said plurality of network interfaces, reading routing information from a header portion of a received one of said data packets to identify a virtual address for said control processor, modifying said received one of said data packets by re-writing said routing information to reflect a real address for said control processor, and sending said modified data packet to said at least one of said plurality of network interfaces coupled to said switch. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
providing load data to said control processor regarding load status of said external networks;
generating load distribution configuration data from said load data using said control processor and storing said load distribution configuration data in said main memory for access by said data packet switching processors; and
routing received ones of said data packets using said switching processors to a selected one of said external networks in accordance with information included in a header portion of said data packets and said load distribution configuration data.
-
-
12. The method of claim 11, further comprising the step of providing an active and a back-up portion of said main memory, wherein newly generated load distribution configuration data is stored in said active portion while said back-up portion is accessible to said switching processors.
-
13. The method of claim 10, further comprising the step of periodically polling corresponding ones of said network interfaces by said switching processors for received ones of said data packets.
-
14. The method of claim 10, further comprising the step of re-writing said routing information included in said header portion of said data packets by said switching processors to reflect said selected one of said external networks.
-
15. The method of claim 10, further comprising the step of providing a connection table in said main memory reflecting status of previously received ones of said data packets.
-
16. The method of claim 15, further comprising accessing said connection table by said switching processors to determine correspondence between said received one of said data packets and said previously received ones of said data packets in determining said selected one of said external networks.
-
17. The method of claim 10, further comprising providing a configuration table in said main memory containing said load distribution configuration data.
-
18. The method of claim 10, further comprising the steps of:
-
polling a first one of said network interfaces for presence of a received data packet, if said received data packet is present at said first one of said network interfaces, routing said received data packet to said selected one of said external networks, and if said received data packet is not present at said first one of said network interfaces, polling another one of said network interfaces for presence of said received data packet.
-
-
19. The method of claim 10, further comprising the steps of:
-
reading routing information from said header portion of said data packet, accessing said load distribution configuration data stored in said main memory, selecting said selected one of said external networks based on said routing information and said load distribution configuration data, modifying said data packet by re-writing said routing information to reflects said selected one of said external networks, and sending said modified data packet to one of said plurality of network interfaces corresponding to said selected one of said external networks.
-
-
20. The method of claim 19, further comprising the steps of:
-
reading transport information from said header portion of said data packet, and accessing connection status data stored in a connection table of said main memory reflecting status of previously received ones of said data packets, wherein, if said transport information indicates that said data packet corresponds to a previously received data packet, then said selecting step further comprises selecting said selected one of said external networks based on said routing information of said previously received data packet.
-
Specification