Lennon Day Reynolds
25b2814916
more consistent naming and formatting
2025-07-15 13:13:44 -07:00
Aaron Johnson
8285e0f45b
Add Prometheus metrics for packet fragmentation monitoring in nodes
...
- Add comprehensive VL1 (ZeroTier protocol) fragmentation metrics:
* Track fragmented packets, fragments, reassembly failures
* Monitor fragment ordering issues and duplicates
* Histogram for fragments per packet distribution
- Add VL2 (TAP/Ethernet) fragmentation metrics for virtual ethernet interfaces:
* Track oversized frames from TAP devices
* Monitor frames that would fragment or drop
* Histogram for frame size distribution with common MTU buckets
- Integration across all TAP implementations (Linux, Mac, BSD, Windows)
This allows monitoring of fragmentation patterns for nodes participating
as members in ZeroTier networks, helping identify MTU mismatches and
optimize virtual ethernet performance.
2025-07-15 10:41:03 -07:00
Adam Ierymenko
ba2a4a605c
clang-format
2025-07-03 11:26:23 -04:00
Adam Ierymenko
1982071d46
1.14.0 version bump for Linux and macOS, date update.
2024-03-19 14:38:48 -07:00
Brenton Bostick
f73e51e94c
Brenton/curly braces ( #1971 )
...
* fix formatting
* properly adjust various lines
breakup multiple statements onto multiple lines
* insert {} around if, for, etc.
2023-05-01 11:48:16 -07:00
Grant Limberg
595e033776
Outgoing Packet Metrics ( #1980 )
...
add tx/rx labels to packet counters and add metrics for outgoing packets
2023-04-28 14:24:19 -07:00
Joseph Henry
39f3f5b2d9
User-configurable physical MTU for individual links
...
This patch allows users to specify the physical layer MTU for individual links
when in multipath mode. For example:
{
"settings":
{
"defaultBondingPolicy": "custom-balance-xor",
"policies":
{
"custom-balance-xor":
{
"basePolicy": "balance-xor",
"failoverInterval": 5000,
"links": {
"weird_5g_link": { "mtu": 1300 },
"enp5s0": { "mtu": 1400 }
}
}
}
}
}
2023-01-12 07:12:19 +01:00
Adam Ierymenko
06730c7d1d
BSL date bump
2020-08-20 12:51:39 -07:00
Joseph Henry
a50e8e9878
Add Bonds, Slaves, and Flows
2020-05-12 01:35:48 -07:00
Joseph Henry
de9cfbe9b0
Merge dev into multipath
2020-05-12 00:08:52 -07:00
Adam Ierymenko
52a166a71f
Relicense: GPLv3 -> ZeroTier BSL 1.1
2019-08-23 09:23:39 -07:00
Joseph Henry
5453cab22b
Added flow-awareness check for policies, more work on ZT_MULTIPATH_ACTIVE_BACKUP
2019-08-20 18:50:38 -07:00
Joseph Henry
0634214f2c
Added notion of Flows
2019-08-19 21:52:33 -07:00
Adam Ierymenko
d9432f2f1e
cleanup
2019-07-29 10:19:20 -07:00
Joseph Henry
0e597191b8
Updated licenses for 2019
2019-01-14 10:25:53 -08:00
Adam Ierymenko
553101e8b5
merge dev
2018-08-09 11:31:37 -07:00
Adam Ierymenko
5b114791e5
Fix a bug that caused a crash on empty HTTP requests (localhost only) and add a lightweight lock to the RX queue to prevent possible threads stepping on each other in parallel receive paths.
2018-07-20 14:01:58 -07:00
Joseph Henry
28cb40529d
Rough draft of fq-codel implementation
2018-07-10 16:50:12 -07:00
Adam Ierymenko
6d8e1e8783
More cleanup of old stuff.
2018-01-26 21:34:56 -05:00
Adam Ierymenko
6fbd15f8b2
cleanup
2018-01-08 15:56:53 -08:00
Adam Ierymenko
65c07afe05
Copyright updates for 2018.
2018-01-08 14:33:28 -08:00
Grant Limberg
b1d60df44c
timestamps changed from uint64_t to int64_t
...
There were cases in the code where time calculations and comparisons were overflowing and causing connection instability. This will keep time calculations within expected ranges.
2017-10-02 15:52:57 -07:00
Adam Ierymenko
180049a277
Fix pointer bug.
2017-08-23 16:55:22 -07:00
Adam Ierymenko
6ee201865b
Clean up WHOIS code.
2017-08-23 16:42:17 -07:00
Adam Ierymenko
b1d94c9f93
Performance improvement to RX queue ring buffer.
2017-08-23 15:19:26 -07:00
Adam Ierymenko
e3cf756785
Make rxQueue lock-free using an atomic counter ring buffer.
2017-08-08 13:21:10 -07:00
Adam Ierymenko
b9e1d53d7a
Minor cleanup.
2017-07-17 14:21:09 -07:00
Adam Ierymenko
f18158a52d
.
2017-07-06 11:45:22 -07:00
Adam Ierymenko
1b68d6dbdc
License header update.
2017-04-27 20:47:25 -07:00
Adam Ierymenko
e4896b257f
Add thread PTR that gets passed through the entire ZT core call stack and then passed to handler functions resulting from a call.
2017-03-27 17:03:17 -07:00
Adam Ierymenko
d9e4ba1280
Eliminate a little copypasta.
2017-02-04 00:04:44 -08:00
Adam Ierymenko
dcb1233b0d
Slight refactor to RENEDEZVOUS sending code for federation.
2017-02-03 23:54:02 -08:00
Adam Ierymenko
5dbebc513a
Minor send path refactor to make packet I/O work on clusters if they are members of networks. Also fix a crash if compiled in cluster mode but no cluster is enabled.
2017-02-01 12:00:25 -08:00
Adam Ierymenko
39333c9e8e
Modify unite() to deal with a second layer of upstreams.
2016-11-17 16:59:04 -08:00
Adam Ierymenko
e1310a764a
More cleanup and removal of cruft due to obsolete network-specific relays (will be replaced with federation stuff).
2016-08-09 15:45:26 -07:00
Adam Ierymenko
56096be8b6
Tweak new RX queue algorithm to "expire" old entries to prevent always needing to traverse the whole queue array.
2016-04-06 16:28:40 -07:00
Adam Ierymenko
284e5d83b5
Fix some broken TRACEs and a tiny reorder in a few ifs.
2016-03-28 12:15:24 -07:00
Adam Ierymenko
d6a1868d0a
Refactor incoming packet (rxQueue/fragmentQueue) to eliminate variable length queues and merge queues. This is both faster and saves memory.
2016-03-18 14:16:07 -07:00
Adam Ierymenko
4e4fd51117
boring doc stuff
2016-01-12 14:04:55 -08:00
Adam Ierymenko
704205c5f7
Dead code removal.
2016-01-12 09:33:14 -08:00
Adam Ierymenko
436c1fac1d
Selectively move over changes from "edge" to "dev" excluding netcon.
2015-12-21 16:15:39 -08:00
Adam Ierymenko
9490b1f136
Try prioritizing cluster-send over direct send in cluster mode -- may improve cluster relaying reliability.
2015-11-06 13:38:56 -08:00
Adam Ierymenko
f692cec763
Change how cluster relays packets -- just PROXY_UNITE and then send packet via normal ZeroTier front plane -- more efficient and eliminates fragmentation issues.
2015-10-27 14:04:12 -07:00
Adam Ierymenko
f69454ec98
(1) Make ZT_ naming convention consistent (get rid of ZT1_), (2) Make local interface a full sockaddr_storage instead of an int identifier, which turns out to be better for multi-homing and other uses.
2015-09-24 16:21:36 -07:00
Adam Ierymenko
367ffde00c
Plumb through localInterfaceId to track local interfaces corresponding with remote addresses.
2015-09-23 13:49:56 -07:00
Adam Ierymenko
85b90f122a
Final std::map<> from Switch, and add some smallish default values for hash size.
2015-09-04 15:35:43 -07:00
Adam Ierymenko
3dba016a93
Almost done... very few std::map<>s remaining in any spot that matters.
2015-09-04 15:21:22 -07:00
Adam Ierymenko
db0369e9b8
Remove way-overkill multimap from Switch.
2015-09-04 14:56:39 -07:00
Adam Ierymenko
0ab3e49be9
Starting in on Switch... kill map in defrag queue, which will probably improve performance pretty decently under high load with lots of peers.
2015-09-04 14:44:22 -07:00
Adam Ierymenko
b31071463c
Try another NAT traversal improvement.
2015-07-28 11:28:47 -07:00