/*! @defgroup _mesh_layer3_ OpenAirInterface MESH L2/L3 Interfaces * @{ */ /*! \brief Ask RRC to establish a radio bearer. Used mainly by CH, except during initialization phase of MR for default bearers (SRB0,SRB1). Sends CH IPAddr to RRC for attachment signaling (for example during DTCH_B configuration). */ void rrm_rb_establish_req( Instance_t inst , //!< Identification de l'instance LCHAN_DESC *Lchan_desc , //!< Logical Channel Descriptor Array MAC_RLC_MEAS_DESC *Mac_rlc_meas_desc, //!< MAC/RLC Measurement descriptors for RB L2_ID *L2_id , //!< Layer 2 (MAC) IDs for link Transaction_t Trans_id , //!< Transaction ID unsigned char *L3_info , //!< Optional L3 Information L3_INFO_T L3_info_t //!< Type of L3 Information ); /*! \brief RRC response to rb_establish_req. RRC Acknowledgement of reception of rrc_rb_establishment_req. */ void rrc_rb_establish_resp( Instance_t inst , //!< Identification de l'instance Transaction_t Trans_id //!< Transaction ID ); /*! \brief RRC confirmation of rb_establish_req. RRC confirmation of rrc_rb_establishment_req after transactions are complete. Essentially for CH only (except SRB0/1) */ void rrc_rb_establish_cfm( Instance_t inst , //!< Identification de l'instance RB_ID Rb_id , //!< Radio Bearer ID used by RRC RB_TYPE RB_type , //!< Radio Bearer Type Transaction_t Trans_id //!< Transaction ID ); /*! \brief RRC Connection Establishment indication. Message received by RRM in CH at completion of attachment phase of a new MR (after configuration MR IPAddr). Here L3_info contains MR IPAddr. Message received by RRCI in MR after configuration of initial RBs and reception of CH IPAddr. Here L3_info contains CH IPAddr. For MR the RBID's of basic IP services are also required. */ void rrc_cx_establish_ind( Instance_t inst , //!< Identification de l'instance L2_ID L2_id , //!< Layer 2 (MAC) ID Transaction_t Trans_id , //!< Transaction ID unsigned char *L3_info , //!< Optional L3 Information L3_INFO_T L3_info_t , //!< Type of L3 Information RB_ID DTCH_B_id , //!< RBID of broadcast IP service (MR only) RB_ID DTCH_id //!< RBID of default IP service (MR only) ); /*! \brief RRCI Connection Establishment response. Received by RRC in MR at completion of attachment phase and address configuration of a new MR. L3_info contains IPAddr of MR. */ void rrci_cx_establish_resp( Instance_t inst , //!< Identification de l'instance Transaction_t Trans_id , //!< Transaction ID unsigned char *L3_info , //!< Optional L3 Information L3_INFO_T L3_info_t //!< Type of L3 Information ); /*! \brief Ask RRC to modify the QoS/Measurements of a radio bearer */ void rrm_rb_modify_req( Instance_t inst , //!< Identification de l'instance LCHAN_DESC *Lchan_desc , //!< Logical Channel Descriptor Array MAC_RLC_MEAS_DESC *Mac_meas_desc , //!< MAC/RLC Measurement descriptors for RB RB_ID Rb_id , //!< Radio Bearer ID Transaction_t Trans_id //!< Transaction ID ); /*! \brief RRC response to rb_modify_req */ void rrc_rb_modify_resp( Instance_t inst , //!< Identification de l'instance Transaction_t Trans_id //!< Transaction ID ); /*! \brief RRC confirmation of rb_modify_req */ void rrc_rb_modify_cfm( Instance_t inst , //!< Identification de l'instance RB_ID Rb_id , //!< Radio Bearer ID used by RRC Transaction_t Trans_id //!< Transaction ID ); /*! \brief Ask RRC to release a radio bearer */ void rrm_rb_release_req( Instance_t inst , //!< Identification de l'instance RB_ID Rb_id , //!< Radio Bearer ID Transaction_t Trans_id //!< Transaction ID ); /*! \brief RRC response to rb_release_req */ void rrc_rb_release_resp( Instance_t inst , //!< Identification de l'instance Transaction_t Trans_id //!< Transaction ID ); /*! \brief RRC measurement indication */ void rrc_rb_meas_ind( Instance_t inst , //!< Identification de l'instance RB_ID Rb_id , //!< Radio Bearer ID L2_ID L2_id , //!< Layer 2 (MAC) IDs for link MEAS_MODE Meas_mode , //!< Measurement mode (periodic or event-driven) MAC_RLC_MEAS_T Mac_rlc_meas , //!< MAC/RLC measurements Transaction_t Trans_id //!< Transaction ID ); /*! \brief RRM response to rb_meas_ind */ void rrm_rb_meas_resp( Instance_t inst , //!< Identification de l'instance Transaction_t Trans_id //!< Transaction ID ); /*! \brief Configure a sensing measurement */ void rrm_sensing_meas_req( Instance_t inst , //!< Identification de l'instance L2_ID L2_id , //!< Layer 2 (MAC) ID SENSING_MEAS_DESC Sensing_meas_desc, //!< Sensing Measurement Descriptor Transaction_t Trans_id //!< Transaction ID ); /*! \brief RRC response to sensing_meas_req */ void rrc_sensing_meas_resp( Instance_t inst , //!< Identification de l'instance Transaction_t Trans_id //!< Transaction ID ); /*! \brief RRC sensing measurement indication */ void rrc_sensing_meas_ind( Instance_t inst , //!< Identification de l'instance L2_ID L2_id , //!< Layer 2 ID (MAC) of sensing node unsigned int NB_meas , //!< Layer 2 ID (MAC) of sensing node SENSING_MEAS_T *Sensing_meas , //!< Sensing Information Transaction_t Trans_id //!< Transaction ID ); /*! \brief RRM response to sensing_meas_resp */ void rrm_sensing_meas_resp( Instance_t inst , //!< Identification de l'instance Transaction_t Trans_id //!< Transaction ID ); /*! \brief Clusterhead PHY-Synch Indication */ void rrc_phy_synch_to_CH_ind( Instance_t inst , //!< Identification de l'instance unsigned int Ch_index , //!< Clusterhead index L2_ID L2_id //!< Layer 2 ID (MAC) of CH ); /*! \brief Mesh router PHY-Synch Indication */ void rrc_phy_synch_to_MR_ind( Instance_t inst , //!< Identification de l'instance L2_ID L2_id //!< Layer 2 ID (MAC) of MR ); /*! \brief Clusterhead PHY-Out-of-Synch Indication */ void rrc_phy_out_of_synch_CH_ind( Instance_t inst , //!< Identification de l'instance unsigned int Ch_index //!< Clusterhead Index ); /*! \brief MR loss indication */ void rrc_MR_loss_ind( Instance_t inst , //!< Identification de l'instance L2_ID L2_id //!< Layer 2 (MAC) ID ); /*! \brief Release all resources for MR */ void rrm_MR_release_all( Instance_t inst , //!< Identification de l'instance L2_ID L2_id //!< Layer 2 (MAC) ID ); /*! \brief MR attachement indication. Sent by RRC to RRM to indicate the MAC ID of a new MR attached to CH at layer 2 */ void rrc_MR_attach_ind( Instance_t inst , //!< Identification de l'instance L2_ID L2_id //!< Layer 2 (MAC) ID ); /*! \brief initialization CH request . Sent by RRM to RRC to create the default Radio bearer : SRB0 and SRB1 */ void rrm_init_ch_req( Instance_t inst , //!< Identification de l'instance Transaction_t Trans_id , //!< Transaction ID LCHAN_DESC *Lchan_desc_srb0 , //!< Logical Channel Descriptor Array for SRB0 LCHAN_DESC *Lchan_desc_srb1 , //!< Logical Channel Descriptor Array for SRB1 L2_ID *L2_id //!< Layer 2 (MAC) ID ) ; /*! \brief initialization MR request . Sent by RRCI to RRC to create the default Radio bearer : SRB0 and SRB1 */ void rrci_init_mr_req( Instance_t inst , //!< Identification de l'instance Transaction_t Trans_id , //!< Transaction ID LCHAN_DESC *Lchan_desc_srb0 , //!< Logical Channel Descriptor Array for SRB0 LCHAN_DESC *Lchan_desc_srb1 , //!< Logical Channel Descriptor Array for SRB1 unsigned char CH_index , //!< index to identify the CH L2_ID *L2_id //!< Layer 2 (MAC) ID ); /*! \brief sns and ip sensing measurement indication */ void rrc_update_sens( //mod_lor_10_01_25: RRC function, but also IP function Instance_t inst , //!< Identification de l'instance L2_ID L2_id , //!< Layer 2 ID (MAC) of sensing node unsigned int NB_info , //!< Number of channels info Sens_ch_t *Sense_meas , //!< Sensing Information double info_time //!< Info time ); /*! \brief RRC starting sensing request */ void rrc_init_scan_req( Instance_t inst , //!< instance ID L2_ID L2_id , //!< FC address unsigned int Start_fr, unsigned int Stop_fr, unsigned int Meas_band, unsigned int Meas_tpf, unsigned int Nb_channels, unsigned int Overlap, unsigned int Sampl_freq, Transaction_t Trans_id //!< Transaction ID ); /*! \brief RRC ending sensing confirmation */ void rrc_end_scan_conf( Instance_t inst , //!< instance ID L2_ID L2_id , Transaction_t Trans_id //!< Transaction ID ); /*! \brief RRC ending sensing request (sensors side) */ void rrc_end_scan_req( Instance_t inst , //!< instance ID L2_ID L2_id , Transaction_t Trans_id //!< Transaction ID ); /*! \brief RRC starting monitoring request */ void rrc_init_mon_req( Instance_t inst , //!< identification de l'instance L2_ID L2_id , //!< FC address unsigned int *ch_to_scan , unsigned int NB_chan , unsigned int interv , //!< sensing freq. Transaction_t Trans_id //!< Transaction ID ); /*! \brief update open frequencies -> correspondent message via IP */ unsigned int update_open_freq( //mod_lor_10_01_25: IP function; //mod_lor_10_05_18: return unsigned int instead of void Instance_t inst, //!< instance ID L2_ID L2_id, //!< L2_id of the FC/CH unsigned int NB_chan, unsigned int *occ_channels , //!< vector on wich the selected frequencies will be saved //mod_lor_10_05_18 CHANNELS_DB_T *fr_channels, Transaction_t Trans_id ); /*! \brief ask for frequencies -> correspondent message via IP */ unsigned int open_freq_query( //mod_lor_10_01_25: IP function Instance_t inst, L2_ID L2_id , QOS_CLASS_T QoS , Transaction_t Trans_id ); /*! \brief update secondary network frequencies in use -> correspondent message via IP */ unsigned int update_SN_occ_freq( //mod_lor_10_01_25: IP function Instance_t inst , //!< instance ID L2_ID L2_id , //!< Layer 2 (MAC) ID of BTS unsigned int NB_chan , unsigned int *occ_channels , Transaction_t Trans_id //!< Transaction ID ); /*! \brief RRC cluster scan request from CH1 reported to RRM of CH2 */ void rrc_clust_scan_req( Instance_t inst , //!< instance ID L2_ID L2_id , //!< Layer 2 (MAC) ID of CH2 float interv , COOPERATION_T coop , Transaction_t Trans_id ); /*! \brief RRC starting monitoring request ordered from another CH */ void rrc_clust_mon_req( Instance_t inst , //!< identification de l'instance L2_ID L2_id , //!< CH1 address unsigned int *ch_to_scan , unsigned int NB_chan , float interv , //!< sensing freq. Transaction_t Trans_id //!< Transaction ID ); /*! \brief RRC reported confirmation about the connection */ void rrc_init_conn_conf( Instance_t inst , //!< identification de l'instance L2_ID L2_id , unsigned int Session_id , Transaction_t Trans_id ); /*! \brief RRC reported confirmation from SU2 on the proposed channels */ void rrc_freq_all_prop_conf( Instance_t inst , L2_ID L2_id , unsigned int Session_id , unsigned int NB_free_ch , CHANNEL_T *fr_channels , Transaction_t Trans_id ); /*! \brief RRC reported assignement from CH of a channel (SENDORA scenario 2 distr) */ void rrc_rep_freq_ack( Instance_t inst , L2_ID L2_id_ch , L2_ID L2_id_source , L2_ID L2_id_dest , unsigned int Session_id , CHANNEL_T all_channel , Transaction_t Trans_id ); /*! \brief RRC init connection request from another SU (SENDORA scenario 2 distr) */ void rrc_init_conn_req( Instance_t inst , L2_ID L2_id , unsigned int Session_id , QOS_CLASS_T QoS_class , Transaction_t Trans_id ); /*! \brief RRC reported proposed channels from SU1 in SU2 */ void rrc_freq_all_prop( Instance_t inst , L2_ID L2_id , unsigned int Session_id , unsigned int NB_free_ch , CHANNEL_T *fr_channels , Transaction_t Trans_id ); /*! \brief RRC reported proposed channels from SU1 in CH */ void rrc_rep_freq_all( Instance_t inst , L2_ID L2_id_source , L2_ID L2_id_dest , unsigned int Session_id , unsigned int NB_prop_ch , CHANNEL_T *pr_channels , Transaction_t Trans_id ); /*! \brief IP interface. Updating of the sensing measures -> correspondent message via IP */ unsigned int update_sens_results( Instance_t inst , //!< Identification de l'instance L2_ID L2_id , //!< Adresse L2 of the source of information unsigned int NB_info , //!< Number of channel info Sens_ch_t *Sens_meas , //!< Pointer to the sensing information double info_time ); /*! \brief Sensing Unit interface. End sensing confirmation */ void sns_end_scan_conf( Instance_t inst //!< Identification de l'instance ); //mod_lor_10_05_10++ /*! \brief Updating sensing information received from collaborative Cluster */ void up_coll_sens_results( //AAA: to add weights for the collaborative cluster information Instance_t inst , //!< Identification de l'instance L2_ID L2_id , //!< Adresse L2 of the source of information unsigned int NB_info , //!< Number of channel info Sens_ch_t *Sens_meas , //!< Pointer to the sensing information double info_time );//mod_lor_10_05_10-- /*! \brief Received request of frequencies from secondary user -> attribute available channels */ unsigned int ask_freq_to_CH( Instance_t inst , //!< identification de l'instance L2_ID L2_id[NB_SENS_MAX] , //!< L2_id of the SU L2_ID L2_id_dest[NB_SENS_MAX], //!< L2_id of the SU dest unsigned int N_users , //!< quality of service required (i.e. number of channels required) Transaction_t Trans_id //!< Transaction ID ); /*! @} */