IP Library Granted Patent US 11,159,437
Granted Patent B2
US 11,159,437 · App. 16/992,922 · Granted Oct 26, 2021

Method and system for determining a path maximum transmission unit (MTU) between endpoints of a generic routing encapsulation (GRE) tunnel

Inventors: Nicholas Alexander Wondra (Savoy, IL); Erich Alfred Heine (Champaign, IL); Yan Zhai (Champaign, IL)
Assignee: CLOUDFLARE, INC.
H04L47/36H04L12/4633H04L2212/00
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 11,159,437
App. No.
16/992,922
Granted
Oct 26, 2021
Kind
B2
Abstract

A method of path MTU determination in Generic Routing Encapsulation (GRE) tunnel is presented. A source network device (ND) transmits, to a destination ND that is a second endpoint of the GRE tunnel, a first outer packet including a first inner packet, where the first inner packet includes a first inner header that is used to deliver the first inner packet to the source network device, a first inner GRE header, and a first payload. The source ND receives the first inner packet. The source ND transmits a second outer packet including a second inner packet that includes a second payload that has a size greater than a size of the first payload. The source ND determines that the second inner packet is not received and determines a path MTU between the source ND and the destination ND based on a size of the first and the second outer packets.

Claims (62)

1. A method in a source network device that is a first endpoint of a Generic Routing Encapsulation (GRE) tunnel, the method comprising:

transmitting, to a destination network device, a first outer packet including a first outer header that is used to transmit the first outer packet to the destination network device, a first outer GRE header, and a first inner packet, wherein the first inner packet includes a first inner header that is used to deliver the first inner packet to the source network device, a first inner GRE header, and a first payload, and wherein the destination network device is a second endpoint of a GRE tunnel;

receiving the first inner packet;

transmitting, to the destination network device, a second outer packet including a second outer header that is used to transmit the second outer packet to the destination network device, a second outer GRE header, and a second inner packet, wherein the second inner packet includes a second inner header that is used to deliver the second inner packet to the source network device, a second inner GRE header, and a second payload that has a size that is greater than a size of the first payload;

determining that the second inner packet is not received before a predetermined period of time has elapsed; and

determining a path MTU for a path between the source network device and the destination network device based on a size of the first outer packet and a size of the second outer packet.

2. The method of claim 1 further comprising:

responsive to determining that the second inner packet is not received before the predetermined period of time has elapsed, incrementing a value of a counter that is associated with the second outer packet.

3. The method of claim 2 further comprising:

determining whether the value of the counter is greater than a predetermined threshold; and

responsive to determining that the value of the counter is not greater than the predetermined threshold, transmitting a copy of the second outer packet to the destination network device.

4. The method of claim 3 further comprising:

following the transmitting the copy of the second outer packet, determining that the second inner packet is not received before a predetermined period of time has elapsed; and

responsive to determining that the second inner packet is not received before the predetermined period of time has elapsed, incrementing the value of the counter that is associated with the second outer packet.

5. The method of claim 4 further comprising:

responsive to determining that the value of the counter is greater than the predetermined threshold, setting a size of the second outer packet as a higher limit for the path MTU.

6. The method of claim 5 , wherein the determining the path MTU includes determining a value that is smaller than the higher limit for the path MTU.

7. The method of claim 1 further comprising:

starting a timer upon transmission of the first outer packet; and

wherein the determining that the second inner packet is not received before the predetermined period of time has elapsed includes determining that the timer has expired without the source network device receiving the second inner packet.

8. A source network device that is a first endpoint of a Generic Routing Encapsulation (GRE) tunnel, the source network device comprising:

one or more processors; and

non-transitory machine-readable storage media coupled with the one or more processors that store instructions that, when executed by the one or more processors, cause said processors to:

transmit, to a destination network device, a first outer packet including a first outer header that is used to transmit the first outer packet to the destination network device, a first outer GRE header, and a first inner packet, wherein the first inner packet includes a first inner header that is used to deliver the first inner packet to the source network device, a first inner GRE header, and a first payload, and wherein the destination network device is a second endpoint of a GRE tunnel;

receive the first inner packet;

transmit, to the destination network device, a second outer packet including a second outer header that is used to transmit the second outer packet to the destination network device, a second outer GRE header, and a second inner packet, wherein the second inner packet includes a second inner header that is used to deliver the second inner packet to the source network device, a second inner GRE header, and a second payload that has a size that is greater than a size of the first payload;

