Commit Graph

15585 Commits

Author SHA1 Message Date
zzz
64695a8060 SSU: Fix persisting IPv6 firewalled state 2021-03-22 12:02:36 -04:00
zzz
86b49546c8 Sybil: Persist blocklist 2021-03-22 10:36:42 -04:00
zzz
12c4f43109 Transport: Better IPv6 address check
We don't want to match on "46"
2021-03-22 07:00:17 -04:00
zzz
d5fd754a25 Tunnels: Garlic encrypt ITBM to IBGW
WIP, see proposal 157.
Will not take effect until we actually send ITBMs.
Tested with regular VTBMs.
2021-03-21 09:25:47 -04:00
zzz
c5691ac623 html fix
thx drzed
2021-03-20 15:24:38 -04:00
zzz
844f17500b Console: Add API version to /logs 2021-03-20 13:00:09 -04:00
zzz
4e1848c336 I2CP: Ensure nickname properties are set 2021-03-20 12:58:14 -04:00
zzz
b55fbbf099 Boolean.valueOf() -> Boolean.parseBoolean() 2021-03-20 12:27:46 -04:00
zzz
838295c014 SAM: Improve checks for unset tunnel nickname 2021-03-20 12:12:21 -04:00
zzz
005ac38742 Tunnels: Fix RED dropping for part. tunnels (Gitlab MR !24)
Part 1:
Change bandwidth estimate to exponential moving average
(Similar to Westwood+ Simple Bandwidth Estimator in streaming)
instead of 40 ms bucket.
Also use it for tunnel.participatingBandwidthOut stat.
Remove linear moving average code previously used for stat
Reduce RED threshold from 120% to 95% of limit

Part 2:
Fix the other part of RED which is the dropping calculation.
Previously, it simply used the bandwidth to start dropping if
it was higher than a threshold. The drop percentage rose from
0 to 100%, linearly, based on how far the bandwidth was
above the threshold. This was far, far from the RED paper.

Now, we follow the RED paper (see ref. in SyntheticREDQueue javadoc)
to calculate an average queue size, using the exact same
exponential moving average method used for bandwidth.
Similar to CoDel, it also includes a count of how long
the size is over the threshold, and increases the drop probability with the count.
The unadjusted drop probability rises from 0 to 2%
and then everything is dropped, as in the RED paper.
The low and high thresholds are configured at 77 ms and 333 ms of queued data, respectively.

The queue is "synthetic" in that there's not actually a queue.
It only calculates how big the queue would be if it were
a real queue and were being emptied at exactly the target rate.
The actual queueing is done downstream in the transports and in UDP-Sender.

The goals are, for an 80% default share, to do most of the
part. traffic dropping here in RED, not downstream in UDP-Sender,
while fully utilizing the configured share bandwidth.
If the router goes into high message delay mode, that means we are not dropping enough in RED.
Above 80% share this probably doesn't work as well.

There may be more tuning required, in particular to achieve the goal of "protecting" the UDP-Sender
queue and local client/router traffic by dropping more aggressively in RED.

This patch also improves the overhead estimate for outbound part. tunnel traffic at the OBEP.

