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
Multi-mediums for packet queue isolation #9
Conversation
This is really interesting. I have a question: what would be the behavior in a scenario with mobility? |
Station medium IDs can be reassigned to new ones via wserver dynamically according to their position. |
Let's take the interference model as an example: can the PR do this dynamically? How? |
I hadn't taken interference into account. In the latest commit I also added medium ID filtering for interference calculations. Did you mention this case? By the way, since there are opposite controls on Line 559 in 1ea88d5
and Line 243 in 1ea88d5
this control always return 0: Line 562 in 1ea88d5
Shall we remove the control or can there be a bug? |
hmm.. not convinced. My concern is with dynamic scenarios. For example, with the interference model the propagation model calculates the RSSI taking into account the distance. Wmediumd can calculcate the distance because it knows the position of the nodes. That said, please correct me if i am wrong. We can set the medium_id and it works in a static scenario. However, if the node moves towards a new cell, what would happen? Can wmediumd update the medium_id? |
Yes; for this case, adding medium definition array to cfg file is enough.
User should manually set medium_id of the new cell to the moved node. Socket server handles medium_id change event. Similar to gain, position data, etc; medium_id is also stored in the corresponding station object in order to prevent extra array manipulations for such dynamic cases. https://user-images.githubusercontent.com/22586149/146854988-47976b41-79f6-40ad-a121-1d783da1e1c6.png |
That's my concern. Ok, it works fine but with some user intervention. What if you consider the BSSID as reference for the medium_id? We know when the node is AP with |
You are right, an autonomous system would be much better. It is possible to get the following data for a mesh network(see the figure below): Suppose i and j represent sta indices.
We could perhaps have a semi-automatic model, handle the assignment of sta-ap medium_id programmatically, and leave the special cases to the user. |
Cannot we identify different Groups through |
Yes, we can retrieve mesh_id from beacon packets for each mesh interface. Only case bothers me, separated networks with the same mesh id. We still could cluster them by detecting connected pairs from the channel model. Network change detection could be triggered by position, gain, mesh_id change events. |
Yes. It seems that there is no way to accomplish this through the kernel. But I think we can still automate the other wifi modes |
On some occasions the program keeps throwing the error above, is it related to parsing packets from hwsim? In the separate network, printing is stopped after 5-10 seconds, but not in the case of mesh networks. I had to set the log level to debug to prevent excessive CPU usage. I have added medium change detection support for station AP connections by checking packet source and destination. Related commit: 6651d29 Initial assignment of sta5 with MAC address 00:00:00:00:00:15: After changing position of sta5 from Mininet-Wifi, its medium id is set to -8, same with newly associated AP's: |
Update on Invalid argument error, it is not related to mesh. Even lines with add mesh links are removed, still observed the nonstop logs in the following one:
|
I really don't know. This might also be related to the kernel version. Well, we need to investigate this. Which Kernel version do you have and how can I reproduce that behaviour? |
It may be so, my kernel is 5.15.8-76051508-generic. Log level is set to 0 with "-l 0" on WStarter.start() method. After removing it, you may start the topology script above and tail wmediumd log file. I observed the same logs with main branch as well, so no need to checkout. I couldn't figure out if this error has an effect on the system, but I can say it doesn't prevent traffic like pinging. |
Hi @onurklngc, Sorry for replying late. Did you get the problem solved? Have you made any progress towards automated configuration? |
Hi Dr. Fontes, No problem at all. I have been using the project regularly for a while. |
This reverts commit 1feabad.
Dear Professor Fontes,
In a packet delay calculation, the packet queues of all stations are taken into account for the packet sequence. This leads to drastically reduced throughput estimations when there are multiple traffic loads, even if some stations, APs are far apart.
For instance, running iperf between sta1&sta2 halves the output of iperf estimation between sta3&sta4 or sta5&sta6.
In order to isolate networks, station queues are grouped by assigning medium IDs to stations. By default, all stations are assigned to the medium #0 so the current behavior shall be experienced if no medium config is given.
I will be creating another PR for mininet-wifi, as well.
Sincerely,
Onur