Commit graph

2422 commits

Author SHA1 Message Date
orignal d7ff459f12 include tagsetid into msgid 2024-07-25 15:05:00 -04:00
orignal f232c8f2df don't limit num attempts in routing path. Increased routing path expiration to 2 minutes 2024-07-23 21:55:56 -04:00
orignal f6ddcd432e removed openssl/engine.h 2024-07-21 09:43:29 -04:00
orignal bed5a18294 2.53.0 2024-07-17 07:41:41 -04:00
orignal 45221da1dc floodfill must have published ipv6 if no published ipv4 2024-07-12 11:43:39 -04:00
orignal 8440633614 increased number of floodfills threshold to 1200 2024-07-12 10:44:05 -04:00
orignal 50f455e0a2 make a floodfill eligble if reachable by ipv4 2024-07-12 09:33:37 -04:00
orignal 5fbcfadd6d set min floodfill version to 0.9.59 2024-07-11 15:22:12 -04:00
orignal 5af13849a9 check if offline signature is expired when load keys 2024-07-09 13:44:30 -04:00
orignal a9c486d7a1 fixed stream hanging due to inactivity. Smoother RTT 2024-07-09 10:51:22 -04:00
orignal 8c0a1197d7 drop incoming SSU2 session from duplicated router 2024-07-08 10:39:18 -04:00
orignal 4e5f5c218a mark router as dup0licted only if address mismatch 2024-07-08 08:00:36 -04:00
orignal 64cc59d1e9 recognize duplicated routers and store duplicated flag in profile 2024-07-07 11:26:17 -04:00
orignal 0c943f4405 use received RouterInfo if older than one in netdb 2024-07-06 10:28:18 -04:00
orignal 37d3d9e604 removed openssl 1.0.2 support 2024-07-06 08:50:51 -04:00
orignal d23451fdf6 delete unused variable 2024-07-04 13:43:05 -04:00
orignal d843502832 calculate min pacing time. Return wrongly removed line 2024-07-04 13:28:18 -04:00
orignal 0428b5ece1 limit stream's outbound speed 2024-07-04 13:07:57 -04:00
orignal df787060c3 stop destination's thread before cleanup 2024-06-30 11:40:35 -04:00
orignal ea9c69cd53 some cleanup 2024-06-30 08:11:12 -04:00
orignal 199d149bed improved congestion control 2024-06-29 09:17:11 -04:00
orignal ff8941af71 check if address is still introducer before trying to introduce 2024-06-27 18:02:17 -04:00
orignal f125936b2e try to lookup other introducers' routers if found out doesn't have applicable addresses 2024-06-26 08:53:04 -04:00
orignal 457b64f92d try to connect to introducer through any available address 2024-06-14 18:05:01 -04:00
orignal 6caec6b551 check if updated router is still introducer. Remove non-introducer sessions from introducers list 2024-06-13 18:10:45 -04:00
orignal 362edc68ad removed ls's reseed 2024-06-11 15:14:06 -04:00
orignal 29872fc003 check if local address exists 2024-06-10 17:58:19 -04:00
orignal 81d383c99e don't pick routers older that 0.9.58 for client tunnels 2024-06-10 13:40:07 -04:00
orignal 12653f2fe4 don't try introducer with invalid address. Terminate session immediately if appropriate introducer not found 2024-06-09 18:38:13 -04:00
orignal 43f5ba286c update congestion caps before initial publishing 2024-06-09 15:25:19 -04:00
orignal f990a2f69f don't reply with relay tag if we are not on introducer on that address 2024-06-09 15:07:12 -04:00
orignal 0b97b4294c don't request relay tag for every session if we have enough introducers 2024-06-08 19:28:05 -04:00
orignal 4178ac8eac select newest introducers to publish 2024-06-08 16:08:32 -04:00
orignal 6a590bf970 use std::mt19937 instead rand() 2024-06-07 22:10:52 -04:00
orignal 2f847d62bb fixed typo 2024-06-07 13:35:37 -04:00
orignal df6d48dbae request only not found routers from introducers 2024-06-07 13:29:51 -04:00
orignal bacce7dc60 fixed introducer's index 2024-06-06 16:13:30 -04:00
orignal b3314380cc don't use expired introducer even if we a session with it 2024-06-06 14:19:30 -04:00
orignal d4eea61b82 use mt19937 instead rand 2024-06-05 15:08:51 -04:00
orignal a1995c13cd flood to 2 next day closest floodfills before UTC midnight 2024-06-04 12:45:35 -04:00
orignal bc8adf1433 move unsent I2NP messages to new session if replaced 2024-06-01 20:02:04 -04:00
orignal a1322d4667 move unsent I2NP messages to new session if replaced 2024-06-01 17:46:18 -04:00
orignal 4100249313 removed bootstrap from floodfill. Removed requested destinations mutex 2024-05-31 21:11:47 -04:00
orignal acbd3f897b fixed race condition between local buffer creation and sending it through the transports 2024-05-26 15:33:37 -04:00
orignal 7dc5a04b8d update timestamp for non-reachable router 2024-05-26 11:06:39 -04:00
orignal 03635f4444 publish through tunnels in case of restricted routes 2024-05-26 10:55:19 -04:00
orignal 0fae04f96a update local RouterInfo timestamp by timer even in hidden mode 2024-05-26 10:21:26 -04:00
orignal bb531a878d request newly discovered routers with random intervals after exploratory 2024-05-25 15:17:09 -04:00
orignal 0f7db8e418 list of request callbacks 2024-05-24 21:49:39 -04:00
orignal 9a724b2af9 separate timer for netdb requests cleanup 2024-05-23 14:27:39 -04:00
orignal f4ea6138e8 removed non longer used mutex 2024-05-23 13:36:29 -04:00
orignal e74272781f moved exploratory to netdb requests thread 2024-05-22 18:29:40 -04:00
orignal b75e418879 request destination in netdb requests thread 2024-05-22 13:43:00 -04:00
orignal 927123188c handle onDrop for request message in nedb requests thread 2024-05-22 12:30:01 -04:00
orignal c00eb8cf44 handle requests completions in netdb requests thread 2024-05-22 10:07:01 -04:00
orignal 265bb8b779 handle DatabaseSearchReply in netdb requests thread 2024-05-21 22:19:42 -04:00
orignal e3be409945 moved netdb requests to separate thread 2024-05-21 21:25:19 -04:00
orignal 39e16824b9 reset routing path if duplicated SYN received 2024-05-17 19:19:17 -04:00
orignal 285e693a4e fixed deadlock 2024-05-17 19:07:51 -04:00
orignal 940628bf36 update LeaseSet if inbond tunnel failed 2024-05-17 17:35:16 -04:00
orignal b5994e058a increment num attempts if no reply tunnel specified 2024-05-15 14:12:57 -04:00
orignal 22dabfd79e use unordered_map for excluded routers. don't request to self 2024-05-15 13:31:31 -04:00
orignal 0e41c3fa36 resend more interval variance 2024-05-15 11:57:14 -04:00
orignal 124698854f skip resent recently sessions during resend 2024-05-14 18:17:47 -04:00
orignal f5b823a712 common code for sending netdb lookup 2024-05-13 14:45:41 -04:00
r4sas 6921c8391e
[FS] boost 1.85.0 support
Signed-off-by: r4sas <r4sas@i2pmail.org>
2024-05-12 23:58:05 +00:00
orignal 9d38facf3b 2.52.0 2024-05-11 07:15:28 -04:00
orignal b98b3a87b0 fixed race codition between RouterInfo's buffer persist and update 2024-05-08 19:09:03 -04:00
orignal 425ef2cfe5 persist routers in separate thread 2024-05-08 16:19:00 -04:00
orignal c454685605 exclude addresses with wrong keys 2024-05-07 18:38:00 -04:00
orignal c98926abf2 use mt19937 instead rand() 2024-05-07 13:01:27 -04:00
orignal 7aacc97351 initialize requests before reseeds 2024-05-07 11:58:17 -04:00
orignal c49e17ad40 use timestamp to reset rng 2024-05-07 11:53:18 -04:00
orignal 296b721929 shared_ptr for NetdbRequests 2024-05-06 18:23:20 -04:00
orignal d0cf385f4b memory pool for requested destination. Reduced request attaempts to 5 2024-05-05 11:24:44 -04:00
orignal b91f5a7430 fixed race condition on stop 2024-05-03 20:38:57 -04:00
orignal 4d8431907d use std::sample for exploratory selection if C++17 2024-05-03 19:09:31 -04:00
orignal b0cf5130a2 don't try another flloofill if request already exists 2024-05-03 13:34:11 -04:00
orignal 396aa6944d cache complete request for a while and not send the same request again 2024-05-03 13:00:30 -04:00
orignal 8a20d3219b don't build exploratory selection on each request 2024-05-03 08:54:55 -04:00
orignal 13a746162a reduce exploratory selection size 2024-05-02 21:38:51 -04:00
orignal 7e5370fbe5 check for excluded routers during exploratory 2024-05-02 19:55:53 -04:00
orignal ec59308fad return up to 16 hash in expolatory reply 2024-05-02 19:16:48 -04:00
orignal 5ed76b997c log initial destination request 2024-05-02 13:17:15 -04:00
orignal 535fbdb4c9 don't check exporatory too often 2024-05-01 15:57:04 -04:00
orignal 034332a0ef changed minimal exploratory interval to 55 seconds. added variance 2024-05-01 14:10:34 -04:00
orignal a1eac6f28e drop unsolicited database serach replies 2024-05-01 13:40:01 -04:00
orignal ba22a940f1 30 seconds timeout for exploratory requests 2024-05-01 12:08:47 -04:00
orignal 8439f6dc57 don't reply with close than us only floodfills for lookup 2024-05-01 09:48:34 -04:00
orignal a21bec0ed8 check if router if real only if tunnel build rate is low and router's profile is presented when handle exploratory request 2024-04-30 14:16:05 -04:00
orignal 5adbc2c3fe don't stop lookup if number of attempts < 3 2024-04-30 12:52:00 -04:00
orignal cdfdfc9e24 don't manage netdb is transports are not running 2024-04-30 07:51:46 -04:00
orignal 62d279e1b0 don't return routers with 'f' cap to exploratory request 2024-04-29 15:05:47 -04:00
orignal a1fcd8af39 don't accept too old RouterInfo 2024-04-29 10:07:47 -04:00
orignal 8c6c954ea2 enable previously disabled floodfill 2024-04-28 11:23:35 -04:00
orignal 77bb7432bc insert previously ecluded floodfill back when connected 2024-04-28 11:16:59 -04:00
orignal 720ffa8a31 move traverse thrugh profiles files to deleting thread 2024-04-28 08:05:19 -04:00
orignal 733a4a2869 moved save/delete profile disk oprations to separate threads 2024-04-27 16:00:43 -04:00
orignal 648a884a18 use copy of excluded peers 2024-04-27 08:38:43 -04:00
orignal 8fe989050e use share_ptr to store peers 2024-04-27 08:18:49 -04:00
orignal bb6212ccc1 fixed typo 2024-04-26 18:11:05 -04:00
orignal 5f39f65540 mutex for request's excluded peers 2024-04-26 15:35:32 -04:00
orignal 146b3f52c0 check if pool is ready before sending next request 2024-04-26 13:48:44 -04:00
orignal cc75ccd070 don't manage requests if exploratory pool is not ready. use monotonic timer and milliseconds 2024-04-26 12:43:48 -04:00
orignal 0ddc514221 don't send next request if requested destination is over 2024-04-25 18:52:10 -04:00
Vort 6592fab41c manage netDb requests more frequently 2024-04-24 16:44:24 +03:00
orignal 02895d4cf5 respond with confirmied router to exploratory lookup 2024-04-23 18:30:56 -04:00
orignal 8b7941c4ce fixed typo 2024-04-23 18:21:25 -04:00
orignal de673464d1 don't try to connect directy by SSU2 to unnconfirmed router if direct NTCP2 is presented 2024-04-23 11:40:11 -04:00
orignal 6ce2c30522 build client tunnels through confimed routers only if low rate 2024-04-22 13:03:59 -04:00
orignal c5a1e8cac8 give preference to direct connection 2024-04-19 19:12:29 -04:00
orignal f67c38d8d2 fixed typo 2024-04-18 18:06:24 -04:00
orignal 1f1a3270f7 fixed IsPublished for ipv6 2024-04-15 09:26:30 -04:00
orignal ffee29272f avoid two firewalled routers in the row 2024-04-14 20:09:06 -04:00
orignal 26fac94d05 delete unused varibale 2024-04-08 19:24:44 -04:00
orignal 9a30068ae5 don't compare OBEP hash twice to check if it's a fresh tunnel 2024-04-08 19:00:02 -04:00
Vort b2e21a4f12 increase maximum stream resend attempts to 9 2024-04-08 12:35:50 +03:00
Vort 57e46ba0cf reset stream RTO if outbound tunnel was changed 2024-04-07 21:24:56 +03:00
Vort df3dc1f574 change tunnels during stream resend attempts 5 and 6 2024-04-07 17:30:19 +03:00
r4sas 1b5f67e185
[FS] misc: bump year
Signed-off-by: r4sas <r4sas@i2pmail.org>
2024-04-06 20:38:58 +00:00
orignal c49dd712de 2.51.0 2024-04-06 08:53:54 -04:00
orignal 4f1cb74f75 request choking delay if too many NACKs. Drop window size to 1 if choking delay received 2024-04-02 18:49:16 -04:00
orignal 75df8d3c7b drop ack Through to last packet if Number of NACKs exceeds 255 2024-04-02 11:30:38 -04:00
orignal 85be76b01a check if LeaseSet was submitted recently. Fixed typo 2024-04-01 08:41:58 -04:00
Vort ac9d92c681 select maximum SSU2 queue size depending on RTT value 2024-03-26 10:18:56 +02:00
Vort a703d31893 don't double initial RTO 2024-03-19 10:48:42 +02:00
Vort 4f8f3a386f restart stream resend timer after updating initial RTO 2024-03-19 09:21:57 +02:00
Vort 83f0b9c041 extract single RTT sample from stream ACK 2024-03-19 09:21:43 +02:00
Vort cf77be0eeb add lower limit for stream RTO 2024-03-19 06:37:21 +02:00
Vort e7ff15c573 exclude resent stream packets from RTT calculations 2024-03-16 20:55:49 +02:00
orignal 161ff3579b don't delete new session with same router hash from sessions-by-hash table 2024-03-15 20:12:47 -04:00
orignal f2085ecc8d fixed warning 2024-03-15 19:17:25 -04:00
Vort d74033dd2b tune RTT calculations 2024-03-15 09:06:33 +02:00
Vort 0236769134 lower SSU2 resend traffic spikes 2024-03-14 19:41:16 +02:00
orignal 530a078535 don't request temination if session was not established 2024-03-13 13:56:10 -04:00
Vort 08cc256c54 fix typo in message expiration check 2024-03-13 16:41:01 +02:00
orignal 6432963294
Merge pull request #2037 from vovasty/fs_ios_simulator_fix
fix HashedStorage::Init exceptions in ios simulator.
2024-03-11 14:55:16 -04:00
Vlad Solomenchuk 59beb5e4e4 fix TARGET_OS_SIMULATOR check 2024-03-11 11:29:41 -07:00
Vort 2d06c0cbe6 add expiration for messages in SSU2 send queue 2024-03-09 19:09:05 +02:00
Vlad Solomenchuk 51446f0324 fix FS::HashedStorage::Init exceptions in ios simulator. 2024-03-08 10:23:51 -08:00
orignal 66d0b7aec4 correct publication verification for encrypted LeaseSet 2024-03-07 10:25:10 -05:00
orignal 92b49fb969 clear excluded floodfills after successive publishing 2024-03-06 21:01:17 -05:00
orignal 17dd5c1285 publish encrypted leaset on floodfill closest to store hash 2024-03-06 18:36:01 -05:00
Vort 3ceb64db2e 1. Use EWMA for stream RTT estimation;
2. Drop window size by 10% instead of 50% in case of resend.

