Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Treating in and out slightly differently in cake #233

Open
dtaht opened this issue Jan 30, 2023 · 5 comments
Open

Treating in and out slightly differently in cake #233

dtaht opened this issue Jan 30, 2023 · 5 comments
Labels
Research Researchy things
Milestone

Comments

@dtaht
Copy link
Collaborator

dtaht commented Jan 30, 2023

After staring at the data a while, also knowing there are details in the extended tc class statistics (4096 queues) we are not presently getting at, I realized there was a small cake mod that made it more possible to correlate in and out post-hoc. It looks to be easy to add (I have already got rid of smoothing and then destructively sampling in my babycake branch, which makes the sawtooths and bandwidth graphs much more accurate) - the idea of using a reversed hash on the other direction of the connection.

so it would hash on dst,dst_port,src,src_port,proto in that case and have a hash consistent with the other direction, when sampled. As for the uses of this, I am not sure, correlating a flow, back to itself would be useful for tracking I think wifi problems, looking for burstiness in that traffic, as one example. Picking out voip and videoconferencing behaviors as distinct from tcp... Also, dealing with hashes is nicely anonymizable... I have looked over urcu, and had a brief chat with the author of it:

He wrote:

To match hashed keys between ingress and egress traffic, I would recommend to have a look at the rcu lock-free hash table
upstream in the liburcu project, because I don't think you need an
ordered set.

Problem B) Keep timestamp-ordered records of your traffic for later
post-processing. For this, I would recommend to have a look at the
LTTng-UST project (which I maintain), which is specialized for
high-throughput userspace tracing through per-core ring buffers. Its
counterpart to read the binary traces at post-processing is Babeltrace.

@dtaht dtaht added the Research Researchy things label Jan 30, 2023
@dtaht
Copy link
Collaborator Author

dtaht commented Feb 5, 2023

@dtaht
Copy link
Collaborator Author

dtaht commented Feb 5, 2023

Just to remain cynical about the need for affinity and better bin-packing, referring to this closed bug: #127

@dtaht
Copy link
Collaborator Author

dtaht commented Feb 5, 2023

I am not sure if the binpacking makes total sense or not at this point. 1) I think that in/out traffic for the same circuit should land on the same cpu. Or perhaps they shouldnt. I dont know. 2) We have discussed binpacking based more on an assumption that 30 10Mbit subscribers are more likely than one 300Mbit subscriber to need more bandwidth. 3) The current binpacking algo (I think) puts the lightest load on the last CPU, where given how much stuff defaults to cpu 0, the tree should be inverted.

@dtaht dtaht added this to the v1.4 milestone Feb 7, 2023
@dtaht
Copy link
Collaborator Author

dtaht commented Feb 7, 2023

I would like a sqm_in and sqm_out variable, overriding the sqm variable if needed.

@dtaht
Copy link
Collaborator Author

dtaht commented Mar 18, 2023

@rchac I would like sqm_in and sqm_out, and also, we need to tune cake below 4Mbits.

@dtaht dtaht modified the milestones: v1.4, v1.5 Mar 18, 2023
@rchac rchac modified the milestones: v1.5 Beta, v2.0 May 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Research Researchy things
Projects
None yet
Development

No branches or pull requests

2 participants