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

Changeset 4466


Ignore:
Timestamp:
Sep 24, 2009, 12:51:20 AM (8 years ago)
Author:
stud-dettling
Message:
  • Updated interface of network notification module and network notification client (nwnclient).
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

    r4451 r4466  
    128128  void create_tunnel_reserve(NSLP_Context *context);
    129129#ifdef USE_AHO
    130   void process_aho_event(hostaddress &cur_address, address &arn_identifier);
    131   void process_ho_event(hostaddress &new_address);
     130  void process_aho_event(const string iface, macaddress &l2_ap_n, hostaddress &l3_ar_n);
     131  void process_ho_event(const string iface, macaddress &l2_ap_n, hostaddress &l3_ar_n, hostaddress &l3_mn);
    132132        //
    133133#endif
  • qos-nslp/branches/20090610-qos-nslp-aho/src/ProcessingModule.cpp

    r4451 r4466  
    328328                                DLog(param.name, "Processing handover event.");
    329329
    330                                 const struct nwn_uds_msg *uds_msg = (struct nwn_uds_msg *)nslp_data->get_buffer();
    331330                                if (nf_type == APIMsg::anticipated_handover_event) {
    332                                         hostaddress cur_address;
    333 
    334                                         if (uds_msg->aho_msg.nwn_current_ip_type == NWN_ADDRESS_TYPE_IPV4) {
    335                                                 cur_address.set_ip(uds_msg->aho_msg.nwn_current_ipv4);
    336                                         }
    337                                         else if (uds_msg->aho_msg.nwn_current_ip_type == NWN_ADDRESS_TYPE_IPV6) {
    338                                                 cur_address.set_ip(uds_msg->aho_msg.nwn_current_ipv6);
    339                                         }
    340 
    341                                         // TODO: include mac address / netaddress
    342                                         netaddress netaddr;
    343 
    344                                         macaddress macaddr;
     331                                        const struct aho_msg_body *aho_message = (struct aho_msg_body *)nslp_data->get_buffer();
     332                                        macaddress l2_ap_n;
     333                                        hostaddress l3_ar_n;
     334
     335                                        l2_ap_n.set_mac(aho_message->l2_ap_n);
     336
     337                                        if (aho_message->l3_af == AF_INET) {
     338                                                l3_ar_n.set_ip(aho_message->l3_ar_n_ipv4);
     339                                        }
     340                                        else if (aho_message->l3_af == AF_INET6) {
     341                                                l3_ar_n.set_ip(aho_message->l3_ar_n_ipv6);
     342                                        }
     343
     344                                        DLog(param.name, "AHO-iface: " << aho_message->iface);
     345                                        DLog(param.name, "AHO-l2_ap_n: " << l2_ap_n);
     346                                        DLog(param.name, "AHO-l3_ar_n: " << l3_ar_n);
     347
     348                                        statemodule.process_aho_event(aho_message->iface, l2_ap_n, l3_ar_n);
     349
     350
     351
     352// T E S T   C A S E S   M A C A D D R R E S S
     353//                                      macaddress macaddr;
    345354                                        //DLog(param.name, "macaddr-test: " << macaddr);
    346                                         macaddr.set_mac(uds_msg->aho_msg.nwn_new_ap_mac);
     355//                                      macaddr.set_mac(uds_msg->aho_msg.nwn_new_ap_mac);
    347356                                        /*
    348357                                        DLog(param.name, "macaddr-test: " << macaddr);
     
    412421                                        }
    413422                                        */
    414 
    415                                         statemodule.process_aho_event(cur_address, macaddr);
    416423                                }
    417424                                else if (nf_type == APIMsg::handover_event) {
    418                                         hostaddress new_address;
    419 
    420                                         if (uds_msg->ho_msg.nwn_new_ip_type == NWN_ADDRESS_TYPE_IPV4) {
    421                                                 new_address.set_ip(uds_msg->ho_msg.nwn_new_ipv4);
    422                                         }
    423                                         else if (uds_msg->ho_msg.nwn_new_ip_type == NWN_ADDRESS_TYPE_IPV6) {
    424                                                 new_address.set_ip(uds_msg->ho_msg.nwn_new_ipv6);
    425                                         }
    426 
    427                                         statemodule.process_ho_event(new_address);
     425                                        const struct ho_msg_body *ho_message = (struct ho_msg_body *)nslp_data->get_buffer();
     426                                        macaddress l2_ap_n;
     427                                        hostaddress l3_ar_n;
     428                                        hostaddress l3_mn;
     429
     430                                        l2_ap_n.set_mac(ho_message->l2_ap_n);
     431
     432                                        if (ho_message->l3_af == AF_INET) {
     433                                                l3_ar_n.set_ip(ho_message->l3_ar_n_ipv4);
     434                                                l3_mn.set_ip(ho_message->l3_mn_ipv4);
     435                                        }
     436                                        else if (ho_message->l3_af == AF_INET6) {
     437                                                l3_ar_n.set_ip(ho_message->l3_ar_n_ipv6);
     438                                                l3_mn.set_ip(ho_message->l3_mn_ipv6);
     439                                        }
     440
     441                                        DLog(param.name, "AHO-iface: " << ho_message->iface);
     442                                        DLog(param.name, "AHO-l2_ap_n: " << l2_ap_n);
     443                                        DLog(param.name, "AHO-l3_ar_n: " << l3_ar_n);
     444                                        DLog(param.name, "AHO-l3_mn: " << l3_mn);
     445
     446                                        statemodule.process_ho_event(ho_message->iface, l2_ap_n, l3_ar_n, l3_mn);
    428447                                }
    429448
    430                                 // nslp_data will be deletet also
     449                                // nslp_data will be deleted also
    431450                                delete apimsg;
    432451                                DLog(param.name,"process_gist_api_msg() - done.");
     
    463482                nslperror = statemodule.process_tp_recv_msg(*netmsg, result_pdu, down, my_sid, rcvd_mri);
    464483                if (nslperror != state_manager::error_old_pdu) {
    465                         // it the direction of the MRI is downstream, the message came from the upstream peer
     484                        // if the direction of the MRI is downstream, the message came from the upstream peer
    466485                        statemodule.process_sii_handle(sii, !down, my_sid, rcvd_mri, APIMsg::error_msg_delivered);
    467486                }
  • qos-nslp/branches/20090610-qos-nslp-aho/src/QoS_StateModule.cpp

    r4451 r4466  
    37773777 * @param cur_address the current interface address which will change
    37783778 */
    3779 void state_manager::process_aho_event(hostaddress &cur_address, address &arn_identifier) {
    3780         address *ptr_arn_identifier = &arn_identifier;
    3781         netaddress *ptr_arn_netaddress;
    3782         macaddress *ptr_arn_macaddress;
    3783 
    3784         ILog(state_manager::modname, "process_aho_event(), new_address: " << cur_address);
    3785 
    3786         if ((ptr_arn_netaddress = dynamic_cast<netaddress*>(ptr_arn_identifier)) != NULL) {
    3787                 ILog(state_manager::modname, "Type of arn_identifier is: netaddress");
    3788 
    3789                 // TODO: map netaddress to hostaddress
    3790         }
    3791         else if ((ptr_arn_macaddress = dynamic_cast<macaddress*>(ptr_arn_identifier)) != NULL) {
    3792                 // TODO
    3793                 ILog(state_manager::modname, "Type of arn_identifier is: macaddress");
    3794 
    3795                 // TODO: map macaddress to hostaddress
    3796         }
    3797         else {
    3798                 ILog(state_manager::modname, color[magenta] << "Type of arn_identifier is neither netaddress nor macaddress. Anticipated Handover failed!" << color[off]);
    3799 
    3800                 return;
    3801         }
     3779void state_manager::process_aho_event(const string iface, macaddress &l2_ap_n, hostaddress &l3_ar_n) {
     3780        ILog(state_manager::modname, "process_aho_event()");
     3781
     3782        ILog(state_manager::modname, "AHO-iface: " << iface);
     3783        ILog(state_manager::modname, "AHO-l2_ap_n: " << l2_ap_n);
     3784        ILog(state_manager::modname, "AHO-l3_ar_n: " << l3_ar_n);
    38023785
    38033786        // TODO: Anticipated Handover - Phase 1
     
    38083791 * @param new_address the new interface address
    38093792 */
    3810 void state_manager::process_ho_event(hostaddress &new_address) {
    3811         ILog(state_manager::modname, "process_ho_event(), new_address: " << new_address);
     3793void state_manager::process_ho_event(const string iface, macaddress &l2_ap_n, hostaddress &l3_ar_n, hostaddress &l3_mn) {
     3794        ILog(state_manager::modname, "process_ho_event()");
     3795
     3796        ILog(state_manager::modname, "AHO-iface: " << iface);
     3797        ILog(state_manager::modname, "AHO-l2_ap_n: " << l2_ap_n);
     3798        ILog(state_manager::modname, "AHO-l3_ar_n: " << l3_ar_n);
     3799        ILog(state_manager::modname, "AHO-l3_mn: " << l3_mn);
     3800
     3801        // TODO: Anticipated Handover - Phase 3 / 2a
    38123802}
    38133803#endif // USE_AHO
Note: See TracChangeset for help on using the changeset viewer.