# US 11,909,710 B2 · Unique address assignment without reconfiguration

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

- Number: US 11,909,710 B2
- Document ID: US11909710B2
- Status: Granted
- Kind: B2
- Application number: 17/859,022
- Filed: 2022-07-07
- Published: 2024-01-11
- Granted: 2024-02-20
- Earliest claimed: 2022-07-07
- Assignees: Mellanox Technologies, Ltd.
- Applicants: Mellanox Technologies, Ltd.
- Inventors: Eitan Zahavi; Guy Rozenberg; Matty Kadosh; Lion Levi; Boris Pismenny; Alex Netes; Miriam Menes; Lior Hodaya Bezen; Michael Tahar
- Web page: https://patentgrep.com/patent/US11909710B2

## CPC

- H04L 61/106: across networks, e.g. mapping telephone numbers to data network addresses
- H04L 61/5007: Internet protocol [IP] addresses
- H04L 61/5046: Resolving address allocation conflicts; Testing of addresses (testing when self-assigning an address H04L61/5092)
- H04L 61/5053: Lease time; Renewal aspects
- H04L 61/5061: Pools of addresses
- H04L 61/5092: by self-assignment, e.g. picking addresses at random and testing if they are already in use
- H04L 61/103: across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for communication includes provisioning each node in a network with a respective set of two or more network addresses. Each node in succession is assigned a respective network address from the respective provisioned set that has not been assigned for use by any preceding node. Upon finding for a given node that all the network addresses in the respective provisioned set were assigned to preceding nodes, the preceding nodes are searched to identify a candidate node having an additional network address in the respective provisioned set, other than the assigned respective network address, that was not yet assigned to any of the nodes. The additional network address is assigned to the candidate node instead of the respective network address that was previously assigned to the candidate node, and the assigning of the network addresses to the nodes in the succession resumes following the candidate node.

## Claims

### Claim 1

A method for communication, comprising:
in a network comprising multiple nodes, provisioning each node with a respective set of two or more network addresses;
assigning to each node in succession a respective network address, selected from the respective provisioned set, that has not been assigned for use by any preceding node in the succession;
upon finding for a given node that all the network addresses in the respective provisioned set were assigned to preceding nodes in the succession, searching over the preceding nodes to identify a candidate node having an additional network address in the respective provisioned set, other than the assigned respective network address, wherein the additional network address is not yet assigned to any of the multiple nodes, and wherein searching over the preceding nodes comprises performing a search over the preceding nodes in the succession beginning from the given node until the candidate node is identified;
freeing the respective network address that was previously assigned to the candidate node for assignment to another node and assigning the additional network address to the candidate node; and
resuming the assigning of the respective network address to each of the multiple nodes in the succession following the candidate node.

### Claim 2 (depends on 1)

The method according to claim 1, wherein resuming the assigning comprises assigning respective unique network addresses to all the multiple nodes in the network.

### Claim 3 (depends on 2)

The method according to claim 2, wherein assigning the respective unique network addresses comprises, upon encountering another node, following the given node in the succession, for which all the network addresses in the respective provisioned set were assigned to the preceding nodes in the succession, repeating the steps of searching to identify a further candidate node and assigning another additional network address to the further candidate node before again resuming the assigning of the respective network address to each of the multiple nodes.

### Claim 4 (depends on 2)

The method according to claim 2, wherein assigning the respective unique network addresses comprises assigning all the respective unique network addresses automatically, without intervention by a human operator.

### Claim 5 (depends on 1)

The method according to claim 1, and comprising communicating among the multiple nodes over the network using the assigned respective network addresses.

### Claim 6 (depends on 1)

The method according to claim 1, wherein performing the search over the preceding nodes comprises performing a breadth-first search over the preceding nodes.

### Claim 7 (depends on 6)

The method according to claim 6, wherein resuming the assigning of the respective network address to each of the multiple nodes comprises assigning the respective network address to each of the multiple nodes while traversing the multiple nodes in a reverse order of the breadth-first search.

