(
pl: backend::XmitDataReqPayload,
)
| 494 | } |
| 495 | |
| 496 | async fn _handle_xmit_data_req( |
| 497 | pl: backend::XmitDataReqPayload, |
| 498 | ) -> Result<backend::XmitDataAnsPayload> { |
| 499 | if let Some(ul_meta_data) = &pl.ul_meta_data { |
| 500 | let rx_info = roaming::ul_meta_data_to_rx_info(ul_meta_data)?; |
| 501 | let tx_info = roaming::ul_meta_data_to_tx_info(ul_meta_data)?; |
| 502 | let region_common_name = CommonName::from_str(&ul_meta_data.rf_region)?; |
| 503 | let region_config_id = region::get_region_config_id(region_common_name)?; |
| 504 | let dr = ul_meta_data.data_rate.unwrap_or_default(); |
| 505 | let phy = lrwn::PhyPayload::from_slice(&pl.phy_payload)?; |
| 506 | |
| 507 | let ufs = UplinkFrameSet { |
| 508 | uplink_set_id: Uuid::new_v4(), |
| 509 | dr, |
| 510 | ch: helpers::get_uplink_ch(®ion_config_id, tx_info.frequency, dr)?, |
| 511 | phy_payload: phy, |
| 512 | tx_info, |
| 513 | rx_info_set: rx_info, |
| 514 | gateway_private_up_map: HashMap::new(), |
| 515 | gateway_private_down_map: HashMap::new(), |
| 516 | gateway_tenant_id_map: HashMap::new(), |
| 517 | gateway_downlink_priority_map: HashMap::new(), |
| 518 | region_common_name, |
| 519 | region_config_id, |
| 520 | roaming_meta_data: Some(RoamingMetaData { |
| 521 | base_payload: pl.base.clone(), |
| 522 | ul_meta_data: ul_meta_data.clone(), |
| 523 | }), |
| 524 | }; |
| 525 | |
| 526 | data_sns::Data::handle(ufs).await?; |
| 527 | } |
| 528 | |
| 529 | if let Some(dl_meta_data) = &pl.dl_meta_data { |
| 530 | data_fns::Data::handle(pl.clone(), dl_meta_data.clone()).await?; |
| 531 | } |
| 532 | |
| 533 | Ok(backend::XmitDataAnsPayload { |
| 534 | base: pl |
| 535 | .base |
| 536 | .to_base_payload_result(backend::ResultCode::Success, ""), |
| 537 | }) |
| 538 | } |
| 539 | |
| 540 | async fn handle_home_ns_req( |
| 541 | sender_client: Arc<backend::Client>, |
no test coverage detected