Patent ID: 7333498

Claim:
A method of separating packets comprising: a) locating a memory buffer containing a pre-selected address at a buffer header of said memory buffer; b) separating a first data packet containing said buffer header, that is associated with a first packet length from a remaining part of said memory buffer, wherein said separating said first data packet further comprises calculating said first packet length, wherein said calculating said first packet length comprises: counting a first byte in said buffer head as byte 0 , reading a value from byte 12 and 13 in said buffer header; calculating said packet length as said value plus 18 bytes when said value is less than 0x0600; calculating said packet length as a second value found in byte locations 16 and 17 in said header plus 18 bytes when said value is 0x0800; setting said packet length as 64 bytes when said value is 0x0806; and otherwise setting said packet length as 64 bytes; c) searching said remaining part of said memory buffer to locate a plurality of packet headers, each containing said pre-selected address, associated with a plurality of concatenated data packets; and d) separating said plurality of concatenated data packets, that is associated with a plurality of concatenated packet lengths, for processing, wherein said plurality of concatenated packet lengths are not required to be the same and are determined based on positions of said pre-selected address in said plurality of concatenated data packets.