# US 2019/0356591 A1 · Packet fragment forwarding without reassembly

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

- Number: US 2019/0356591 A1
- Document ID: US20190356591A1
- Status: Published application
- Kind: A1
- Application number: 15/983,457
- Filed: 2018-05-18
- Published: 2019-11-21
- Earliest claimed: 2018-05-18
- Assignees: Juniper Networks, Inc.
- Applicants: Juniper Networks, Inc.
- Inventors: Ashish Suresh Ghule; Pankaj Malviya; Jagadish Grandhi
- Web page: https://patentgrep.com/patent/US20190356591A1

## CPC

- H04L 12/4633: {Interconnection of networks using encapsulation techniques, e.g. tunneling}
- H04L 45/00: Routing or path finding of packets in data switching networks (routing or path finding in wireless networks H04W40/00)
- H04L 45/745: Address table lookup; Address filtering
- H04L 47/625: for service slots or service orders
- H04L 2212/00: Encapsulation of packets
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A network device may forward fragments of an IPv4 network packet to an IPv6 network without reassembling the IPv4 network packet. The network device may receive and buffer one or more fragments of a fragment flow associated with the IPv4 network packet until it receives a fragment of the fragment flow that includes an indication of the destination port of the IPv4 network packet. When the network device receives the fragment that includes the indication of the destination port of the IPv4 network packet, the network device may encapsulate each fragment of the fragment flow that it has received into respective IPv6 network packets to the IPv6 network.

## Claims

### Claim 1

A method comprising:
receiving, by a network device from a first network, one or more fragments of a fragment flow associated with a network packet, wherein the network packet is a first type of network packet;
in response to determining that the network device has not yet received a fragment of the fragment flow that includes an indication of a destination port for the network packet, buffering, by the network device, the one or more fragments;
receiving, by the network device, the fragment of the fragment flow that includes the indication of the destination port of the network packet;
in response to receiving the fragment of the fragment flow that includes the indication of the destination port of the network packet, encapsulating, by the network device, the one or more fragments of the fragment flow and the fragment of the fragment flow within a plurality of network packets based at least in part on the destination port of the network packet without reassembling the network packet from the one or more fragments and the fragment, wherein the plurality of network packets are each a second type of network packet; and
dispatching, by the network device to a second network, the plurality of network packets.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
subsequent to receiving the fragment that includes the indication of the destination port and dispatching the plurality of network packets, receiving, by the network device, one or more remaining fragments of the fragment flow;
encapsulating, by the network device, the one or more remaining fragments of the fragment flow within one or more network packets based at least in part on the destination port without buffering the one or more remaining fragments of the fragment flow, wherein the one or more network packets are each the second type of network packet;
dispatching, by the network device, the one or more network packets to the second network.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
creating, by the network device, an entry associated with the fragment flow in a flow table;
in response to receiving the one or more fragments of the fragment flow that does not include the fragment of the fragment flow that includes the indication of the destination port of the network packet, transitioning the fragment flow to a buffer state by updating the entry for the fragment flow in the flow table to indicate that the fragment flow is in the buffer state, wherein the buffer state indicates that the network device has not yet received the indication of the destination port of the network packet; and
in response to receiving the fragment of the fragment flow that includes the indication of the destination port of the network packet, transitioning the fragment flow from the buffer state to an encapsulation state by updating the entry for the fragment flow in the flow table to indicate that the fragment flow is in the encapsulation state, wherein the encapsulation state indicates that the network device is able to encapsulate fragments of the fragment flow based at least in part on the destination port.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
determining, by the network device, that the one or more fragments of the fragment flow for the network packet does not include a first fragment of the fragment flow; and
determining whether the fragment of the fragment flow includes the indication of the destination port of the network packet based at least in part on determining whether the fragment is a first fragment of the fragment flow.

### Claim 5 (depends on 1)

The method of claim 1, wherein the network device encapsulates the one or more fragments of the fragment flow and the fragment of the fragment flow using mapping of address and port with encapsulation (MAP-E).

### Claim 6 (depends on 1)

The method of claim 1, wherein:
the first type of network packet is an Internet Protocol version 4 (IPv4) network packet;
the second type of network packet is an Internet Protocol version 6 (IPv6) network packet;
the first network is an IPv4 network; and
the second network is an IPv6 network.

### Claim 7

A network device comprising:
one or more network interfaces configured to receive, from a first network, one or more fragments of a fragment flow associated with a network packet, wherein the network packet is a first type of network packet; and
one or more processors configured to, in response to determining that the network device has not yet received a fragment of the fragment flow that includes an indication of a destination port for the network packet, buffering the one or more fragments in a fragment buffer;
wherein the one or more network interfaces are further configured to receive the fragment of the fragment flow that includes the indication of the destination port of the network packet from the first network,
wherein the one or more processors are further configured to, in response to the one or more network interfaces receiving the fragment of the fragment flow that includes the indication of the destination port of the network packet, encapsulate the one or more fragments of the fragment flow and the fragment of the fragment flow within a plurality of network packets based at least in part on the destination port of the network packet without reassembling the network packet from the one or more fragments and the fragment, wherein the plurality of network packets are each a second type of network packet, and
wherein the one or more network interfaces are further configured to dispatch the plurality of network packets to a second network.

