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

Changeset 4537


Ignore:
Timestamp:
Oct 9, 2009, 3:57:14 PM (8 years ago)
Author:
stud-dettling
Message:
  • Next step in implementing AHO phase 2.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • qos-nslp/branches/20090610-qos-nslp-aho/src/QoS_StateModule.cpp

    r4536 r4537  
    368368
    369369                                known_nslp_pdu *notify_pdu = dynamic_cast<known_nslp_pdu*>(notify);
     370                                assert(notify_pdu != NULL);
    370371
    371372
     
    383384                }
    384385                else if(role == NSLP_AHO_Context::MN) {
    385                         // we are ARN and go on with AHO phase 2a
     386                        // we are MN and go on with AHO phase 2a
    386387                        // TODO
    387388                }
     
    389390                        //
    390391                        ILog(state_manager::modname, "Received RESERVE-AHO, but don't know what to do because I'm neither MN nor ARN!");
    391                         // TODO: check error code
    392392                        return error_nothing_to_do;
    393393                }
     
    424424
    425425               
    426                 // TODO: proceed with aho
     426                // we are ARN and start with AHO phase 2 / 2a
     427                mri_pathcoupled pc_mri = rcvd_mri->get_mri_pc();
     428                bool down = pc_mri.get_downstream();
     429
     430                if(down) {
     431                        // downstream
     432
     433                        // TODO: send QUERY downstream
     434                }
     435                else {
     436                        // upstream
     437
     438                        // create NOTIFY message
     439                        notifymsg* notify = new notifymsg();
     440
     441                        info_spec* send_error = new info_spec(NULL, info_spec::information, info_spec::InitReserve, 0);
     442                        notify->set_errorobject(send_error);
     443
     444                        known_nslp_pdu *notify_pdu = dynamic_cast<known_nslp_pdu*>(notify);
     445                        assert(notify_pdu != NULL);
     446
     447
     448                        // send NOTIFY message with EST-MRM
     449                        hostaddress orig_sig_addr = rcvd_mri->get_dest_sig_address();
     450                        hostaddress dest_sig_addr = pc_mri.get_sourceaddress();
     451                        mri_explicitsigtarget *est_mri = new mri_explicitsigtarget(pc_mri, orig_sig_addr, dest_sig_addr);
     452
     453                        ExplicitSignalingMsg* sigmsg = new ExplicitSignalingMsg();
     454                        sigmsg->set_pdu(notify_pdu);
     455                        sigmsg->set_sid(*sid);
     456                        sigmsg->set_sig_mri(est_mri);
     457                        sigmsg->send_or_delete();
     458                }
    427459
    428460                return error_nothing_to_do;
Note: See TracChangeset for help on using the changeset viewer.