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
ceb43a1db1
61-improve-unit-testing-coverage
...
- Got unit tests passing
- Improved manager unit tests
2023-12-22 21:47:56 +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
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
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
32e7e4c7df
main
...
Bugfix. Fixed issue where consistent hashing was not working.
2023-11-28 14:42:09 +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
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
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
6e201ebaf5
24-keepalive-holepunch
...
Nodes acting as peers and nodes acting as clients
2023-11-21 16:42:49 +00:00
Tim Beatham
06542da03c
main
...
Fixed problems with timestamp not updating
2023-11-21 13:31:34 +00:00
Tim Beatham
b179cd3cf4
Hashing the WireGuard interface
...
Hashing the interface and using ephmeral ports so that the admin doesn't
choose an interface and port combination. An administrator can alteranatively
decide to provide port but this isn't critical.
2023-11-20 13:03:42 +00:00
Tim Beatham
388153e706
Stubbing out WireGuard components
...
Stubbing our WireGuard components so that I can use docker/podman
network_mode=host. This is much more efficient than the docker/podman
userspace network.
2023-11-20 11:28:12 +00:00
Tim Beatham
68db795f47
Ability to specify aliases
...
Ability to specify aliases that automatically append to /etc/hosts
2023-11-17 22:13:51 +00:00
Tim Beatham
f6160fe138
Adding aliases that automatically gets added
2023-11-17 19:13:20 +00:00
Tim Beatham
1a864b7c80
Removed interface manipulation via os.Exec into
...
rtnetlink calls
2023-11-07 19:48:53 +00:00
Tim Beatham
acbeb689b5
Prune nodes if they exceed their timeout time
2023-11-06 13:37:28 +00:00
Tim Beatham
c88012cf71
Added health system to count how many times a node
...
fails to conenct.
2023-11-06 09:54:06 +00:00
Tim Beatham
9454d62417
Adding stubs and writing tests
2023-11-05 18:03:58 +00:00
Tim Beatham
d462d95d6d
Ability for each node to set their description describing what
...
service they provide.
2023-11-01 11:58:10 +00:00
Tim Beatham
e63edea763
Fixing an issue where packets are dropped each time
...
we change wg configuration
2023-11-01 10:39:46 +00:00
Tim Beatham
579426e32d
Tidied up code, made changes for benchmarking.
2023-10-30 16:49:02 +00:00
Tim Beatham
472718c9a3
Standardising filenames, interfacing out
...
for tests and modifying network device
manipulation
2023-10-28 16:38:25 +01:00