Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

TahoeAckFSM Class Reference

#include <fsm.h>

Inheritance diagram for TahoeAckFSM:

Inheritance graph
[legend]
Collaboration diagram for TahoeAckFSM:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TahoeAckFSM ()
FSMStatestart_state ()

Static Public Member Functions

TahoeAckFSMinstance ()
void print_FSM (FSMState *state)
void print_FSM_stats (FSMState *state, int n)

Protected Attributes

FSMStatestart_state_

Static Protected Attributes

TahoeAckFSMinstance_

Constructor & Destructor Documentation

TahoeAckFSM::TahoeAckFSM  ) 
 

Definition at line 322 of file fsm.cc.

References FSMState::batch_size_, FSMState::drop_, instance_, RTT, start_state_, TIMEOUT, and FSMState::transition_.

00322                          : FSM(), start_state_(NULL) 
00323 {
00324         int i;
00325         FSMState* tmp;
00326 
00327 
00328         instance_ = this;
00329         // (wnd, ssh) == (1, 20)
00330         start_state_ = new FSMState;
00331         //printf("creating Tahoe Ack FSM\n"); 
00332         for (i=0; i<17; i++) {
00333                 start_state_->drop_[i] = NULL;
00334                 start_state_->transition_[i] = -1;
00335         }
00336         start_state_->batch_size_ = 1;
00337 
00338         // (wnd, ssh) == (2, 20)
00339         tmp = new FSMState;
00340         for (i=0; i<17; i++) {
00341                 tmp->drop_[i] = NULL;
00342                 tmp->transition_[i] = -1;
00343         }
00344         tmp->batch_size_ = 2;
00345         start_state_->drop_[0] = tmp;
00346         start_state_->transition_[0] = RTT;
00347 
00348         tmp = new FSMState;
00349         for (i=0; i<17; i++) {
00350                 tmp->drop_[i] = NULL;
00351                 tmp->transition_[i] = -1;
00352         }
00353         tmp->batch_size_ = 2;
00354         start_state_->drop_[0]->drop_[2] = tmp;
00355         start_state_->drop_[0]->transition_[2] = RTT;
00356 
00357         // (wnd, ssh) == (4, 20)
00358         tmp = new FSMState;
00359         for (i=0; i<17; i++) {
00360                 tmp->drop_[i] = NULL;
00361                 tmp->transition_[i] = -1;
00362         }
00363         tmp->batch_size_ = 4;
00364         start_state_->drop_[0]->drop_[0] = tmp;
00365         start_state_->drop_[0]->transition_[0] = RTT;
00366 
00367         tmp = new FSMState;
00368         for (i=0; i<17; i++) {
00369                 tmp->drop_[i] = NULL;
00370                 tmp->transition_[i] = -1;
00371         }
00372         tmp->batch_size_ = 2;
00373         start_state_->drop_[0]->drop_[0]->drop_[2] = tmp;
00374         start_state_->drop_[0]->drop_[0]->transition_[2] = RTT;
00375 
00376         tmp = new FSMState;
00377         for (i=0; i<17; i++) {
00378                 tmp->drop_[i] = NULL;
00379                 tmp->transition_[i] = -1;
00380         }
00381         tmp->batch_size_ = 4;
00382         start_state_->drop_[0]->drop_[0]->drop_[3] = tmp;
00383         start_state_->drop_[0]->drop_[0]->transition_[3] = RTT;
00384 
00385         tmp = new FSMState;
00386         for (i=0; i<17; i++) {
00387                 tmp->drop_[i] = NULL;
00388                 tmp->transition_[i] = -1;
00389         }
00390         tmp->batch_size_ = 6;
00391         start_state_->drop_[0]->drop_[0]->drop_[4] = tmp;
00392         start_state_->drop_[0]->drop_[0]->transition_[4] = RTT;
00393 
00394         //(wnd, ssh) == (8, 20)
00395         tmp = new FSMState;
00396         for (i=0; i<17; i++) {
00397                 tmp->drop_[i] = NULL;
00398                 tmp->transition_[i] = -1;
00399         }
00400         tmp->batch_size_ = 8;
00401         start_state_->drop_[0]->drop_[0]->drop_[0] = tmp;
00402         start_state_->drop_[0]->drop_[0]->transition_[0] = RTT;
00403 
00404         tmp = new FSMState;
00405         for (i=0; i<17; i++) {
00406                 tmp->drop_[i] = NULL;
00407                 tmp->transition_[i] = -1;
00408         }
00409         tmp->batch_size_ = 2;
00410         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[2] = tmp;
00411         start_state_->drop_[0]->drop_[0]->drop_[0]->transition_[2] = RTT;
00412 
00413         tmp = new FSMState;
00414         for (i=0; i<17; i++) {
00415                 tmp->drop_[i] = NULL;
00416                 tmp->transition_[i] = -1;
00417         }
00418         tmp->batch_size_ = 4;
00419         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[3] = tmp;
00420         start_state_->drop_[0]->drop_[0]->drop_[0]->transition_[3] = RTT;
00421 
00422         tmp = new FSMState;
00423         for (i=0; i<17; i++) {
00424                 tmp->drop_[i] = NULL;
00425                 tmp->transition_[i] = -1;
00426         }
00427         tmp->batch_size_ = 6;
00428         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[4] = tmp;
00429         start_state_->drop_[0]->drop_[0]->drop_[0]->transition_[4] = RTT;
00430 
00431         tmp = new FSMState;
00432         for (i=0; i<17; i++) {
00433                 tmp->drop_[i] = NULL;
00434                 tmp->transition_[i] = -1;
00435         }
00436         tmp->batch_size_ = 8;
00437         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[5] = tmp;
00438         start_state_->drop_[0]->drop_[0]->drop_[0]->transition_[5] = RTT;
00439 
00440         tmp = new FSMState;
00441         for (i=0; i<17; i++) {
00442                 tmp->drop_[i] = NULL;
00443                 tmp->transition_[i] = -1;
00444         }
00445         tmp->batch_size_ = 10;
00446         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[6] = tmp;
00447         start_state_->drop_[0]->drop_[0]->drop_[0]->transition_[6] = RTT;
00448 
00449         tmp = new FSMState;
00450         for (i=0; i<17; i++) {
00451                 tmp->drop_[i] = NULL;
00452                 tmp->transition_[i] = -1;
00453         }
00454         tmp->batch_size_ = 12;
00455         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[7] = tmp;
00456         start_state_->drop_[0]->drop_[0]->drop_[0]->transition_[7] = RTT;
00457 
00458         tmp = new FSMState;
00459         for (i=0; i<17; i++) {
00460                 tmp->drop_[i] = NULL;
00461                 tmp->transition_[i] = -1;
00462         }
00463         tmp->batch_size_ = 14;
00464         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[8] = tmp;
00465         start_state_->drop_[0]->drop_[0]->drop_[0]->transition_[8] = RTT;
00466 
00467         //(wnd, ssh) == (16, 20)
00468         tmp = new FSMState;
00469         for (i=0; i<17; i++) {
00470                 tmp->drop_[i] = NULL;
00471                 tmp->transition_[i] = -1;
00472         }
00473         tmp->batch_size_ = 16;
00474         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[0] = tmp;
00475         start_state_->drop_[0]->drop_[0]->drop_[0]->transition_[0] = RTT;
00476 
00477         tmp = new FSMState;
00478         for (i=0; i<17; i++) {
00479                 tmp->drop_[i] = NULL;
00480                 tmp->transition_[i] = -1;
00481         }
00482         tmp->batch_size_ = 1;
00483         for (i=1; i<17; i++) start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[i] = tmp;
00484         for (i=1; i<14; i++)
00485                 start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[0]->transition_[i] = RTT;
00486         for (i=14; i<17; i++)
00487                 start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[0]->transition_[i] = TIMEOUT;
00488 
00489 
00490         //(wnd, ssh) == (1, 2), timeout
00491         tmp = new FSMState;
00492         for (i=0; i<17; i++) {
00493                 tmp->drop_[i] = NULL;
00494                 tmp->transition_[i] = -1;
00495         }
00496         tmp->batch_size_ = 1;
00497         start_state_->drop_[1] = tmp;
00498         start_state_->transition_[1] = TIMEOUT;
00499         start_state_->drop_[0]->drop_[1] = tmp;
00500         start_state_->drop_[0]->transition_[1] = TIMEOUT;
00501         start_state_->drop_[0]->drop_[2]->drop_[0] = tmp;
00502         start_state_->drop_[0]->drop_[2]->transition_[0] = TIMEOUT;
00503         start_state_->drop_[0]->drop_[0]->drop_[1] = tmp;
00504         start_state_->drop_[0]->drop_[0]->transition_[1] = RTT;
00505         start_state_->drop_[0]->drop_[0]->drop_[2]->drop_[0] = tmp;
00506         start_state_->drop_[0]->drop_[0]->drop_[2]->transition_[0] = RTT;
00507 
00508         //(wnd, ssh) == (2, 2)
00509         tmp = new FSMState;
00510         for (i=0; i<17; i++) {
00511                 tmp->drop_[i] = NULL;
00512                 tmp->transition_[i] = -1;
00513         }
00514         tmp->batch_size_ = 2;
00515         start_state_->drop_[1]->drop_[0] = tmp;
00516         start_state_->drop_[1]->transition_[0] = RTT;
00517 
00518         //(wnd, ssh) == (2.5, 2)
00519         tmp = new FSMState;
00520         for (i=0; i<17; i++) {
00521                 tmp->drop_[i] = NULL;
00522                 tmp->transition_[i] = -1;
00523         }
00524         tmp->batch_size_ = 2;
00525         start_state_->drop_[1]->drop_[0]->drop_[0] = tmp;
00526         start_state_->drop_[1]->drop_[0]->transition_[0] = RTT;
00527 
00528         //(wnd, ssh) == (3, 2)
00529         tmp = new FSMState;
00530         for (i=0; i<17; i++) {
00531                 tmp->drop_[i] = NULL;
00532                 tmp->transition_[i] = -1;
00533         }
00534         tmp->batch_size_ = 3;
00535         start_state_->drop_[1]->drop_[0]->drop_[0]->drop_[0] = tmp;
00536         start_state_->drop_[1]->drop_[0]->drop_[0]->transition_[0] = RTT;
00537 
00538         //(wnd, ssh) == (4, 2)
00539         tmp = new FSMState;
00540         for (i=0; i<17; i++) {
00541                 tmp->drop_[i] = NULL;
00542                 tmp->transition_[i] = -1;
00543         }
00544         tmp->batch_size_ = 4;
00545         start_state_->drop_[1]->drop_[0]->drop_[0]->drop_[0]->drop_[0] = tmp;
00546         start_state_->drop_[1]->drop_[0]->drop_[0]->drop_[0]->transition_[0] = RTT;
00547 
00548         //(wnd, ssh) == (5, 2)
00549         tmp = new FSMState;
00550         for (i=0; i<17; i++) {
00551                 tmp->drop_[i] = NULL;
00552                 tmp->transition_[i] = -1;
00553         }
00554         tmp->batch_size_ = 5;
00555         start_state_->drop_[1]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0] = tmp;
00556         start_state_->drop_[1]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->transition_[0] = RTT;
00557 
00558         //(wnd, ssh) == (6, 2)
00559         tmp = new FSMState;
00560         for (i=0; i<17; i++) {
00561                 tmp->drop_[i] = NULL;
00562                 tmp->transition_[i] = -1;
00563         }
00564         tmp->batch_size_ = 6;
00565         start_state_->drop_[1]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0] = tmp;
00566         start_state_->drop_[1]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->transition_[0] = RTT;
00567 
00568         //(wnd, ssh) == (7, 2)
00569         tmp = new FSMState;
00570         for (i=0; i<17; i++) {
00571                 tmp->drop_[i] = NULL;
00572                 tmp->transition_[i] = -1;
00573         }
00574         tmp->batch_size_ = 7;
00575         start_state_->drop_[1]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0] = tmp;
00576         start_state_->drop_[1]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->transition_[0] = RTT;
00577 
00578         //(wnd, ssh) == (7, 2)
00579         tmp = new FSMState;
00580         for (i=0; i<17; i++) {
00581                 tmp->drop_[i] = NULL;
00582                 tmp->transition_[i] = -1;
00583         }
00584         tmp->batch_size_ = 7;
00585         start_state_->drop_[1]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0] = tmp;
00586         start_state_->drop_[1]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->transition_[0] = RTT;
00587 
00588 
00589         //(wnd, ssh) == (1, 3)
00590         tmp = new FSMState;
00591         for (i=0; i<17; i++) {
00592                 tmp->drop_[i] = NULL;
00593                 tmp->transition_[i] = -1;
00594         }
00595         tmp->batch_size_ = 1;
00596         start_state_->drop_[0]->drop_[0]->drop_[3]->drop_[0] = tmp;
00597         start_state_->drop_[0]->drop_[0]->drop_[3]->transition_[0] = RTT;
00598         start_state_->drop_[0]->drop_[0]->drop_[4]->drop_[0] = tmp;
00599         start_state_->drop_[0]->drop_[0]->drop_[4]->transition_[0] = RTT;
00600 
00601         tmp = new FSMState;
00602         for (i=0; i<17; i++) {
00603                 tmp->drop_[i] = NULL;
00604                 tmp->transition_[i] = -1;
00605         }
00606         tmp->batch_size_ = 2;
00607         start_state_->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0] = tmp;
00608         start_state_->drop_[0]->drop_[0]->drop_[3]->drop_[0]->transition_[0] = RTT;
00609 
00610         tmp = new FSMState;
00611         for (i=0; i<17; i++) {
00612                 tmp->drop_[i] = NULL;
00613                 tmp->transition_[i] = -1;
00614         }
00615         tmp->batch_size_ = 3;
00616         start_state_->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0]->drop_[0] = tmp;
00617         start_state_->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0]->transition_[0] = RTT;
00618 
00619         tmp = new FSMState;
00620         for (i=0; i<17; i++) {
00621                 tmp->drop_[i] = NULL;
00622                 tmp->transition_[i] = -1;
00623         }
00624         tmp->batch_size_ = 4;
00625         start_state_->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0]->drop_[0]->drop_[0] = tmp;
00626         start_state_->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0]->drop_[0]->transition_[0] = RTT;
00627 
00628         tmp = new FSMState;
00629         for (i=0; i<17; i++) {
00630                 tmp->drop_[i] = NULL;
00631                 tmp->transition_[i] = -1;
00632         }
00633         tmp->batch_size_ = 5;
00634         start_state_->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0] = tmp;
00635         start_state_->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->transition_[0] = RTT;
00636 
00637         tmp = new FSMState;
00638         for (i=0; i<17; i++) {
00639                 tmp->drop_[i] = NULL;
00640                 tmp->transition_[i] = -1;
00641         }
00642         tmp->batch_size_ = 5;
00643         start_state_->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0] = tmp;
00644         start_state_->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->transition_[0] = RTT;
00645 
00646         tmp = new FSMState;
00647         for (i=0; i<17; i++) {
00648                 tmp->drop_[i] = NULL;
00649                 tmp->transition_[i] = -1;
00650         }
00651         tmp->batch_size_ = 6;
00652         start_state_->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0] = tmp;
00653         start_state_->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->transition_[0] = RTT;
00654 
00655         //(wnd, ssh) == (1, 4)
00656         tmp = new FSMState;
00657         for (i=0; i<17; i++) {
00658                 tmp->drop_[i] = NULL;
00659                 tmp->transition_[i] = -1;
00660         }
00661         tmp->batch_size_ = 1;
00662         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[1] = tmp;
00663         start_state_->drop_[0]->drop_[0]->drop_[0]->transition_[1] = RTT;
00664         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[2]->drop_[0] = tmp;
00665         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[2]->transition_[0] = 0;
00666 
00667         tmp = new FSMState;
00668         for (i=0; i<17; i++) {
00669                 tmp->drop_[i] = NULL;
00670                 tmp->transition_[i] = -1;
00671         }
00672         tmp->batch_size_ = 2;
00673         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[1]->drop_[0] = tmp;
00674         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[1]->transition_[0] = RTT;
00675 
00676 
00677         tmp = new FSMState;
00678         for (i=0; i<17; i++) {
00679                 tmp->drop_[i] = NULL;
00680                 tmp->transition_[i] = -1;
00681         }
00682         tmp->batch_size_ = 4;
00683         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[1]->drop_[0]->drop_[0] = tmp;
00684         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[1]->drop_[0]->transition_[0] = RTT;
00685 
00686         tmp = new FSMState;
00687         for (i=0; i<17; i++) {
00688                 tmp->drop_[i] = NULL;
00689                 tmp->transition_[i] = -1;
00690         }
00691         tmp->batch_size_ = 4;
00692         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[1]->drop_[0]->drop_[0]->drop_[0] = tmp;
00693         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[1]->drop_[0]->drop_[0]->transition_[0] = RTT;
00694 
00695         tmp = new FSMState;
00696         for (i=0; i<17; i++) {
00697                 tmp->drop_[i] = NULL;
00698                 tmp->transition_[i] = -1;
00699         }
00700         tmp->batch_size_ = 5;
00701         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[1]->drop_[0]->drop_[0]->drop_[0]->drop_[0] = tmp;
00702         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[1]->drop_[0]->drop_[0]->drop_[0]->transition_[0] = RTT;
00703 
00704         tmp = new FSMState;
00705         for (i=0; i<17; i++) {
00706                 tmp->drop_[i] = NULL;
00707                 tmp->transition_[i] = -1;
00708         }
00709         tmp->batch_size_ = 6;
00710         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[1]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0] = tmp;
00711         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[1]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->transition_[0] = RTT;
00712 
00713         //(wnd, ssh) == (1, 5)  
00714         tmp = new FSMState;
00715         for (i=0; i<17; i++) {
00716                 tmp->drop_[i] = NULL;
00717                 tmp->transition_[i] = -1;
00718         }
00719         tmp->batch_size_ = 1;
00720         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[3]->drop_[0] = tmp;
00721         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[3]->transition_[0] = 0;
00722         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[4]->drop_[0] = tmp;
00723         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[4]->transition_[0] = 0;
00724 
00725         tmp = new FSMState;
00726         for (i=0; i<17; i++) {
00727                 tmp->drop_[i] = NULL;
00728                 tmp->transition_[i] = -1;
00729         }
00730         tmp->batch_size_ = 2;
00731         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0] = tmp;
00732         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[3]->drop_[0]->transition_[0] = RTT;
00733 
00734         tmp = new FSMState;
00735         for (i=0; i<17; i++) {
00736                 tmp->drop_[i] = NULL;
00737                 tmp->transition_[i] = -1;
00738         }
00739         tmp->batch_size_ = 4;
00740         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0]->drop_[0] = tmp;
00741         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0]->transition_[0] = RTT;
00742 
00743         tmp = new FSMState;
00744         for (i=0; i<17; i++) {
00745                 tmp->drop_[i] = NULL;
00746                 tmp->transition_[i] = -1;
00747         }
00748         tmp->batch_size_ = 5;
00749         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0]->drop_[0]->drop_[0] = tmp;
00750         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0]->drop_[0]->transition_[0] = RTT;
00751 
00752         tmp = new FSMState;
00753         for (i=0; i<17; i++) {
00754                 tmp->drop_[i] = NULL;
00755                 tmp->transition_[i] = -1;
00756         }
00757         tmp->batch_size_ = 6;
00758         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->drop_[0] = tmp;
00759         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[3]->drop_[0]->drop_[0]->drop_[0]->drop_[0]->transition_[0] = RTT;
00760 
00761         //(wnd, ssh) == (1, 6)
00762         tmp = new FSMState;
00763         for (i=0; i<17; i++) {
00764                 tmp->drop_[i] = NULL;
00765                 tmp->transition_[i] = -1;
00766         }
00767         tmp->batch_size_ = 1;
00768         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[5]->drop_[0] = tmp;
00769         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[5]->transition_[0] = 0;
00770         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[6]->drop_[0] = tmp;
00771         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[6]->transition_[0] = RTT;
00772 
00773         tmp = new FSMState;
00774         for (i=0; i<17; i++) {
00775                 tmp->drop_[i] = NULL;
00776                 tmp->transition_[i] = -1;
00777         }
00778         tmp->batch_size_ = 2;
00779         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[5]->drop_[0]->drop_[0] = tmp;
00780         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[5]->drop_[0]->transition_[0] = RTT;
00781 
00782         tmp = new FSMState;
00783         for (i=0; i<17; i++) {
00784                 tmp->drop_[i] = NULL;
00785                 tmp->transition_[i] = -1;
00786         }
00787         tmp->batch_size_ = 4;
00788         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[5]->drop_[0]->drop_[0]->drop_[0] = tmp;
00789         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[5]->drop_[0]->drop_[0]->transition_[0] = RTT;
00790 
00791         tmp = new FSMState;
00792         for (i=0; i<17; i++) {
00793                 tmp->drop_[i] = NULL;
00794                 tmp->transition_[i] = -1;
00795         }
00796         tmp->batch_size_ = 6;
00797         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[5]->drop_[0]->drop_[0]->drop_[0]->drop_[0] = tmp;
00798         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[5]->drop_[0]->drop_[0]->drop_[0]->transition_[0] = RTT;
00799 
00800         //(wnd, ssh) == (1, 7)
00801         tmp = new FSMState;
00802         for (i=0; i<17; i++) {
00803                 tmp->drop_[i] = NULL;
00804                 tmp->transition_[i] = -1;
00805         }
00806         tmp->batch_size_ = 1;
00807         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[7]->drop_[0] = tmp;
00808         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[7]->transition_[0] = RTT;
00809         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[8]->drop_[0] = tmp;
00810         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[8]->transition_[0] = RTT;
00811 
00812         tmp = new FSMState;
00813         for (i=0; i<17; i++) {
00814                 tmp->drop_[i] = NULL;
00815                 tmp->transition_[i] = -1;
00816         }
00817         tmp->batch_size_ = 2;
00818         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[7]->drop_[0]->drop_[0] = tmp;
00819         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[7]->drop_[0]->transition_[0] = RTT;
00820 
00821         tmp = new FSMState;
00822         for (i=0; i<17; i++) {
00823                 tmp->drop_[i] = NULL;
00824                 tmp->transition_[i] = -1;
00825         }
00826         tmp->batch_size_ = 4;
00827         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[7]->drop_[0]->drop_[0]->drop_[0] = tmp;
00828         start_state_->drop_[0]->drop_[0]->drop_[0]->drop_[7]->drop_[0]->drop_[0]->transition_[0] = RTT;
00829 
00830         //print_FSM(start_state_);
00831         //printf("\n");
00832 }


