# US 11,444,805 B2 · Secure over the air upload mechanism for wireless mesh nodes

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

- Number: US 11,444,805 B2
- Document ID: US11444805B2
- Status: Granted
- Kind: B2
- Application number: 16/532,734
- Filed: 2019-08-06
- Published: 2021-02-11
- Granted: 2022-09-13
- Earliest claimed: 2019-08-06
- Assignees: WiSilica Inc.
- Applicants: WiSilica Inc.
- Inventors: Francis Antony; Suresh Singamsetty; Dennis Ching Chung Kwan; Manu Velayudhan
- Web page: https://patentgrep.com/patent/US11444805B2

## CPC

- H04L 12/4625: {Single bridge functionality, e.g. connection of two networks over a single bridge}
- H04L 1/009: {arrangements specific to transmitters}
- H04L 1/189: {Transmission or retransmission of more than one copy of a message}
- H04L 9/0643: {Hash functions, e.g. MD5, SHA, HMAC or f9 MAC}
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- H04L 2001/0093: {Point-to-multipoint}
- H04W 8/245: {from a network towards a terminal}
- H04W 84/18: Self-organising networks, e.g. ad-hoc networks or sensor networks
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

A method of transmitting a block from a bridge to a mesh network includes transmitting the block to at least a first node of a plurality of nodes, for distribution through the mesh network. The block includes a plurality of packets. The bridge receives, from the plurality of nodes, a plurality of status packets. Each status packet indicates reception status of the plurality of packets at a respective node of the plurality of nodes. The bridge selects at least a first packet of the plurality of packets for retransmission to the mesh network, based on the status packets. The bridge generates a retransmission block including at least the first packet. The first packet is included in the retransmission block a number of times based on the status packets. The bridge transmits the retransmission block to at least the first node, for distribution of the retransmission block through the mesh network.

## Claims

### Claim 1

A method of transmitting a block from a bridge to a mesh network, the method comprising:
transmitting, by the bridge, the block to at least a first node of a plurality of nodes of the mesh network, for distribution through the mesh network, the block comprising a plurality of packets, wherein the block is part of a firmware update or a software update;
receiving, at the bridge from the plurality of nodes, a plurality of status packets, wherein each of the plurality of status packets indicates reception status of the plurality of packets at a respective node of the plurality of nodes;
selecting, by the bridge, at least a first packet of the plurality of packets for retransmission to the mesh network, based on the plurality of status packets;
generating, by the bridge, a retransmission block including at least the first packet of the plurality of packets, wherein the first packet is included in the retransmission block a number of times based on the plurality of status packets; and
transmitting the retransmission block to at least the first node of the plurality of nodes, for distribution of the retransmission block through the mesh network.

### Claim 2 (depends on 1)

The method of claim 1, where the first packet includes at least one of data identifying a version of a firmware, data indicating a total number of blocks, data indicating a total number of packets in a firmware image, and data indicating a block identifier.

### Claim 3 (depends on 1)

The method of claim 1, wherein the firmware update or the software update is part of an over-the-air broadcast.

### Claim 4 (depends on 1)

The method of claim 1, wherein each of the plurality of status packets includes a plurality of bitwise indicators, each of the plurality of bitwise indicators indicating whether a respective packet of the plurality of packets was received at the respective node.

### Claim 5 (depends on 1)

The method of claim 1, wherein the first packet of the plurality of packets is selected based on a number of nodes of the plurality of nodes, at which the first packet was not received.

### Claim 6 (depends on 1)

The method of claim 1, wherein the first packet of the plurality of packets is selected based on an identified pattern according to which particular packets were not received by the plurality of nodes.

### Claim 7 (depends on 6)

The method of claim 6, wherein the first packet of the plurality of packets is included in the retransmission block according to a sequence that corresponds to a sequence in which packets including the first packet were not received.

### Claim 8 (depends on 6)

The method of claim 6, wherein the first packet of the plurality of packets is included in the retransmission block at one or more random locations.

### Claim 9 (depends on 1)

The method of claim 1, wherein the retransmission block has a length that is variable.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
receiving, from at least one node of the plurality of nodes, a request for a hash value, wherein the hash value is different for each node;
receiving, by at least one node, the hash value encrypted with a device key; and
verifying the hash value, wherein the hash value is verified by the at least one node receiving the hash value.

### Claim 11

A computing apparatus, the computing apparatus comprising:
a processor; and
a memory storing instructions that, when executed by the processor, configure the apparatus to:
transmit a block to at least a first node of a plurality of nodes of a mesh network, for distribution through the mesh network, the block comprising a plurality of packets, wherein the block is part of a firmware update or a software update;
receive, from the plurality of nodes, a plurality of status packets, wherein each of the plurality of status packets indicates reception status of the plurality of packets at a respective node of the plurality of nodes;
select at least a first packet of the plurality of packets for retransmission to the mesh network, based on the plurality of status packets;
generate a retransmission block including at least the first packet of the plurality of packets, wherein the first packet is included in the retransmission block a number of times based on the plurality of status packets; and
transmit the retransmission block to at least the first node of the plurality of nodes, for distribution of the retransmission block through the mesh network.

### Claim 12 (depends on 11)

The computing apparatus of claim 11, where the first packet includes at least one of data identifying a version of a firmware, data indicating a total number of blocks, data indicating a total number of packets in a firmware image, and data indicating a block identifier.

### Claim 13 (depends on 11)

The computing apparatus of claim 11, wherein the firmware update or the software update is part of an over-the-air broadcast.

### Claim 14 (depends on 11)

The computing apparatus of claim 11, wherein each of the plurality of status packets includes a plurality of bitwise indicators, each of the plurality of bitwise indicators indicate whether a respective packet of the plurality of packets was received at the respective node.

### Claim 15 (depends on 11)

The computing apparatus of claim 11, wherein the first packet of the plurality of packets is selected based on a number of nodes of the plurality of nodes, at which the first packet was not received.

### Claim 16 (depends on 11)

The computing apparatus of claim 11, wherein the first packet of the plurality of packets is selected based on an identified pattern according to which particular packets were not received by the plurality of nodes.

### Claim 17 (depends on 16)

The computing apparatus of claim 16, wherein the first packet of the plurality of packets is included in the retransmission block according to a sequence that corresponds to a sequence in which packets including the first packet were not received.

### Claim 18 (depends on 16)

The computing apparatus of claim 16, wherein the first packet of the plurality of packets is included in the retransmission block at one or more random locations.

### Claim 19 (depends on 11)

The computing apparatus of claim 11, wherein the retransmission block has a length that is variable.

### Claim 20 (depends on 11)

The computing apparatus of claim 11, wherein the instructions further configure the apparatus to:
receive, from at least one node of the plurality of nodes, a request for a hash value, wherein the hash value is different for each node;
receive the hash value encrypted with a device key, wherein the hash value is different for each node; and
verify the hash value, wherein the hash value is verified by the at least one node receiving the hash value.
