# US 10,320,657 B2 · Device mobility in a mesh network

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

- Number: US 10,320,657 B2
- Document ID: US10320657B2
- Status: Granted
- Kind: B2
- Application number: 15/813,810
- Filed: 2017-11-15
- Published: 2018-03-22
- Granted: 2019-06-11
- Earliest claimed: 2015-05-08
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Pascal Thubert; Eric Levy-Abegnoli; Patrick Wetterwald; Jean-Philippe Vasseur
- Web page: https://patentgrep.com/patent/US10320657B2

## CPC

- H04L 45/22: {Alternate routing}
- H04L 45/02: Topology update or discovery
- H04L 45/74: Address processing for routing
- H04L 49/1584: {Full Mesh, e.g. knockout}
- H04W 40/02: Communication route or path selection, e.g. power-based or shortest path routing
- H04L 47/34: ensuring sequence integrity, e.g. using sequence numbers
- H04W 36/0019: {adapted for mobile IP [MIP]}
- H04W 84/18: Self-organising networks, e.g. ad-hoc networks or sensor networks
- Y02D 30/70: in wireless communication networks
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

In one embodiment, a device in a network receives a notification from a neighbor of the device indicative of a child node of the device requesting a parent change from the device to the neighbor. The device updates an existing routing path from the device to the child node to be routed through the neighbor, in response to receiving the notification from the neighbor. The device receives an instruction to remove the updated routing path from the device to the child node through the neighbor. The device removes the updated routing path from the device to the child node, in response to receiving the instruction to remove the updated routing path.

## Claims

### Claim 1

A method, comprising:
receiving, at a device in a mesh network, a notification using an IPv6 Routing Protocol for Low Power and Lossy Networks (RPL) protocol from a neighbor of the device indicative of a child node of the device requesting a parent change from the device to the neighbor, wherein the notification includes a sequence number generated by the child node and an address of the child node;
validating, by the device, that the address of the child node is not a duplicate address used in the network;
notifying, by the device, the neighbor that the address of the child node is valid;
updating, by the device, an existing routing path from the device to the child node to be routed through the neighbor, in response to receiving the notification from the neighbor;
receiving, at the device, an instruction to remove the updated routing path from the device to the child node through the neighbor, wherein the instruction includes a new sequence number; and
removing, by the device, the updated routing path from the device to the child node if the new sequence number matches the sequence number received in the notification, in response to receiving the instruction to remove the updated routing path.

### Claim 2 (depends on 1)

The method as in claim 1, further comprising:
receiving, at the device, a neighbor solicitation message from the child node that includes the sequence number; and
adding, by the device, the child node as a child of the device in the network, in response to receiving the neighbor solicitation message from the child node.

### Claim 3 (depends on 2)

The method as in claim 2, further comprising:
including, by the device, the sequence number in a routing protocol message used to construct a routing path in the network that stems from a root node of the network to the child node via the device.

### Claim 4 (depends on 2)

The method as in claim 2, wherein removing the updated routing path from the device to the child node comprises:
determining, by the device, that the updated routing path from the device to the child node is to be removed based in part on a comparison between the new sequence number included in the instruction and the sequence number received in the neighbor solicitation message from the child node.

### Claim 5 (depends on 1)

The method as in claim 1, further comprising:
forwarding, by the device, a data packet to the child node via the updated routing path through the neighbor, prior to removing the updated routing path from the device.

### Claim 6 (depends on 1)

The method as in claim 1, wherein the notification received by the device from the neighbor comprises a proxy neighbor solicitation message that is based on a neighbor solicitation message sent from the child node to the neighbor to initiate the parent change.

### Claim 7 (depends on 1)

The method as in claim 1, further comprising:
receiving, at the device, a routing protocol message that indicates a new routing path to a particular node in the network and the new sequence number;
performing, by the device, a comparison between the new sequence number and an existing sequence number associated with an existing routing path to the particular node maintained by the device; and
replacing, at the device, the existing routing path to the particular node with the new routing path based on the comparison between the new sequence number and the existing sequence number.

### Claim 8 (depends on 7)

The method as in claim 7, further comprising:
providing, by the device, an instruction to one or more nodes in the network to remove the existing routing path to the particular node.

### Claim 9