### Claim 8 (depends on 7)

The network device of claim 7,
wherein the one or more network interfaces are further configured to, subsequent to receiving the fragment that includes the indication of the destination port and dispatching the plurality of network packets, receive one or more remaining fragments of the fragment flow;
wherein the one or more processors are further configured to:
encapsulate the one or more remaining fragments of the fragment flow within one or more network packets based at least in part on the destination port without buffering the one or more remaining fragments of the fragment flow in the fragment buffer, wherein the one or more network packets are each the second type of network packet, and
dispatch the one or more network packets to the second network.

### Claim 9 (depends on 7)

The network device of claim 7, wherein the one or more processors are further configured to:
create an entry associated with the fragment flow in a flow table;
in response to the one or more network interfaces receiving the one or more fragments of the fragment flow that does not include the fragment of the fragment flow that includes the indication of the destination port of the network packet, transition the fragment flow to a buffer state by updating the entry associated with the fragment flow in the flow table to indicate that the fragment flow is in the buffer state, wherein the buffer state indicates that the network device has not yet received the indication of the destination port of the network packet; and
in response to the one or more network interfaces receiving the fragment of the fragment flow that includes the indication of the destination port of the network packet, transition the fragment flow from the buffer state to an encapsulation state by updating the entry associated with the fragment flow in the flow table to indicate that the fragment flow is in the encapsulation state, wherein the encapsulation state indicates that the network device is able to encapsulate fragments of the fragment flow based at least in part on the destination port.

### Claim 10 (depends on 7)

The network device of claim 7, wherein the one or more processors are further configured to:
determine that the one or more fragments of the fragment flow for the network packet does not include a first fragment of the fragment flow; and
determine whether the fragment of the fragment flow includes the indication of the destination port of the network packet based at least in part on determining whether the fragment is a first fragment of the fragment flow.

### Claim 11 (depends on 7)

The network device of claim 7, wherein the network device encapsulates the one or more fragments of the fragment flow and the fragment of the fragment flow using mapping of address and port with encapsulation (MAP-E).

### Claim 12 (depends on 7)

The network device of claim 7, wherein:
the first type of network packet is an Internet Protocol version 4 (IPv4) network packet;
the second type of network packet is an Internet Protocol version 6 (IPv6) network packet;
the first network is an IPv4 network; and
the second network is an IPv6 network.

### Claim 13

A method comprising:
receiving, by a network device from a first network, one or more network packets of a first network packet type, wherein each of the one or more network packets encapsulate a respective one of one or more fragments of a fragment flow associated with a network packet of a second network packet type;
in response to determining that the one or more network packets of the fragment flow does not include a fragment of the fragment flow that includes an indication of a source port of the network packet, buffering, by the network device, the one or more fragments of the fragment flow;
receiving, by the network device, a network packet of the first network packet type that encapsulates the fragment of the fragment flow that includes the indication of the source port of the network packet;
in response to receiving the network packet of the first network packet type that encapsulates the fragment of the fragment flow that includes the indication of the source port of the network packet, performing, by the network device, an anti-spoof check on the one or more fragments of the fragment flow and the fragment of the fragment flow based at least in part on the source port of the network packet of the second network packet type without reassembling the network packet of the second network packet type from the one or more fragments of the fragment flow and the fragment of the fragment flow; and
in response to the one or more fragments of the fragment flow and the fragment of the fragment flow passing the anti-spoof check, dispatching, by the network device to a second network, the one or more fragments of the fragment flow and the fragment of the fragment flow.

### Claim 14 (depends on 13)

The method of claim 13, further comprising:
subsequent to receiving the network packet of the first network packet type that encapsulates the fragment of the fragment flow that includes the indication of the source port of the network packet and the one or more fragments of the fragment flow and the fragment of the fragment flow passing the anti-spoof check, receiving, by the network device, a second one or more network packets of the first network packet type, wherein each of the second one or more network packets encapsulates a respective one of one or more remaining fragments of the fragment flow;
performing, by the network device, an anti-spoof check on the one or more remaining fragments of the fragment flow without buffering the one or more remaining fragments of the fragment flow; and
in response to the one or more remaining fragments of the fragment flow passing the anti-spoof check, dispatching, by the network device to the second network, the one or more remaining fragments of the fragment flow.

### Claim 15 (depends on 13)

