(
pl: backend::PRStartReqPayload,
phy: lrwn::PhyPayload,
)
| 260 | } |
| 261 | |
| 262 | async 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(®ion_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 | |
| 296 | async fn _handle_pr_start_req_data( |
| 297 | pl: backend::PRStartReqPayload, |
no test coverage detected