# US 10,320,763 B2 · Efficient communication for devices of a home 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,763 B2
- Document ID: US10320763B2
- Status: Granted
- Kind: B2
- Application number: 15/612,823
- Filed: 2017-06-02
- Published: 2017-09-21
- Granted: 2019-06-11
- Earliest claimed: 2013-06-25
- Applicants: Google Inc.
- Inventors: Grant M. Erickson; Jay D. Logue; Christopher A. Boross; Zachary B. Smith; Osborne B. Hardison; Richard J. Schultz; Sunny P. Gujjaru; Matthew G. Neeley
- Web page: https://patentgrep.com/patent/US10320763B2

## CPC

- H04W 52/0212: {managed by the network, e.g. network or access point is leader and terminal is follower}
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G08B 21/0415: {detecting absence of activity per se}
- H04L 9/0861: {Generation of secret information including derivation or calculation of cryptographic keys or passwords}
- H04L 9/14: using a plurality of keys or algorithms
- H04L 9/30: Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L 9/32: including means for verifying the identity or authority of a user of the system {or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials}
- H04L 9/3247: {involving digital signatures}
- H04L 9/3263: {involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements (network architectures or network communication protocols for supporting authentication of entities using certificates in a packet data network H04L63/0823)}
- H04L 9/3265: {using certificate chains, trees or paths; Hierarchical trust model}
- H04L 12/2803: {Home automation networks}
- H04L 12/2814: {Exchanging control software or macros for controlling appliance services in a home automation network (arrangements for maintenance or administration involving configuration of the network and network elements H04L41/08)}
- H04L 12/2823: {Reporting information sensed by appliance or service execution status of appliance services in a home automation network (device-related reporting H04L43/065; arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom H04Q9/00)}
- H04L 45/74: Address processing for routing
- H04L 49/254: {Centralised controller, i.e. arbitration or scheduling}
- H04L 61/00: Network arrangements, protocols or services for addressing or naming
- H04L 63/061: {for key exchange, e.g. in peer-to-peer networks (cryptographic mechanisms or cryptographic arrangements for key agreement H04L9/0838)}
- H04L 63/083: {using passwords (cryptographic mechanisms or cryptographic arrangements for entity authentication using a predetermined code H04L9/3226)}
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/12: specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- H04L 69/165: Combined use of TCP and UDP protocols; selection criteria therefor
- H04L 69/22: Parsing or analysis of headers
- H04W 4/029: Location-based management or tracking services
- H04W 12/069: using certificates or pre-shared keys
- H04W 24/04: Arrangements for maintaining operational condition
- H04W 24/10: Scheduling measurement reports {; Arrangements for measurement reports}
- H04W 40/246: {Connectivity information discovery}
- H04W 52/383: {power control in peer-to-peer links}
- H04W 60/00: Affiliation to network, e.g. registration; Terminating affiliation with the network, e.g. de-registration
- H04W 72/53: based on regulatory allocation policies
- H04W 76/10: Connection setup
- H04W 76/14: Direct-mode setup
- H04W 84/12: WLAN [Wireless Local Area Networks]
- H04W 88/02: Terminal devices
- H04L 12/28: characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks] (wireless communication networks H04W {; arrangements for dividing the transmission path H04W40/00})
- H04L 12/56: {Packet switching systems}
- H04L 61/5038: for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
- H04L 63/0823: {using certificates (cryptographic mechanisms or cryptographic arrangements for entity authentication involving certificates H04L9/3263)}
- H04L 67/52: specially adapted for the location of the user terminal
- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- H04L 2101/604: Address structures or formats
- H04L 2101/659: Internet protocol version 6 [IPv6] addresses
- H04W 12/0471: Key exchange
- H04W 80/045: {involving different protocol versions, e.g. MIPv4 and MIPv6}
- H04W 84/18: Self-organising networks, e.g. ad-hoc networks or sensor networks
- H04W 88/04: adapted for relaying to or from another terminal or user
- H04W 88/06: adapted for operation in multiple networks {or having at least two operational modes}, e.g. multi-mode terminals
- Y02D 30/70: in wireless communication networks
- Y04S 40/18: Network protocols supporting networked applications, e.g. including control of end-device applications over a network
- Y04S 40/20: Information technology specific aspects, e.g. CAD, simulation, modelling, system security
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G08B: SIGNALLING SYSTEMS, e.g. PERSONAL CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
- 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
- Y04S: SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS

## Abstract

Systems and methods are provided for efficient communication through a fabric network of devices in a home environment or similar environment. For example, an electronic device may efficiently control communication to balance power and reliability concerns, may efficiently communicate messages to certain preferred networks by analyzing Internet Protocol version 6 (IPv6) packet headers that use an Extended Unique Local Address (EULA), may efficiently communicate software updates and status reports throughout a fabric network, and/or may easily and efficiently join a fabric network.

## Claims

### Claim 1

A method of joining a first device and a second device in a fabric network, the method comprising:
creating, by the first device, a first joining network, the first joining network having a network name comprising an identifier of the first device that includes a string identifying the first joining network as a joining network and a flag indicating whether the first device is part of the fabric network;
scanning for a second joining network;
in response to the scanning, detecting the second joining network, the second joining network having been created by the second device, the second joining network having a network name comprising an identifier of the second device; and
determining, by the first device, whether to join the second joining network, or to join the second device to the first joining network.

