aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2017-01-29 18:52:36 +0100
committerChristian Grothoff <christian@grothoff.org>2017-01-29 18:52:36 +0100
commita23b1054c692865c888d19cb4a5a808feeaa19b8 (patch)
tree08a7c6e0fe82922761d44463cee05219fd1200de
parent81f9e9e971e615e9f1f18d1509168b56bb7360c0 (diff)
downloadgnunet-a23b1054c692865c888d19cb4a5a808feeaa19b8.tar.gz
gnunet-a23b1054c692865c888d19cb4a5a808feeaa19b8.zip
collect misc. TODO items into one big list
-rw-r--r--src/cadet/TODO44
-rw-r--r--src/cadet/gnunet-service-cadet-new_core.c1
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