P
USRE47992EActiveUtilityPatentIndex 82

Network-assisted fabric pairing

Assignee: GOOGLE LLCPriority: Oct 8, 2014Filed: Jul 17, 2018Granted: May 12, 2020
Est. expiryOct 8, 2034(~8.3 yrs left)· nominal 20-yr term from priority
Inventors:LOGUE JAY DSTEBBINS ANDREW WILLIAMTINKOFF ROGER LOREN
F24F 11/62G05B 19/042H04L 67/143G08B 29/02G06F 16/38H04L 67/141H04L 67/06H04L 12/2823H04L 43/0805H04L 67/02H04L 69/28G06F 16/33H04W 4/80H04L 41/0816G08B 17/10H04L 67/12H04L 12/2818H04W 12/04H04L 12/281H04L 67/303G05B 15/02F24F 11/30H04L 63/0823H04L 63/08H04L 41/0806H04L 12/283H04L 45/74H04L 67/10G05B 2219/2642H04L 12/2803G08B 25/001H04L 41/0886H04W 12/06H04L 67/20H04L 67/04H04W 12/003H04L 12/2809H04L 67/025H04L 69/40H04W 84/12H04L 63/0876H04L 67/42H04L 69/16F24F 11/63F24F 11/58H04L 45/02H04L 65/1069G06F 8/65H04W 12/50H04L 67/53H04L 67/55H04L 61/4541H04L 61/4511
82
PatentIndex Score
2
Cited by
34
References
21
Claims

Abstract

Systems and methods for joining a device to a fabric using an assisting device include an indication to add a joining device to a fabric. If the joining device supports network-assisted fabric pairing, a first connection is established between a commissioning device and the assisting device. The assisting device also connects to a joining device. Through the assisting device, the commissioning device and the joining device establish a communication channel over which fabric credentials may be sent.

Claims

