<div dir="ltr">Dave,<div><br></div><div>If the objective is to run experiments with some emulated wifi I could suggest </div><div>a workaround that we are using. It is not based on qdisc only.</div><div><br></div><div>It is based on ns3 emulation and linux bridges.</div><div><br></div><div><a href="https://git.fd.io/cicn/tree/emu-radio/README.md?h=vicn/master">https://git.fd.io/cicn/tree/emu-radio/README.md?h=vicn/master</a><br></div><div><br></div><div>The radio emulation piece includes 802.11n and LTE.</div><div>For wifi you get the contention behaviour you're looking for and listen before talk etc.</div><div>You also get the TX or RX behaviour. There is also the propagation models from ns3 (fast/slow fading, etc. etc.).</div><div><br></div><div>The radio piece is a single Linux process so depending on the scaling you're looking for this tool<br></div><div><div>might or might not be useful.</div></div><div><br></div><div>In the repo, there is some documentation, but if you plan to use this stuff and need help let me know.</div><div>There is also a ML, in case it helps. </div><div><br></div><div>Luca</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 9, 2017 at 3:54 AM, Dave Taht <span dir="ltr"><<a href="mailto:dave.taht@gmail.com" target="_blank">dave.taht@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I have been hacking away at netem for a while now in the hope that<br>
eventually - with a great deal more hacking - it could be used to more<br>
accurately emulate shared media like wifi and lte.<br>
<br>
(Some people try to describe these as simplex (which is not true<br>
because you can have multiple destinations), and they certainly are<br>
not duplex, so I tend to say non-duplex and still hope some better<br>
word emerges)<br>
<br>
So... one sticking point for me has been wanting to emulate the fact<br>
that on shared media, that you cannot transmit and receive at the same<br>
time; that these are "coupled" events, and what I'd like to be able to<br>
express might be something like:<br>
<br>
tc qdisc add dev eth0 root netem rate 100mbit coupled some_identifier<br>
... some tc mirred magic for ifb here ...<br>
tc qdisc add dev ifb0 root netem rate 10mbit coupled the_same_identifier<br>
<br>
"some_identifier" would be a mutex of some sort, and I confess to<br>
not having much grip on the kernel outside of the net/sched directory.<br>
<br>
What facility would be best to try and leverage? It would be created<br>
(globally) on first use, ref-counted (thus destroyed when it goes to<br>
zero), atomically updated... posix shared memory seems too heavyweight<br>
to use....<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
<br>
Dave Täht<br>
CEO, TekLibre, LLC<br>
<a href="http://www.teklibre.com" rel="noreferrer" target="_blank">http://www.teklibre.com</a><br>
Tel: <a href="tel:1-669-226-2619" value="+16692262619">1-669-226-2619</a><br>
______________________________<wbr>_________________<br>
Bloat mailing list<br>
<a href="mailto:Bloat@lists.bufferbloat.net">Bloat@lists.bufferbloat.net</a><br>
<a href="https://lists.bufferbloat.net/listinfo/bloat" rel="noreferrer" target="_blank">https://lists.bufferbloat.net/<wbr>listinfo/bloat</a><br>
</font></span></blockquote></div><br></div>