Member Function Documentation

TahoeAckFSM& TahoeAckFSM::instance  )  [inline, static]
 

Reimplemented from FSM.

Definition at line 78 of file fsm.h.

Referenced by AbsTcpTahoeAckAgent::AbsTcpTahoeAckAgent().

00078                                        {
00079                 return (*instance_);           // general access to TahoeAckFSM
00080         }

void FSM::print_FSM FSMState state  )  [static, inherited]
 

Definition at line 256 of file fsm.cc.

References FSMState::batch_size_, FSMState::drop_, FSMState::print_all(), FSMState::reset_all_processed(), and FSMState::transition_.

Referenced by AbsTcpAgent::command().

00257 {
00258 #if 0
00259         int i;
00260 
00261         if (state != NULL) {
00262                 for (i=0; i<17; i++) {
00263                         if (state->drop_[i] != NULL) {
00264                                 if (i==0) 
00265                                         printf("%d->(%d) ", state->transition_[i], state->drop_[i]->batch_size_);
00266                                 else
00267                                         printf("\n%d->(%d) ", state->transition_[i], state->drop_[i]->batch_size_);
00268                                 print_FSM(state->drop_[i]);
00269                         }
00270                 }
00271         }
00272 #else /* ! 0 */
00273         state->reset_all_processed();
00274         state->print_all(0);
00275 #endif /* 0 */
00276 }

