rules: fix device and chain usage for DSCP/MARK targets
authorTony Ambardar <itugrok@yahoo.com>
Mon, 22 Mar 2021 01:06:19 +0000 (18:06 -0700)
committerJo-Philipp Wich <jo@mein.io>
Tue, 23 Mar 2021 09:01:28 +0000 (10:01 +0100)
commit61db17edddb1f05e8107f0dbef6f7d060ce67483
treeba1a55a8b3a7cdae21a4bc866ff4d10f0d5078c8
parent7b844f4fb361d28ffebc95bc305347d6450569f6
rules: fix device and chain usage for DSCP/MARK targets

Currently, fw3 places all DSCP/MARK target rules into the PREROUTING chain,
and accepts but ignores a src device. This behaviour is impractical for
most common applications (e.g. QOS setup), since rules are applied to all
devices and in all directions.

Fix this generally by honouring src/dest device selection and placing the
rules into the appropriate chain of the mangle table. This code is based
on a proof of concept shared by Jo-Philipp Wich <jo@mein.io>.

Fixes: 12a7cf9db1f9 ("Add support for DSCP matches and target")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
rules.c