The method of claim 13, further comprising:
creating, by the network device, an entry associated with the fragment flow in a flow table;
in response to determining that the one or more fragments of the fragment flow do not include the fragment of the fragment flow that includes the indication of the source port of the network packet of the second network packet type, transitioning the fragment flow to a buffer state by updating the entry for the fragment flow in the flow table to indicate that the fragment flow is in the buffer state, wherein the buffer state indicates that the network device has not yet received the indication of the source port of the network packet; and
in response to determining that the fragment of the fragment flow includes the indication of the source port of the network packet of the second network packet type, transitioning the fragment flow from the buffer state to a spoof status available state by updating the entry for the fragment flow in the flow table to indicate that the fragment flow is in the spoof status available state, wherein the spoof status available state indicates that the network device is able to perform anti-spoof checks on the one or more fragments of the fragment flow and the fragment of the fragment flow based at least in part on the source port of the network packet.

### Claim 16 (depends on 13)

The method of claim 13, further comprising:
determining, by the network device, that the one or more fragments of the fragment flow for the network packet does not include a first fragment of the fragment flow; and
determining whether the fragment of the fragment flow includes the indication of the source port of the network packet based at least in part on determining whether the fragment is a first fragment of the fragment flow.

### Claim 17 (depends on 13)

The method of claim 13, wherein:
the first network packet type is an Internet Protocol version 6 (IPv6) network packet;
the second network packet type is an Internet Protocol version 4 (IPv4) network packet;
the first network is an IPv6 network; and
the second network is an IPv4 network.

### Claim 18

A network device comprising:
one or more network interfaces configured to receive, from a first network, one or more network packets of a first network packet type, wherein each of the one or more network packets encapsulate a respective one of one or more fragments of a fragment flow associated with a network packet of a second network packet type; and
one or more processors configured to, in response to determining that the one or more network packets of the fragment flow does not include a fragment of the fragment flow that includes an indication of a source port of the network packet, buffer the one or more fragments of the fragment flow in a fragment buffer;
wherein the one or more network interfaces are further configured to receive a network packet of the first network packet type that encapsulates the fragment of the fragment flow that includes the indication of the source port of the network packet, wherein the one or more processors are further configured to, in response to the one or more network interfaces receiving the network packet of the first network packet type that encapsulates the fragment of the fragment flow that includes the indication of the source port of the network packet, perform an anti-spoof check on the one or more fragments of the fragment flow and the fragment of the fragment flow based at least in part on the source port of the network packet of the second network packet type without reassembling the network packet of the second network packet type from the one or more fragments of the fragment flow and the fragment of the fragment flow, and
wherein the one or more network interfaces are further configured to, in response to the one or more fragments of the fragment flow and the fragment of the fragment flow passing the anti-spoof check, dispatch the one or more fragments of the fragment flow and the fragment of the fragment flow to a second network.

### Claim 19 (depends on 18)

The network device of claim 18,
wherein the one or more network interfaces are further configured to, subsequent to receiving the network packet of the first network packet type that encapsulates the fragment of the fragment flow that includes the indication of the source port of the network packet and the one or more fragments of the fragment flow and the fragment of the fragment flow passing the anti-spoof check, receive a second one or more network packets of the first network packet type, wherein each of the second one or more network packets encapsulates a respective one of one or more remaining fragments of the fragment flow;
wherein the one or more processors are further configured to perform an anti-spoof check on the one or more remaining fragments of the fragment flow without buffering the one or more remaining fragments of the fragment flow in the fragment buffer; and
wherein the one or more network interfaces are further configured to, in response to the one or more remaining fragments of the fragment flow passing the anti-spoof check, dispatch the one or more remaining fragments of the fragment flow to the second network.

### Claim 20 (depends on 18)

The network device of claim 18, wherein the one or more processors are further configured to:
create an entry associated with the fragment flow in a flow table;
in response to determining that the one or more fragments of the fragment flow do not include the fragment of the fragment flow that includes the indication of the source port of the network packet of the second network packet type, transition the fragment flow to a buffer state by updating the entry associated with the fragment flow in the flow table to indicate that the fragment flow is in the buffer state, wherein the buffer state indicates that the network device has not yet received the indication of the source port of the network packet; and
in response to determining that the fragment of the fragment flow includes the indication of the source port of the network packet of the second network packet type, transition the fragment flow from the buffer state to a spoof status available state by updating the entry associated with the fragment flow in the flow table to indicate that the fragment flow is in the spoof status available state, wherein the spoof status available state indicates that the network device is able to perform anti-spoof checks on the one or more fragments of the fragment flow and the fragment of the fragment flow based at least in part on the source port of the network packet.

### Claim 21 (depends on 18)

The network device of claim 18, further comprising:
wherein the one or more processors are further configured to determine that the one or more fragments of the fragment flow for the network packet does not include a first fragment of the fragment flow; and
wherein the one or more processors are further configured to determine whether the fragment of the fragment flow includes the indication of the source port of the network packet based at least in part on determining whether the fragment is a first fragment of the fragment flow.

### Claim 22 (depends on 18)

The network device of claim 18, wherein:
the first network packet type is an Internet Protocol version 6 (IPv6) network packet;
the second network packet type is an Internet Protocol version 4 (IPv4) network packet;
the first network is an IPv6 network; and
the second network is an IPv4 network.
