# US 10,873,500 B2 · Computing device and method for generating a link IPV6 address

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

- Number: US 10,873,500 B2
- Document ID: US10873500B2
- Status: Granted
- Kind: B2
- Application number: 16/143,568
- Filed: 2018-09-27
- Published: 2019-09-12
- Granted: 2020-12-22
- Earliest claimed: 2018-03-06
- Assignees: Kaloom Inc.
- Applicants: Kaloom Inc.
- Inventors: Per Andersson; Benoit Tremblay; Suresh Krishnan; Laurent Marchand
- Web page: https://patentgrep.com/patent/US10873500B2

## CPC

- H04L 41/0806: for initial configuration or provisioning, e.g. plug-and-play
- H04L 61/5007: Internet protocol [IP] addresses
- H04L 61/5038: for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
- H04L 61/5092: by self-assignment, e.g. picking addresses at random and testing if they are already in use
- H04L 2101/604: Address structures or formats
- H04L 2101/622: Layer-2 addresses, e.g. medium access control [MAC] addresses
- H04L 2101/659: Internet protocol version 6 [IPv6] addresses
- Y02D 30/00: Reducing energy consumption in communication networks
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- 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

Computing device (located in a fabric of a data center) and method for generating a link IPv6 address. The computing device determines a local node identifier and a local link identifier for a communication interface of the computing device. The computing device receives from a remote computing device a remote node identifier and a remote link identifier for a remote communication interface of the remote computing device. Based on a comparison of the local and remote node identifiers, the link IPv6 address is generated by using an IPv6 base prefix, the local node identifier, the remote node identifier, the local link identifier, the remote link identifier, and an indicator that the local node identifier is greater or lower than the remote node identifier. A network configuration of the computing device is performed by generating a fabric-wide IPv6 address and one or more link IPv6 address.

## Claims

### Claim 1

A computing device comprising:
a communication interface;
memory for storing a configuration file, the configuration file comprising an Internet Protocol version 6 (IPv6) base prefix; and
a processing unit for:
determining a local node identifier for the communication interface;
determining a local link identifier for the communication interface;
receiving from a remote computing device via the communication interface a remote node identifier and a remote link identifier for a remote communication interface of the remote computing device;
comparing the local node identifier and the remote node identifier;
generating an IPv6 address by:
if the local node identifier is greater than the remote node identifier, combining the IPv6 base prefix stored in the configuration file, the local node identifier, the remote node identifier, the local link identifier and an indicator that the local node identifier is greater than the remote node identifier; and
if the local node identifier is lower than the remote node identifier, combining the IPv6 base prefix stored in the configuration file, the remote node identifier, the local node identifier, the remote link identifier and an indicator that the local node identifier is lower than the remote node identifier; and
configuring the communication interface with the IPv6 address.

### Claim 2 (depends on 1)

The computing device of claim 1, wherein the IPv6 address is a Unique Local Address (ULA) compliant with Request for Comments (RFC) 4193 of the Internet Engineering Task Force (IETF).

### Claim 3 (depends on 1)

The computing device of claim 1, wherein the IPv6 base prefix is a /16 prefix.

### Claim 4 (depends on 1)

The computing device of claim 1, wherein the local node identifier and the remote node identifier are 48 bits integers in hexadecimal format.

### Claim 5 (depends on 4)

The computing device of claim 4, wherein the local node identifier is a Media Access Control (MAC) address.

### Claim 6 (depends on 4)

The computing device of claim 4, wherein the processing unit determines the local node identifier by calculating a hash of a 128 bits Universal Unique Identifier (UUID) of the computing device.

### Claim 7 (depends on 1)

The computing device of claim 1, wherein the local link identifier and the remote link identifier are 15 bits integers in hexadecimal format.

### Claim 8 (depends on 1)

The computing device of claim 1, wherein the indicator is a one bit Boolean having the value 0 if the local node identifier is greater than the remote node identifier and the value 1 if the local node identifier is lower than the remote node identifier.

### Claim 9 (depends on 1)

The computing device of claim 1, wherein the IPv6 base prefix is received from a configuration device via the communication interface or another communication interface of the computing device, and further stored in the configuration file.

### Claim 10 (depends on 1)

The computing device of claim 1, wherein the remote node identifier and the remote link identifier are transmitted from the remote computing device to the computing device via the Link Layer Discovery Protocol (LLDP).

### Claim 11

A method for generating a link Internet Protocol version 6 (IPv6) address, comprising
storing a configuration file in a memory of a computing device, the configuration file comprising an IPv6 base prefix; and
determining by a processing unit of the computing device a local node identifier for a communication interface of the computing device;
determining by the processing unit a local link identifier for the communication interface of the computing device;
receiving by the processing unit from a remote computing device via the communication interface a remote node identifier and a remote link identifier for a remote communication interface of the remote computing device;
comparing by the processing unit the local node identifier and the remote node identifier;
generating by the processing unit an IPv6 address by:
if the local node identifier is greater than the remote node identifier, combining the IPv6 base prefix stored in the configuration file, the local node identifier, the remote node identifier, the local link identifier and an indicator that the local node identifier is greater than the remote node identifier; and
if the local node identifier is lower than the remote node identifier, combining the IPv6 base prefix stored in the configuration file, the remote node identifier, the local node identifier, the remote link identifier and an indicator that the local node identifier is lower than the remote node identifier; and
configuring the communication interface with the IPv6 address.