Change is based on code by onon.
2024-03-06 15:06:04 +02:00
orignal bb702700f7 don't check session for single tag 2024-03-06 07:17:59 -05:00
orignal ff3fec9a00 remove tag immediately after use 2024-03-05 10:30:01 -05:00
orignal 3873e60cbb try to send database store reply directly to IBGW 2024-03-04 14:30:49 -05:00
orignal 2dbf094433 try to send lookup reply directly to IBGW 2024-03-04 13:34:57 -05:00
Vort 98543af92b fix high latency threshold 2024-03-04 13:41:50 +02:00
orignal af0d853ccd some cleanup 2024-03-03 10:28:25 -05:00
orignal 20a5e19ea1 don't request banned router 2024-03-03 09:56:11 -05:00
orignal f1058410fb don't request banned router 2024-03-03 07:42:39 -05:00
orignal 6ba42a0912 check if established peer test session has the same address type 2024-03-02 18:17:56 -05:00
orignal 1292ec67c0 check if remote router supports peer test 2024-03-02 18:02:55 -05:00
orignal 2f2f14e3a7 try publishing again after 5 seconds if no tunnels in the pool 2024-03-02 11:26:41 -05:00
orignal edd9dd2c39 try to publish again after 5 seconds if destination is not ready 2024-03-02 10:57:01 -05:00
orignal f8722f17c6 pick peer test session only if Charlie's address supports peer testing 2024-03-01 21:59:52 -05:00
orignal 38cc01e13d check own peer test cap for peer test msg 2 2024-03-01 14:33:11 -05:00
orignal 6ca266ff3b reject peer test msg 2 if peer testing is not supported 2024-03-01 14:03:13 -05:00
orignal b9773c88e4 don't set test failed state to expiring tunnels 2024-03-01 12:45:21 -05:00
orignal 3311fe62bb fixed potential race condition with tunnel tests 2024-03-01 08:03:40 -05:00
Vort e5f75eb61c log would_block error at info level 2024-02-29 16:12:51 +02:00
Vort 89f9bec49a derive SSU2 socket buffer size from bandwidth limit 2024-02-29 16:02:43 +02:00
Vort f3c052ed0c write SSU2 socket buffer sizes to log 2024-02-29 10:27:52 +02:00
Vort aa1de7fe94 enable non-blocking mode for UDP sockets 2024-02-28 18:55:28 +02:00
orignal ca45fe73e9 never delete conneted router from netdb 2024-02-27 16:10:17 -05:00
orignal a8af683643 renamed steady to monotonic 2024-02-27 12:33:07 -05:00
orignal b86c83a068 encrypt tunnel tests for ElGamal-only destinations 2024-02-27 11:47:32 -05:00
orignal 6656ef3c8d correct clock for non-encrypted tunnel tests 2024-02-27 09:02:26 -05:00
orignal 6898d04a1d send tunnel test mesaage only if encrypted 2024-02-27 08:30:31 -05:00
Vort 3d03732555 add tunnel test message 2024-02-27 11:08:14 +02:00
Vort d6d440ba8a allow 0ms latency for tunnel 2024-02-26 05:57:28 +02:00
orignal 821a76a7c5 flush IBGW if tunnel build request OBEP is on the same router 2024-02-25 09:15:08 -05:00
orignal a1dce017f4 allow tunnel endpoint to send tunnel build reply to itself 2024-02-24 11:40:43 -05:00
orignal 78af34237e reduce session termination timeout 2024-02-23 19:22:49 -05:00
orignal 8874ea8033 fixed typo 2024-02-23 18:06:31 -05:00
orignal 6bd1ee36f7 fixed typo 2024-02-23 16:09:32 -05:00
orignal f07c4bd1dd drop transit tunnel if next ident is ours 2024-02-23 15:24:52 -05:00
orignal 8524a67895 fail last tunnel if tunnel quantity is 1 2024-02-23 12:32:21 -05:00
orignal 43d880752e Merge branch 'openssl' of https://github.com/PurpleI2P/i2pd into openssl 2024-02-23 11:37:52 -05:00
orignal d4246edb82 don't fail last tunnel 2024-02-23 11:37:09 -05:00
Vort fd4513ebb2 show bandwidth caps for hops 2024-02-22 23:07:07 +02:00
Vort 5415598f60 add zero check to congestion level calculations 2024-02-22 21:50:05 +02:00
orignal 7d73c304b5 Extend transit tunnels limit to 4 bytes. Bump default value to 10K 2024-02-22 14:22:11 -05:00
orignal d25206abce encrypted tunnel test messages 2024-02-21 19:46:29 -05:00
orignal 36a060d50f Consider 'M' routers as low bandwidth 2024-02-21 12:37:33 -05:00
Vort d524105727 skip bandwidth updates in case of time going backwards 2024-02-20 23:27:31 +02:00
Vort b092e712ec make more attempts to select not bad hop 2024-02-20 19:05:19 +02:00
Vort 19e23b34da add constants for congestion levels 2024-02-20 10:30:05 +02:00
orignal f2b720617c
Merge pull request #2016 from Vort/medium_congestion2
implement medium congestion indication
2024-02-19 19:13:12 -05:00
Vort d677d67676 implement medium congestion indication 2024-02-19 21:36:38 +02:00
orignal 7e3157b162 don't process packet in terminated stream 2024-02-18 21:28:06 -05:00
orignal 2b6a95cbee don't check session for symmetric key tagset. re-create tags hash if too many used tags 2024-02-16 21:30:40 -05:00
orignal 900153765a move router's tags cleanup to router's thread 2024-02-16 18:56:04 -05:00
orignal 441e847de8 don't try to decrypt dulpicate message 2024-02-16 14:49:12 -05:00
orignal 6439e227f6 consider test failed state as established. Delete failed tunnels sooner 2024-02-15 19:29:33 -05:00
orignal def404b61a skip failed and expiring tunnels for peer tests 2024-02-14 22:19:07 -05:00
orignal d8be5b8ce1 fixed warning 2024-02-14 21:58:03 -05:00
orignal dddbca6ffb common rng for random shuffle 2024-02-14 21:35:41 -05:00
orignal 56619caa71 random shuffle of tunnels for peer test pairs 2024-02-14 20:16:36 -05:00