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

Changeset 4451


Ignore:
Timestamp:
Sep 22, 2009, 5:26:07 PM (8 years ago)
Author:
stud-dettling
Message:
  • Added network notification module and network notification client (nwnclient).
Location:
qos-nslp/branches/20090610-qos-nslp-aho
Files:
6 edited

Legend:

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

    r3702 r4451  
    127127                                                  info_spec::errorclass_t e_class, info_spec::errorcode_t e_code);
    128128  void create_tunnel_reserve(NSLP_Context *context);
     129#ifdef USE_AHO
     130  void process_aho_event(hostaddress &cur_address, address &arn_identifier);
     131  void process_ho_event(hostaddress &new_address);
     132        //
     133#endif
    129134 
    130135
  • qos-nslp/branches/20090610-qos-nslp-aho/src/Makefile

    r3701 r4451  
    2626ifdef USE_FLOWINFO
    2727CFLAGS += $(FLOWINFO_CFLAGS)
     28endif
     29
     30ifeq ($(USE_AHO), 1)
     31QOSOPTIONS += -D USE_AHO
    2832endif
    2933
  • qos-nslp/branches/20090610-qos-nslp-aho/src/ProcessingModule.cpp

    r3702 r4451  
    2424#ifdef USE_FLOWINFO
    2525#include "flowinfo.h"
     26#endif
     27
     28#ifdef USE_AHO
     29#include "nwn_uds_msg.h"
    2630#endif
    2731
     
    311315                if (apimsg_subtype == APIMsg::NetworkNotification) {
    312316                        APIMsg::error_t nf_type = apimsg->get_msgstatus();
    313                         DLog("ProcessingModule","Processing mobility event");
    314                         statemodule.process_mobility(rcvd_mri, nf_type);
     317#ifdef USE_AHO
     318                        if ((nf_type != APIMsg::anticipated_handover_event) &&
     319                            (nf_type != APIMsg::handover_event)) {
     320#endif
     321                                DLog(param.name, "Processing mobility event");
     322                                statemodule.process_mobility(rcvd_mri, nf_type);
     323#ifdef USE_AHO
     324                        }
     325                        else {
     326                                // nf_type == APIMsg::anticipated_handover_event ||
     327                                // nf_type == APIMsg::handover_event
     328                                DLog(param.name, "Processing handover event.");
     329
     330                                const struct nwn_uds_msg *uds_msg = (struct nwn_uds_msg *)nslp_data->get_buffer();
     331                                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;
     345                                        //DLog(param.name, "macaddr-test: " << macaddr);
     346                                        macaddr.set_mac(uds_msg->aho_msg.nwn_new_ap_mac);
     347                                        /*
     348                                        DLog(param.name, "macaddr-test: " << macaddr);
     349                                        DLog(param.name, "macaddr-hash-test: " << macaddr.get_hash());
     350
     351                                        bool res=false;
     352                                        macaddress macaddr2("06:05:04:03:02:01", &res);
     353                                        DLog(param.name, "macaddr2-test: " << macaddr2);
     354                                        DLog(param.name, "res: " << res);
     355
     356                                        macaddress macaddr3(macaddr);
     357                                        DLog(param.name, "macaddr3-test: " << macaddr3);
     358
     359                                        macaddress macaddr4 = macaddr2;
     360                                        DLog(param.name, "macaddr4-test: " << macaddr4);
     361
     362                                        uint8_t arr[6];
     363                                        arr[0] = 2; arr[1] = 3; arr[2] = 4; arr[3] = 5; arr[4] = 6; arr[5] = 7;
     364                                        macaddress macaddr5(arr);
     365                                        //macaddress macaddr5;
     366                                        //macaddr5.set_mac(arr);
     367                                        DLog(param.name, "macaddr5-test: " << macaddr5);
     368
     369                                        if (macaddr == macaddr3) {
     370                                                DLog(param.name, "macaddr == macaddr3");
     371                                        }
     372                                        else {
     373                                                DLog(param.name, "macaddr != macaddr3");
     374                                        }
     375
     376                                        if (macaddr == macaddr2) {
     377                                                DLog(param.name, "macaddr == macaddr2");
     378                                        }
     379                                        else {
     380                                                DLog(param.name, "macaddr != macaddr2");
     381                                        }
     382
     383                                        macaddress macaddr6;
     384                                        macaddr6.set_mac("06:05:04:03:02:02");
     385                                        DLog(param.name, "macaddr6-test: " << macaddr6);
     386
     387                                        macaddress macaddr7;
     388                                        macaddress macaddr8;
     389                                        macaddr8.set_mac(macaddr7);
     390                                        DLog(param.name, "macaddr7-test: " << macaddr7);
     391                                        DLog(param.name, "macaddr8-test: " << macaddr8);
     392
     393                                        macaddr7 = macaddr6;
     394                                        macaddr8.set_mac(macaddr7);
     395                                        DLog(param.name, "macaddr7-test: " << macaddr7);
     396                                        DLog(param.name, "macaddr8-test: " << macaddr8);
     397
     398                                        DLog(param.name, "macaddr8-test2: " << macaddr8.get_mac_str());
     399                                        char buffer[18];
     400                                        macaddr2.get_mac_str(buffer);
     401                                        DLog(param.name, "macaddr2-test2: " << buffer);
     402
     403                                        uint8_t arr2[6];
     404                                        macaddr5.get_mac(arr2);
     405                                        DLog(param.name, "macaddr5-test2: " << (uint32_t)arr2[0] << " " << (uint32_t)arr2[1] << " " << (uint32_t)arr2[2] << " " << (uint32_t)arr2[3] << " " << (uint32_t)arr2[4] << " " << (uint32_t)arr2[5]);
     406
     407                                        if (macaddr.equiv(macaddr2)) {
     408                                                DLog(param.name, "macaddr.equiv(macaddr2) == true");
     409                                        }
     410                                        else {
     411                                                DLog(param.name, "macaddr.equiv(macaddr2) == false");
     412                                        }
     413                                        */
     414
     415                                        statemodule.process_aho_event(cur_address, macaddr);
     416                                }
     417                                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);
     428                                }
     429
     430                                // nslp_data will be deletet also
     431                                delete apimsg;
     432                                DLog(param.name,"process_gist_api_msg() - done.");
     433                        }
     434#endif
    315435                } else {
    316436                        DLog(param.name,"SID is NULL");
  • qos-nslp/branches/20090610-qos-nslp-aho/src/QoS_StateModule.cpp

    r3702 r4451  
    37723772
    37733773
     3774#ifdef USE_AHO
     3775/**
     3776 * Process event which indicates necessity of a network change
     3777 * @param cur_address the current interface address which will change
     3778 */
     3779void 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        }
     3802
     3803        // TODO: Anticipated Handover - Phase 1
     3804}
     3805
     3806/**
     3807 * Process event which indicates an occured network change
     3808 * @param new_address the new interface address
     3809 */
     3810void state_manager::process_ho_event(hostaddress &new_address) {
     3811        ILog(state_manager::modname, "process_ho_event(), new_address: " << new_address);
     3812}
     3813#endif // USE_AHO
     3814
     3815
    37743816/**
    37753817 * generates actual network pdu from first parameter
  • qos-nslp/branches/20090610-qos-nslp-aho/src/qosnslp_starter.cpp

    r3701 r4451  
    8787                processing_module.stop_processing();
    8888
     89                EVLog(param.name, "Stopping NTLP Thread");
     90                ntlpthread.stop_processing();
     91
    8992                // aborting ProcessingModule
    9093                EVLog(param.name, "Aborting ProcessingModule");
    9194                processing_module.abort_processing();
     95
     96                EVLog(param.name, "Aborting NTLP Thread");
     97                ntlpthread.abort_processing();
    9298        } catch (ProtLibException& e) {
    9399                cerr << "Fatal: " << e.getstr() << endl;
  • qos-nslp/branches/20090610-qos-nslp-aho/src/start-qosnslp

    r3180 r4451  
    11#!/bin/sh
     2
    23
    34LOGDIR=testing/logs
    45LINKEDFILES="loadmodules intercept flush gist.conf"
     6
    57
    68if [ \! -d $LOGDIR ]; then   mkdir -p $LOGDIR; fi
     
    1315./loadmodules
    1416
     17# tell bash to ignore SIGINT signal
     18trap '' INT
     19
    1520./qosnslp $* 2>&1 | tee $LOGDIR/test-`date +"%F-%T"`-`hostname`-$$
    1621
Note: See TracChangeset for help on using the changeset viewer.