###### tags: `AQUA`
# What We Do For Hackathon
Fully blocking circuit switched resource allocation \
with release to random backoff on failure

[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 |