In-line packet processing
First Claim
1. A method of in-line processing a data packet while transmitting data packets between a source and a destination over a network, the method comprising:
- receiving the data packet;
screening header data for the data packet for errors as the data packet is received and prior to transferring any portion of the data packet to a packet memory;
dropping the data packet prior to transferring any portion of the data packet to the packet memory when the data packet includes an error;
storing the data packet in the packet memory when the data packet includes no error;
retrieving the data packet from the packet memory;
constructing new header data for the data packet; and
adding the new header data to the data packet prior to transferring the data packet toward the destination.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for in-line processing a data packet while routing the packet through a router in a system transmitting data packets between a source and a destination over a network including the router. The method includes receiving the data packet and pre-processing layer header data for the data packet as the data packet is received and prior to transferring any portion of the data packet to packet memory. The data packet is thereafter stored in the packet memory. A routing through the router is determined including a next hop index describing the next connection in the network. The data packet is retrieved from the packet memory and a new layer header for the data packet is constructed from the next hop index while the data packet is being retrieved from memory. The new layer header is coupled to the data packet prior to transfer from the router.
-
Citations
47 Claims
-
1. A method of in-line processing a data packet while transmitting data packets between a source and a destination over a network, the method comprising:
-
receiving the data packet;
screening header data for the data packet for errors as the data packet is received and prior to transferring any portion of the data packet to a packet memory;
dropping the data packet prior to transferring any portion of the data packet to the packet memory when the data packet includes an error;
storing the data packet in the packet memory when the data packet includes no error;
retrieving the data packet from the packet memory;
constructing new header data for the data packet; and
adding the new header data to the data packet prior to transferring the data packet toward the destination. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. One or more devices in a data processing environment for in-line processing a data packet while transmitting data packets between a source and a destination over a network, the one or more devices comprising:
-
a packet memory for storing portions of the data packet;
an input port for receiving a data packets, evaluating header information for the data packet prior to storing the data packet in the packet memory, and dropping the data packet prior to storing the data packet in the packet memory when the header information for the data packet is determined to include an error; and
an output port for receiving the data packet from the packet memory, constructing new header information for the data packet, and transferring the data packet toward the destination. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A method of transmitting a data packet in a path between a source and a destination, the method comprising:
-
receiving the data packet;
dividing the data packet into cells;
storing the cells in a memory;
screening header data of the data packet for errors and dropping a bad data packet prior to storing any of the cells in the memory;
reconstructing the data packet from cells stored in the memory;
constructing new header data for the data packet; and
outputting the data packet towards the destination.
-
-
37. In a system including a plurality of input ports and a plurality of output ports, a method of forwarding data packets from at least one input port to at least one output port, comprising:
-
receiving, at a first input port, a data packet containing header data;
analyzing the header data for errors prior to completely receiving the data packet at the first input port;
dropping the data packet prior to storing the data packet in memory when the header data includes an error;
storing the data packet in the memory when the header data includes no errors;
determining a first output port to which the data packet is to be forwarded based, at least in part, on the header data;
retrieving the data packet from memory;
constructing a new portion of header data;
adding the new portion of header data to the header data of the data packet to form a modified data packet; and
outputting the modified data packet from the first output port. - View Dependent Claims (38, 39, 40)
determining a next hop to which the data packet is to be output based, at least in part, on a first portion of header data; and
before the new portion of header data is added, modifying the first portion of header data in the data packet based, at least in part, on the determination of the next hop.
-
-
41. In a system including a plurality of input ports and a plurality of output ports, a method of forwarding data packets from at least one input port to at least one output port, comprising:
-
receiving, at a first input port, a data packet containing header data;
checking the header data for errors prior to entirely receiving the data packet at the first input port;
storing the data packet in memory when the header data includes no errors;
dropping the data packet prior to transferring the data packet to the memory when the header data includes an error;
determining a first output port to which the data packet is to be forwarded and a next hop to which the data packet is to be output, based, at least in part, on a first portion of the header data;
retrieving the data packet from memory;
modifying the first portion of header data in the retrieved data packet based, at least in part, on the next hop; and
outputting the modified data packet from the first output port.
-
-
42. A system for forwarding data packets, comprising:
-
at least one input port for receiving data packets;
a first header processor module for processing header data contained in the received data packets, analyzing the header data for errors before completely receiving the data packets at the at least one input port, and dropping the data packets when the header data of the data packets include errors;
a memory for storing the data packets processed by the first header processor module when the header data associated with the received data packets include no errors;
a second header processor module for processing the header data for data packets retrieved from the memory; and
at least one output port for outputting the data packets processed by the second header processor module. - View Dependent Claims (43, 44, 45, 46)
a controller for determining the output port to which received data packets are to be output and a next hop to which the data packets are to be sent.
-
-
46. The system of claim 45, wherein the second header processor module includes logic for modifying layer 2 header data for data packets retrieved from the memory, based on the determined next hop.
-
47. In a system including a plurality of input ports and a plurality of output ports, a method for forwarding data packets from input ports to output ports, comprising:
-
receiving, at ones of the input ports, data packets containing header data;
analyzing the header data for errors prior to completely receiving the data packets at the ones of the input ports;
dropping the data packets when the data packets include errors;
identifying, when the data packets include no errors, ones of the output ports to which the data packets are to be forwarded based, at least in part, on the header data;
forming a new portion of header data for the data packets;
adding the new portion of header data to the header data of the data packets to form modified data packets; and
outputting the modified data packets from the ones of the output ports.
-
Specification