# Does ADR require the use of confirmed uplinks?

**URL:** <https://www.thethingsnetwork.org/forum/t/does-adr-require-the-use-of-confirmed-uplinks/9640>\
**Category:** TTN Network and Services\
**Created:** [September 21, 2017, 8:16am UTC](https://www.thethingsnetwork.org/forum/t/does-adr-require-the-use-of-confirmed-uplinks/9640 "2017-09-21T08:16:23Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![arjanvanb](https://www.thethingsnetwork.org/forum/user_avatar/www.thethingsnetwork.org/arjanvanb/32/46626_2.png) [@arjanvanb](https://www.thethingsnetwork.org/forum/u/arjanvanb)\
**Post date:** [November 6, 2017, 5:47pm UTC](https://www.thethingsnetwork.org/forum/t/does-adr-require-the-use-of-confirmed-uplinks/9640/6 "2017-11-06T17:47:21Z")

</div>

> [@nestorayuso](#):
>
> The Network Server should send a downlink every 64 uplinks

In LoRaWAN 1.0, should it generate downlinks **even when not asked to do so**? It seems TTN [is only forcing a downlink when the node is using SF12](https://github.com/TheThingsNetwork/ttn/blob/v2.9.0/core/networkserver/adr.go#L107-L114). In all other cases, it seems that TTN will only piggy-back on existing downlinks (possibly **not** including bare ACKs for confirmed uplinks), or generate a downlink when the node set `ADRACKReq` in an uplink. If the node does not set that, [no ADR is received](https://www.thethingsnetwork.org/forum/t/adr-not-what-i-expected/10470/4).

It seems the TTN implementation adheres to the LoRaWAN 1.0 specifications ~~though that is not quite specific about this~~ :

> **4.3.1.1 Adaptive data rate control in frame header (ADR, ADRACKReq in FCtrl)**
> 
> […]
> 
> If an end-device whose data rate is optimized by the network to use a data rate higher than its lowest available data rate, it periodically needs to validate that the network still receives the uplink frames. Each time the uplink frame counter is incremented (for each new uplink, repeated transmissions do not increase the counter), the device increments an ADR\_ACK\_CNT counter. After ADR\_ACK\_LIMIT uplinks (ADR\_ACK\_CNT \>= ADR\_ACK\_LIMIT) without any downlink response, it sets the ADR acknowledgment request bit (`ADRACKReq`). The network is required to respond with a downlink frame within the next ADR\_ACK\_DELAY frames, any received downlink frame following an uplink frame resets the ADR\_ACK\_CNT counter.

~~…where _“it periodically needs to validate that the network still receives the uplink frames”_ feels like it’s mainly about ensuring the uplinks were received, rather than describing a required part for ADR.~~ But the specifications don’t seem to state that the network server needs to generate any downlinks itself.

---

_[View the full topic](https://www.thethingsnetwork.org/forum/t/does-adr-require-the-use-of-confirmed-uplinks/9640)._