Reviewed, tested, acked by zlatinb
2021-03-20 10:49:30 -04:00
zzz
03c657b466 javadoc fix 2021-03-19 13:02:35 -04:00
zzz
3615a9b235 SSU: Skip router addresses with introducers and '6' cap
for now, until implemented, see proposal 158
2021-03-19 11:36:17 -04:00
zzz
0dcc126af0 DoH: Minor cleanups
Handle lower-case date: header
2021-03-18 11:02:26 -04:00
zzz
7143eb3faa DoH: Add new servers
from https://github.com/curl/curl/wiki/DNS-over-HTTPS
2021-03-18 10:19:41 -04:00
zzz
1d83ef46e7 SSLEepGet: Use DoH by default (reseeding)
DoH: Update server list
2021-03-18 09:48:05 -04:00
zzz
615365ec24 Util: Specify hostname for SSLEepGet socket when using DoH 2021-03-18 09:39:14 -04:00
zzz
1e0847271f Util: Fix EepHead fail if headers specify chunked 2021-03-18 09:11:21 -04:00
zzz
0b1fb651e9 EepGet timeout fixes part 2
Have SocketTimeout interrupt thread
Cancel SocketTimeout and use soTImeout after reading headers if able
Cancel SocketTimeout in finally
Cleanups and javadocs
2021-03-18 09:07:45 -04:00
zzz
bd724d1e1f Transports: Enable 4/6 caps
Set i2np.transportCaps=false to disable
Fix NTCP2 address with host and caps after state transition
Bump -7
2021-03-16 08:59:22 -04:00
zzz
e81df54bba Console: Change netdb SSU caps search
to be contains() like the RI caps search, not equals()
2021-03-16 08:23:05 -04:00
zzz
07e3ee6bda Util: Roll our own IPv6 address parsing
Don't bother with ::, still send that to InetAddress.getByName()
2021-03-15 08:22:52 -04:00
zzz
810c2f912c Util: Prevent DataHelper complaining about split() for ipv4 2021-03-15 08:10:48 -04:00
zzz
a1340d8796 Util: Roll our own IPv4 address parsing
to avoid InetAddress.getByName() calls
May help high CPU usage on Windows?
Reported by parg: http://zzz.i2p/topics/3083
More empty hostname checks
2021-03-15 07:41:02 -04:00
zzz
be863d643e SSU: Fix IPv6 addresses not being removed on some state transitions
Ensure IPv4/v6 peer tests are alternated
Reschedule peer test if result is UNKNOWN and a state transition is pending
Fix peer test last send time not being set in all cases
2021-03-15 07:37:08 -04:00
zzz
47283e6ef7 Console: Limit share portion to 90%
We want the part. traffic RED dropper to have some effect
and not let traffic back up at the router bandwidth
limiter and into the UDP-Sender queue,
as it removes any room for client and router traffic,
and throws the router into high message delay mode.
2021-03-13 08:44:11 -05:00
idk
15b6638538 Check in copy.js 2021-03-11 21:18:29 -05:00
idk
56db652ee8 switch Hostname Preview from a direct link to a JS copy function and a textarea. In the presence of noscript, hide the copy button 2021-03-11 21:17:07 -05:00
idk
831a9cebfa check that hostname ends with .i2p when generating tunnelPreviewHostname 2021-03-11 17:20:37 -05:00
idk
a04bb77c68 Adds a button for previewing i2ptunnels using the hostname or sharing I2P Sites with a hostname without using the addressbook or a jump service 2021-03-11 13:54:55 -05:00
idk
8d11a97c9d Fix margin on /peers for issue #14 2021-03-11 13:50:41 -05:00
zzz
023a7fdebe NetDB: Queue RI file deletion and delete in a single thread
Do both writes and removes in the writer thread
As suggested by jogger http://zzz.i2p/topics/3082
log tweaks
2021-03-10 14:17:45 -05:00
zzz
77375148e3 NTCP: More NTCP 1 removal cleanup 2021-03-10 07:16:29 -05:00
zzz
5c232792cc SSU: Don't change ports in some cases 2021-03-10 07:03:33 -05:00
zzz
6e03300371 Throttle: Don't do exponential calculation unless necessary
Limit to ~5% < drop prob. < 100%
2021-03-09 09:59:33 -05:00
zzz
731bf920f6 Util: Consolidate dup BandwidthEstimator interfaces 2021-03-09 07:37:51 -05:00
zzz
c1c2f4bb2e UPnP: Reduce some log levels
of logggung that was added during IPv6 development
2021-03-08 09:14:19 -05:00
zzz
6a54af399d NTCP: Remove NTCP 1 suppport
Remove individual 1/2 enable config
Additional cleanup to follow
2021-03-08 09:05:32 -05:00
zzz
82b7eea5f0 SSU: Increase CoDel drop threshold at UDPSender queue
Increase min and max queue size
Tweak stats
Util: Allow creation of CoDel queues with non-default parameters
New params are tentative, may be adjusted later
2021-03-08 08:12:10 -05:00
zzz
0b71fcf2e6 Util: Fix text display of enc type in key cert 2021-03-07 08:33:57 -05:00
zzz
e4c7ef183f SSU: Require confirmation for IPv6 firewalled state transitions 2021-03-06 08:18:16 -05:00
idk
c8341e77ab Change button on /help from Reachability to Network 2021-03-04 21:42:14 -05:00
zzz
51d2862d75 Console: Improve explanation on /configfamily
based on whether configured or not
escape the family name
2021-03-04 19:27:03 -05:00
zzz
10d303aee5 Router: Increase rekey probability 2021-03-04 19:04:29 -05:00
idk
b0b7c1c3d1 Work on centering restart/shutdown immediately/cancel buttons, for #5 2021-03-04 16:00:24 -05:00
zzz
6339445e35 i2ptunnel: Remove stray character on auth form 2021-03-04 14:31:15 -05:00
zzz
f5a6bb1211 i2ptunnel: Fix title for b32 auth proxy error page 2021-03-04 14:28:09 -05:00
zzz
662fd484de i2ptunnel: Add missing button icons for proxy forms 2021-03-04 14:17:45 -05:00
zzz
fda53416d3 Transports: Prefer IPv6 temporary addresses if the kernel does
This helps us pick the right address at startup,
so we don't switch after peer testing.
2021-03-04 08:42:08 -05:00
zzz
638d471d6b I2CP: Additional changes for release/API version split
Missed in previous checkin
2021-03-04 07:58:49 -05:00
zzz
74c493b1fe Debian: apparmor update 2021-03-04 07:16:03 -05:00