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

Changeset 4504


Ignore:
Timestamp:
Oct 1, 2009, 1:27:46 PM (8 years ago)
Author:
stud-dettling
Message:
  • Started implementing Anticipated Handover - 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/QoS_StateModule.h

    r4503 r4504  
    135135  void process_aho_event(const string iface, macaddress &l2_ap_n, hostaddress &l3_ar_n);
    136136  void process_ho_event(const string iface, macaddress &l2_ap_n, hostaddress &l3_ar_n, hostaddress &l3_mn);
    137   void aho_phase_1(const NSLP_Context* context, void *param1, void *param2);
    138 //  void ho_phase_2a_3(const NSLP_Context* context, void *param1, void *param2);
     137  void aho_phase_1(NSLP_Context* context, void *param1, void *param2);
     138//  void ho_phase_2a_3(NSLP_Context* context, void *param1, void *param2);
    139139#endif
    140140 
  • qos-nslp/branches/20090610-qos-nslp-aho/include/qos_nslp_contextmap.h

    r4503 r4504  
    5858  bool insert(const sessionid& sid, NSLP_Context* context);
    5959  void erase(const sessionid& sid);
    60   typedef void (state_manager::*proc_func_t)(const NSLP_Context *, void *, void *);
     60  typedef void (state_manager::*proc_func_t)(NSLP_Context *, void *, void *);
    6161  void traverse_contexts(state_manager *sm, proc_func_t func, void *param1, void *param2);
    6262
  • qos-nslp/branches/20090610-qos-nslp-aho/src/QoS_StateModule.cpp

    r4503 r4504  
    40074007        ILog(state_manager::modname, "process_aho_event()");
    40084008
    4009         ILog(state_manager::modname, "AHO-iface: " << iface);
    4010         ILog(state_manager::modname, "AHO-l2_ap_n: " << l2_ap_n);
    4011         ILog(state_manager::modname, "AHO-l3_ar_n: " << l3_ar_n);
    4012 
    4013         // TODO: Anticipated Handover - Phase 1
     4009        DLog(state_manager::modname, "AHO-iface: " << iface);
     4010        DLog(state_manager::modname, "AHO-l2_ap_n: " << l2_ap_n);
     4011        DLog(state_manager::modname, "AHO-l3_ar_n: " << l3_ar_n);
     4012
     4013        //
     4014        // Anticipated Handover - Phase 1
     4015        //
     4016        ILog(state_manager::modname, color[yellow] << "Starting with Anticipated Handover - Phase1 for Interface " << iface << color[off]);
     4017       
    40144018        // TODO: Locking while Handover
    4015        
    4016         contextmap.traverse_contexts(this, &qos_nslp::state_manager::aho_phase1, NULL, NULL);
     4019        contextmap.traverse_contexts(this, &qos_nslp::state_manager::aho_phase_1, (void *)&l3_ar_n, NULL);
    40174020
    40184021// ------------------------------------------------------------------------------------
     4022/*
    40194023        reservereq* res = new reservereq();
    40204024        //copy_reserve_message(reservemsg, tunnel_res);
     
    40364040        known_nslp_pdu *pdu = dynamic_cast<known_nslp_pdu*>(res);
    40374041
    4038 //      ntlp::sessionid* sid = new sessionid();
    4039 //      sid->generate_random();
    4040         //tsid = *sid;
    4041 
    40424042        //bound_sessionid* send_bs = new bound_sessionid();
    40434043        //send_bs->set(tsid);
    40444044        //reservemsg->set_bound_sid(send_bs);
    40454045
    4046 //------------------------------------------
    4047 //      NetMsg* netmsg = NULL;
    4048 //      uchar* buffer;
    4049 //      state_manager::error_t nslpres;
    4050 
    40514046        ntlp::sessionid* sid = new sessionid();
    40524047        sid->generate_random();
    4053 
    4054 //      // now serialize
    4055 //      nslpres = generate_pdu(*pdu, netmsg);
    4056 
    4057 //      if(nslpres == state_manager::error_ok) {
    4058 //              netmsg->to_start();
    4059 //              buffer = netmsg->get_buffer();
    4060 //              nslpres = SendMessage(buffer, netmsg->get_size(), sigmsg);
    4061 //      }
    40624048
    40634049// ------------------------------------------------------------------------------------
     
    40724058        mri_explicitsigtarget *est_mri = new mri_explicitsigtarget(pc_mri, orig_sig_addr, dest_sig_addr);
    40734059
    4074                 //ProcessingModule::SendMessage(buffer, netmsg->get_size(), sid, est_mri, 0);
    4075 
    40764060// ------------------------------------------------------------------------------------
    40774061
     
    40814065        sigmsg->set_sig_mri(est_mri);
    40824066        sigmsg->send_or_delete();
    4083 //      }
     4067*/
    40844068}
    40854069
     
    40994083}
    41004084
    4101 void state_manager::aho_phase_1(const NSLP_Context* context, void *param1, void *param2) {
    4102         ILog(state_manager::modname, "aho_phase_1(context)");
     4085void state_manager::aho_phase_1(NSLP_Context* context, void *param1, void *param2) {
     4086        ILog(state_manager::modname, "aho_phase_1()");
     4087
     4088        hostaddress *l3_ar_n;
     4089        uint128 tmp_sid;
     4090        NSLP_Context::qn_type_t qn_type;
     4091        const ntlp::mri_pathcoupled* pc_mri = NULL;
     4092        bool down;
     4093
     4094
     4095        l3_ar_n = reinterpret_cast<hostaddress *>(param1);
     4096        if(l3_ar_n == NULL) {
     4097                ILog(state_manager::modname, "aho_phase_1: Missing parameter l3_ar_n!");
     4098                return;
     4099        }
     4100
     4101        ILog(state_manager::modname, "aho_phase_1: l3_ar_n: " << *l3_ar_n);
     4102
     4103        if(context) {
     4104                context->lock();
     4105                context->get_s_id(tmp_sid);
     4106                qn_type = context->get_qn_type();
     4107                pc_mri = context->get_mri();
     4108                down = context->get_downstream();
     4109                context->unlock();
     4110
     4111                ntlp::sessionid sid(tmp_sid);
     4112
     4113                DLog(state_manager::modname, "Transfering Reservation with SID [" << sid.to_string() << "]");
     4114                switch(qn_type) {
     4115                        case NSLP_Context::QNI:
     4116                                DLog(state_manager::modname, "QN-Type: QNI");
     4117                                break;
     4118                        case NSLP_Context::QNR:
     4119                                DLog(state_manager::modname, "QN-Type: QNR");
     4120                                break;
     4121                        case NSLP_Context::QNE:
     4122                                DLog(state_manager::modname, "QN-Type: QNE");
     4123                                break;
     4124                }
     4125                DLog(state_manager::modname, "PC-MRI src address: " << pc_mri->get_sourceaddress());
     4126                DLog(state_manager::modname, "PC-MRI dst address: " << pc_mri->get_destaddress());
     4127                DLog(state_manager::modname, "PC-MRI downstream: " << (pc_mri->get_downstream() ? "true" : "false" ));
     4128                DLog(state_manager::modname, "context->get_downstream(): " << (down ? "true" : "false" ));
     4129        }
     4130
     4131        if(qn_type == NSLP_Context::QNI) {
     4132                // TODO: RESERE aus NSLP_Context bauen und per EST-MRM an AR_N senden
     4133        }
     4134
     4135        if(qn_type == NSLP_Context::QNR) {
     4136                // TODO: QUERY aus NSLP_Context bauen und per EST-MRM an AR_N senden
     4137        }
     4138
     4139        ILog(state_manager::modname, "aho_phase_1() - done");
    41034140}
    41044141#endif // USE_AHO
Note: See TracChangeset for help on using the changeset viewer.