Changeset 4530

Show
Ignore:
Timestamp:
10/23/09 18:47:54 (4 years ago)
Author:
soohyunc
Message:

slight modification for gen_seqvec() at TFWC sender - in terms of functionality,
there was no change with this commit.

Location:
vic/branches/cc/cc
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • vic/branches/cc/cc/tfwc_sndr.cpp

    r4526 r4530  
    170170                // declared AckVec 
    171171                ackv_ = (u_int16_t *) malloc (sizeof(u_int16_t) * num_vec_); 
     172                // clear the existing AckVec 
    172173                clear_ackv(num_vec_); 
    173  
    174174                // clone AckVec from Vic  
    175                 for (int i = 0; i < num_vec_; i++)  
    176                         ackv_[i] = ntohs(chunk[i]); 
     175                clone_ackv(chunk, num_vec_); 
    177176 
    178177                printf("    [%s +%d] begins:%d, ends:%d, jacked:%d\n",  
     
    180179 
    181180                // generate seqno vector 
    182                 clear_sqv(num_seqvec_); 
    183                 gen_seqvec(ackv_); 
     181                gen_seqvec(ackv_, num_vec_); 
    184182 
    185183                // generate margin vector 
     
    188186 
    189187                // detect loss 
    190                 //      @begin: aoa_+1 
    191                 //      @end: mvec_[DUPACKS] - 1 
     188                //      @begin: aoa_+1 (lowest seqno) 
     189                //      @end: mvec_[DUPACKS-1] - 1 
    192190                is_loss_ = detect_loss(mvec_[DUPACKS-1]-1, aoa_+1); 
    193191 
     
    239237 * @ackvec: received AckVec 
    240238 */ 
    241 void TfwcSndr::gen_seqvec (u_int16_t *ackvec) { 
     239void TfwcSndr::gen_seqvec (u_int16_t *v, int n) { 
     240        // clear seqvec before starts 
     241        clear_sqv(num_seqvec_); 
     242 
    242243        int i, j, k = 0; 
    243244        int x = num_elm_%BITLEN; 
     
    246247        int start = begins_; 
    247248 
    248         for (i = 0; i < num_vec_-1; i++) { 
     249        for (i = 0; i < n-1; i++) { 
    249250                for (j = BITLEN; j > 0; j--) { 
    250                         if( CHECK_BIT_AT(ackvec[i], j) ) 
     251                        if( CHECK_BIT_AT(v[i], j) ) 
    251252                                seqvec_[k++%SSZ] = start; 
    252253                        else num_loss_++; 
     
    257258        int a = (x == 0) ? BITLEN : x; 
    258259        for (i = a; i > 0; i--) { 
    259                 if( CHECK_BIT_AT(ackvec[num_vec_-1], i) ) 
     260                if( CHECK_BIT_AT(v[n-1], i) ) 
    260261                        seqvec_[k++%SSZ] = start; 
    261262                else num_loss_++; 
     
    279280 
    280281        // number of tempvec element when no loss 
    281         //int num = ((end - begin  + 1) < 0) ? 0 : (end - begin + 1); 
    282282        int num = end - begin + 1; 
    283         printf("\tnum_tempvec: %d\n", num); 
    284283        u_int32_t tempvec[num]; 
    285284 
  • vic/branches/cc/cc/tfwc_sndr.h

    r4524 r4530  
    100100protected: 
    101101        // generate sequence numbers 
    102         void gen_seqvec(u_int16_t *ackvec); 
     102        void gen_seqvec(u_int16_t *v, int n); 
    103103 
    104104        // init loss related variables 
     
    186186        // dupack action 
    187187        void dupack_action(); 
     188 
     189        // AckVec clone from Vic  
     190        inline void clone_ackv(u_int16_t *c, int n) { 
     191                for (int i = 0; i < n; i++) 
     192                        ackv_[i] = ntohs(c[i]); 
     193        } 
    188194 
    189195        // clear timestamp vector