diff options
author | Christian Grothoff <christian@grothoff.org> | 2017-01-29 18:52:36 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2017-01-29 18:52:36 +0100 |
commit | a23b1054c692865c888d19cb4a5a808feeaa19b8 (patch) | |
tree | 08a7c6e0fe82922761d44463cee05219fd1200de | |
parent | 81f9e9e971e615e9f1f18d1509168b56bb7360c0 (diff) | |
download | gnunet-a23b1054c692865c888d19cb4a5a808feeaa19b8.tar.gz gnunet-a23b1054c692865c888d19cb4a5a808feeaa19b8.zip |
collect misc. TODO items into one big list
-rw-r--r-- | src/cadet/TODO | 44 | ||||
-rw-r--r-- | src/cadet/gnunet-service-cadet-new_core.c | 1 |
2 files changed, 45 insertions, 0 deletions
diff --git a/src/cadet/TODO b/src/cadet/TODO new file mode 100644 index 000000000..317695a5b --- /dev/null +++ b/src/cadet/TODO | |||
@@ -0,0 +1,44 @@ | |||
1 | - URGENT: Congestion/flow control (CHANNEL): | ||
2 | + estimate max bandwidth using bursts and use to for CONGESTION CONTROL! | ||
3 | (and figure out how/where to use this!) | ||
4 | + calculate current RTT if possible, use that for initial retransmissions | ||
5 | (NOTE: needs us to learn which connection the tunnel uses for the message!) | ||
6 | + figure out flow control without ACKs (unreliable traffic!) | ||
7 | |||
8 | - HIGH: revisit message buffer, have global buffer instead per-route, but then | ||
9 | make sure it is shared fairly across routes and connections (CORE); | ||
10 | also, do not buffer if the connection is set to unbuffered! | ||
11 | |||
12 | - HIGH: revisit handling of 'unbuffered' traffic! (CHANNEL/TUNNEL) | ||
13 | (need to push down through tunnel into connection selection); | ||
14 | At Tunnel-level, try to create connections that match channel | ||
15 | preferences (buffered/unbuffered) and select connections for | ||
16 | channel traffic that match channel preferences. | ||
17 | |||
18 | - HIGH: revisit handling of 'buffered' traffic: 4 is a rather small buffer; (CHANNEL) | ||
19 | maybe reserve more bits in 'options' to allow for buffer size control? | ||
20 | Or: maybe even better, calculated required buffer size based on latency | ||
21 | and throughput (and available memory) | ||
22 | |||
23 | - HIGH: if we receive BROKEN messages, cut down corresponding PATH (up to the | ||
24 | point of breakage) as well as connection/route (CORE) | ||
25 | |||
26 | - OPTIMIZATION: proper connection evaluation during connection management: | ||
27 | + PATHS: path desirability score calculations are not done | ||
28 | + CONNECTION: keep per-connection performance metrics; | ||
29 | in particular, interact with channel (!) to see | ||
30 | if we get ACKs indicating successful payload delivery. | ||
31 | + TUNNELS: | ||
32 | * when managing connections, distinguish those that | ||
33 | have (recently) had traffic from those that were | ||
34 | never ready (or not recently) | ||
35 | * consider quality of current connection set when deciding | ||
36 | how often to do maintenance | ||
37 | * interact with PEER to drive DHT GET/PUT operations based | ||
38 | on how much we like our connections | ||
39 | |||
40 | |||
41 | - OPTIMIZATION: optimize stopping/restarting DHT search to situations | ||
42 | where we actually need it (i.e. not if we have a direct connection, | ||
43 | or if we already have plenty of good short ones, or maybe even | ||
44 | to take a break if we have some connections and have searched a lot (?)) (PEER) | ||
diff --git a/src/cadet/gnunet-service-cadet-new_core.c b/src/cadet/gnunet-service-cadet-new_core.c index 75a94119c..b79b87de8 100644 --- a/src/cadet/gnunet-service-cadet-new_core.c +++ b/src/cadet/gnunet-service-cadet-new_core.c | |||
@@ -47,6 +47,7 @@ | |||
47 | 47 | ||
48 | /** | 48 | /** |
49 | * Number of messages we are willing to buffer per route. | 49 | * Number of messages we are willing to buffer per route. |
50 | * FIXME: have global buffer pool instead! | ||
50 | */ | 51 | */ |
51 | #define ROUTE_BUFFER_SIZE 8 | 52 | #define ROUTE_BUFFER_SIZE 8 |
52 | 53 | ||