I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
  1. Dec 28, 2021
  2. Dec 27, 2021
  3. Dec 21, 2021
    • zzz's avatar
      Transport: Async NTCP writes (MR !43) · 811442f9
      zzz authored
      - Write directly from writer threads, except for during establishment and when write doesn't complete; throw those to the pumper as usual
      - New NTCPCon writelock, readlock, and statlock (formerly all on NTCPCon.this) to prevent deadlocks
      - NTCPCon chan and key now volatile, remove synch to prevent deadlocks
      - All interestOps changes now lock on the key via setInterest() and clearInterest() since changes may now happen in multiple threads
      - Set _paddingConfig at initialization to avoid NPE
      
      Greatly reduces pumper loops and CPU
      
      As proposed by jogger
      Reviewed by zlatinb
      Ref: http://zzz.i2p/topics/3192
      Unverified
      811442f9
  4. Dec 18, 2021
  5. Dec 03, 2021
  6. Nov 30, 2021
  7. Nov 29, 2021
  8. Nov 23, 2021
  9. Nov 21, 2021
  10. Nov 12, 2021
  11. Oct 21, 2021
  12. Oct 10, 2021
  13. Sep 25, 2021
  14. Sep 22, 2021
  15. Aug 26, 2021
  16. Aug 23, 2021
  17. Aug 20, 2021
  18. Aug 13, 2021
  19. Aug 07, 2021
  20. Jul 28, 2021
    • zzz's avatar
      Tunnels: Updates for proposal 157 · 2edac95b
      zzz authored
      - Fix compatibility check for OB tunnels
      - Add test code to send STBM to explicit peers
      - Skip too-many-tunnels check when in test mode
      - Cleanups and Log tweaks
      Unverified
      2edac95b
  21. Jul 23, 2021
  22. Jul 20, 2021
  23. Jun 22, 2021
  24. Jun 11, 2021
    • zzz's avatar
      UPnP: Bind to IPv6 addresses for search responses · d93e16e5
      zzz authored
      Older miniupnpd 2.0 will send a SSDP search response with an IPv6 location to a IPv4 address,
      but newer ones 2.2 won't. So we need to also bind to an IPv6 address for the SSDP search
      to receive the router's IPv6 location. Then we can bind to our public IPv6 address
      for a port forward and it will work when miniupnpd is configured for "secure".
      
      Also, don't bind a POST request to a mismatched v4/v6 address.
      Unverified
      d93e16e5
  25. Jun 08, 2021
    • zzz's avatar
      Continue implementation of short tunnel build messages (proposal 157) · d9c98580
      zzz authored
      - Generate and parse short record format
      - Encrypt and decrypt short records
      - Register handlers for 3 new messages ITBM/STBM/OTBRM
      - Send ITBM/STBM if all hops support it (disabled)
      - Reply with OTBRM at OBEP if STBM received (disabled)
      - Send STBM at IBGW if ITBM received (disabled)
      - Add logic for when to send new messages
      - ChaCha encryption of other short records
      - Fix compare logic in ITBM parser (ticket #2814)
      
      All is still preliminary, disabled, untested; proposal is still incomplete
      
      Still todo:
      - Fill in plaintext record for ITBM/OTBRM
      - OTBRM key/tag
      Unverified
      d9c98580
  26. May 18, 2021
  27. May 15, 2021
  28. Apr 24, 2021
  29. Apr 20, 2021
  30. Apr 08, 2021
  31. Apr 03, 2021
  32. Mar 27, 2021
  33. Mar 25, 2021
  34. Mar 20, 2021
    • zzz's avatar
      Tunnels: Fix RED dropping for part. tunnels (Gitlab MR !24) · 005ac387
      zzz authored
      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
      Verified
      005ac387
  35. Mar 16, 2021
  36. Mar 08, 2021
  37. Mar 03, 2021
Loading