On Sat, Apr 18, 2015 at 09:59:01AM +0300, Karlis Laivins wrote: > Hello, > > I have read an interesting publication about a proposed modification of TCP > Congestion Control algorithm that would allow to improve it (the CC) by > dynamic bandwidth estimation. The idea seems so interesting that I would > like to try to implement it by modifying the NewReno code.
What are you trying to implement? There might already be an out of tree implementation. > Do I understand correctly that to do the above stated, I would create a > copy of source file (in my case - cc_newreno.c) located in /usr/src/sys/ > and rename it to, for example, cc_newreno_test.c and make changes to it? > How would I then compile it, and how would I create a newreno_test.ko file > that can be loaded into Kernel and tested? There is quite a bit of documentation for the modular congestion control framework[0][1] in the man pages. I think you can actually build the cc as a kernel module and use kldload, this is how we did our initial implementation of NewCWV on Linux at $work. You can build and work on kernel modules out of tree, this tutorial[2] is a reasonable introduction. [0]: https://www.freebsd.org/cgi/man.cgi?query=mod_cc [1]: https://www.freebsd.org/cgi/man.cgi?query=mod_cc&sektion=9&apropos=0&manpath=FreeBSD+10.1-RELEASE [2]: http://www.freesoftwaremagazine.com/articles/writing_a_kernel_module_for_freebsd -- Tom @adventureloop adventurist.me 'You realize night time makes up half of all time?' :wq
pgpXeFdn2tlQY.pgp
Description: PGP signature