Commit Graph

8348 Commits (3103194ec4fadae337ae5c724d0739440836435c)
 

Author SHA1 Message Date
dr7ana 3103194ec4 Better linux fd poller 2 days ago
dr7ana 8495517168 whatsup paths 3 days ago
dr7ana c874387b29 any beets on the side? 1 week ago
dr7ana 5b522e64d1 maybe a little green beans too 1 week ago
dr7ana ec32167513 squash, but more the zucchini type 1 week ago
dr7ana fe717b9a05 yay path building 1 week ago
dr7ana fe9d229a4a yay clients connecting 2 weeks ago
dr7ana e3d80ea400 updated, may kill testnet but yolo 2 weeks ago
dr7ana ea6d62c340 libquic -> dr7ana/0rtt, etc 2 weeks ago
dr7ana 104ba6d1f3 testing this out 2 weeks ago
dr7ana 8a381c86c7 more netif 3 weeks ago
dr7ana c155db36af libevent 2.2 for watchers 3 weeks ago
dr7ana 036fbe2846 better netif 3 weeks ago
dr7ana 35e05b36a8 issue fixed, force clearing nodedb 3 weeks ago
dr7ana ca7fc0713d kick 4 weeks ago
dr7ana b7944307e0 Misc (squash) 4 weeks ago
dr7ana ab30bf2a3b so much better! 4 weeks ago
dr7ana 5b48abc969 kick testnet buddy 1 month ago
dr7ana ec2dbd33a8 ipv6 config disabled, tun interface solid on ipv4 1 month ago
dr7ana 9e300d2d3f libquic -> dr7ana/primary_net_closure branch 1 month ago
dr7ana dfa0e52e69 Aggregated bugfix commits and logging fixes
- Formatting concept to enable oxen-logging printing for custom objects was updated with libquic vbump to require boolean member variable
- Members added in base objects to be inherited through
1 month ago
dr7ana c15b3b1db3 tick logic handling
- libevent loop ticker now handles all execution of `Router::tick()`
3 months ago
dr7ana 52ceb26e05 libquic bump 3 months ago
dr7ana fcf62fb703 it's... alive!? 3 months ago
dr7ana 5f61469dad libquic bump -> dr7ana/repeater 3 months ago
dr7ana d455a36a8b testing something on CI 4 months ago
dr7ana 6a7e973014 CI fixes and architecture changes; bt serialize path object fix; deps bumps 4 months ago
dr7ana f755d2601f TUN ip packet re-writing; deps bump
- Packets coming in and out of full clients need their IP src/dest addresses re-written
- Lokinet's TUN device sucks up all packets aimed at the if range, correctly addressing them to the proper outbound
- On reception, lokinet's TUN device addresses correctly for the mapped application receiving the packet
- Brought a lil somethin' somethin' from libquic for CI
- Bump oxenmq to cpp20 branch
- Revert cpr to 1.9 stable for subproject curl dep bug
4 months ago
dr7ana 4979f9aab8 TUN/Session IP routing negotiation
- TUN endpoint assigns a local IP to route traffic for inbound/outbound sessions
- Config mappings pre-loaded and superside ip iteration
4 months ago
dr7ana ce16778412 IPRange iterator
- Tunnel IP assignment requires robust IP assignment
- With the correct implementation of max_ip/next_ip retrieval from ip and ip_range objects, we can now implement IPRangeIterator to manage this
4 months ago
dr7ana 4ef9754c60 Dep bump + misc
- libquic bumped for needed ip methods
- bumped nlohmann, cpr, CLI11, oxen-encoding, pybind11, sqlite_orm
- span-lite, ghc-filesystem, and uvw removed after shift to C++20
4 months ago
dr7ana 8a45350e98 Client session refactor, datagram pipelining
- LocalEndpoint/RemoteHandler combined into SessionEndpoint for ambidextrous session management
- Data message routing in/out of paths implemented using callbacks for receiving datagrams differently for embedded vs full clients
- Tunneled QUIC endpoints (no-UDP endpoints) implemented with TCP client/server endpoints on embedded/full clients
- Lots of surrounding work on the above points
5 months ago
dr7ana 5b9ad1074c TCP tunnel differentiated inbound/outbound
- TCP backend is differentiated in Inbound vs Outbound sessions, as one listens while the other connects
- These pathways are mroe discretely implemented, and the logic may move into the derived classes instead
- Now to add hooks to connect TCP server/client to backend (app or system TUN)
5 months ago
dr7ana 8938c06a9f TCP client code hooked up
- TCP handles and connections are now looped into session initiation and reception
- I'm tired
5 months ago
dr7ana afe20e8f47 Session initation, authentication
- Session initiation/handling session initiation request logic finished; still to loop in TCP logic and handlers
- remove SessionAuthPolicy from OutboundSession
- auth token mapping passed to RemoteHandler; ONS auth mappings resolved with ONS range mappings
- auth_static_tokens passed to LocalEndpoint; received auth verify passed tokens against that
5 months ago
dr7ana fee6cd612b So much
- EmbeddedEndpoint removed for solo implementation of TunEndpoint for all instances except non-embedded clients
- Deprecated TransitHopInfo, TransitHopID; absorbed into TransitHop
- Reworked PathContext internal storage of TransitHops, both mutators/setters/getters
- Straightened out success conditions of path building
- Session initiation and path respective path building code is almost done being laid out
- Full steam ahead buddy
5 months ago
dr7ana 849c6451c5 libquic vbump
- manual routing
- Network ctor from existing Loop
5 months ago
dr7ana 6e5d8413f5 Netif and quic Tunnel reduction
- link::TunnelManager will be re-implemented in link::QUICTunnel to make and accept TCP connections
- Will be simplified using Libevent and hooked into the new LocalEndpoint/RemoteHandler model
- TCP{Handle,Socket} ownership model will be revised to more monadic model; this will allow the TCPSockets (sockets representing accepted connections) to function entirely independantly of the bound socket
6 months ago
dr7ana d9cee71cf5 TCP listener laid out
- Was able to repurpose a lot of the code from the ill-fated ev-dns implementation
- TCP{Handle,Socket} implemented to parallelize UDP{Handle,Socket} in functionality
- TCP implementation takes in a callback that receives an IPPacket; can also be easily reconfigured to hanle a UDPPacket by simply changing the callback type and the constructor called in llarp/ev/tcp.cpp::tcp_read_cb()
6 months ago
dr7ana 9e6a334da3 Buffer methods
- Fixed final bencode.h dependencies in AlignedBuffer that was pending refactor of other types
- Last traces of any non-oxenc bencode are done
- Next is TCP listeners!
6 months ago
dr7ana 078d0dfc23 Prefiguring, deprecation
- TunEndpoint and LocalEndpoint prefiguring
- Fully removed service::Address and all uses of AddressVariant_t in favor of the improved NetworkAddress type
- Fully removed exit/* and most of service/*
6 months ago
dr7ana 791155d1c9 Make it reachable
- LocalEndpoint logic for regenerating and publishing introset
- 'publish_intro' performed over path messages: to be revised upon evaluating determinism in dht key comparison with every relay holding the entire network's RC's at all time
- surrounding logic left unchanged to be revised as per previous bullet -- can also likely deprecate "order" field with more massaging
- futher deprecation of "is_relayed" bool field would require different endpoints for relays to call
6 months ago
dr7ana ee961cf6a7 libquic vbump 6 months ago
dr7ana a1a3254c9c Router prefiguring, ons resolve
- LocalEndpoint and RemoteHandler properly configured using values from ::NetworkConfig
- ONS range mappings passed to config now resolved by RemoteHandler at earliest possible phase in Router::run()
6 months ago
dr7ana 597927a7f8 Session init
- correctly looks up introset locally, stores on successful request-response if not found locally
- fetched introset used for recursive path-build through pivots
- serialize/deserialize logic DRYs out implementation
- session init handling laid out
6 months ago
dr7ana cbaa175471 Symmetric encryption
- DRYed out symm. enc. in path-building and session initiation
- onwards to unifying session initiation/path-build into one-shot
6 months ago
dr7ana ecd77449b6 DRY'ed out symmetric encryption logic in path-build and path-controls 6 months ago
dr7ana 8262f04d46 Removed outer hash for path messages
- if a hop can generate the symmetric key and decrypt its respective payload, then the concept of checking a hash is somewhat pointless
- hmac generation and validation removed
6 months ago
dr7ana b06473d999 Segmented path-build
- Path building logic in ::PathHandler is broken up into 3 functions. This allows paths built outside of the usual PathHandler::Tick() logic (ex: paths for initiating sessions) to implement custom logic and path handling
- RemoteHandler now uses segmented build logic to create a path upon session initiation without storing the created path internally
6 months ago
dr7ana b7918df89b libquic vbump 6 months ago