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

Changeset 4543


Ignore:
Timestamp:
Oct 12, 2009, 2:30:28 PM (8 years ago)
Author:
stud-dettling
Message:
  • Martin's suggestions
  • Changed behavior of "Tear-Down on old path"
Location:
qos-nslp/branches/20090610-qos-nslp-aho
Files:
2 edited

Legend:

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

    r4540 r4543  
    5656        /* Note: Looking at this, it seems stupid not to have the BREAK flag in GENERIC */
    5757        /* generic flags (16 bit) */
    58         #define GEN_FLAG_SCOPING                                (1<<0)
    59         #define GEN_FLAG_PROXY                                  (1<<1)
    60         #define GEN_FLAG_ACKNOWLEDGE                    (1<<2)
     58        static const uint16 GEN_FLAG_SCOPING                    = (1<<0);
     59        static const uint16 GEN_FLAG_PROXY                      = (1<<1);
     60        static const uint16 GEN_FLAG_ACKNOWLEDGE                = (1<<2);
    6161
    6262        /* RESERVE specific flags (8 bit) */
    63         #define RESV_FLAG_REPLACE                               (1<<0)
    64         #define RESV_FLAG_TEAR                                  (1<<1)
    65         #define RESV_FLAG_REQ_REDUCED_REFRESH   (1<<2)          // ugly name
    66         #define RESV_FLAG_BREAK                                 (1<<3)
     63        static const uint8 RESV_FLAG_REPLACE                    = (1<<0);
     64        static const uint8 RESV_FLAG_TEAR                       = (1<<1);
     65        static const uint8 RESV_FLAG_REQ_REDUCED_REFRESH        = (1<<2);       // ugly name
     66        static const uint8 RESV_FLAG_BREAK                      = (1<<3);
    6767
    6868        /* QUERY specific flags (8 bit) */
    69         #define QUERY_FLAG_RESERVE_INIT                 (1<<0)
    70         #define QUERY_FLAG_BREAK                                (1<<1)
    71         #define QUERY_FLAG_X                                    (1<<2)  // see Anticipated Handover
     69        static const uint8 QUERY_FLAG_RESERVE_INIT              = (1<<0);
     70        static const uint8 QUERY_FLAG_BREAK                     = (1<<1);
     71        static const uint8 QUERY_FLAG_X                         = (1<<2);       // see Anticipated Handover
    7272
    7373        /* RESPONSE specific flags (8bit) */
    74         #define RESP_FLAG_BREAK                                 (1<<0)
    75 
    76         #define generic_not_set                                 0
    77         #define specific_not_set                                0
     74        static const uint8 RESP_FLAG_BREAK                      = (1<<0);
     75
     76
     77        static const uint8 specific_not_set = 0;
     78        static const uint16 generic_not_set = 0;
    7879
    7980        /// max PDU size
  • qos-nslp/branches/20090610-qos-nslp-aho/src/QoS_StateModule.cpp

    r4541 r4543  
    32893289                context->set_is_maybe_dead_end(true);
    32903290                context->unlock();
    3291 
    3292                 // send tearing RESERVE
    3293                 uint32 rsn_own;
    3294                 context->lock();
    3295                 context->get_rsn_own(rsn_own);
    3296                 context->unlock();
    3297                 rsn_own++;
    3298 
    3299                 reservereq *res = new reservereq();
    3300                 res->set_rsn(new rsn(rsn_own));
    3301                 res->set_tear_flag();
    3302 
    3303                 known_nslp_pdu* pdu = dynamic_cast<known_nslp_pdu*>(res);
    3304                 assert(pdu != NULL);
    3305 
    3306                 SignalingMsg* sigmsg = new SignalingMsg();
    3307                 sigmsg->set_msg(pdu);
    3308                 sigmsg->set_sig_mri(rcvd_mri);
    3309                 sigmsg->set_downstream(!down);
    3310                 sigmsg->set_sid(*rcvd_sid);
    3311                 sigmsg->send_or_delete();
    33123291            }
    33133292        }
     
    33153294                forward_notify_msg(notify, down, rcvd_mri, rcvd_sid);
    33163295        }
     3296
     3297        // send tearing RESERVE upstream
     3298        if (er_obj) {
     3299                info_spec::errorclass_t er_class = (info_spec::errorclass_t) er_obj->get_errorclass();
     3300                info_spec::errorcode_t er_code = (info_spec::errorcode_t) er_obj->get_errorcode();
     3301
     3302                if (er_class == info_spec::information && er_code == info_spec::RouteChange) {
     3303                        uint32 rsn_own;
     3304                        context->lock();
     3305                        context->get_rsn_own(rsn_own);
     3306                        context->unlock();
     3307                        rsn_own++;
     3308       
     3309                        reservereq *res = new reservereq();
     3310                        res->set_rsn(new rsn(rsn_own));
     3311                        res->set_tear_flag();
     3312       
     3313                        known_nslp_pdu* pdu = dynamic_cast<known_nslp_pdu*>(res);
     3314                        assert(pdu != NULL);
     3315       
     3316                        SignalingMsg* sigmsg = new SignalingMsg();
     3317                        sigmsg->set_msg(pdu);
     3318                        sigmsg->set_sig_mri(rcvd_mri);
     3319                        sigmsg->set_downstream(!down);
     3320                        sigmsg->set_sid(*rcvd_sid);
     3321                        sigmsg->send_or_delete();
     3322                }
     3323        }
     3324
    33173325        if (erase_state == true) {
    33183326          delete_context(context);
Note: See TracChangeset for help on using the changeset viewer.