← Back to Patent Explorer
US6434618B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Programmable network element for packet-switched computer network

Assignee: Nokia of America Corp
•
Filing: 1998-11-12
•
Granted: 2002-08-13
•
Expires: 2018-11-12
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A programmable network element (400) operates on packet traffic flowing through the element in accordance with a gateway program (404, 405, 406) which is dynamically uploaded into the network element or unloaded from it via a mechanism separate from the actual packet traffic as the element operates. Such programmable network element can simultaneously operate on plural packet flows with different or the same programs being applied to each flow. A dispatcher (402) provides a packet filter (403) with a set of rules provided by one or more of the dynamically loaded and invoked programs. These rules define, for each program, the characteristics of those packets flowing through the network element that are to be operated upon in some manner. A packet that flows from the network through the filter and satisfies one or more of such rules is sent by the packet filter to the dispatcher. The dispatcher, in accordance with one of the programs, either sends the packet to the program for manipulation by the program itself, or manipulates the packet itself in a manner instructed by the program. The processed packet is sent back through the filter to the network for routing to its destination.

Inventors

  • 👤 Ariel Cohen
  • 👤 Sampath Rangarajan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-24 14:11
CPC Classifications
H; H04; H04L; H04L47/00; H04L47/10; H04L47/24; H04L47/2483

Claims Analysis

