Where can I find the source-code for pfSense's FAIRQ implementation?
-
I ask because there have been recent bugfixes to FAIRQ and I wondered if they were migrated to pfSense. Here is the post from the DragonflyBSD mailing list: http://lists.dragonflybsd.org/pipermail/users/2014-September/128842.html
I don't understand if the Github account has the whole source, how it is organized, or … well, I dunno crap about nothin. I know a little about the source code drama but I got lost in the noise.
Any help?
-
The source code for the UI, configuration, installation, etc. is in the normal pfSense repository that you've probably seen (https://redmine.pfsense.org/projects/pfsense/repository)
The pfSense changes to the kernel code, driver changes, build tools, etc. are in a separate repository that's not publicly available until you digitally agree to the licensing terms. This change was accompanied by many waving arms and gnashing teeth, generating lots of discussion on the forums, but it is what it is ….
Check the forum sticky for directions on how to sign up to get the pfSense Tools repository: https://forum.pfsense.org/index.php?topic=76132.0
Regarding FAIRQ, do you have a case where it's better than HFSC? Just curious.
-
The pfSense changes to the kernel code, driver changes, build tools, etc. are in a separate repository that's not publicly available until you digitally agree to the licensing terms. This change was accompanied by many waving arms and gnashing teeth, generating lots of discussion on the forums, but it is what it is ….
Check the forum sticky for directions on how to sign up to get the pfSense Tools repository: https://forum.pfsense.org/index.php?topic=76132.0
I hoped I was wrong about the source-code situation… very disappointing. As you said though, it is what it is.
Regarding FAIRQ, do you have a case where it's better than HFSC? Just curious.
As I understand it, FAIRQ attempts to be very similar to SFQ, if you are familiar with that queueing algorithm. These alorithms separate each stream and then iterate through all of them in a round-robin fashion in an attempt to give each stream a "fair" share. This is done automatically for all streams passing through the queue. FAIRQ can be thought of as PRIQ (they both support priorities) with stream fairness.
With HFSC, you must classify everything manually.
It is practically classless vs class-based queueing. FAIRQ and HFSC are just different.When it comes to class-based algorithms, yeah, HFSC is best, if you use it correctly. :)
If you prefer simplicity, stream "fairness", and do not run services that require the lowest possible delays, I would choose FAIRQ. -
HFSC is inter-queue and FAIRQ is intra-queue. Another way to put it is HFSC decides which queue goes next and FAIRQ decides which packets leave a queue.