Flexible packet data storage for diverse packet processing applications
AssigneeXilinx, Inc.
InventorGordon J. Brebner
Life of this patent
Estimating the term…
Abstract
A computer-implemented method of developing a packet processing application can include receiving a user input specifying a first function and a second function and automatically generating a high level programming language description of the packet processing application including a packet data storage unit (605, 610, 615). Packet units can be stored within the packet data storage unit at locations determined according to the first function and the second function. The high level programming language description also can be stored (630).
Claims20
A computer-implemented method of implementing a packet processing system, the method comprising:
- receiving a user input specifying a first function and a second function;
- automatically generating a high level programming language description of a packet processing application comprising a packet data storage unit, wherein packet units are stored within the packet data storage unit at locations determined according to the first function and the second function;
- and
- storing the high level programming language description;
- wherein the packet data storage unit comprises rows configured to store packet units in which the rows are mapped to potential values of the first function and ordering of packet units within each row is determined by the second function.
A computer-implemented method of specifying a packet processing system, the method comprising:
- receiving a declarative description of packet units to be processed;
- selecting, from within the declarative description, a first function determining packet unit equivalence and a second function determining packet unit ordering among packet units determined to be members of a same equivalence class according to the first function;
- automatically generating a high level programming language description of a packet processing application according to the first function and the second function;
- and
- storing the high level programming language description;
- wherein the packet data storage unit comprises rows configured to store packet units in which the rows are mapped to potential values of the first function and ordering of packet units within each row is determined by the second function.
A computer program product comprising:
- a non-transitory computer-usable medium comprising computer-usable program code that implements a packet processing system, the computer-usable medium comprising:
- computer-usable program code that receives a user input specifying a first function and a second function;
- computer-usable program code that automatically generates a high level programming language description of a packet processing application comprising a packet data storage unit, wherein packet units are stored within the packet data storage unit at locations determined according to the first function and the second function;
- and
- computer-usable program code that stores the high level programming language description;
- wherein the packet data storage unit comprises rows configured to store packet units in which the rows are mapped to potential values of the first function and ordering of packet units within each row is determined by the second function.
Dependencies are inferred from the claim text.