determine that the second inner packet is not received before a predetermined period of time has elapsed; and

determine a path MTU for a path between the source network device and the destination network device based on a size of the first outer packet and a size of the second outer packet.

9. The source network device of claim 8 , wherein the processors are further to:

responsive to determining that the second inner packet is not received before the predetermined period of time has elapsed, increment a value of a counter that is associated with the second outer packet.

10. The source network device of claim 9 , wherein the processors are further to:

determine whether the value of the counter is greater than a predetermined threshold; and

responsive to determining that the value of the counter is not greater than the predetermined threshold, transmit a copy of the second outer packet to the destination network device.

11. The source network device of claim 10 , wherein the processors are further to:

following the transmission of the copy of the second outer packet, determine that the second inner packet is not received before a predetermined period of time has elapsed; and

responsive to determining that the second inner packet is not received before the predetermined period of time has elapsed, increment the value of the counter that is associated with the second outer packet.

12. The source network device of claim 11 , wherein the processors are further to:

responsive to determining that the value of the counter is greater than the predetermined threshold, set a size of the second outer packet as a higher limit for the path MTU.

13. The source network device of claim 12 , wherein to determine the path MTU includes to determine a value that is smaller than the higher limit for the path MTU.

14. The source network device of claim 8 , wherein the processors are further to:

start a timer upon transmission of the first outer packet; and

wherein to determine that the second inner packet is not received before the predetermined period of time has elapsed includes to determine that the timer has expired without the source network device receiving the second inner packet.

15. A non-transitory computer readable storage medium that stores instructions which when executed by one or more processors of a source network device that is a first endpoint of a Generic Routing Encapsulation (GRE) tunnel cause said processors to perform the following operations:

transmitting, to a destination network device, a first outer packet including a first outer header that is used to transmit the first outer packet to the destination network device, a first outer GRE header, and a first inner packet, wherein the first inner packet includes a first inner header that is used to deliver the first inner packet to the source network device, a first inner GRE header, and a first payload, and wherein the destination network device is a second endpoint of a GRE tunnel;

receiving the first inner packet;

transmitting, to the destination network device, a second outer packet including a second outer header that is used to transmit the second outer packet to the destination network device, a second outer GRE header, and a second inner packet, wherein the second inner packet includes a second inner header that is used to deliver the second inner packet to the source network device, a second inner GRE header, and a second payload that has a size that is greater than a size of the first payload;

determining that the second inner packet is not received before a predetermined period of time has elapsed; and

determining a path MTU for a path between the source network device and the destination network device based on a size of the first outer packet and a size of the second outer packet.

16. The non-transitory computer readable storage medium of claim 15 , wherein the operations further comprise:

responsive to determining that the second inner packet is not received before the predetermined period of time has elapsed, incrementing a value of a counter that is associated with the second outer packet.

17. The non-transitory computer readable storage medium of claim 16 , wherein the operations further comprise:

determining whether the value of the counter is greater than a predetermined threshold; and

responsive to determining that the value of the counter is not greater than the predetermined threshold, transmitting a copy of the second outer packet to the destination network device.

18. The non-transitory computer readable storage medium of claim 17 , wherein the operations further comprise:

following the transmitting the copy of the second outer packet, determining that the second inner packet is not received before a predetermined period of time has elapsed; and

responsive to determining that the second inner packet is not received before the predetermined period of time has elapsed, incrementing the value of the counter that is associated with the second outer packet.

19. The non-transitory computer readable storage medium of claim 18 , wherein the operations further comprise:

responsive to determining that the value of the counter is greater than the predetermined threshold, setting a size of the second outer packet as a higher limit for the path MTU.

20. The non-transitory computer readable storage medium of claim 19 , wherein the determining the path MTU includes determining a value that is smaller than the higher limit for the path MTU.

21. The non-transitory computer readable storage medium of claim 15 , wherein the operations further comprise:

starting a timer upon transmission of the first outer packet; and

wherein the determining that the second inner packet is not received before the predetermined period of time has elapsed includes determining that the timer has expired without the source network device receiving the second inner packet.

Assignments (2)
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2020
From: WONDRA, NICHOLAS ALEXANDER; HEINE, ERICH ALFRED; ZHAI, YAN
To: CLOUDFLARE, INC.
Reel/Frame 053538/0366 →
Continuity (2)
Provisional Application 62886304 · Aug 13, 2019
Related Publication 20210051112A1 · Feb 18, 2021