Here is the call graph for this function:

void FSM::print_FSM_stats FSMState state,
int  n
[static, inherited]
 

Definition at line 279 of file fsm.cc.

References FSMState::print_all_stats(), and FSMState::reset_all_processed().

Referenced by AbsTcpAgent::command().

00280 {
00281         state->reset_all_processed();
00282         state->print_all_stats(n);
00283         fflush(stdout);
00284 }

Here is the call graph for this function:

FSMState* TahoeAckFSM::start_state  )  [inline]
 

Reimplemented from FSM.

Definition at line 75 of file fsm.h.

References start_state_.

Referenced by AbsTcpTahoeAckAgent::AbsTcpTahoeAckAgent().

00075                                        {        // starting state
00076                 return (start_state_);
00077         }


Member Data Documentation

TahoeAckFSM * TahoeAckFSM::instance_ [static, protected]
 

Reimplemented from FSM.

Definition at line 50 of file fsm.cc.

Referenced by TahoeAckFSM().

FSMState* TahoeAckFSM::start_state_ [protected]
 

Reimplemented from FSM.

Definition at line 82 of file fsm.h.

Referenced by start_state(), and TahoeAckFSM().


The documentation for this class was generated from the following files:
Generated on Tue Apr 20 13:27:04 2004 for NS2.26SourcesOriginal by doxygen 1.3.3