mirror of
https://github.com/cwinfo/yggdrasil-go.git
synced 2024-12-22 12:55:39 +00:00
Update changelog for v0.3.16 release (#769)
* draft of changelog * more changelog
This commit is contained in:
parent
f0a5cd542c
commit
ac375917c9
25
CHANGELOG.md
25
CHANGELOG.md
@ -25,6 +25,31 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
||||
- in case of vulnerabilities.
|
||||
-->
|
||||
|
||||
## [0.3.16] - 2021-03-18
|
||||
### Added
|
||||
- New simulation code under `cmd/yggdrasilsim` (work-in-progress)
|
||||
|
||||
### Changed
|
||||
- Multi-threading in the switch
|
||||
- Swich lookups happen independently for each (incoming) peer connection, instead of being funneled to a single dedicated switch worker
|
||||
- Packets are queued for each (outgoing) peer connection, instead of being handled by a single dedicated switch worker
|
||||
- Queue logic rewritten
|
||||
- Heap structure per peer that traffic is routed to, with one FIFO queue per traffic flow
|
||||
- The total size of each heap is configured automatically (we basically queue packets until we think we're blocked on a socket write)
|
||||
- When adding to a full heap, the oldest packet from the largest queue is dropped
|
||||
- Packets are popped from the queue in FIFO order (oldest packet from among all queues in the heap) to prevent packet reordering at the session level
|
||||
- Removed global `sync.Pool` of `[]byte`
|
||||
- Local `sync.Pool`s are used in the hot loops, but not exported, to avoid memory corruption if libraries are reused by other projects
|
||||
- This may increase allocations (and slightly reduce speed in CPU-bound benchmarks) when interacting with the tun/tap device, but traffic forwarded at the switch layer should be unaffected
|
||||
- Upgrade dependencies
|
||||
- Upgrade build to Go 1.16
|
||||
|
||||
### Fixed
|
||||
- Fixed a bug where the connection listener could exit prematurely due to resoruce exhaustion (if e.g. too many connections were opened)
|
||||
- Fixed DefaultIfName for OpenBSD (`/dev/tun0` -> `tun0`)
|
||||
- Fixed an issue where a peer could sometimes never be added to the switch
|
||||
- Fixed a goroutine leak that could occur if a peer with an open connection continued to spam additional connection attempts
|
||||
|
||||
## [0.3.15] - 2020-09-27
|
||||
### Added
|
||||
- Support for pinning remote public keys in peering strings has been added, e.g.
|
||||
|
Loading…
Reference in New Issue
Block a user