Re: Marking uncached packets with a netfilter mark value

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Mon, 19 Jul 2010 00:16:55 +0000

On Sun, 18 Jul 2010 15:11:52 +0100, Andrew Beverley <andy_at_andybev.com>
wrote:
>> So, do you have a clear use-case we can add to the wiki and commit
>> message?
>
> I propose extending the current QualityOfService feature as follows. The
> existing http://wiki.squid-cache.org/Features/QualityOfService page
> should read:
>
> * Allows you to set a TOS/Diffserv value to mark local and peer hits.
> * For platforms using netfilter, allows you to set a netfilter mark
> value instead of, or in addition to, a TOS value.
> * Allows you to selectively set only sibling or parent requests
> * Allows any HTTP response towards clients to have the TOS value of
> the response coming from the remote server, or in the case of
> marking, the incoming connection's netfilter mark value. For this to
> work correctly with a TOS value, you will need to patch your linux
> kernel with the TOS preserving ZPH patch. The kernel patch can be
> downloaded from http://zph.bratcheda.org. No patch is needed for a
> netfilter mark.
> * Allows you to mask certain bits in the TOS or mark received, before
> copying the value towards clients.
>
>> qos_flows - adding an initial flag "tos"|"mark" which determines which
>> marking type is to be set. Followed by the current (or extended)
>> stream=value tags. Default to "tos" if missing for backward
compatibility
>
> Agree with the above for the config file.
>
>> So we end up with:
>> qos_flows tos parent-hit=0xA sibling-hit=0xB
>> qos_flows mark local-miss=0x1
>
> I propose just the addition of the tos|mark flag and leave the remainder
> of the options the same. I don't see any need to add a local-miss
> option, as the user can mark packets before they hit Squid.
>
> To keep things simple, I propose that the patch is still enabled with
> --enable-zph-qos as with the current TOS patch. However, the mark patch
> will need the libnetfilter_conntrack library, so should a separate
> compiler flag be used instead?

I've been thinking of removing the "zph-" part of the option name for a
while. For now its fine as a main on/off switch for the QoS marking.

--enable/disable-linux-netfilter will also be involved in the logics. If
set to "no" then it override disables this netfilter feature.

A new --with-netfilter-conntrack option will be needed to set linking for
the particular library. With path as a optional parameter, and --without
meaning not to link (probably to prevent the code building as well).

>
> Incidentally, there is a mistake in the documentation for the existing
> QOS patch. At http://www.squid-cache.org/Doc/config/qos_flows/ it
> states:
>
> disable-preserve-miss
> If set, any HTTP response towards clients will
> have the TOS value of the response comming from the
> remote server masked with the value of miss-mask.
>
> This should read:
> By default, the existing TOS value of the response coming from the
> remote server will be retained and masked with miss-mark. This option
> disables that feature.

Oops. Thanks. Fixed.

Amos
Received on Mon Jul 19 2010 - 00:17:00 MDT

This archive was generated by hypermail 2.2.0 : Mon Jul 19 2010 - 12:00:08 MDT