Total Claims: 55
Claim 1
Independent Claim 167 words
A network element for a packet-based computer network comprising: a plurality of dynamically loaded programs, each of the programs being loaded into the network element separate from packets flowing from the computer network through the network element, each of the programs comprising separate instructions for: (1) defining one or more characteristics that a packet flowing through the network element from the computer network has to have for the program to execute on the packet; and (2) manipulating the packet if it has the defined characteristics associated with that program; and; a dispatcher for: (1) receiving a packet having the defined characteristics associated with one or more of the plurality of programs from the packets flowing through the network element from the computer network; (2) operating cooperatively with each program for which the received packet has the defined characteristics associated with that program to manipulate the received packet in accordance with the instructions of that program; and (3) inserting the manipulated received packet back into the computer network.
Claim 2
Dependent Claim 167 words
A network element for a packet-based computer network comprising: a plurality of dynamically loaded programs, each of the programs being loaded into the network element separate from packets flowing from the computer network through the network element, each of the programs comprising separate instructions for: (1) defining one or more characteristics that a packet flowing through the network element from the computer network has to have for the program to execute on the packet; and (2) manipulating the packet if it has the defined characteristics associated with that program; and; a dispatcher for: (1) receiving a packet having the defined characteristics associated with one or more of the plurality of programs from the packets flowing through the network element from the computer network; (2) operating cooperatively with each program for which the received packet has the defined characteristics associated with that program to manipulate the received packet in accordance with the instructions of that program; and (3) inserting the manipulated received packet back into the computer network.
Claim 3
Dependent Claim 24 words
The network element of claim 1 wherein each of the plurality of dynamically loaded programs is either a privileged program or an unprivileged program.
Claim 4
Dependent Claim 65 words
The network element of claim 2 wherein before a particular one of the dynamically loaded programs operates cooperatively with the dispatcher on a received packet having the defined characteristics associated with that program, the dispatcher verifies that a privilege level of that particular program is of a type that allows the received packet to be manipulated in accordance with the instructions of that particular program.
Claim 5
Dependent Claim 26 words
The network element of claim 1 wherein more than one of the plurality of dynamically loaded programs execute in parallel on packets in different packet flows.
Claim 6
Dependent Claim 27 words
The network element of claim 1 wherein more than one of the plurality of dynamically loaded programs execute in succession on packets in a single packet flow.
Claim 7
Dependent Claim 31 words
The network element of claim 1 wherein one or more of the plurality of programs is loaded into the network element through a program injector locally connected to the network element.
Claim 8
Dependent Claim 35 words
The network element of claim 1 wherein one or more of the plurality of programs is loaded into the network element through a program injector remotely connected over a network connection to the network element.
Claim 9
Dependent Claim 16 words
The network element of claim 1 wherein the dispatcher is a dispatcher process on a computer.
Claim 10
Dependent Claim 35 words
The network element of claim 1 wherein the dispatcher sends a received packet having the defined characteristics associated with one or more of the plurality of programs to at least one such program for manipulation.
Claim 11
Dependent Claim 42 words
The network element of claim 1 wherein the dispatcher manipulates a received packet having the defined characteristics associated with one or more of the plurality of the programs in accordance with instructions provided to the dispatcher in at least one such program.
Claim 12
Dependent Claim 55 words
The network element of claim 1 wherein one or more of the plurality of dynamically loaded programs performs packet manipulation functions from the group comprising: encrypting a packet payload, decrypting a packet payload, translating a source address of a packet, translating a destination address of a packet, web dispatching for load balancing, and firewall protection.
Claim 13
Dependent Claim 17 words
The network element of claim 1 wherein the network element is implemented on a Linux operating system.
Claim 14
Dependent Claim 37 words
The network element of claim 1 wherein the dispatcher sends only a packet header of a packet having the defined characteristics associated with one or more of the programs to at least one such program for manipulation.
Claim 15
Dependent Claim 167 words
A network element for a packet-based computer network comprising: means for dynamically loading a plurality of programs, said loading means loading each of the programs separately from packets flowing from the computer network through the network element, each of the programs comprising instructions for: (1) defining one or more characteristics that a packet flowing through the network element from the computer network has to have for the program to execute on the packet; and (2) manipulating the packet if is has the defined characteristics associated with that program; and; a dispatcher for: (1) receiving a packet having the defined characteristics associated with one or more of the plurality of programs from the packets flowing through the network element from the computer network; (2) operating cooperatively with each loaded program for which the received packet has the defined characteristics associated with that program to manipulate the received packet in accordance with the instructions of that program; and (3) inserting the manipulated received packet back into the computer network.
Claim 16
Dependent Claim 167 words
A network element for a packet-based computer network comprising: means for dynamically loading a plurality of programs, said loading means loading each of the programs separately from packets flowing from the computer network through the network element, each of the programs comprising instructions for: (1) defining one or more characteristics that a packet flowing through the network element from the computer network has to have for the program to execute on the packet; and (2) manipulating the packet if is has the defined characteristics associated with that program; and; a dispatcher for: (1) receiving a packet having the defined characteristics associated with one or more of the plurality of programs from the packets flowing through the network element from the computer network; (2) operating cooperatively with each loaded program for which the received packet has the defined characteristics associated with that program to manipulate the received packet in accordance with the instructions of that program; and (3) inserting the manipulated received packet back into the computer network.
Claim 17
Dependent Claim 22 words
The network element of claim 14 wherein each of the plurality of programs is either a privileged program or an unprivileged program.
Claim 18
Dependent Claim 66 words
The network element of claim 15 wherein before a particular one of the plurality of programs operates cooperatively with the dispatcher on a received packet having the defined characteristics associated with a particular program, the dispatcher verifies that a privilege level of that particular program is of a type that allows the received packet to be manipulated in accordance with the instructions of that particular program.
Claim 19
Dependent Claim 24 words
The network element of claim 14 wherein more than one of the plurality of programs execute in parallel on packets in different packet flows.
Claim 20
Dependent Claim 25 words
The network element of claim 14 wherein more than one of the plurality of programs execute in succession on packets in a single packet flow.
Claim 21
Dependent Claim 28 words
The network element of claim 14 wherein the loading means locally loads the one or more of the programs through a program injector connected to the network element.
Claim 22
Dependent Claim 31 words
The network element of claim 14 wherein the loading means remotely loads one or more of the programs through a program injector connected over a network connection to the network element.
Claim 23
Dependent Claim 16 words
The network element of claim 14 wherein the dispatcher is a dispatcher process on a computer.
Claim 24
Dependent Claim 32 words
The network element of claim 14 wherein the dispatcher sends a received packet having the defined characteristics associated with one or more different programs to at least one such program for manipulation.
Claim 25
Dependent Claim 33 words
The network element of claim 14 wherein the dispatcher manipulates a received packet having the defined characteristics associated with one or more different programs to the dispatcher in at least one such program.
Claim 26
Dependent Claim 55 words
The network element of claim 14 wherein one or more of the plurality of dynamically loaded programs performs packet manipulation functions from the group comprising: encrypting a packet payload, decrypting a packet payload, translating a source address of a packet, translating a destination address of a packet, web dispatching for load balancing, and firewall protection.
Claim 27
Dependent Claim 17 words
The network element of claim 14 wherein the network element is implemented on a Linux operating system.
Claim 28
Dependent Claim 36 words
The network element of claim 14 wherein the dispatcher sends only a packet header of a packet having the defined characteristics associated with at least one of the plurality of programs to that program for manipulation.
Claim 29
Dependent Claim 18 words
The network element of claim 14 wherein the network element is implemented as software running on a client.
Claim 30
Dependent Claim 18 words
The network element of claim 14 wherein the network element is implemented as software running on a server.
Claim 31
Dependent Claim 14 words
The network element of claim 14 wherein the network element functions as a router.
Claim 32
Dependent Claim 15 words
The network element of claim 14 wherein the network element functions as a network gateway.
Claim 33
Independent Claim 115 words
A method for manipulating a packet transmitted on a packet-based computer network at a network element through which packets transmitted on the computer network flow, the method comprising the steps of: receiving the packet; determining, for each of a plurality of programs dynamically loaded into the network element separately from packets transmitted on the computer network, whether the packet has one or more associated program-defined characteristics that the packet has to have for the program to execute on the packet; manipulating the received packet in accordance with instructions of each of the programs for which the packet has the defined characteristics associated with that program; and inserting the manipulated packet back into the computer network.
Claim 34
Independent Claim 115 words
A method for manipulating a packet transmitted on a packet-based computer network at a network element through which packets transmitted on the computer network flow, the method comprising the steps of: receiving the packet; determining, for each of a plurality of programs dynamically loaded into the network element separately from packets transmitted on the computer network, whether the packet has one or more associated program-defined characteristics that the packet has to have for the program to execute on the packet; manipulating the received packet in accordance with instructions of each of the programs for which the packet has the defined characteristics associated with that program; and inserting the manipulated packet back into the computer network.
Claim 35
Dependent Claim 21 words
The method of claim 31 wherein each of the plurality of programs is either a privileged program or an unprivileged program.
Claim 36
Dependent Claim 56 words
The method of claim 32 wherein prior to the step of manipulating a received packet, the method further comprises the step of verifying that a privilege level of a program that is executing on the packet is of a type that allows the received packet to be manipulated in accordance with the instructions of that program.
Claim 37
Dependent Claim 23 words
The method of claim 31 wherein more than one of the plurality of programs execute in parallel on packets in different packet flows.
Claim 38
Dependent Claim 24 words
The method of claim 31 wherein more than one of the plurality of programs execute in succession on packets in a single packet flow.
Claim 39
Dependent Claim 31 words
The method of claim 31 further comprising the step of loading one or more of the programs into the network element through a program injector locally connected to the network element.
Claim 40
Dependent Claim 35 words
The method of claim 31 further comprising the step of loading one or more of the programs into the network element through a program injector remotely connected over a network connection to the network element.
Claim 41
Dependent Claim 21 words
The method of claim 31 wherein the method is implemented as a process in a series of instructions in a computer.
Claim 42
Dependent Claim 45 words
The method of claim 31 further comprising the step of sending a packet determined to have the defined characteristics associated with one or more of the programs to at least one such program, wherein the step of manipulating the packet is performed by that program.
Claim 43
Dependent Claim 30 words
The method of claim 31 wherein the step of manipulating the packet is performed outside at least one of the plurality of programs in accordance with instructions of the program.
Claim 44
Dependent Claim 56 words
The method of claim 31 wherein one or more of the plurality of programs provides instructions for manipulating the packet to perform packet manipulation functions from the group comprising: encrypting a packet payload, decrypting a packet payload, translating a source address of a packet, translating a destination address, web dispatching for load balancing, and firewall protection.
Claim 45
Dependent Claim 15 words
The method of claim 31 wherein the method is implemented using a Linux operating system.
Claim 46
Dependent Claim 118 words
A computer readable medium storing computer program instructions which are executable on a computer system implementing a network element through which packets transmitted on a packet-based computer network flow, said computer program instructions comprising instructions defining the steps of: determining for each of a plurality of gateway programs loaded into said computer program separate from packets transmitted on the computer network, whether a received packet from the computer network has one or more defined characteristics that the packet has to have for the gateway program to execute on the packet; and manipulating the received packet in accordance with instructions of each of the gateway programs for which the packet has the defined characteristics associated with that gateway program.
Claim 47
Dependent Claim 118 words
A computer readable medium storing computer program instructions which are executable on a computer system implementing a network element through which packets transmitted on a packet-based computer network flow, said computer program instructions comprising instructions defining the steps of: determining for each of a plurality of gateway programs loaded into said computer program separate from packets transmitted on the computer network, whether a received packet from the computer network has one or more defined characteristics that the packet has to have for the gateway program to execute on the packet; and manipulating the received packet in accordance with instructions of each of the gateway programs for which the packet has the defined characteristics associated with that gateway program.
Claim 48
Dependent Claim 26 words
The computer readable medium of claim 43 wherein each of the plurality of gateway programs is either a privileged gateway program or an unprivileged gateway program.
Claim 49
Dependent Claim 70 words
The computer readable medium of claim 44 wherein prior to the step of manipulating the received packet in accordance with the instructions of the particular gateway program, the computer instructions further comprise the step of verifying that a privilege level of a gateway program that is executing on the packet is of a type that allows the packet to be manipulated in accordance with the instructions of that gateway program.
Claim 50
Dependent Claim 35 words
The computer readable medium of claim 43 wherein more than one of the plurality of gateway programs are executable in parallel on packets flowing through the network element when the packets in different packet flows.
Claim 51
Dependent Claim 32 words
The computer readable medium of claim 43 wherein more than one of the plurality of the plurality of the gateway programs are executable in succession on packets in a single packet flow.
Claim 52
Dependent Claim 31 words
The computer readable medium of claim 43 wherein one or more of the gateway programs are loaded through a program injector locally connected over a network connection to the computer system.
Claim 53
Dependent Claim 27 words
The computer readable medium of claim 43 wherein one or more of the gateway programs are loaded through a program injector remotely connected to the computer system.
Claim 54
Dependent Claim 25 words
The computer readable medium of claim 43 wherein the step of manipulating the received packet is performed by one or more of the gateway programs.
Claim 55
Dependent Claim 34 words
The computer readable medium of claim 43 wherein the step of manipulating the received packet is performed outside one or more of the gateway programs in accordance with the instructions of the gateway program.

References Cited (Backward Citations)

US5819031A Cited
US5896501A Cited
US6061798A Cited
US6012083A Cited
US6272537B1 Cited
US6157955A Cited
US6195703B1 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-08-12 2006-02-11 2006-08-13 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-08-12 2010-02-11 2010-08-13 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-08-12 2014-02-11 2014-08-13 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag