@@ -1064,6 +1064,18 @@ message Config {
10641064 NOT_PRESENT = 2 ;
10651065 }
10661066
1067+ enum DynamicCodingRateMode {
1068+ /*
1069+ * Keep using the configured static coding rate.
1070+ */
1071+ DCR_OFF = 0 ;
1072+
1073+ /*
1074+ * Select LoRa coding rate per packet using local airtime policy.
1075+ */
1076+ DCR_ON = 1 ;
1077+ }
1078+
10671079 /*
10681080 * When enabled, the `modem_preset` fields will be adhered to, else the `bandwidth`/`spread_factor`/`coding_rate`
10691081 * will be taked from their respective manually defined fields
@@ -1188,6 +1200,48 @@ message Config {
11881200 * Set where LORA FEM is enabled, disabled, or not present
11891201 */
11901202 FEM_LNA_Mode fem_lna_mode = 106 ;
1203+
1204+ /*
1205+ * Dynamic Coding Rate policy mode. DCR_OFF keeps the configured static coding rate; DCR_ON applies
1206+ * per-packet CR selection.
1207+ */
1208+ DynamicCodingRateMode dcr_mode = 107 ;
1209+
1210+ /*
1211+ * Minimum CR denominator DCR may choose. 0 means firmware default, currently 5 (CR 4/5).
1212+ */
1213+ uint32 dcr_min_cr = 108 ;
1214+
1215+ /*
1216+ * Maximum CR denominator DCR may choose. 0 means firmware default, currently 8 (CR 4/8).
1217+ */
1218+ uint32 dcr_max_cr = 109 ;
1219+
1220+ /*
1221+ * Max percentage of local TX airtime in the rolling DCR window that may be CR 4/8 for non-urgent packets.
1222+ * 0 means firmware default, currently 10 percent.
1223+ */
1224+ uint32 dcr_robust_airtime_pct = 110 ;
1225+
1226+ /*
1227+ * Disable local per-neighbor coding-rate tracking. Tracking is enabled by default and is local-only.
1228+ */
1229+ bool dcr_disable_neighbor_tracking = 111 ;
1230+
1231+ /*
1232+ * Maximum CR denominator for routine telemetry/position/nodeinfo traffic. 0 means firmware default, currently 6.
1233+ */
1234+ uint32 dcr_telemetry_max_cr = 112 ;
1235+
1236+ /*
1237+ * Minimum CR denominator for normal user-value packets such as text. 0 means firmware default, currently 5.
1238+ */
1239+ uint32 dcr_user_min_cr = 113 ;
1240+
1241+ /*
1242+ * Minimum CR denominator for alert/urgent packets. 0 means firmware default, currently 7.
1243+ */
1244+ uint32 dcr_alert_min_cr = 114 ;
11911245 }
11921246
11931247 message BluetoothConfig {
0 commit comments