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

Function _handle_pr_start_req_join

chirpstack/src/api/backend/mod.rs:262–294  ·  view source on GitHub ↗
(
    pl: backend::PRStartReqPayload,
    phy: lrwn::PhyPayload,
)

Source from the content-addressed store, hash-verified

260}
261
262async fn _handle_pr_start_req_join(
263 pl: backend::PRStartReqPayload,
264 phy: lrwn::PhyPayload,
265) -> Result<backend::PRStartAnsPayload> {
266 let rx_info = roaming::ul_meta_data_to_rx_info(&pl.ul_meta_data)?;
267 let tx_info = roaming::ul_meta_data_to_tx_info(&pl.ul_meta_data)?;
268 let region_common_name = CommonName::from_str(&pl.ul_meta_data.rf_region)?;
269 let region_config_id = region::get_region_config_id(region_common_name)?;
270 let dr = pl.ul_meta_data.data_rate.unwrap_or_default();
271
272 let ufs = UplinkFrameSet {
273 uplink_set_id: Uuid::new_v4(),
274 dr,
275 ch: helpers::get_uplink_ch(&region_config_id, tx_info.frequency, dr)?,
276 phy_payload: phy,
277 tx_info,
278 rx_info_set: rx_info,
279 gateway_private_up_map: HashMap::new(),
280 gateway_private_down_map: HashMap::new(),
281 gateway_tenant_id_map: HashMap::new(),
282 gateway_downlink_priority_map: HashMap::new(),
283 region_common_name,
284 region_config_id,
285 roaming_meta_data: Some(RoamingMetaData {
286 base_payload: pl.base.clone(),
287 ul_meta_data: pl.ul_meta_data.clone(),
288 }),
289 };
290
291 // This flow will return RoamingIsNotAllowed in case allow_roaming
292 // is not enabled in the device-profile.
293 join_sns::JoinRequest::start_pr(ufs, pl).await
294}
295
296async fn _handle_pr_start_req_data(
297 pl: backend::PRStartReqPayload,

Callers 1

_handle_pr_start_reqFunction · 0.85

Calls 4

ul_meta_data_to_rx_infoFunction · 0.85
ul_meta_data_to_tx_infoFunction · 0.85
get_region_config_idFunction · 0.85
get_uplink_chFunction · 0.85

Tested by

no test coverage detected