### Claim 8 (depends on 1)

The method according to claim 1, wherein each node of the multiple nodes has a respective device identifier, and wherein provisioning each node comprises applying two or more hash functions to the respective device identifier to generate the two or more network addresses.

### Claim 9 (depends on 1)

The method according to claim 1, wherein the assigned respective network addresses are Internet Protocol version 4 (IPv4) addresses.

### Claim 10

A system for communication, comprising:
multiple nodes connected to a network, wherein each node is provisioned with a respective set of two or more network addresses; and
one or more programmable processors, configured to run a network manager process, the network manager process is configured to:
assign to each node in succession a respective network address, selected from the respective provisioned set, that has not been assigned for use by any preceding node in the succession;
upon finding for a given node that all the network addresses in the respective provisioned set were assigned to preceding nodes in the succession, search over the preceding nodes to identify a candidate node having an additional network address in the respective provisioned set, other than the assigned respective network address, wherein the additional network address is not yet assigned to any of the multiple nodes, and wherein searching over the preceding nodes comprises performing a search over the preceding nodes in the succession beginning from the given node until the candidate node is identified;
free the respective network address that was previously assigned to the candidate node for assignment to another node and assign the additional network address to the candidate node; and
resume the assigning of the respective network address to each of the multiple nodes in the succession following the candidate node.

### Claim 11 (depends on 10)

The system according to claim 10, wherein the network manager process is configured to assign respective unique network addresses to all the multiple nodes in the network.

### Claim 12 (depends on 11)

The system according to claim 11, wherein the network manager process is configured, upon encountering another node, following the given node in the succession, for which all the network addresses in the respective provisioned set were assigned to the preceding nodes in the succession, to repeat the steps of searching to identify a further candidate node and assigning another additional network address to the further candidate node before again resuming the assigning of the respective network address to each of the multiple nodes.

### Claim 13 (depends on 11)

The system according to claim 11, wherein the network manager process is configured to assign all the respective unique network addresses automatically, without intervention by a human operator.

### Claim 14 (depends on 10)

The system according to claim 10, wherein the multiple nodes are configured to communicate over the network using the assigned respective network addresses.

### Claim 15 (depends on 10)

The system according to claim 10, wherein performing the search over the preceding nodes comprises performing a breadth-first search over the preceding nodes.

### Claim 16 (depends on 15)

The system according to claim 15, wherein the network manager is configured to resume the assigning of the respective network address to each of the multiple nodes by assigning the respective network address to each of the multiple nodes traversing the multiple nodes in a reverse order of the breadth-first search.

### Claim 17 (depends on 10)

The system according to claim 10, wherein each node of the multiple nodes has a respective device identifier, and wherein each node is provisioned by applying two or more hash functions to the respective device identifier to generate the two or more network addresses.

### Claim 18 (depends on 10)

The system according to claim 10, wherein the assigned respective network addresses are Internet Protocol version 4 (IPv4) addresses.

### Claim 19

A computer software product for use in a network to which multiple nodes are connected, wherein each node is provisioned with a respective set of two or more network addresses, the product comprising:
a tangible, non-transitory computer-readable medium in which program instructions are stored, which instructions, when read by one or more processors, cause the one or more processors to run a network manager process, the network manager process comprising:
assigning to each node in succession a respective network address, selected from the respective provisioned set, that has not been assigned for use by any preceding node in the succession;
upon finding for a given node that all the network addresses in the respective provisioned set were assigned to preceding nodes in the succession, searching over the preceding nodes to identify a candidate node having an additional network address in the respective provisioned set, other than the assigned respective network address, wherein the additional network address is not yet assigned to any of the multiple nodes, and wherein searching over the preceding nodes comprises performing a search over the preceding nodes in the succession beginning from the given node until the candidate node is identified;
freeing the respective network address that was previously assigned to the candidate node for assignment to another node, and assigning the additional network address to the candidate node; and
resuming the assigning of the respective network address to each of the multiple nodes in the succession following the candidate node.