An apparatus, comprising:
one or more network interfaces to communicate with a mesh network;
a processor coupled to the network interfaces and configured to execute one or more processes; and
a memory configured to store a process executable by the processor, the process when executed operable to:
receive a notification using an IPv6 Routing Protocol for Low Power and Lossy Networks (RPL) protocol from a neighbor of the apparatus indicative of a child node of the apparatus requesting a parent change from the apparatus to the neighbor, wherein the notification includes a sequence number generated by the child node and an address of the child node;
validate that the address of the child node is not a duplicate address used in the network;
notify the neighbor that the address of the child node is valid;
update an existing routing path from the apparatus to the child node to be routed through the neighbor;
receive an instruction to remove the updated routing path from the apparatus to the child node, wherein the instruction includes a new sequence number; and
remove the updated routing path from the apparatus to the child node if the new sequence number matches the sequence number received in the notification, in response to receiving the instruction to remove the updated routing path.

### Claim 10 (depends on 9)

The apparatus as in claim 9, wherein the process when executed is further operable to:
forward a data packet to the child node via the updated routing path through the neighbor, prior to removing the updated routing path from the apparatus.

### Claim 11 (depends on 9)

The apparatus as in claim 9, wherein the process when executed is further operable to:
receive a neighbor solicitation message from the child node that includes the sequence number; and
add the child node as a child of the device in the network, in response to receiving the neighbor solicitation message from the child node.

### Claim 12 (depends on 11)

The apparatus as in claim 11, wherein the process when executed is further operable to:
include the sequence number in a routing protocol message used to construct a routing path in the network that stems from a root node of the network to the child node via the device.

### Claim 13 (depends on 11)

The apparatus as in claim 11, wherein the process when executed to remove the updated routing path from the device to the child node further operable to:
determine that the updated routing path from the device to the child node is to be removed based in part on a comparison between the new sequence number included in the instruction and the sequence number received in the neighbor solicitation message from the child node.

### Claim 14 (depends on 11)

The apparatus as in claim 11, wherein the process when executed is further operable to:
receive a routing protocol message that indicates a new routing path to a particular node in the network and the new sequence number;
perform a comparison between the new sequence number and an existing sequence number associated with an existing routing path to the particular node maintained by the device; and
replace the existing routing path to the particular node with the new routing path based on the comparison between the new sequence number and the existing sequence number.

### Claim 15 (depends on 14)

The apparatus as in claim 14, wherein the process when executed is further operable to:
provide an instruction to one or more nodes in the network to remove the existing routing path to the particular node.

### Claim 16

A tangible non-transitory computer readable medium storing program instructions that cause a computer to execute a process, the process comprising:
receiving, at a device in a mesh network, a notification using an IPv6 Routing Protocol for Low Power and Lossy Networks (RPL) protocol from a neighbor of the device indicative of a child node of the device requesting a parent change from the device to the neighbor, wherein the notification includes a sequence number generated by the child node and an address of the child node;
validating that the address of the child node is not a duplicate address used in the mesh network;
notifying the neighbor that the address of the child node is valid;
updating an existing routing path from the device to the child node to be routed through the neighbor, in response to receiving the notification from the neighbor;
receiving an instruction to remove the updated routing path from the device to the child node through the neighbor, wherein the instruction includes a new sequence number; and
removing, by the device, the updated routing path from the device to the child node if the new sequence number matches the sequence number received in the notification, in response to receiving the instruction to remove the updated routing path.

### Claim 17 (depends on 16)

The tangible non-transitory computer readable medium as in claim 16, wherein the process when executed is further operable to:
forward a data packet to the child node via the updated routing path through the neighbor, prior to removing the updated routing path from the apparatus.

### Claim 18 (depends on 16)

The tangible non-transitory computer readable medium as in claim 16, wherein the process when executed is further operable to:
receive a neighbor solicitation message from the child node that includes the sequence number; and
add the child node as a child of the device in the network, in response to receiving the neighbor solicitation message from the child node.

### Claim 19 (depends on 18)

The tangible non-transitory computer readable medium as in claim 18, wherein the process when executed is further operable to:
include the sequence number in a routing protocol message used to construct a routing path in the network that stems from a root node of the network to the child node via the device.

### Claim 20 (depends on 18)

The tangible non-transitory computer readable medium as in claim 18, wherein the process when executed to remove the updated routing path from the device to the child node further operable to: determine that the updated routing path from the device to the child node is to be removed based in part on a comparison between the new sequence number included in the instruction and the sequence number received in the neighbor solicitation message from the child node.
