Data Plane Technology Including Packet Processing for Network Processors
First Claim
1. A packet processor for processing packet data, comprising:
- a network processing unit; and
a virtual machine associated with the network processing unit, the virtual machine adapted to interpret packet processing bytecode into binary code readable by the network processing unit.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides methods and apparatus for abstracting network processors using a virtual machine. The virtual machine approach substantially abstracts the network processor, letting the application developer focus all attention on packet processing. In accordance with the present invention, the NPU-based virtual machine provides the functionality of a pipelined engine, N-way parallelism, or both. The present invention provides a high-level functional language for expressing a wide variety of packet processing applications. The high-level functional language provides primitives in the form of instructions such as, but not limited to, tracking a connection or session, removing an outer header, translating an IP address, encrypting a packet, and scanning the payload for a regular expression.
49 Citations
20 Claims
-
1. A packet processor for processing packet data, comprising:
-
a network processing unit; and
a virtual machine associated with the network processing unit, the virtual machine adapted to interpret packet processing bytecode into binary code readable by the network processing unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method using pipelined and superscalar parallelism for a packet processing virtual machine, comprising:
-
providing a virtual machine adapted for association with a network processing unit, the virtual machine adapted to interpret packet processing bytecode into binary code readable by the network processing unit, wherein the packet processing bytecode comprises;
policies comprising one or more packet processing functions;
rules comprising one or more expressions and actions adapted to apply the policies; and
events comprising one or more rules; and
executing a plurality of rules concurrently across a plurality of parallel processors of the network processing unit. - View Dependent Claims (12, 13, 14)
-
-
15. A method of using a virtual machine on parallel processors of a network processing unit for processing IP packets, comprising:
-
providing a virtual machine adapted for association with a network processing unit, the virtual machine adapted to interpret packet processing bytecode into binary code readable by the network processing unit, wherein the packet processing bytecode comprises;
policies comprising one or more packet processing functions;
rules comprising one or more expressions and actions adapted to apply the policies; and
events comprising one or more rules; and
executing a plurality of rules concurrently across the parallel processors of the network processing unit. - View Dependent Claims (16, 17, 18)
-
-
19. A method for programming a network processing unit for packet processing using a virtual machine, comprising:
-
creating a bytecode using a packet processing language adapted for creating bytecode readable by a compiler;
compiling the bytecode written in packet processing language into binary code readable by the virtual machine; and
loading the binary code onto the virtual machine associated with the network processing unit. - View Dependent Claims (20)
-
Specification