###### tags: `AQUA` # What We Do For Hackathon Fully blocking circuit switched resource allocation \ with release to random backoff on failure ![](https://i.imgur.com/nVDkKZA.png) [source] https://www.researchgate.net/publication/321385196_E2E_Congestion_Control_Policies_Encouragement_in_Real_World/figures?lo=1 1. Circuit Switch Suppose H1 wants to talk to H3, and H2 wants to talk to H4 at the same time. Because the path between R1-R2 is already allocated to the path H1-H3, H2 has to wait until the path gets free. 2. Random failure The time that blocked node has to wait has to be **random**, in order to avoid both bodes trying to communicate and get blocked at the same time. ## Goals 1. ConnectionSetupRequest - the message that needs to trigger the resource allocation - Inside void ConnectionManager::handleMessage(cMessage *msg){ ## Tasks **1. Add to Qnode or QNIC to put "allocated flag"** **2. modify ConnectionManager::HandleMessage() to test or set allocated flag** ``` if (! allocated ){ allocate; (continue processing) }else{ send reject request to the previous node } ``` **3. Define reject-setup-request-message type** **4. CM::HandleMessage() → Handle messages, extend to handle reject** Allocated → False **5. Application.cc: if (End Node){ Sleep(random time) Send yourself a message for the future try again }** **6. limit the life time of a connection** (set a specific parameter) **7. Implement connection teardown** → new message type → clear allocated flag The files to check 1. module QUNIC in **qunic.ned** 2. _QUNIC_type & QUNIC_type in **QUNIC.h**? 3. QUNIC_photonic_switch.cc 4. Add RejectMessage in ConnectionManager.cc Okay, assignments: zomi: Task 1: adding Allocate flag to QNIC dave: Task 2 & Task 4: modify ConnectionManager::HandleMessage() to mark allocated = True on SetupRequest, allocated = False on RejectSetupRequest sitong: edit classical_messages.msg to add RejectSetupRequest and ConnectionTeardown syu: Task 5 & Task 6: Application.cc for limited lifetime (including teardown) and retry on reject rum: work w/ syu rdv: supervise, look into adding more traffic shota: figuring out how to test this | Assignee | Which task? | Detail | |-|-|-| | zomi | Task 1 | adding Allocate flag to QNIC | | dave | Task 2 & Task 4 | modify```ConnectionManager::HandleMessage() to mark allocated = True on SetupRequest, allocated = False on RejectSetupRequest```| | sitong | | edit classical_messages.msg to add RejectSetupRequest and ConnectionTeardown | | syu | Task 5 & Task 6 | Application.cc for limited lifetime (including teardown) and retry on reject | | rum | | work w/ syu | | rdv | | supervise, look into adding more traffic | | shota | | figuring out how to test this |