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

Method _handle_relayed

chirpstack/src/downlink/join.rs:98–130  ·  view source on GitHub ↗
(
        downlink_id: u32,
        relay_ctx: &RelayContext,
        ufs: &UplinkFrameSet,
        tenant: &tenant::Tenant,
        device: &mut device::Device,
        join_accept: &PhyPayload,
    

Source from the content-addressed store, hash-verified

96 }
97
98 async fn _handle_relayed(
99 downlink_id: u32,
100 relay_ctx: &RelayContext,
101 ufs: &UplinkFrameSet,
102 tenant: &tenant::Tenant,
103 device: &mut device::Device,
104 join_accept: &PhyPayload,
105 ) -> Result<()> {
106 let mut ctx = JoinAccept {
107 uplink_frame_set: ufs,
108 relay_context: Some(relay_ctx),
109 tenant,
110 device,
111 join_accept,
112 network_conf: config::get_region_network(&ufs.region_config_id)?,
113 region_conf: region::get(&ufs.region_config_id)?,
114
115 downlink_frame: chirpstack_api::gw::DownlinkFrame {
116 downlink_id,
117 ..Default::default()
118 },
119 downlink_gateway: None,
120 };
121
122 ctx.set_device_gateway_rx_info()?;
123 ctx.select_downlink_gateway()?;
124 ctx.set_tx_info_relayed()?;
125 ctx.set_downlink_frame_relayed()?;
126 ctx.send_join_accept_response().await?;
127 ctx.save_downlink_frame_relayed().await?;
128
129 Ok(())
130 }
131
132 fn set_device_gateway_rx_info(&mut self) -> Result<()> {
133 trace!("Set device-gateway rx-info");

Callers

nothing calls this directly

Calls 8

get_region_networkFunction · 0.85
getFunction · 0.50
set_tx_info_relayedMethod · 0.45

Tested by

no test coverage detected