IP Library Granted Patent US 7,453,874
Granted Patent B1
US 7,453,874 · App. 10/814,545 · Granted Nov 18, 2008

Method and system for incrementally updating a checksum in a network data packet

Assignee: Extreme Networks, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,453,874
App. No.
10/814,545
Filed
Mar 30, 2004
Granted
Nov 18, 2008
Kind
B1
Examiner
HO, DUC CHI
Art Unit
2619
USPC
370/389
Abstract

An improved technique for incrementally updating a checksum in a network data packet is disclosed. A partial one's complement sum is first computed by subtracting the checksum value of certain packet header fields from the original data packet checksum. One or more of the packet header fields are then modified. An incrementally updated checksum is then computed by adding a checksum value of the modified packet header fields to the previously calculated partial one's complement sum. The updated checksum then replaces the original data packet checksum in the network data packet.

Claims (43)

1. A method of incrementally updating a checksum in a network data packet header, the method comprising the steps of:

calculating a partial one's complement sum by subtracting a reduced header part derived from the network data packet header from the checksum;

modifying at least one field of the reduced header part of the network data packet header; and

adding a value, comprising a checksum of the modified reduced header part, to the partial one's complement sum to create an incrementally updated checksum.

2. The method of claim 1 wherein the step of calculating the partial one's complement sum includes subtracting an IP source address, an IP destination address, and a plurality of protocol bits from the checksum.

3. The method of claim 2 wherein the step of calculating the partial one's complement sum further comprises subtracting a source port and a destination port.

4. The method of claim 3 wherein the step of calculating the partial one's complement sum further comprises subtracting a sequence number and an acknowledgement number.

5. The method of claim 1 wherein the network data packet contains an IPv6 header having at least a source address, a destination address, and a next header field.

6. The method of claim 5 wherein the step of calculating the partial one's complement sum includes subtracting the source address, the destination address, and the next header field from the checksum.

7. A method of incrementally updating a checksum in a network data packet header, the method comprising the steps of:

receiving, at a packet processor, a data packet having a plurality of header fields comprising a source address, a destination address, and a plurality of protocol bits;

calculating a partial one's complement sum by subtracting from the checksum at least one of the plurality of header fields;

modifying the at least one of the plurality of header fields to create at least one modified header field;

adding to the partial one's complement sum a checksum value of the at least one modified header fields to obtain an incrementally updated checksum; and

transmitting the data packet having the at least one modified header field and incrementally updated checksum from the packet processor.

8. The method of claim 7 wherein the header fields further comprise a source port and a destination port.

9. The method of claim 8 wherein the header fields further comprise a sequence number and an acknowledgement number.

10. The method of claim 7 wherein the header fields are IPv6 header fields and comprise a source address, a destination address, and a next header field.

11. The method of claim 10 wherein the header fields are IPv6 header fields and comprise a source address, a destination address, and a next header field.

12. A method of incrementally updating a checksum in a network data packet header, the method comprising the steps of:

receiving, at a network switch, a data packet having a plurality of header fields comprising a source address, a destination address, a plurality of protocol bits, a source port, and a destination port;

calculating a partial one's complement sum by subtracting from the checksum at least one of the plurality of header fields;

modifying the at least one of the plurality of header fields to create at least one modified header field;

adding to the partial one's complement sum a checksum value of the at least one modified header field to obtain an incrementally updated checksum; and

transmitting the data packet having the at least one modified header field and incrementally updated checksum from the network switch.

13. The method of claim 12 wherein the header fields further comprise a sequence number and an acknowledgement number.

14. A system for incrementally updating a network data packet checksum, the system comprising:

an input parser configured to identify one or more header fields that make up a reduced header part of an incoming data packet and to compute a partial one's complement sum from the reduced header part;

a buffer memory for buffering the incoming data packet; and

a circuit connected to the buffer memory for modifying the reduced header part, and computing an incrementally updated network data packet checksum from the modified reduced header part and the partial one's complement sum.

15. The system of claim 14 wherein the reduced header part comprises a source address, a destination address, and a plurality of protocol bits.

16. The system of claim 15 wherein the reduced header part further comprises a source port and a destination port.

17. The system of claim 16 wherein the reduced header part further comprises a sequence number and an acknowledgement number.

18. The system of claim 14 wherein the reduced header part comprises a source address, a destination address, and a next header field.

19. A system for incrementally updating a network data packet checksum, the system comprising:

means for identifying one or more header fields that make up a reduced header part of the incoming data packet;

means for buffering the incoming data packet;

means for computing a partial one's complement sum from the reduced header part, and an incrementally updated network data packet checksum from the partial one's complement sum; and

means for transmitting the data packet including the incrementally updated network data packet checksum to its next hop.

20. The system of claim 19 wherein the reduced header part comprises a source address, a destination address, and a plurality of protocol bits.

21. The system of claim 20 wherein the reduced header part further comprises a source port and a destination port.

22. The system of claim 21 wherein the reduced header part further comprises a sequence number and an acknowledgement number.

23. The system of claim 19 wherein the reduced header part comprises a source address, a destination address, and a next header field.

Assignments (9)
RELEASE OF PATENT AND TRADEMARK SECURITY INTEREST AT REEL/FRAME NO. 46050/0546 Recorded Jul 30, 2026
From: BANK OF MONTREAL, AS AGENT
To: EXTREME NETWORKS, INC.
Reel/Frame 076081/0088 →
AMENDED SECURITY AGREEMENT Recorded Aug 18, 2023
From: EXTREME NETWORKS, INC.; AEROHIVE NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 064782/0971 →
RELEASE OF SECURITY INTEREST Recorded May 1, 2018
From: SILICON VALLEY BANK
To: EXTREME NETWORKS, INC.
Reel/Frame 046051/0775 →
SECURITY INTEREST Recorded May 1, 2018
From: EXTREME NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 046050/0546 →
THIRD AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 044639/0300 →
SECOND AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Jul 14, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 043200/0614 →
AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2016
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 040521/0762 →
SECURITY AGREEMENT Recorded Jul 27, 2015
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 036189/0284 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2004
From: NGUYEN, KHA H.
To: EXTREME NETWORKS, INC.
Reel/Frame 014769/0215 →