MCPcopy Create free account
hub / github.com/chirpstack/chirpstack / _handle_relayed

Method _handle_relayed

chirpstack/src/uplink/data.rs:156–201  ·  view source on GitHub ↗
(relay_ctx: RelayContext, ufs: UplinkFrameSet)

Source from the content-addressed store, hash-verified

154 }
155
156 async fn _handle_relayed(relay_ctx: RelayContext, ufs: UplinkFrameSet) -> Result<()> {
157 let mut ctx = Data {
158 phy_payload: *relay_ctx.req.payload.clone(),
159 uplink_frame_set: ufs,
160 relay_context: Some(relay_ctx),
161 f_cnt_up_full: 0,
162 reset: false,
163 retransmission: false,
164 tenant: None,
165 device: None,
166 device_profile: None,
167 application: None,
168 device_info: None,
169 relay_rx_info: None,
170 uplink_event: None,
171 must_send_downlink: false,
172 downlink_mac_commands: Vec::new(),
173 device_changeset: Default::default(),
174 region_conf: None,
175 };
176
177 ctx.get_device_for_phy_payload_relayed().await?;
178 ctx.get_device_data().await?;
179 ctx.set_device_info()?;
180 ctx.set_region_config()?;
181 ctx.set_device_gateway_rx_info()?;
182 ctx.set_relay_rx_info()?;
183 ctx.handle_retransmission_reset().await?;
184 ctx.decrypt_f_opts_mac_commands()?;
185 ctx.decrypt_frm_payload()?;
186 ctx.set_adr()?;
187 ctx.set_uplink_data_rate_relayed().await?;
188 ctx.handle_class_b_beacon_locked().await?;
189 ctx.reset_channels_on_activation_or_adr_ack_req()?;
190 ctx.handle_mac_commands().await?;
191 ctx.append_meta_data_to_uplink_history_relayed()?;
192 ctx.send_uplink_event().await?;
193 ctx.detect_and_save_measurements().await?;
194 ctx.sync_uplink_f_cnt()?;
195 ctx.update_device().await?;
196 ctx.handle_uplink_ack().await?;
197 ctx.save_metrics_relayed().await?;
198 ctx.start_downlink_data_flow_relayed().await?;
199
200 Ok(())
201 }
202
203 async fn handle_passive_roaming_device(&mut self) -> Result<(), Error> {
204 trace!("Handling passive-roaming device");

Callers

nothing calls this directly

Tested by

no test coverage detected