You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/target/linux
Kevin Darbyshire-Bryant dba5a01358 kernel: netfilter add connmark savedscp support
savedscp is a method of storing the DSCP of an ip packet into conntrack
mark.  In combination with a suitable tc filter action (conndscp but may
end up being integrated into connmark) DSCP values are able to be stored
on egress and restored on ingress across links that otherwise alter or
bleach DSCP.

This is useful for qdiscs such as CAKE which are able to shape according
to policies based on DSCP.

Ingress classification is traditionally a challenging task since
iptables rules haven't yet run and tc filter/eBPF programs are pre-NAT
lookups, hence are unable to see internal IPv4 addresses as used on the
typical home masquerading gateway.

The ingress problem is solved by the tc filter, but the tc people didn't
like the idea of tc setting conntrack mark values, though they are ok
with reading conntrack values and hence restoring DSCP from conntrack
marks.

x_tables CONNMARK with the new savedscp action solves the problem of
storing the DSCP to the conntrack mark.

It accepts 2 parameters.  The mark is a 32bit value with usually one 1
bit set.  This bit is set when savedscp saves the DSCP to the mark.
This is useful to implement a 'one shot'
iptables based classification where the 'complicated' iptables rules are
only run once to classify the connection on initial (egress) packet and
subsequent packets are all marked/restored with the same DSCP.  A mark
of zero disables the setting of a status bit/s.

The mask is a 32bit value of at least 6 contiguous bits and represents
the area where the DSCP will be stored.

e.g.

iptables -A QOS_MARK_eth0 -t mangle -j CONNMARK --savedscp-mark 0xfc000000/0x01000000

Would store the DSCP in the top 6 bits of the 32bit mark field, and use
the LSB of the top byte as the 'DSCP has been stored' marker.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
5 years ago
..
apm821xx treewide: sysupgrade: don't use $ARGV in platform_do_upgrade() 5 years ago
ar7 kernel: bump 4.9 to 4.9.153 5 years ago
ar71xx ar71xx: fix WLAN LED names for Archer C7 5 years ago
arc770 treewide: use wpad-basic for not small flash targets 6 years ago
archs38 treewide: use wpad-basic for not small flash targets 6 years ago
armvirt armvirt: fix overlay support by updating to f2fs/ext4 based overlays 5 years ago
at91 at91:renaming subtraget legacy to sam9x 5 years ago
ath25 ath25: split up DEVICE_TITLE 5 years ago
ath79 ath79: fix indent in 01_leds 5 years ago
bcm53xx bcm53xx: sysupgrade: call nand_do_upgrade() from platform_do_upgrade() 5 years ago
brcm47xx brcm47xx: fix 831-old_gpio_wdt.patch for linux 4.19 5 years ago
brcm63xx brcm63xx: DVA-G3810BN/TL: Fix the WAN ethernet port 5 years ago
brcm2708 brcm2708: Add Raspberry Pi 4 support 5 years ago
cns3xxx treewide: sysupgrade: don't use $ARGV in platform_do_upgrade() 5 years ago
gemini treewide: sysupgrade: don't use $ARGV in platform_do_upgrade() 5 years ago
generic kernel: netfilter add connmark savedscp support 5 years ago
imx6 imx6: apalis: add missing jffs2reset to ramfs during sysupgrade 5 years ago
ipq40xx treewide: sysupgrade: get rid of platform_nand_pre_upgrade() 5 years ago
ipq806x treewide: sysupgrade: get rid of platform_nand_pre_upgrade() 5 years ago
ixp4xx treewide: sysupgrade: don't use $ARGV in platform_do_upgrade() 5 years ago
kirkwood treewide: sysupgrade: don't use $ARGV in platform_do_upgrade() 5 years ago
lantiq treewide: sysupgrade: don't use $ARGV in platform_do_upgrade() 5 years ago
layerscape layerscape: sysupgrade: get rid of platform_pre_upgrade() 5 years ago
malta malta: fix overlay support by updating to f2fs/ext4 based overlays 5 years ago
mediatek treewide: sysupgrade: don't use $ARGV in platform_do_upgrade() 5 years ago
mpc85xx treewide: sysupgrade: don't use $ARGV in platform_do_upgrade() 5 years ago
mvebu mvebu: sysupgrade: don't use $ARGV in platform_check_image() 5 years ago
mxs mxs: disable unused serial drivers 5 years ago
octeon treewide: kernel: bump some targets to 4.19 5 years ago
octeontx kernel: Remove CONFIG_COMPAT 5 years ago
omap kernel: Deactivate CONFIG_BINFMT_MISC 5 years ago
orion orion: sysupgrade: change platform_check_image() args validation 5 years ago
oxnas oxnas: convert DEVICE_TITLE to new variables 5 years ago
pistachio treewide: sysupgrade: get rid of platform_nand_pre_upgrade() 5 years ago
ramips ramips: enable Newifi D1 SD slot 5 years ago
rb532 treewide: sysupgrade: get rid of platform_nand_pre_upgrade() 5 years ago
samsung kernel: Do not set CONFIG_DEVMEM or CONFIG_DEVKMEM 5 years ago
sunxi sunxi: convert to multi-variable device title 5 years ago
tegra tegra: split up DEVICE_TITLE 5 years ago
uml kernel: Deactivate CONFIG_BINFMT_MISC 5 years ago
x86 x86: add modern network modules to Generic target 5 years ago
zynq zynq: convert to multi-variable device title 5 years ago
Makefile