Tim Beatham
a55dadf088
81-seperate-synchronisation-into-independent-procs
...
- Neaten code
2024-01-05 12:59:13 +00:00
Tim Beatham
0ec5156e59
81-procs
...
- fixed issue where route not deleting if mesh only one
2024-01-05 00:14:25 +00:00
Tim Beatham
2b73d241b6
81-serparate-procs
...
- nil dereference again
2024-01-04 22:29:30 +00:00
Tim Beatham
69b1790bb6
81-processes
...
- issue with client client traversal
2024-01-04 22:08:14 +00:00
Tim Beatham
4a92743880
81-seperate-sync
...
- build error
2024-01-04 21:48:54 +00:00
Tim Beatham
038393052c
81-seperate-synchronisation-into-independent-proc
...
- build error
2024-01-04 21:47:29 +00:00
Tim Beatham
5efff2314b
81-separate-synchronisation-into-independent-process
...
- nil dereference when no joins
2024-01-04 21:45:28 +00:00
Tim Beatham
1f8d229076
81-seperate-synchronisation-into-independent-process
...
- nil dereference due to concurrency issues (the method shouldn't be
concurrent)
2024-01-04 21:16:33 +00:00
Tim Beatham
59d8ae4334
81-seperate-synchronisation
...
- More code comments
2024-01-04 13:12:07 +00:00
Tim Beatham
02dfd73e08
81-seperate-synchronisation-into-independent
...
- Separated synchronisation calls into independent processes
- Commented code for submission
2024-01-04 13:10:08 +00:00
Tim Beatham
1f0914e2df
bugfix-node-not-leaving
...
- Add lock when perform synchronisation on concurrent access
2024-01-04 00:23:20 +00:00
Tim Beatham
d0b1913796
74-perform-dad
...
- Fixing nil pointer dereference
2024-01-02 00:13:04 +00:00
Tim Beatham
90cfe820d2
- Fixing errors with stale paths
2024-01-02 00:09:31 +00:00
Tim Beatham
dbc18bddc6
74-perform-dad
...
- Performing DAD to check if IPv6 address present before adding
outselves to mesh
- Changing name from wgmesh to smegmesh
2024-01-01 23:55:50 +00:00
Tim Beatham
36e82dba47
72-pull-rate-in-configuration
...
- Refactored pull rate into the configuration
- code freeze so no more code changes
2023-12-31 14:25:06 +00:00
Tim Beatham
fd29af73e3
72-pull-rate-in-configuration
...
- Added pull rate to configuration (finally) so this can
be modified by an administrator.
2023-12-31 12:47:45 +00:00
Tim Beatham
2e6aed6f93
main
...
- Fixing issue with nil pointer de-reference due to bad design of mesh
manager.
- Going forward all references to GetSelf should be depracated. It
introduces a race condition when leaving a mesh network
2023-12-30 00:44:57 +00:00
Tim Beatham
77aac5534b
main
...
- Bugfix in client where "-" was attempted to be parsed as a UDP addr
2023-12-28 17:46:04 +00:00
Tim Beatham
41899c5831
66-improve-graph-dot-tool
...
Improving the graph dot tool so that it shows all
meshes
2023-12-25 01:10:11 +00:00
Tim Beatham
0cc3141b58
61-improve-unit-testing-coverage
...
- Added missing files to commit
2023-12-22 21:49:47 +00:00
Tim Beatham
ceb43a1db1
61-improve-unit-testing-coverage
...
- Got unit tests passing
- Improved manager unit tests
2023-12-22 21:47:56 +00:00
Tim Beatham
2dc89d171b
55-cli-optionifor-peer-type
...
- Ability to specify WireGuard keepalive in the CLI formatter
- Ability to specify publicly routeable endpoint
- Ability to specify whether to advetise routes into the mesh,
and whether to advertise default routes.
2023-12-12 11:58:47 +00:00
Tim Beatham
1789d203f6
main - fix default routing being deleted
...
Default route keeps fluctuating on configuration
update.
2023-12-10 23:35:00 +00:00
Tim Beatham
fe14f63217
53-run-commands-pre-up-and-post-down
...
- Ability to run a command pre up and post down
- Ability to be a client in one mesh and a peer in the other
- Added dev card to specify different sync rate, keepalive rate per
mesh.
2023-12-10 19:21:54 +00:00
Tim Beatham
1e263cc6a8
51-bugfix-routes-not-removing-when-withdrawn
...
- Routes are not being removed despite being withdrawn from the
configuration.
- Best path routes are not shared across interfaces
- Bug in consistent hashing wrong parameter passed caused by
refactorings.
2023-12-10 15:10:36 +00:00
Tim Beatham
f855f53fbf
50-give-client-ability-to-bridge-meshes
...
Client can act as a route bridging meshes. Cient send keepalives
to all of it's peers in the different meshes act as a bridge between
the meshes
2023-12-08 23:56:07 +00:00
Tim Beatham
815c4484ee
47-default-routing
...
Implemented default routing and improved size of gossip. Using 64 bit
hash funciton to identify vector.
2023-12-08 20:02:57 +00:00
Tim Beatham
0058c9f4c9
47-default-routing
...
Implementing default routing so that all traffic goes out of an
exit point.
2023-12-08 11:49:24 +00:00
Tim Beatham
661fb0d54c
45-use-statistical-testing
...
Keepalive is based on per mesh and not per node.
Using total ordering mechanism similar to paxos to elect a leader
if leader doesn't update it's timestamp within 3 * keepAlive then
give the leader a gravestone and elect the next leader.
Leader is bassed on lexicographically ordered public key.
2023-12-07 18:18:13 +00:00
Tim Beatham
64885f1055
45-use-statistical-testing
...
Using statistical testing to test whether the node has failed.
2023-12-07 01:44:54 +00:00
Tim Beatham
a3ceff019d
43-use-gravestones
...
Change of approach from keepalive to a noiseless protocol
2023-12-06 22:45:04 +00:00
Tim Beatham
1b18d89c9f
41-bugfix-fluctuating-ips
...
Fluctuating ips creating hub and spoke.
2023-12-05 02:00:16 +00:00
Tim Beatham
245a2c5f58
41-bugfix-fluctuating-ips
...
If the node is a peer then add the client in the WG
configuration.
2023-12-04 17:40:24 +00:00
Tim Beatham
c40f7510b8
41-bugfix-fluctuating-ips
...
IPs of clients fluctuating because there isn't a strict order on
clients. Client's need to be processed before the peers.
2023-12-04 17:32:50 +00:00
Tim Beatham
78d748770c
BUGIX Hash client by public key
2023-12-04 17:13:51 +00:00
Tim Beatham
0ff2a8eef9
BUGFIX: Allowed IPs fluctuating
2023-12-04 17:11:37 +00:00
Tim Beatham
fd7bd80485
BUGFIX
...
Don't get device each time it is an expensive operation.
2023-12-04 16:40:15 +00:00
Tim Beatham
650901aba1
39-implement-two-phase-map
...
Implemented my own two phase map based on vector clocks
2023-11-30 02:02:38 +00:00
Tim Beatham
a82eab0686
Bugfix
...
Added replace peers so that deleted nodes are automatically removed
2023-11-28 14:43:55 +00:00
Tim Beatham
32e7e4c7df
main
...
Bugfix. Fixed issue where consistent hashing was not working.
2023-11-28 14:42:09 +00:00
Tim Beatham
d8e156f13f
36-add-route-path-into-route-object
...
Added the route path into the route object so that we can
see what meshes packets are routed across.
2023-11-27 18:55:41 +00:00
Tim Beatham
a2517a1e72
34-fix-routing
...
- Added mesh-to-mesh routing of hop count > 1
- If there is a tie-breaker with respect to the hop-count use consistent
hashing to determine the route to take based on the public key.
2023-11-27 15:56:30 +00:00
Tim Beatham
aef8b59f22
32-fix-routing
...
Flooding routes into other meshes a bit like BGP.
2023-11-25 03:15:58 +00:00
Tim Beatham
4030d17b41
Fixed routing issue
2023-11-24 17:49:06 +00:00
Tim Beatham
2c406718df
29-only-ping-clients-who-have-updated-their-config
...
Only consider clients who have updated their config when synchronising
with peers. Consider a dead time where we don't have a handshake and
a prune time when we remove them from the WireGuard configuration.
2023-11-24 12:37:54 +00:00
Tim Beatham
7be11dbaa3
27-remove-client-grpc-endpoint
...
Removed a client's grpc endpoint value. Client's aren't publicly
available so there is no need for a client's gRPC endpoint.
Also changed a node ID's to their public key. A node id's public
address is an issue for mobility of clients as their endpoint
is subject to change
2023-11-24 12:07:03 +00:00
Tim Beatham
e7ac8c5542
Only updating WireGuard config if node exists
2023-11-22 13:08:02 +00:00
Tim Beatham
4c54022f63
25-modify-code-to-use-public-api
...
Modify the code to use a public IP address by default if none is
specified
2023-11-22 10:41:54 +00:00
Tim Beatham
624bd6e921
24-keepalive
...
Persistent keep alive working
2023-11-21 21:26:31 +00:00
Tim Beatham
7b939e0468
24-keepalive-holepunch
...
Added the ability to hole punch NAT
2023-11-21 20:42:43 +00:00