Hardware-based packet editor
First Claim
1. A method for processing a data packet by a service gateway comprising a processor module, comprising:
- receiving, by the processor, a data packet from a host to be sent to a server, or from the server to be sent to the host;
determining, by the processor, that the data packet requires modification prior to sending to the server or the host; and
generating, by the processor, a packet editing script, the script comprising a plurality of script entries and a data block wherein each of the plurality of script entries indicates a modification to be applied to the data block, wherein the data block comprises at least a portion of the data packet, wherein the generating comprises;
for each and any given portion of the data packet determined to be included in the modified packet, generating a first script entry identifying a first location and a first length in the data block corresponding to the given portion determined to be included;
for each and any given portion of the data packet determined to be removed from the data packet, omitting generation of a script entry corresponding to the given portion determined to be removed;
for each any new data determined to be added to the modified packet, generating the new data to be comprised in the data block of the packet editing script and generating a second script entry identifying a second location and a second length in the data block corresponding to the new data; and
for each and any given portion of the data packet determined to be replaced in the modified packet, generating a third script entry identifying a third location and a third length in the data block corresponding to a replacement data, and omitting generation of the script entry corresponding to the given portion determined to be replaced.
2 Assignments
0 Petitions
Accused Products
Abstract
Hardware-based packet editor receives a packet editing script which includes script entries indicating modifications to a data packet and a data block with data for the modified data packet. For a script entry in the packet editing script, the packet editor copies data in the data block at a block location and with a block length identified in the script entry into a packet buffer. The packet editor repeats the copying for the remaining script entries for the modified data packet. The packet editor then generates the modified data packet with the data in the packet buffer. The packet editing script is generated such that a script entry is created for data to be included in the modified data packet and data to be inserted into the modified data packet. Creation of a script entry is omitted for data to be removed.
-
Citations
27 Claims
-
1. A method for processing a data packet by a service gateway comprising a processor module, comprising:
-
receiving, by the processor, a data packet from a host to be sent to a server, or from the server to be sent to the host; determining, by the processor, that the data packet requires modification prior to sending to the server or the host; and generating, by the processor, a packet editing script, the script comprising a plurality of script entries and a data block wherein each of the plurality of script entries indicates a modification to be applied to the data block, wherein the data block comprises at least a portion of the data packet, wherein the generating comprises; for each and any given portion of the data packet determined to be included in the modified packet, generating a first script entry identifying a first location and a first length in the data block corresponding to the given portion determined to be included; for each and any given portion of the data packet determined to be removed from the data packet, omitting generation of a script entry corresponding to the given portion determined to be removed; for each any new data determined to be added to the modified packet, generating the new data to be comprised in the data block of the packet editing script and generating a second script entry identifying a second location and a second length in the data block corresponding to the new data; and for each and any given portion of the data packet determined to be replaced in the modified packet, generating a third script entry identifying a third location and a third length in the data block corresponding to a replacement data, and omitting generation of the script entry corresponding to the given portion determined to be replaced. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer program product for processing a data packet, the computer program product comprising:
-
a computer readable memory device having computer readable program code embodied therewith, the computer readable program code configured to; receive a data packet from a host to be sent to a server, or from the server to be sent to the host; determine that the data packet requires modification prior to sending to the server or the host; and generate a packet editing script, the script comprising a plurality of script entries and a data block wherein each of the plurality of script entries indicates a modification to be applied to the data block, wherein the data block comprises at least a portion of the data packet, wherein the computer readable program code configured to generate is further configured to; for each and any given portion of the data packet determined to be included in the modified packet, generate a first script entry identifying a first location and a first length in the data block corresponding to the given portion determined to be included; for each and any given portion of the data packet determined to be removed from the data packet, omit generation of a script entry corresponding to the given portion determined to be removed; for each any new data determined to be added to the modified packet, generate the new data to be comprised in the data block of the packet editing script and generating a second script entry identifying a second location and a second length in the data block corresponding to the new data; and for each and any given portion of the data packet determined to be replaced in the modified packet, generate a third script entry identifying a third location and a third length in the data block corresponding to a replacement data, and omitting generation of the script entry corresponding to the given portion determined to be replaced. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A system, comprising:
-
a processor module for executing computer readable program code; and a computer readable memory device having the computer readable program code embodied therewith, wherein the computer readable program code is configured to; receive a data packet from a host to be sent to a server, or from the server to be sent to the host; determine that the data packet requires modification prior to sending to the server or the host; and generate a packet editing script, the script comprising a plurality of script entries and a data block wherein each of the plurality of script entries indicates a modification to be applied to the data block, wherein the data block comprises at least a portion of the data packet, wherein the computer readable program code configured to generate is further configured to; for each and any given portion of the data packet determined to be included in the modified packet, generate a first script entry identifying a first location and a first length in the data block corresponding to the given portion determined to be included; for each and any given portion of the data packet determined to be removed from the data packet, omit generation of a script entry corresponding to the given portion determined to be removed; for each any new data determined to be added to the modified packet, generate the new data to be comprised in the data block of the packet editing script and generating a second script entry identifying a second location and a second length in the data block corresponding to the new data; and for each and any given portion of the data packet determined to be replaced in the modified packet, generate a third script entry identifying a third location and a third length in the data block corresponding to a replacement data, and omitting generation of the script entry corresponding to the given portion determined to be replaced. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. A method for processing a data packet by a service gateway comprising a processor module, comprising:
-
receiving, by the processor, a data packet from a host to be sent to a server, or from the server to be sent to the host; determining, by the processor, that the data packet requires modification prior to sending to the server or the host, wherein the determining comprises determining that the data packet is to be fragmented into a first new data packet and a second new data packet; and generating, by the processor, a packet editing script, the script comprising a plurality of script entries and a data block wherein each of the plurality of script entries indicates a modification to be applied to the data block, wherein the data block comprises at least a portion of the data packet, wherein the generating comprises; generating a first script comprising at least one first script entry identifying a first location and a first length corresponding to a first portion of the data packet to be included in the first new data packet and an indication of an end to the first new data packet; and generating a second script comprising an indication of a start of the second new data packet and at least one second script entry identifying a second location and a second length corresponding to a second portion of the data packet to be included in the second new data packet.
-
-
26. A computer program product for processing a data packet, the computer program product comprising:
a computer readable memory device having computer readable program code embodied therewith, the computer readable program code configured to; receive a data packet from a host to be sent to a server, or from the server to be sent to the host; determine that the data packet requires modification prior to sending to the server or the host wherein the computer readable program code configured to determine comprises determine that the data packet is to be fragmented into a first new data packet and a second new data packet; and generate a packet editing script, the script comprising a plurality of script entries and a data block wherein each of the plurality of script entries indicates a modification to be applied to the data block, wherein the data block comprises at least a portion of the data packet, wherein the computer readable program code configured to generate comprises; generate the first script comprising at least one first script entry identifying a first location and a first length corresponding to a first portion of the data packet to be included in the first new data packet and an indication of an end to the first new data packet; and generate a second script comprising an indication of a start of the second new data packet and at least one second script entry identifying a second location and a second length corresponding to a second portion of the data packet to be included in the second new data packet.
-
27. A system comprising:
-
a processor module for executing computer readable program code; and a computer readable memory device having the computer readable program code embodied therewith, wherein the computer readable program code is configured to; receive a data packet from a host to be sent to a server, or from the server to be sent to the host; determine that the data packet requires modification prior to sending to the server or the host wherein the computer readable program code configured to determine comprises determine that the data packet is to be fragmented into a first new data packet and a second new data packet; and generate a packet editing script, the script comprising a plurality of script entries and a data block wherein each of the plurality of script entries indicates a modification to be applied to the data block, wherein the data block comprises at least a portion of the data packet, wherein the computer readable program code configured to generate comprises; generate the first script comprising at least one first script entry identifying a first location and a first length corresponding to a first portion of the data packet to be included in the first new data packet and an indication of an end to the first new data packet; and generate a second script comprising an indication of a start of the second new data packet and at least one second script entry identifying a second location and a second length corresponding to a second portion of the data packet to be included in the second new data packet.
-
Specification