NSIS-ka
A free C++ implementation of NSIS protocols

Changeset 4527


Ignore:
Timestamp:
Oct 7, 2009, 12:46:11 PM (8 years ago)
Author:
stud-dettling
Message:
  • Some minor changes to AHO phase 1.
Location:
qos-nslp/branches/20090610-qos-nslp-aho
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • qos-nslp/branches/20090610-qos-nslp-aho/include/nslp_context.h

    r3702 r4527  
    134134        qspec_object* get_context_qspec();
    135135
     136#ifdef USE_AHO
     137        /// types and functions for an anticipated handover
     138        enum node_role_t {
     139                MN,     // mobile node
     140                ARN,    // new access router
     141                OTHER   // all other nodes
     142        };
     143        void set_aho_node_role(NSLP_Context::node_role_t role);
     144        NSLP_Context::node_role_t get_aho_node_role();
     145#endif
     146
    136147         /// lock mutex
    137148        void lock();
     
    180191            qspec_object* context_qspec;
    181192
     193#ifdef USE_AHO
     194            NSLP_Context::node_role_t node_role;
     195#endif
     196
    182197            /// This mutex is used to lock the NSLP context
    183198            pthread_mutex_t mutex;
  • qos-nslp/branches/20090610-qos-nslp-aho/src/QoS_StateModule.cpp

    r4526 r4527  
    41134113        NSLP_Context::qn_type_t qn_type;
    41144114        ntlp::mri_pathcoupled* pc_mri = NULL;
    4115 //      bool down;
    41164115        known_nslp_pdu *pdu;
     4116
     4117        bool is_flow_sender=false;
     4118        bool is_flow_receiver=false;
    41174119
    41184120
     
    41234125        }
    41244126
    4125         DLog(state_manager::modname, "aho_phase_1: l3_ar_n: " << *l3_ar_n);
    4126 
    41274127        if(context) {
    41284128                context->lock();
     4129                // retrieve some informations from context
    41294130                context->get_s_id(tmp_sid);
    41304131                qn_type = context->get_qn_type();
    41314132                pc_mri = context->get_mri()->copy();
    4132 //              down = context->get_downstream();
    4133                 // TODO: set role of this node for AHO
     4133
     4134                NSLP_Context::node_role_t role = context->get_aho_node_role();
     4135                switch(role) {
     4136                case NSLP_Context::MN:
     4137                        DLog(state_manager::modname, "Node Role: MN");
     4138                        break;
     4139                case NSLP_Context::ARN:
     4140                        DLog(state_manager::modname, "Node Role: ARN");
     4141                        break;
     4142                case NSLP_Context::OTHER:
     4143                        DLog(state_manager::modname, "Node Role: OTHER");
     4144                        break;
     4145                }
     4146
     4147                // set role of node during an AHO in context
     4148                context->set_aho_node_role(NSLP_Context::MN);
     4149
     4150                role = context->get_aho_node_role();
     4151                switch(role) {
     4152                case NSLP_Context::MN:
     4153                        DLog(state_manager::modname, "Node Role: MN");
     4154                        break;
     4155                case NSLP_Context::ARN:
     4156                        DLog(state_manager::modname, "Node Role: ARN");
     4157                        break;
     4158                case NSLP_Context::OTHER:
     4159                        DLog(state_manager::modname, "Node Role: OTHER");
     4160                        break;
     4161                }
    41344162                context->unlock();
    41354163
    41364164                ntlp::sessionid sid(tmp_sid);
     4165                is_flow_sender = is_flow_source(pc_mri);
     4166                is_flow_receiver = is_flow_destination(pc_mri);
     4167
    41374168
    41384169                ILog(state_manager::modname, "Starting AHO-Phase 1 for Reservation with SID [" << sid.to_string() << "]");
    4139 
    4140                 /*
    4141                 switch(qn_type) {
    4142                         case NSLP_Context::QNI:
    4143                                 DLog(state_manager::modname, "QN-Type: QNI");
    4144                                 break;
    4145                         case NSLP_Context::QNR:
    4146                                 DLog(state_manager::modname, "QN-Type: QNR");
    4147                                 break;
    4148                         case NSLP_Context::QNE:
    4149                                 DLog(state_manager::modname, "QN-Type: QNE");
    4150                                 break;
    4151                 }
    4152                 */
    4153                 //ILog(state_manager::modname, "PC-MRI src: " << pc_mri->get_sourceaddress() << ", PC-MRI dst: " << pc_mri->get_destaddress());
    41544170                ILog(state_manager::modname, "PC-MRI src address: " << pc_mri->get_sourceaddress());
    41554171                ILog(state_manager::modname, "PC-MRI dst address: " << pc_mri->get_destaddress());
    41564172
    4157                 /*
    4158                 DLog(state_manager::modname, "PC-MRI src address: " << pc_mri->get_sourceaddress());
    4159                 DLog(state_manager::modname, "PC-MRI dst address: " << pc_mri->get_destaddress());
    4160                 DLog(state_manager::modname, "PC-MRI downstream: " << (pc_mri->get_downstream() ? "true" : "false"));
    4161 //              DLog(state_manager::modname, "context->get_downstream(): " << (down ? "true" : "false"));
    4162                 DLog(state_manager::modname, "is_flow_source(): " << (is_flow_source(pc_mri) ? "true" : "false"));
    4163                 DLog(state_manager::modname, "is_flow_destination(): " << (is_flow_destination(pc_mri) ? "true" : "false"));
    4164                 */
    4165                
    41664173
    41674174                // build RESERVE or QUERY message depending
     
    41804187               
    41814188                        pdu = dynamic_cast<known_nslp_pdu*>(res);
    4182                         assert(pdu != NULL);
    4183 
    4184                         // logging
    4185                         if(is_flow_source(pc_mri)) {
    4186                                 ILog(state_manager::modname, "AHO with mobile node as sender and QNI, sending "
    4187                                                 << color[blue] << "RESERVE-AHO" << color[off] << "to address: " << *l3_ar_n);
    4188                         }
    4189                         else if(is_flow_destination(pc_mri)) {
    4190                                 ILog(state_manager::modname, "AHO with mobile node as receiver and QNI, sending "
    4191                                                 << color[blue] << "RESERVE-AHO" << color[off] << "to address: " << *l3_ar_n);
    4192                         }
    41934189                }
    41944190                else if(qn_type == NSLP_Context::QNR) {
     
    41994195
    42004196                        pdu = dynamic_cast<known_nslp_pdu*>(query);
    4201                         assert(pdu != NULL);
    4202 
    4203                         // logging
    4204                         if(is_flow_source(pc_mri)) {
    4205                                 ILog(state_manager::modname, "AHO with mobile node as sender and QNR, sending "
    4206                                                 << color[blue] << "QUERY-AHO" << color[off] << "to address: " << *l3_ar_n);
    4207                         }
    4208                         else if(is_flow_destination(pc_mri)) {
    4209                                 ILog(state_manager::modname, "AHO with mobile node as receiver and QNR, sending "
    4210                                                 << color[blue] << "QUERY-AHO" << color[off] << "to address: " << *l3_ar_n);
    4211                         }
    42124197                }
    42134198                else {
     
    42154200                        return;
    42164201                }
     4202
     4203                assert(pdu != NULL);
    42174204
    42184205
     
    42374224
    42384225                // logging
    4239                 /*
    4240                 if((qn_type == NSLP_Context::QNI) && (is_flow_source(pc_mri))) {
    4241                         ILog(state_manager::modname, "AHO with mobile node as sender and QNI, sending " << color[blue] << "RESERVE-AHO" << color[off] << "to address: " << *l3_ar_n);
     4226                if((qn_type == NSLP_Context::QNI) && is_flow_sender) {
     4227                        ILog(state_manager::modname, "AHO with mobile node as sender and QNI, sending "
     4228                                        << color[blue] << "RESERVE-AHO" << color[off] << " to address: " << *l3_ar_n);
    42424229                }
    4243                 else if((qn_type == NSLP_Context::QNI) && (is_flow_destination(pc_mri))) {
    4244                         ILog(state_manager::modname, "AHO with mobile node as receiver and QNI, sending " << color[blue] << "RESERVE-AHO" << color[off] << ".");
     4230                else if((qn_type == NSLP_Context::QNI) && is_flow_receiver) {
     4231                        ILog(state_manager::modname, "AHO with mobile node as receiver and QNI, sending "
     4232                                        << color[blue] << "RESERVE-AHO" << color[off] << " to address: " << *l3_ar_n);
    42454233                }
    4246                 else if((qn_type == NSLP_Context::QNR) && (is_flow_source(pc_mri))) {
    4247                         ILog(state_manager::modname, "AHO with mobile node as sender and QNR, sending " << color[blue] << "QUERY-AHO" << color[off] << ".");
     4234                else if((qn_type == NSLP_Context::QNR) && is_flow_sender) {
     4235                        ILog(state_manager::modname, "AHO with mobile node as sender and QNR, sending "
     4236                                        << color[blue] << "QUERY-AHO" << color[off] << " to address: " << *l3_ar_n);
    42484237                }
    4249                 else if((qn_type == NSLP_Context::QNR) && (is_flow_destination(pc_mri))) {
    4250                         ILog(state_manager::modname, "AHO with mobile node as receiver and QNR, sending " << color[blue] << "QUERY-AHO" << color[off] << ".");
     4238                else if((qn_type == NSLP_Context::QNR) && is_flow_receiver) {
     4239                        ILog(state_manager::modname, "AHO with mobile node as receiver and QNR, sending "
     4240                                        << color[blue] << "QUERY-AHO" << color[off] << " to address: " << *l3_ar_n);
    42514241                }
    4252                 */
    4253                
     4242
    42544243
    42554244                // send message
     
    42694258
    42704259        //
     4260        // TODO: reset node role to OTHER
    42714261
    42724262        ILog(state_manager::modname, "aho_phase_3_2a() - done");
  • qos-nslp/branches/20090610-qos-nslp-aho/src/nslp_context.cpp

    r3702 r4527  
    7373    set_qn_type(QNE);
    7474    context_mri = logical_mri = old_mri = 0;
     75
     76#ifdef USE_AHO
     77    set_aho_node_role(OTHER);
     78#endif
    7579} // end constructor
    7680
     
    661665//@}
    662666
     667#ifdef USE_AHO
     668/** This function sets the role of a node during an anticipated handover.
     669  * @param role the role of the node.
     670  */
     671void NSLP_Context::set_aho_node_role(NSLP_Context::node_role_t role)
     672{
     673  node_role = role;
     674}
     675
     676/** This function gets the role of a node during an anticipated handover.
     677  * @return the role of the node.
     678  */
     679NSLP_Context::node_role_t NSLP_Context::get_aho_node_role()
     680{
     681  return node_role;
     682}
     683#endif
     684
    663685} // end namespace qos_nslp
Note: See TracChangeset for help on using the changeset viewer.