Skip to content

Commit

Permalink
api: Add ADR per data rate overrides
Browse files Browse the repository at this point in the history
  • Loading branch information
adriansmares committed Mar 1, 2024
1 parent 8449d7c commit 96b5f4a
Show file tree
Hide file tree
Showing 16 changed files with 5,229 additions and 1,441 deletions.
42 changes: 42 additions & 0 deletions api/ttn/lorawan/v3/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,8 @@
- [Message `ADRSettings.DynamicMode.ChannelSteeringSettings`](#ttn.lorawan.v3.ADRSettings.DynamicMode.ChannelSteeringSettings)
- [Message `ADRSettings.DynamicMode.ChannelSteeringSettings.DisabledMode`](#ttn.lorawan.v3.ADRSettings.DynamicMode.ChannelSteeringSettings.DisabledMode)
- [Message `ADRSettings.DynamicMode.ChannelSteeringSettings.LoRaNarrowMode`](#ttn.lorawan.v3.ADRSettings.DynamicMode.ChannelSteeringSettings.LoRaNarrowMode)
- [Message `ADRSettings.DynamicMode.Overrides`](#ttn.lorawan.v3.ADRSettings.DynamicMode.Overrides)
- [Message `ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride)
- [Message `ADRSettings.StaticMode`](#ttn.lorawan.v3.ADRSettings.StaticMode)
- [Message `BatchDeleteEndDevicesRequest`](#ttn.lorawan.v3.BatchDeleteEndDevicesRequest)
- [Message `BatchGetEndDevicesRequest`](#ttn.lorawan.v3.BatchGetEndDevicesRequest)
Expand Down Expand Up @@ -3710,6 +3712,7 @@ Configuration options for dynamic ADR.
| `min_nb_trans` | [`google.protobuf.UInt32Value`](#google.protobuf.UInt32Value) | | Minimum number of retransmissions. If unset, the default value from Network Server configuration will be used. |
| `max_nb_trans` | [`google.protobuf.UInt32Value`](#google.protobuf.UInt32Value) | | Maximum number of retransmissions. If unset, the default value from Network Server configuration will be used. |
| `channel_steering` | [`ADRSettings.DynamicMode.ChannelSteeringSettings`](#ttn.lorawan.v3.ADRSettings.DynamicMode.ChannelSteeringSettings) | | |
| `overrides` | [`ADRSettings.DynamicMode.Overrides`](#ttn.lorawan.v3.ADRSettings.DynamicMode.Overrides) | | |

#### Field Rules

Expand Down Expand Up @@ -3740,6 +3743,45 @@ Configuration options for LoRa narrow channels steering.
The narrow mode attempts to steer the end device towards
using the LoRa modulated, 125kHz bandwidth channels.

### <a name="ttn.lorawan.v3.ADRSettings.DynamicMode.Overrides">Message `ADRSettings.DynamicMode.Overrides`</a>

EXPERIMENTAL: Configuration overrides.

| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `data_rate_0` | [`ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride) | | |
| `data_rate_1` | [`ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride) | | |
| `data_rate_2` | [`ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride) | | |
| `data_rate_3` | [`ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride) | | |
| `data_rate_4` | [`ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride) | | |
| `data_rate_5` | [`ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride) | | |
| `data_rate_6` | [`ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride) | | |
| `data_rate_7` | [`ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride) | | |
| `data_rate_8` | [`ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride) | | |
| `data_rate_9` | [`ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride) | | |
| `data_rate_10` | [`ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride) | | |
| `data_rate_11` | [`ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride) | | |
| `data_rate_12` | [`ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride) | | |
| `data_rate_13` | [`ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride) | | |
| `data_rate_14` | [`ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride) | | |
| `data_rate_15` | [`ADRSettings.DynamicMode.PerDataRateIndexOverride`](#ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride) | | |

### <a name="ttn.lorawan.v3.ADRSettings.DynamicMode.PerDataRateIndexOverride">Message `ADRSettings.DynamicMode.PerDataRateIndexOverride`</a>

EXPERIMENTAL: Data rate index override settings.

| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `min_nb_trans` | [`google.protobuf.UInt32Value`](#google.protobuf.UInt32Value) | | Minimum number of retransmissions. If unset, the default value from Network Server configuration will be used. |
| `max_nb_trans` | [`google.protobuf.UInt32Value`](#google.protobuf.UInt32Value) | | Maximum number of retransmissions. If unset, the default value from Network Server configuration will be used. |

#### Field Rules

| Field | Validations |
| ----- | ----------- |
| `min_nb_trans` | <p>`uint32.lte`: `3`</p><p>`uint32.gte`: `1`</p> |
| `max_nb_trans` | <p>`uint32.lte`: `3`</p><p>`uint32.gte`: `1`</p> |

### <a name="ttn.lorawan.v3.ADRSettings.StaticMode">Message `ADRSettings.StaticMode`</a>

Configuration options for static ADR.
Expand Down
73 changes: 73 additions & 0 deletions api/ttn/lorawan/v3/api.swagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -14218,6 +14218,9 @@
},
"channel_steering": {
"$ref": "#/definitions/DynamicModeChannelSteeringSettings"
},
"overrides": {
"$ref": "#/definitions/DynamicModeOverrides"
}
},
"description": "Configuration options for dynamic ADR."
Expand Down Expand Up @@ -15002,6 +15005,76 @@
"type": "object",
"description": "Configuration options for cases in which ADR is not supposed to steer the end device\nto another set of channels."
},
"DynamicModeOverrides": {
"type": "object",
"properties": {
"data_rate_0": {
"$ref": "#/definitions/DynamicModePerDataRateIndexOverride"
},
"data_rate_1": {
"$ref": "#/definitions/DynamicModePerDataRateIndexOverride"
},
"data_rate_2": {
"$ref": "#/definitions/DynamicModePerDataRateIndexOverride"
},
"data_rate_3": {
"$ref": "#/definitions/DynamicModePerDataRateIndexOverride"
},
"data_rate_4": {
"$ref": "#/definitions/DynamicModePerDataRateIndexOverride"
},
"data_rate_5": {
"$ref": "#/definitions/DynamicModePerDataRateIndexOverride"
},
"data_rate_6": {
"$ref": "#/definitions/DynamicModePerDataRateIndexOverride"
},
"data_rate_7": {
"$ref": "#/definitions/DynamicModePerDataRateIndexOverride"
},
"data_rate_8": {
"$ref": "#/definitions/DynamicModePerDataRateIndexOverride"
},
"data_rate_9": {
"$ref": "#/definitions/DynamicModePerDataRateIndexOverride"
},
"data_rate_10": {
"$ref": "#/definitions/DynamicModePerDataRateIndexOverride"
},
"data_rate_11": {
"$ref": "#/definitions/DynamicModePerDataRateIndexOverride"
},
"data_rate_12": {
"$ref": "#/definitions/DynamicModePerDataRateIndexOverride"
},
"data_rate_13": {
"$ref": "#/definitions/DynamicModePerDataRateIndexOverride"
},
"data_rate_14": {
"$ref": "#/definitions/DynamicModePerDataRateIndexOverride"
},
"data_rate_15": {
"$ref": "#/definitions/DynamicModePerDataRateIndexOverride"
}
},
"description": "EXPERIMENTAL: Configuration overrides."
},
"DynamicModePerDataRateIndexOverride": {
"type": "object",
"properties": {
"min_nb_trans": {
"type": "integer",
"format": "int64",
"description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used."
},
"max_nb_trans": {
"type": "integer",
"format": "int64",
"description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used."
}
},
"description": "EXPERIMENTAL: Data rate index override settings."
},
"EndDeviceClaimingServerAuthorizeApplicationBody": {
"type": "object",
"properties": {
Expand Down
50 changes: 50 additions & 0 deletions api/ttn/lorawan/v3/end_device.proto
Original file line number Diff line number Diff line change
Expand Up @@ -493,6 +493,56 @@ message ADRSettings {
}

ChannelSteeringSettings channel_steering = 8;

// EXPERIMENTAL: Data rate index override settings.
message PerDataRateIndexOverride {
option (thethings.flags.message) = {
select: true,
set: true
};
reserved 1;
reserved "min_tx_power_index";
reserved 2;
reserved "max_tx_power_index";
// Minimum number of retransmissions.
// If unset, the default value from Network Server configuration will be used.
google.protobuf.UInt32Value min_nb_trans = 3 [(validate.rules).uint32 = {
gte: 1,
lte: 3
}];
// Maximum number of retransmissions.
// If unset, the default value from Network Server configuration will be used.
google.protobuf.UInt32Value max_nb_trans = 4 [(validate.rules).uint32 = {
gte: 1,
lte: 3
}];
}

// EXPERIMENTAL: Configuration overrides.
message Overrides {
option (thethings.flags.message) = {
select: true,
set: true
};
PerDataRateIndexOverride data_rate_0 = 1;
PerDataRateIndexOverride data_rate_1 = 2;
PerDataRateIndexOverride data_rate_2 = 3;
PerDataRateIndexOverride data_rate_3 = 4;
PerDataRateIndexOverride data_rate_4 = 5;
PerDataRateIndexOverride data_rate_5 = 6;
PerDataRateIndexOverride data_rate_6 = 7;
PerDataRateIndexOverride data_rate_7 = 8;
PerDataRateIndexOverride data_rate_8 = 9;
PerDataRateIndexOverride data_rate_9 = 10;
PerDataRateIndexOverride data_rate_10 = 11;
PerDataRateIndexOverride data_rate_11 = 12;
PerDataRateIndexOverride data_rate_12 = 13;
PerDataRateIndexOverride data_rate_13 = 14;
PerDataRateIndexOverride data_rate_14 = 15;
PerDataRateIndexOverride data_rate_15 = 16;
}

Overrides overrides = 9;
}

// Configuration options for cases in which ADR is to be disabled
Expand Down
Loading

0 comments on commit 96b5f4a

Please sign in to comment.