### Claim 12 (depends on 11)

The method of claim 11, wherein the IPv6 address is a Unique Local Address (ULA) compliant with Request for Comments (RFC) 4193 of the Internet Engineering Task Force (IETF).

### Claim 13 (depends on 11)

The method of claim 11, wherein the IPv6 base prefix is a /16 prefix.

### Claim 14 (depends on 11)

The method of claim 11, wherein the local node identifier and the remote node identifier are 48 bits integers in hexadecimal format.

### Claim 15 (depends on 14)

The method of claim 14, wherein the local node identifier is a Media Access Control (MAC) address.

### Claim 16 (depends on 14)

The method of claim 14, wherein the processing unit determines the local node identifier by calculating a hash of a 128 bits Universal Unique Identifier (UUID) of the computing device.

### Claim 17 (depends on 11)

The method of claim 11, wherein the local link identifier and the remote link identifier are 15 bits integers in hexadecimal format.

### Claim 18 (depends on 11)

The method of claim 11, wherein the indicator is a one bit Boolean having the value 0 if the local node identifier is greater than the remote node identifier and the value 1 if the local node identifier is lower than the remote node identifier.

### Claim 19 (depends on 11)

The computing method of claim 11, wherein the IPv6 base prefix is received from a configuration device via the communication interface or another communication interface of the computing device, and further stored in the configuration file.

### Claim 20

A non-transitory computer program product comprising instructions executable by a processing unit of a computing device, the execution of the instructions by the processing unit providing for generating a link Internet Protocol version 6 (IPv6) address by:
storing a configuration file in a memory of a computing device, the configuration file comprising an IPv6 base prefix; and
determining by a processing unit of the computing device a local node identifier for a communication interface of the computing device;
determining by the processing unit a local link identifier for the communication interface of the computing device;
receiving by the processing unit from a remote computing device via the communication interface a remote node identifier and a remote link identifier for a remote communication interface of the remote computing device;
comparing by the processing unit the local node identifier and the remote node identifier;
generating by the processing unit an IPv6 address by:
if the local node identifier is greater than the remote node identifier, combining the IPv6 base prefix stored in the configuration file, the local node identifier, the remote node identifier, the local link identifier and an indicator that the local node identifier is greater than the remote node identifier; and
if the local node identifier is lower than the remote node identifier, combining the IPv6 base prefix stored in the configuration file, the remote node identifier, the local node identifier, the remote link identifier and an indicator that the local node identifier is lower than the remote node identifier; and
configuring the communication interface with the IPv6 address.

### Claim 21

A method for performing a network configuration of a computing device located in a fabric of a data center, the method comprising
storing a configuration file in a memory of the computing device, the configuration file comprising a first Internet Protocol version 6 (IPv6) base prefix, a fabric identifier, and a second IPv6 base prefix;
determining by a processing unit of the computing device a host identifier;
generating by the processing unit a factory-wide IPv6 prefix by combining the first IPv6 base prefix stored in the configuration file and the fabric identifier stored in the configuration file;
generating by the processing unit a fabric-wide IPv6 address by combining the fabric-wide IPv6 prefix and the host identifier;
determining by the processing unit a local node identifier for a communication interface of the computing device;
determining by the processing unit a local link identifier for the communication interface of the computing device;
receiving by the processing unit from a remote computing device via the communication interface a remote node identifier and a remote link identifier for a remote communication interface of the remote computing device;
comparing by the processing unit the local node identifier and the remote node identifier;
generating by the processing unit a link IPv6 address by:
if the local node identifier is greater than the remote node identifier, combining the second IPv6 base prefix stored in the configuration file, the local node identifier, the remote node identifier, the local link identifier and an indicator that the local node identifier is greater than the remote node identifier; and
if the local node identifier is lower than the remote node identifier, combining the second IPv6 base prefix stored in the configuration file, the remote node identifier, the local node identifier, the remote link identifier and an indicator that the local node identifier is lower than the remote node identifier; and
configuring the communication interface with the link IPv6 address.

### Claim 22 (depends on 21)

The method of claim 21, wherein the processing unit further advertises the factory-wide IPv6 address.

### Claim 23 (depends on 21)

The method of claim 21, wherein local node identifier consists of the host identifier.

### Claim 24

A computing device comprising:
a communication interface;
memory for storing a configuration file, the configuration file comprising an Internet Protocol version 6 (IPv6) base prefix; and
a processing unit for:
determining a local node identifier for the communication interface;
determining a local link identifier for the communication interface;
receiving from a remote computing device via the communication interface a remote node identifier and a remote link identifier for a remote communication interface of the remote computing device;
comparing the local node identifier and the remote node identifier;
generating an IPv6 address by:
if the local node identifier is lower than the remote node identifier, combining the IPv6 base prefix stored in the configuration file, the local node identifier, the remote node identifier, the local link identifier and an indicator that the local node identifier is greater than the remote node identifier; and
if the local node identifier is greater than the remote node identifier, combining the IPv6 base prefix stored in the configuration file, the remote node identifier, the local node identifier, the remote link identifier and an indicator that the local node identifier is lower than the remote node identifier; and
configuring the communication interface with the IPv6 address.