exact text as granted — not AI-modified
The invention claimed is: 
     
       1. A method for joining a device to a fabric, comprising:
 receiving an indication to add a joining device to a fabric; 
 determining whether the joining device supports network-assisted fabric pairing; and 
 if the joining device supports network-assisted fabric pairing:
 establishing a first secure communication channel with an assisting device, wherein the assisting device is configured to assist the joining device in joining the fabric; 
 in response to receiving the indication to add the joining device to the fabric, instructing the assisting device to place a local area network in a joinable mode from a non-joinable mode; 
 establishing a second secure communication channel as a tunneled connection that extends to the joining device through the assisting device from a commissioning device, wherein the commissioning device is configured to manage joining of devices to the fabric on which the electronic device resides; and 
 sending fabric credentials for the fabric to be joined by the joining device via the second secure communication channel. 
 
 
     
     
       2. The method of  claim 1 , comprising obtaining the fabric credentials from the assisting device for the fabric to be joined through the first secure communication channel before sending the fabric credentials to the joining device via the second secure communication channel if the joining device supports network-assisted fabric pairing. 
     
     
       3. The method of  claim 1 , comprising:
 obtaining local area network credentials from the assisting device for the local area network on which the assisting device resides; and 
 sending the local area network credentials to the joining device via the second secure communication channel. 
 
     
     
       4. The method of  claim 1 , comprising:
 authenticating to a remote service using account information; and 
 receiving, from the remote service, authentication credentials including a fabric authentication token, wherein establishing the second secure communication channel comprises establishing a secure connection with the assisting device using the received fabric authentication token and a Certificate Authenticated Session Establishment (CASE) protocol. 
 
     
     
       5. The method of  claim 1 , comprising:
 receivereceiving a device identifier for the joining device; 
 determining whether the device identifier is valid; and 
 if the device identifier is not valid, stopping the joining device from being network-assisted fabric paired. 
 
     
     
       6. The method of  claim 5 , wherein receiving the device identifier comprises receiving a code located on the joining device, and wherein determining whether the device identifier is valid comprises:
 determining whether the device identifier comprises a valid check digit; or 
 determining whether the device identifier comprises a value expected for the device identifier. 
 
     
     
       7. The method of  claim 6 , wherein determining whether the joining device supports network-assisted fabric pairing comprises:
 receiving an indication of a device type for the joining device; 
 determining whether the device type supports network-assisted fabric-pairing; 
 receiving an indication of a software version running on the joining device; and 
 determining whether the software version supports network-assisted fabric pairing. 
 
     
     
       8. The method of  claim 7 , wherein receiving an indication of the device type for the joining device comprises:
 receiving an explicit selection of a device type for the joining device; or 
 determining a device type for the joining device from the device identifier of the joining device. 
 
     
     
       9. The method of  claim 1 , wherein the local area network comprises an 802.15.4 network, and the establishing the first secure communication channel comprises establishing a connection via an 802.11 network, and the tunneled connection extends through portions of the 802.15.4 network and the 802.11 network. 
     
     
       10. The method of  claim 1 , wherein the tunneled connection provides communication from the commissioning device to the joining device since the commissioning device and the joining device do not communicate over a common network type during joining the joining device to the fabric. 
     
     
       11. A non-transitory, computer-readable medium storing instructions, which when executed, are configured to cause a processor to:
 receive an indication to add a joining device to a fabric; 
 connect to an assisting device through a first local area network, wherein the assisting device is configured to assist the joining device in joining to a fabric on which the assisting device resides; 
 instruct the assisting device to connect to the joining device and to assist the joining device in joining the fabric by enabling a tunneled connection to the joining device from a commissioning device through the assisting device, wherein the commissioning device is configured to manage joining of devices to the fabric; 
 in response to receiving the indication to add the joining device to the fabric, instructing the assisting device to place a second local area network in a joinable mode from a non-joinable mode; and 
 securely connecting to the joining device through the assisting device using the tunneled connection, wherein the connection to the joining device comprises a first portion to the assisting device that passes through the first local area network and a second portion between the assisting device and the joining device via the second local area network; and 
 send fabric credentials for the fabric to be joined by the joining device via the tunneled connection. 
 
     
     
       12. The non-transitory, computer-readable medium of  claim 11 , wherein the instructions are configured to cause the processor to:
 determine if the fabric exists; 
 if the fabric does not exist cancel the fabric joining and send an indication of failure of joining a fabric by indicating that a fabric is to be created; and 
 if the fabric exists, select an appropriate assisting device to assist in joining the joining device to the fabric. 
 
     
     
       13. The non-transitory, computer-readable medium of  claim 12 , wherein selecting the appropriate assisting device comprises:
 determining if any potential assisting devices are not sleepy devices, wherein sleepy devices periodically enter a low power state, and potential assisting devices are devices which have the capability of serving as an assisting device in joining the joining device to the fabric; and 
 if any potential assisting devices are not sleepy devices, using a not sleepy device of the not sleepy devices as the assisting device. 
 
     
     
       14. The non-transitory, computer-readable medium of  claim 13 , wherein selecting the appropriate assisting device comprises:
 if all the potential assisting devices are sleepy devices, determining if any of the potential assisting devices may be remotely awoken from the low-power state; 
 if any of the potential assisting devices may be remotely awoken from the low-power state, using a remotely-awakeable potential assisting device as the assisting device in joining the joining device to the fabric; 
 if none of the potential assisting devices may be remotely awoken, instructing manual wakening of any assisting device of the potential assisting devices. 
 
     
     
       15. The non-transitory, computer-readable medium of  claim 11 , wherein the instructions are configured to cause the processor to obtain the fabric credentials from the assisting device for the fabric to be joined through the first local area network, and wherein the first local area network comprises an 802.15.4 network and the second local area network comprises an 802.11 network. 
     
     
       16. The non-transitory, computer-readable medium of  claim 11 , wherein instructing the assisting device to place the place the second local area network in a joinable mode comprises instructing the assisting device to monitor for connections via an unsecured port on the second local area network. 
     
     
       17. The non-transitory, computer-readable medium of  claim 16 , wherein the instructions are configured to cause the processor to:
 before securely connecting to the joining device, cause the joining device to be awakened by instructing a user to manually awaken the joining device; and 
 authenticating the joining device using a pairing code that corresponds to the device identifier. 
 
     
     
       18. The non-transitory, computer-readable medium of  claim 11 , wherein the instructions are configured to cause the processor to:
 determine if the joining device has capability to join the first local area network; 
 after securely connecting to the joining device, send credentials for the first local area network; and 
 if receiving a notice of failure to join from the joining device, resending the credentials or sending another set of credentials to the joining device. 
 
     
     
       19. An electronic device comprising:
 a first network interface configured to couple to a first local area network having a first local area network type; 
 a second network interface configured to couple to a second local area network having a second local area network type; 
 memory; 
 a processor configured to:a processor; and  
 a memory comprising instructions executable by the processor to configure the electronic device to: 
 establish a first connection with a commissioning device over the first local area network, wherein the commissioning device is configured to manage joining of devices to a fabric on which the electronic device resides; 
 receive instructions from the commissioning device to assist in joining a joining device to the fabric; 
 in response to receiving to assist in joining the joining device to the fabric, placing the second local area network in a joinable mode from a non-joinable mode; 
 connect to the joining device via the second local area network; and 
 facilitate a secure tunnel that extends through the electronic device between the joining device and the commissioning device through which fabric credentials are sent to enable the joining device to join the fabric. 
 
     
     
       20. The electronic device of  claim 19 , wherein connecting to the joining device comprises monitor monitoring for communications through an unsecured port on the second network interface, wherein the first local area network type comprises 802.15.4. 
     
     
       21. The electronic device of  claim 19 , wherein facilitating the secure tunnel comprises: the instructions to facilitate the secure tunnel are executable by the processor to configure the electronic device to:
 receivingreceive a first set of communications from the commissioning device via the first local area network and forwarding the first set of communications to the joining device via the second local area network; 
 receivingreceive a second set of communications from the joining device via the second local area network and forwarding the second set of communications to the commissioning device via the first local area network, wherein the first and second set of communications are encrypted using session keys negotiated between the commissioning device and the joining device.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.