Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: Add relay basics #548

Merged
merged 2 commits into from
Mar 10, 2024

Conversation

pradeeka7
Copy link
Contributor

Summary

Add LoRaWAN relay basics.
Closes #544

Screenshots

image

Changes

  • ...
  • ...

Notes for Reviewers

@KrishnaIyer @adriansmares @nejraselimovic

Checklist

  • Scope: The referenced issue is addressed, there are no unrelated changes.
  • Run Locally: Verified that the docs build using make server, posted screenshots, verified external links.
  • Style Guidelines: Documentation obeys style guidelines in CONTRIBUTING.
  • Commits: Commit messages follow guidelines in CONTRIBUTING, there are no fixup commits left.

- relay-placement.png
---

Relays are suitable for bridging wireless communication gaps in areas where the gateway and end device cannot directly communicate with each other due to weak signal strength because of factors such as extreme distance or obstacles between the gateway and end device. They are low-cost, low-power devices. A relay's hardware is equivalent to a standard LoRaWAN end device. A single relay can serve up to 16 end devices. For the Network Server, a relay appears as a standard end device.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Relays are suitable for bridging wireless communication gaps in areas where the gateway and end device cannot directly communicate with each other due to weak signal strength because of factors such as extreme distance or obstacles between the gateway and end device. They are low-cost, low-power devices. A relay's hardware is equivalent to a standard LoRaWAN end device. A single relay can serve up to 16 end devices. For the Network Server, a relay appears as a standard end device.
LoRaWAN relays are suitable for bridging wireless communication gaps in areas where the gateway and the end device cannot directly communicate with each other due to weak signal strength caused by factors such as extreme distance or obstacles between them. They are low-cost, low-power devices. A relay's hardware is equivalent to a standard LoRaWAN end device. A single relay can serve up to 16 end devices. For the Network Server, a relay appears as a standard end device.


{{< figure src="relay-placement.png" alt="Relay Placement" >}}

{{< note "Adding a new gateway is a good idea if many devices have a lack of signal reception. But if it's just a few devices, using a relay is a cheaper solution." />}}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove note tags


## Relay Requirments

- End device should run the LoRaWAN stack (TS001-LoRaWAN L2 1.0.4 and Regional Parameters RP2-1.0.3 specifications) + LoRa Basics Modem firmware. The experimental release of this firmware can be found at https://github.com/Lora-net/SWL2001
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- End device should run the LoRaWAN stack (TS001-LoRaWAN L2 1.0.4 and Regional Parameters RP2-1.0.3 specifications) + LoRa Basics Modem firmware. The experimental release of this firmware can be found at https://github.com/Lora-net/SWL2001
- End device should implement the LoRaWAN stack, precisely TS001-LoRaWAN L2 1.0.4 and Regional Parameters RP2-1.0.3 specifications, and LoRa Basics Modem firmware. The experimental release of the LoRa Basics Modem firmware can be found [here](https://github.com/Lora-net/SWL2001).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you pls link specifications


- End device should run the LoRaWAN stack (TS001-LoRaWAN L2 1.0.4 and Regional Parameters RP2-1.0.3 specifications) + LoRa Basics Modem firmware. The experimental release of this firmware can be found at https://github.com/Lora-net/SWL2001
- End device should be implemented with SX1261/2, LR1110, LR1120, or LR1121 sub-GHz LoRa transceiver.
- A Network Server supporting the relay specification.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Which network server?

- End device should run the LoRaWAN stack (TS001-LoRaWAN L2 1.0.4 and Regional Parameters RP2-1.0.3 specifications) + LoRa Basics Modem firmware. The experimental release of this firmware can be found at https://github.com/Lora-net/SWL2001
- End device should be implemented with SX1261/2, LR1110, LR1120, or LR1121 sub-GHz LoRa transceiver.
- A Network Server supporting the relay specification.
- The gateways do not need to be updated to support relays.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not a requirement, so remove it from this bullet list, you can put it below

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I put it in the note box.

Comment on lines 56 to 58
In EU868, four dedicated channels with a bandwidth of 125 kHz and a spreading factor of 9 are used to communicate between the end device and the relay. Among them,

Two channels are used to send the WOR frame from the end device to the relay:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In EU868, four dedicated channels with a bandwidth of 125 kHz and a spreading factor of 9 are used to communicate between the end device and the relay. Among them,
Two channels are used to send the WOR frame from the end device to the relay:
In EU868, four dedicated channels with a bandwidth of 125 kHz and a spreading factor of 9 are used to communicate between the end device and the relay. Among them, two channels are used to send the WOR frame from the end device to the relay:

Comment on lines 72 to 74
In US915, four dedicated channels with a bandwidth of 500 kHz and a spreading factor of 10 are used to communicate between the end device and the relay. Among them,

Two channels are used to send the WOR frame from the end device to the relay:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In US915, four dedicated channels with a bandwidth of 500 kHz and a spreading factor of 10 are used to communicate between the end device and the relay. Among them,
Two channels are used to send the WOR frame from the end device to the relay:
In US915, four dedicated channels with a bandwidth of 500 kHz and a spreading factor of 10 are used to communicate between the end device and the relay. Among them, two channels are used to send the WOR frame from the end device to the relay:


The end device derives the RootWorSKey from its NwkSkey (LoRaWAN Version 1.0.X) or NwkSEncKey (LoRaWAN Version 1.1.X and higher). The relay will also receive a copy of the RootWorSKey from the Network Server.

The RootWorSKey is an intermediate key and is never used directly to calculate MIC or encrypt/decrypt data. Therefore, based on the RootWorSKey and the DevAddr, two session keys are derived by both the end device and the relay:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you're mentioning twice that it cannot be used to calculate MIC and encrypt/decrypt payload

Comment on lines 98 to 99
- WOR Integrity Session Key (WorSIntKey) - used by both the end device and the relay to calculate and verify the MIC of the WOR and WOR-ACK frames.
- WOR Encryption Session Key (WorSEncKey) - used by both the end device and the relay to encrypt/decrypt the payload field of the WOR and WOR-ACK frames.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- WOR Integrity Session Key (WorSIntKey) - used by both the end device and the relay to calculate and verify the MIC of the WOR and WOR-ACK frames.
- WOR Encryption Session Key (WorSEncKey) - used by both the end device and the relay to encrypt/decrypt the payload field of the WOR and WOR-ACK frames.
- WOR Integrity Session Key (WorSIntKey) - used by both the end device and the relay to calculate and verify the MIC of the WOR and WOR-ACK frames
- WOR Encryption Session Key (WorSEncKey) - used by both the end device and the relay to encrypt/decrypt the payload field of the WOR and WOR-ACK frames

section: The Things Fundamentals
weight: 50
images:
- relay-placement.png
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

where is this image from?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pradeeka7 pradeeka7 requested a review from nejraselimovic March 5, 2024 08:24
@nejraselimovic nejraselimovic merged commit 66f04c7 into TheThingsNetwork:master Mar 10, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add learning material for LoRaWAN relay basics
2 participants