# US 10,771,429 B1 · Mechanisms for solving an IP fragmentation overlapping issue in L2VPN using multiple IP addresses in GRE headers

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,771,429 B1
- Document ID: US10771429B1
- Status: Granted
- Kind: B1
- Application number: 16/366,776
- Filed: 2019-03-27
- Published: 2020-10-01
- Granted: 2020-09-08
- Earliest claimed: 2019-03-27
- Assignees: VMware, Inc.
- Applicants: VMware, Inc.
- Inventors: Xinhua Hong; Yong Wang; Jia Yu
- Web page: https://patentgrep.com/patent/US10771429B1

## CPC

- H04L 61/5007: Internet protocol [IP] addresses
- H04L 69/166: IP fragmentation; TCP segmentation
- H04L 12/4604: {LAN interconnection over a backbone network, e.g. Internet, Frame Relay}
- H04L 12/4625: {Single bridge functionality, e.g. connection of two networks over a single bridge}
- H04L 12/4633: {Interconnection of networks using encapsulation techniques, e.g. tunneling}
- H04L 12/4641: {Virtual LANs, VLANs, e.g. virtual private networks [VPN] (LAN interconnection over a bridge based backbone H04L12/462; encapsulation techniques H04L12/4633; routing of packets H04L45/00; packet switches H04L49/00; virtual private networks for security H04L63/0272)}
- H04L 12/66: Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
- H04L 69/22: Parsing or analysis of headers
- H04L 61/2514: between local and global IP addresses
- H04L 2012/4629: {using multilayer switching, e.g. layer 3 switching}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In an embodiment, a computer-implemented method for using multiple IP addresses in GRE IP headers to prevent IPID fragmentation overlapping in L2VPN networks is disclosed. In an embodiment, the method comprises: receiving, by an edge service gateway, a packet that requires fragmentating; determining whether the gateway is configured to prevent IPID fragmentation overlapping; and in response to determining that the gateway is configured to prevent IPID fragmentation overlapping, creating a plurality of packet fragments of the packet. A packet fragment comprises a GRE IP header, additional headers, and a portion of the packet. The GRE IP header stores an IPID generated for the packet in an IPID field, a source private IP address in a source IP address field, and a destination private IP address in a destination IP address field. The source private IP address, the destination private IP address and the IPID collectively form a packet identifier of the packet.

## Claims

### Claim 1

A computer-implemented method for using multiple IP addresses in Generic Routing Encapsulation (“GRE”) IP headers to prevent Internet Protocol Identifier (“IPID”) fragmentation overlapping in L2VPN networks, the method comprising:
receiving, by an edge service gateway, a packet that requires fragmentating;
determining whether the edge service gateway is configured to prevent IPID fragmentation overlapping;
in response to determining that the edge service gateway is configured to prevent IPID fragmentation overlapping:
creating a plurality of packet fragments based on, at least in part, the packet;
wherein a packet fragment of the plurality of packet fragments:
comprises a GRE IP header, one or more additional headers, and a portion of the packet;
stores an IPID generated for the packet in an IPID field in the GRE IP header;
stores a source private IP address in a source IP address field in the GRE header;
stores a destination private IP address in a destination IP address field in the GRE header; and
wherein the source private IP address, the destination private IP address and the IPID collectively form a packet identifier of the packet.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the source private IP address and the destination private IP address are retrieved from a set of private IP addresses generated prior to deployment of the edge service gateway.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the source private IP address and the destination private IP address are stored in the GRE IP header that stores information that is not used to switch or route the packet fragment.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the packet fragment is a L2VPN packet fragment and is communicated within a L2VPN computer network.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein determining whether the edge service gateway is configured to prevent IPID fragmentation overlapping comprises:
determining whether a particular flag in a configuration file maintained by the edge service gateway is set;
in response to determining that the particular flag in the configuration file is set, determining that the edge service gateway is configured to prevent IPID overflow; and
in response to determining that the particular flag in the configuration file is not set, determining that the edge service gateway is not configured to prevent IPID overflow.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the source private IP address and the destination private IP address are retrieved from a set of private IP addresses using any one of: a round-robin approach, a random approach, or a hash-based approach.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, further comprising: receiving, by the edge service gateway, a packet fragment that requires reassembling into an original packet;
determining whether the edge service gateway is configured to prevent IPID fragmentation overlapping;
in response to determining that the edge service gateway is configured to prevent IPID overflow:
determining a packet identifier of the packet fragment based on a source IP address stored in a GRE IP header of the packet fragment, a destination IP address stored in the GRE IP header of the packet fragment, and an IPID stored in the GRE IP header of the packet fragment; and
based on, at least in part, the packet identifier, the packet fragment and one or more other packet fragments having the packet identifier, reassembling the original packet that is associated with the packet identifier.

### Claim 8

One or more non-transitory computer-readable storage media storing one or more computer instructions which, when executed by one or more processors, cause the one or more processors to perform:
receiving, by an edge service gateway, a packet that requires fragmentating;
determining whether the edge service gateway is configured to prevent Internet Protocol Identifier (“IPID”) fragmentation overlapping;
in response to determining that the edge service gateway is configured to prevent IPID fragmentation overlapping:
creating a plurality of packet fragments based on, at least in part, the packet;
wherein a packet fragment of the plurality of packet fragments:
comprises a Generic Routing Encapsulation (“GRE”) IP header, one or more additional headers, and a portion of the packet;
stores an IPID generated for the packet in an IPID field in the GRE IP header;
stores a source private IP address in a source IP address field in the GRE header;
stores a destination private IP address in a destination IP address field in the GRE header; and
wherein the source private IP address, the destination private IP address and the IPID collectively form a packet identifier of the packet.

