---
# System prepended metadata

title: What We Do For Hackathon
tags: [AQUA]

---

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