### Claim 2 (depends on 1)

The method of claim 1, wherein the determining whether to join the second joining network, or to join the second device to the first joining network comprises:
comparing, by the first device, the identifiers of the first device and the second device;
joining the second joining network if a value of the identifier of the first device is less than a value of the identifier of the second device; or
joining the second device to the first joining network if the value of the identifier of the first device is greater than the value of the identifier of the second device.

### Claim 3 (depends on 2)

The method of claim 2, wherein the first device is joining the second joining network, the method further comprising:
terminating the first joining network;
sending a solicit joining message to the second device;
receiving a solicit joining request from the second device; and
sending fabric network information to the second device in a join existing fabric network request.

### Claim 4 (depends on 2)

The method of claim 2, wherein the second device is joining the first joining network, the method further comprising:
receiving a solicit joining message from the second device;
creating the fabric network;
joining the first device to the fabric network; and
sending a join existing fabric network request that is effective to join the second device to the fabric network.

### Claim 5 (depends on 1)

The method of claim 1, wherein the first joining network and the second joining network are IEEE 802.15.4 networks.

### Claim 6 (depends on 1)

The method of claim 1, the method further comprising activating the first device to begin the joining the first device and the second device in the fabric network.

### Claim 7 (depends on 6)

The method of claim 6, wherein activating the first device to begin the joining comprises receiving a user input, by the first device, to activate the first device.

### Claim 8

An electronic device configured to join an additional device in a fabric network, the electronic device comprising:
a processor; and
a memory comprising instructions executable by the processor that configure the electronic device to:
create a joining network, the joining network having a network name comprising an identifier of the electronic device that includes a string identifying the joining network as a joining network and a flag indicating whether the electronic device is part of the fabric network;
scan for another joining network;
in response to the scan, detect the other joining network, the other joining network having been created by the additional device, the other joining network having a network name comprising an identifier of the additional device; and
determine whether to join the other joining network, or to join the additional device to the joining network.

### Claim 9 (depends on 8)

The electronic device of claim 8, wherein, to determine whether to join the other joining network or to join the additional device to the joining network comprises the electronic device configured to:
compare the identifiers of the electronic device and the additional device;
join the electronic device to the other joining network if a value of the identifier of the electronic device is less than a value of the identifier of the additional device; or
join the additional device to the joining network if the value of the identifier of the electronic device is greater than the value of the identifier of the additional device.

### Claim 10 (depends on 9)

The electronic device of claim 9, wherein, for the electronic device to join the second joining network, the electronic device is configured to:
terminate the joining network;
send a solicit joining message to the additional device;
receive a solicit joining request from the additional device; and
send fabric network information to the additional device in a join existing fabric network request.

### Claim 11 (depends on 9)

The electronic device of claim 9, wherein, for the additional device to join the joining network, the electronic device is configured to:
receive a solicit joining message from the additional device;
create the fabric network;
join the electronic device to the fabric network; and
send a join existing fabric network request that is effective to join the additional device to the fabric network.

### Claim 12 (depends on 8)

The electronic device of claim 8, wherein the joining network and the other joining network are IEEE 802.15.4 networks.

### Claim 13 (depends on 8)

The electronic device of claim 8, wherein the electronic device is configured to receive an input to activate the electronic device to begin joining the electronic device and the additional device in the fabric network.

### Claim 14 (depends on 13)

The electronic device of claim 13, wherein the input to activate the electronic device to begin joining the electronic device is a push, by a user, of a button on the electronic device.

### Claim 15

A system for creating a fabric network, the system comprising:
an electronic device configured to:
create a joining network, the joining network having a network name comprising an identifier of the electronic device that includes a string identifying the joining network as a joining network and a flag indicating whether the electronic device is part of the fabric network;
scan for another joining network;
in response to the scan, detect the other joining network; and
determine whether to join the other joining network, or to join an additional device to the joining network; and
the additional device configured to:
create the other joining network, the other joining network having a network name comprising an identifier of the additional device.

### Claim 16 (depends on 15)

The system of claim 15, wherein, to determine whether to join the other joining network or to join the additional device to the joining network comprises the electronic device configured to:
compare the identifiers of the electronic device and the additional device;
join the other joining network if a value of the identifier of the electronic device is less than a value of the identifier of the additional device; or
join the additional device to the joining network if the value of the identifier of the electronic device is greater than the value of the identifier of the additional device.

### Claim 17 (depends on 16)

The system of claim 16, wherein, for the electronic device to join the other joining network, the electronic device is configured to:
terminate the joining network;
send a solicit joining message to the additional device;
receive a solicit joining request from the additional device; and
send fabric network information to the additional device in a join existing fabric network request.

### Claim 18 (depends on 16)

The system of claim 16, wherein, for the additional device to join the joining network, the electronic device is configured to:
receive a solicit joining message from the additional device;
create the fabric network;
join the electronic device to the fabric network; and
send a join existing fabric network request that is effective to join the additional device to the fabric network.

### Claim 19 (depends on 15)

The system of claim 15, wherein the joining network and the other joining network are IEEE 802.15.4 networks.

### Claim 20 (depends on 15)

The system of claim 15, wherein the electronic device is configured to receive an input to activate the electronic device to begin joining the electronic device and the additional device in the fabric network.