### Claim 9 (depends on 8)

The one or more non-transitory computer-readable storage media of claim 8, wherein the source private IP address and the destination private IP address are retrieved from a set of private IP addresses generated prior to deployment of the edge service gateway.

### Claim 10 (depends on 8)

The one or more non-transitory computer-readable storage media of claim 8, wherein the source private IP address and the destination private IP address are stored in the GRE IP header that stores information that is not used to switch or route the packet fragment.

### Claim 11 (depends on 8)

The one or more non-transitory computer-readable storage media of claim 8, wherein the packet fragment is a L2VPN packet fragment and is communicated within a L2VPN computer network.

### Claim 12 (depends on 8)

The one or more non-transitory computer-readable storage media of claim 8, wherein determining whether the edge service gateway is configured to prevent IPID fragmentation overlapping comprises:
determining whether a particular flag in a configuration file maintained by the edge service gateway is set;
in response to determining that the particular flag in the configuration file is set, determining that the edge service gateway is configured to prevent IPID overflow; and
in response to determining that the particular flag in the configuration file is not set, determining that the edge service gateway is not configured to prevent IPID overflow.

### Claim 13 (depends on 8)

The one or more non-transitory computer-readable storage media of claim 8, wherein the source private IP address and the destination private IP address are retrieved from a set of private IP addresses using any one of: a round-robin approach, a random approach, or a hash-based approach.

### Claim 14 (depends on 8)

The one or more non-transitory computer-readable storage media of claim 8, storing additional instructions for: receiving, by the edge service gateway, a packet fragment that requires reassembling into an original packet;
determining whether the edge service gateway is configured to prevent IPID fragmentation overlapping;
in response to determining that the edge service gateway is configured to prevent IPID overflow:
determining a packet identifier of the packet fragment based on a source IP address stored in a GRE IP header of the packet fragment, a destination IP address stored in the GRE IP header of the packet fragment, and an IPID stored in the GRE IP header of the packet fragment; and
based on, at least in part, the packet identifier, the packet fragment and one or more other packet fragments having the packet identifier, reassembling the original packet that is associated with the packet identifier.

### Claim 15

An edge service gateway implemented in a computer network and configured to implement mechanisms for using multiple IP addresses in Generic Routing Encapsulation (“GRE”) IP headers to prevent Internet Protocol Identifier (“IPID”) fragmentation overlapping in L2VPN networks, the edge service gateway comprising:
one or more processors;
one or more memory units; and
one or more non-transitory computer-readable storage media storing one or more computer instructions which, when executed by the one or more processors, cause the one or more processors to perform:
receiving, by an edge service gateway, a packet that requires fragmentating;
determining whether the edge service gateway is configured to prevent IPID fragmentation overlapping;
in response to determining that the edge service gateway is configured to prevent IPID fragmentation overlapping:
creating a plurality of packet fragments based on, at least in part, the packet;
wherein a packet fragment of the plurality of packet fragments:
comprises a GRE IP header, one or more additional headers, and a portion of the packet;
stores an IPID generated for the packet in an IPID field in the GRE IP header;
stores a source private IP address in a source IP address field in the GRE header;
stores a destination private IP address in a destination IP address field in the GRE header; and
wherein the source private IP address, the destination private IP address and the IPID collectively form a packet identifier of the packet.

### Claim 16 (depends on 15)

The edge service gateway of claim 15, wherein the source private IP address and the destination private IP address are retrieved from a set of private IP addresses generated prior to deployment of the edge service gateway.

### Claim 17 (depends on 15)

The edge service gateway of claim 15, wherein the source private IP address and the destination private IP address are stored in the GRE IP header that stores information that is not used to switch or route the packet fragment.

### Claim 18 (depends on 15)

The edge service gateway of claim 15, wherein the packet fragment is a L2VPN packet fragment and is communicated within a L2VPN computer network.

### Claim 19 (depends on 15)

The edge service gateway of claim 15, wherein determining whether the edge service gateway is configured to prevent IPID fragmentation overlapping comprises:
determining whether a particular flag in a configuration file maintained by the edge service gateway is set;
in response to determining that the particular flag in the configuration file is set, determining that the edge service gateway is configured to prevent IPID overflow; and
in response to determining that the particular flag in the configuration file is not set, determining that the edge service gateway is not configured to prevent IPID overflow.

### Claim 20 (depends on 15)

The edge service gateway of claim 15, storing additional instructions for: receiving, by the edge service gateway, a packet fragment that requires reassembling into an original packet;
determining whether the edge service gateway is configured to prevent IPID fragmentation overlapping;
in response to determining that the edge service gateway is configured to prevent IPID overflow:
determining a packet identifier of the packet fragment based on a source IP address stored in a GRE IP header of the packet fragment, a destination IP address stored in the GRE IP header of the packet fragment, and an IPID stored in the GRE IP header of the packet fragment; and
based on, at least in part, the packet identifier, the packet fragment and one or more other packet fragments having the packet identifier, reassembling the original packet that is associated with the packet identifier.
