IP Library Granted Patent US 9,531,847
Granted Patent B2
US 9,531,847 · App. 14/284,927 · Granted Dec 27, 2016

Skipping and parsing internet protocol version 6 (IPv6) extension headers to reach upper layer headers

Inventors: Claude Basso (Nice, FR); Todd A. Greenfield (Rochester, MN); Michel Poret (Valbonne, FR); Natarajan Vaidhyanathan (Carrboro, NC)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L69/22H04L12/6418H04L29/0653H04L29/12H04L45/74H04L45/741H04L61/6059
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 9,531,847
App. No.
14/284,927
Granted
Dec 27, 2016
Kind
B2
Abstract

Embodiments presented herein describe techniques for parsing an Internet Protocol version 6 frame and skipping extension headers of the frame. A configurable skip list is provided that specifies extension headers for a networking device to skip when parsing the frame. The networking device examines “next header” fields of each extension header to determine a next extension header in the chain. If the next extension header matches an extension header in the skip list, the networking device iterates to the next header in the chain until the end of the chain (or an extension header that does not contain a match in the list) is reached.

Claims (24)

1. A system, comprising:

a processor; and

a memory storing a program, which, when executed on the processor, performs an operation for parsing an Internet Protocol version 6 (IPv6) network frame received by a networking device, the operation comprising:

evaluating a current header of the IPv6 network frame to determine whether a header immediately following the current header is an IPv6 extension header of a chain of IPv6 extension headers or an upper-layer header of the IPv6 network frame, wherein each current header in the IPv6 network frame includes a respective next header field describing the header immediately following the current header and wherein the upper-layer header corresponds to a layer higher than the layer at which the method for parsing is performed, the current header being a fixed header or an IPv6 extension header of the chain of IPv6 extension header;

when determining, via the next header field of the current header, that the header immediately following the current header is an IPv6 extension header of the chain of IPv6 extension headers,

determine whether the IPv6 extension header matches a first corresponding IPv6 extension header specified in a skip list, the skip list specifying types of IPv6 extension headers to be skipped during parsing by the network device,

upon determining that the IPv6 extension header matches the first corresponding IPv6 extension header specified in the skip list, iterating through the chain of IPv6 extension headers via skipping parsing of a respective IPv6 extension header indicated by a respective next header field in each of the IPv6 extension headers in the chain of IPv6 extension headers until a second IPv6 extension header is reached, wherein the second IPv6 extension header does not match any IPv6 extension header in the skip list, and

upon reaching the second IPv6 extension header, process each subsequent header in the IPv6 network frame until the upper-layer header is reached; and

when determining, via the next header field of the current header, that the header immediately following the current header is the upper-layer header, make forwarding decision based on the upper-layer header.

2. The system of claim 1 , wherein the operation further comprises, identifying a frame type from the upper-layer header.

3. The system of claim 2 , wherein the type is one of a TCP frame or a UDP frame.

4. The system of claim 1 , wherein iterating through the chain of IPv6 extension headers comprises, for each IPv6 extension header in the chain: evaluating a respective next header field of the IPv6 extension header to identify a respective next IPv6 extension header; and upon determining that the next IPv6 extension header matches a second corresponding IPv6 extension header in the skip list, jumping to an IPv6 extension header immediately following the next IPv6 extension header.

5. A computer program product, comprising:

a non-transitory computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code configured to perform an operation for parsing an Internet Protocol version 6 (IPv6) network frame received by a networking device, the operation comprising:

evaluating a current header of the IPv6 network frame to determine whether a header immediately following the current header is an IPv6 extension header of a chain of IPv6 extension headers or an upper-layer header of the IPv6 network frame, wherein each current header in the IPv6 network frame includes a respective next header field describing the header immediately following the current header and wherein the upper-layer header corresponds to a layer higher than the layer at which the method for parsing is performed, the current header being a fixed header or an IPv6 extension header of the chain of IPv6 extension header;

when determining, via the next header field of the current header, that the header immediately following the current header is an IPv6 extension header of the chain of IPv6 extension headers,

determine whether the IPv6 extension header matches a first corresponding IPv6 extension header specified in a skip list, the skip list specifying types of IPv6 extension headers to be skipped during parsing by the network device,

upon determining that the IPv6 extension header matches the first corresponding IPv6 extension header specified in the skip list, iterating through the chain of IPv6 extension headers via skipping parsing of a respective IPv6 extension header indicated by a respective next header field in each of the IPv6 extension headers in the chain of IPv6 extension headers until a second IPv6 extension header is reached, wherein the second IPv6 extension header does not match any IPv6 extension header in the skip list, and

upon reaching the second IPv6 extension header, process each subsequent header in the IPv6 network frame until the upper-layer header is reached; and

when determining, via the next header field of the current header, that the header immediately following the current header is the upper-layer header, make forwarding decision based on the upper-layer header.

6. The computer program product of claim 5 , wherein the operation further comprises, identifying a frame type from the upper-layer header.

7. The computer program product of claim 6 , wherein the type is one of a TCP frame or a UDP frame.

8. The computer program product of claim 5 , wherein iterating through the chain of extension headers comprises, for each extension header in the chain:

evaluating a respective next header field of the IPv6 extension header to identify a respective next IPv6 extension header; and upon determining that the respective next IPv6 extension header matches a corresponding IPv6 extension header in the skip list, jumping to an IPv6 extension header immediately following the next IPv6 extension header.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2014
From: BASSO, CLAUDE; GREENFIELD, TODD A.; PORET, MICHEL; VAIDHYANATHAN, NATARAJAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 032950/0910 →
Continuity (1)
Related Publication 20150341261A1 · Nov 26, 2015