Tim Beatham
d2c8a52ec6
main
...
- Adding retry policy for mobility
2023-12-29 00:58:43 +00:00
Tim Beatham
bf53108384
main
...
- Bugfix, fix consistent hash problem where
if failure happens then causes panic
2023-12-28 23:24:38 +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
58439fcd56
main
...
- Bugfix when keepalivewg is not set causes segmentation fault
- give keepalive a default value of 0 if not set
2023-12-28 17:32:54 +00:00
Tim Beatham
255d3c8b39
66-improve-graph-dot-tool
...
- Showing services a node provides
- Showing all meshes not just one
- Showing the default route
2023-12-25 01:25:20 +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
0b91ba744a
61-improve-unit-test-coverage
...
- Provided unit tests for g_map and 2p_map
2023-12-22 23:57:10 +00:00
Tim Beatham
67483c2a90
64-unit-test-two-phase-set
...
Provide unit tests for two phase set to make it more
transparent what exactly they are doing.
2023-12-22 23:57:10 +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
6ed32f3a79
bugfix-push-pull
...
Organised groups as a tree so that there
isn't a limit to dissemination
2023-12-19 00:50:17 +00:00
Tim Beatham
b6199892f0
bugfix-pull-only
...
Bugfix with inter-cluster communication pull not working
2023-12-18 22:17:46 +00:00
Tim Beatham
ad22f04b0d
bugfix-pull-only
...
After certain period of time if no changes have
occurred then pull
2023-12-18 20:45:56 +00:00
Tim Beatham
092d9a4af5
checking-latency-for-pull-only
2023-12-17 09:44:32 +00:00
Tim Beatham
19abf712a6
Fixing bug with nodes being removed
2023-12-12 12:45:41 +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
13bea10638
main - bugfix
...
- Nodes not being removed when deleted because when node gossips again
it is readded.
- Keep track of highest vector clock we have removed and used this as a
mark for determining if something is stale.
2023-12-11 11:09:02 +00:00
Tim Beatham
3222d7e388
main - adding WireGuard stats to JSON objects
...
- Adding WireGuard stats through to IPC calls so that they can be used
by the API
2023-12-11 09:55:25 +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
a5074a536e
main - BUGFIX
...
- segfault BUGFIX
2023-12-10 22:31:24 +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
3ef1b68ba5
BUGFIX: Hashing datastore to work out changes
...
Changed hashing implementation to work out if there are changes
in the data store
2023-11-30 15:58:26 +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
d1a74a7b95
32-incorporate-dns
...
Incorporated a DNS server. A DNS server can be run to resolve host
names.
2023-11-24 15:04:07 +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
Tim Beatham
6e201ebaf5
24-keepalive-holepunch
...
Nodes acting as peers and nodes acting as clients
2023-11-21 16:42:49 +00:00