IP Library Granted Patent US 12,040,895
Granted Patent B1
US 12,040,895 · App. 18/069,575 · Granted Jul 16, 2024

Management of message transmission using forward error correction

Inventors: Thomas F. Uhling (Spokane Valley, WA); Keith Wayne Barnes (Waseca, MN); Danny Ray Seely (Spokane Valley, WA)
Assignee: ITRON, INC.
H04L1/0045H04L1/0006H04L1/0041H04L1/0048H04L1/0056H04L1/0057H04L1/0059H04L1/0078
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,040,895
App. No.
18/069,575
Granted
Jul 16, 2024
Kind
B1
Abstract

Various embodiments disclosed herein provide techniques for deciding when to use FEC to transmit a message between node devices in a mesh network. In various embodiments, a method includes receiving, by a communication application executing on a first node of a mesh network, a message; determining, by the communication application, a second node in the mesh network to transmit the message to, the second node being a neighbor of the first node; determining, by the communication application based on a history of forward error correction (FEC) and non-FEC transmissions with the second node, that FEC or non-FEC should be used to transmit the message; and transmitting, by the communication application, in response to determining that FEC or non-FEC should be used to transmit the message, the message to the second node using FEC or non-FEC.

Claims (56)

1. A method comprising:

receiving, by a communication application executing on a first node device of a mesh network, a message;

determining, by the communication application, a second node device in the mesh network to transmit the message to, the second node device being a neighbor of the first node device;

determining, by the communication application based on a history of forward error correction (FEC) and non-FEC transmissions with the second node device, that FEC should be used to transmit the message; and

transmitting, by the communication application in response to determining that FEC should be used to transmit the message, the message to the second node device using FEC.

2. The method of claim 1 , wherein determining the second node device comprises determining the second node device based on a destination address associated with the message.

3. The method of claim 1 , wherein determining that FEC should be used to transmit the message comprises:

determining that the first node device of the mesh network and the second node device of the mesh network both support FEC; and

determining that a minimum number of transmissions of the message without using FEC were unsuccessful.

4. The method of claim 1 , wherein determining that FEC should be used to transmit the message comprises determining that messages transmitted between the first node device and the second node device should be transmitted using FEC without first attempting to transmit the messages without using FEC.

5. The method of claim 1 , further comprising updating, by the communication application, the history of FEC and non-FEC transmissions with the second node device, in response to transmitting the message to the second node device using FEC.

6. The method of claim 5 , further comprising updating, by the communication application, the history of FEC and non-FEC transmissions with the second node device in response to receiving an acknowledgment from the second node device for the message or a timer timing out without receiving the acknowledgment.

7. The method of claim 1 , wherein the history of FEC and non-FEC transmissions with the second node device comprises one or more counters selected from a group consisting of:

a counter storing a count of message transmissions using FEC where an acknowledgment was received;

a counter storing a count of message transmissions without using FEC where an acknowledgment was received; and

a counter storing a count of message transmissions without receiving an acknowledgment.

8. The method of claim 1 , further comprising:

receiving, by the communication application, a second message;

determining, by the communication application, a third node device in the mesh network to transmit the second message to, the third node device being a neighbor of the first node device;

determining, by the communication application based on the history of forward FEC and non-FEC transmissions with the third node device, that the message should be transmitted without using FEC; and

transmitting, by the communication application in response to determining that the message should be transmitted without using FEC, the second message to the third node device without using FEC.

9. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors of a first node in a mesh network to perform the steps of:

receiving, by a communication application executing on the first node of the mesh network, a message;

determining, by the communication application, a second node in the mesh network to transmit the message to, the second node being a neighbor of the first node stored in a neighbor table;

determining, by the communication application based on a record of previous forward error correction (FEC) and non-FEC transmissions with the second node, that FEC should be used to transmit the message; and

transmitting, by the communication application, in response to determining that FEC should be used to transmit the message, the message to the second node using FEC.

10. The one or more non-transitory computer-readable media of claim 9 , further comprising:

updating a state of a state machine based on the record of previous FEC and non-FEC transmissions with the second node;

wherein determining that FEC should be used to transmit the message is further based on the state of the state machine.

11. The one or more non-transitory computer-readable media of claim 10 , wherein the state of the state machine is selected from a group consisting of:

an initial state wherein the record of previous FEC and non-FEC transmissions with the second node is initialized;

a use non-FEC state wherein messages are transmitted without using FEC before attempting to transmit the messages using FEC;

a use FEC state wherein messages are transmitted using FEC after first attempting to transmit the messages without using FEC; and

an always use FEC state wherein messages are transmitted using FEC without first attempting to transmit the messages without using FEC.

12. The one or more non-transitory computer-readable media of claim 11 , wherein updating the state of the state machine further comprises:

transitioning from the use non-FEC state to the use FEC state in response to a number of successive attempts to transmit the message without using FEC and without receiving an acknowledgement being above a threshold number.

13. The one or more non-transitory computer-readable media of claim 11 , wherein updating the state of the state machine comprises:

transitioning from the use FEC state to the always use FEC state in response to a number of messages being transmitted using FEC being above a threshold number.

14. The one or more non-transitory computer-readable media of claim 11 , wherein updating the state of the state machine comprises:

transitioning from the always use FEC state to the use non-FEC state in response to a number of messages being transmitted using FEC being above a threshold number.

15. The one or more non-transitory computer-readable media of claim 11 , wherein updating the state of the state machine comprises:

transitioning from the use FEC state to the use non-FEC state in response to a number of messages being transmitted using FEC being below a threshold number.

16. A first network device in a mesh network, comprising:

a memory storing a communication application; and

a processor coupled to the memory that executes the communication application to perform the steps of:

receiving a message;

identifying, based on a destination address associated with the message, a neighbor network device in the mesh network to transmit the message to;

analyzing a history of forward error correction (FEC) and non-FEC transmissions with the neighbor network device to determine that FEC or non-FEC should be used to transmit the message to the neighbor network device; and

transmitting, in response to determining that FEC or non-FEC should be used to transmit the message to the neighbor network device, the message to the neighbor network device using FEC or non-FEC.

17. The first network device of claim 16 , wherein determining that FEC should be used to transmit the message to the neighbor network device comprises:

detecting that the first network device and the neighbor network device both support FEC; and

detecting that a minimum number of transmissions of the message to the neighbor network device without using FEC were unsuccessful.

18. The first network device of claim 17 , wherein detecting that FEC should be used to transmit the message comprises detecting that messages transmitted between the first network device and the neighbor network device should be transmitted using FEC without first attempting to transmit the messages without using FEC.

19. The first network device of claim 18 , further comprising:

updating the history of FEC and non-FEC transmissions with the neighbor network device, in response to at least one of transmitting the message to the neighbor network device using FEC, transmitting the message to the neighbor network device without using FEC, receiving an acknowledgment from the neighbor network device for the message, or a timer timing out without receiving the acknowledgment.

20. The first network device of claim 16 , further comprising storing the history of FEC and non-FEC transmissions with the neighbor network device in an entry in a neighbor table associated with the neighbor network device.

Assignments (2)
SECURITY INTEREST Recorded Sep 15, 2025
From: ITRON, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 072870/0873 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2022
From: UHLING, THOMAS F.; BARNES, KEITH WAYNE; SEELY, DANNY RAY
To: ITRON, INC.
Reel/Frame 062187/0252 →