Comments (3)
I re-read through all the code and I believe I have found what is causing the problem. When receiving a packet we set the packet flowId to ZT_QOS_NO_FLOW and then only if we hit a packet that is of the VERB_FRAME type we look into its guts and set the flowId based on the actual protocol source/destination port numbers.
The catch is that packets that have been bridged are not VERB_FRAME but they are VERB_EXT_FRAME which contains no code to set the flowId correctly. This is why in-flow assignments do not work for packets from bridged hosts.
Out-flow assignments work perfectly for those because the flowId calculation is done already in Switch::onLocalEthernet of switch.cpp regardless of whether this is a VERB_FRAME or VERB_EXT_FRAME packet.
from zerotierone.
I have also found what looks to me like a typo in the header length discriminator for VERB_FRAME type packets (it was populating flowId only when the packet was big enough to contain a VERB_EXT_FRAME header and at least some payload. I think this was meant to match against VERB_FRAME header size instead. This could make small (VERB_FRAME) packets not to have flowId populated.
from zerotierone.
I put together a small patch to fix both of the issues above:
Quick testing seems to show that this has fixed the issue and in-flows now work correctly even for bridged packets. Please review the patch and consider upstreaming.
from zerotierone.
Related Issues (20)
- [Linux] Build requirements didn't mention.
- 在central创建网络发现Subnet重复 HOT 3
- zerotier-one should support systemd notification HOT 3
- Problem with metrics in daemonize (-d) mode HOT 4
- High CPU usage on Windows when there is no internet connection available HOT 3
- MTU issue with some mobile operators HOT 5
- Set TAP adapter speed to 1Gbit or 10Gbit HOT 1
- Sometimes losing connection to ZT network when Android device changes from WiFi to cellular
- compatibility for android with ndk toolchain
- Unstable SSH connection although ping is ok HOT 1
- The problem with the minecraft plasmo voice udp port HOT 2
- Zerotier Central down, unable to log in trough the web portal, and API requests are failing. HOT 13
- zerotier windows - not ajusting interface mtu HOT 8
- Zerotier Android - some internet traffic gets disrupter when Zerotier network is active
- Receiving/being assigned a local IPv4 address takes 15-20 seconds after joining a network. Changing system time after zerotier service has started on windows makes joining networks impossible. HOT 6
- Version Naming inconsistency issue HOT 5
- Zerotier Central down HOT 3
- Cant connect via wifi and cellular on android 13 on ASUS ROG PHONE 6
- Hello, I would like to customize the PLANET node HOT 2
- Noticeable performance hit with Moonlight/Sunshine gaming
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zerotierone.