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/generic/patches-4.1
Felix Fietkau 5fcafa319d generic: Fix per interface nf_call_iptables setting
commit r30917 ("kernel: bypass all netfilter hooks if the sysctls for that
functionality have been disabled - eliminates the overhead of enabling
CONFIG_BRIDGE_NETFILTER in the kernel config") introduced an optimization
which should reduce/eliminate the overhead for traffic send over bridges on
kernels compiled with CONFIG_BRIDGE_NETFILTER=y. But this optimization
breaks the nf_call_iptables per bridge setting which is more fine grained
than the global sysctl net.bridge.bridge-nf-call-iptables setting.

A test reflecting a real world setup was created to identify if this really
eliminates the overhead and if per-bridge nf_call_iptables could be used in
some setups to increase the throughput. A Qualcomm Atheros QCA9558 based
system with one ethernet and an ath9k wifi 3x3 in HT40 mode was used.
Cables from the AP to the wifi station were used to reduce interference
problems during the tests.

The wlan interface was put in one bridge interface called br-wlan. This
bridge usually contains some more wlan interfaces. The eth0 was put in a
second bridge called br-lan. This usually contains some other privileged
wlan or mesh interfaces. Routing was added between br-lan and br-wlan.

Three kernels were tested:

 * (default) OpenWrt kernel for this device
 * (brfilter-global) OpenWrt kernel with CONFIG_BRIDGE_NETFILTER=y
 * (brfilter-local)  OpenWrt kernel with CONFIG_BRIDGE_NETFILTER=y and
    without 644-bridge_optimize_netfilter_hooks.patch

The changes to the the netfilter settings of the bridge were done via:

 * (brfilter-global) /sbin/sysctl -w net.bridge.bridge-nf-call-iptables=1
 * (brfilter-lobal) echo 1 > /sys/class/net/br-lan/bridge/nf_call_iptables
   and/or echo 1 > /sys/class/net/br-wan/bridge/nf_call_iptables

A station connected to the wlan0 (AP) interface was used to send traffic to
a PC connected via ethernet. iperf with 3 concurrent transmissions was used
to generate the traffic.

| kernel          | br-nf-* global | nf-call* iface | download | upload   |
|-----------------|----------------|----------------|----------|----------|
| default         | 0              | -              |      209 |      268 |
| brfilter-global | 0              | -              |      185 |      243 |
| brfilter-local  | 0              | -              |      187 |      243 |
| brfilter-local  | 0              | br-lan         |      157 |      226 |
| brfilter-local  | 0              | br-lan br-wlan |      139 |      161 |
| brfilter-global | 1              | -              |      136 |      162 |

Download/upload results in Mibit/s

It can be seen that the patch doesn't eliminate the overhead. It can also
be seen that the throughput of brfilter-global and brfilter-local with
disabled filtering is the roughly the same. Also the throughput for
brfilter-global and brfilter-local for enabled filtering on all bridges is
roughly the same.

But also the brfilter-local throughput is higher when only br-lan requires
the filtering. This setting would not be possible with
644-bridge_optimize_netfilter_hooks.patch applied and thus can only be
compared with brfilter-global and filtering enabled for all interfaces.

Signed-off-by: Sven Eckelmann <sven@open-mesh.com>

SVN-Revision: 46835
9 years ago
..
000-keep_initrafs_the_default.patch generic: add linux 4.1 support 9 years ago
021-ssb_sprom.patch generic: add linux 4.1 support 9 years ago
022-bcma-from-4.2.patch generic: add linux 4.1 support 9 years ago
050-backport_netfilter_rtcache.patch generic: add linux 4.1 support 9 years ago
060-mips_decompressor_memmove.patch generic: add linux 4.1 support 9 years ago
072-13-bgmac-fix-MAC-soft-reset-bit-for-corerev-4.patch generic: add linux 4.1 support 9 years ago
072-14-bgmac-reset-all-4-GMAC-cores-on-init.patch generic: add linux 4.1 support 9 years ago
091-mtd-spi-nor-add-support-Spansion_S25FL164K kernel: update 4.1 to 4.1.2 9 years ago
095-api-fix-compatibility-of-linux-in.h-with-netinet-in..patch kernel: improve uapi headers coexistence with musl 9 years ago
096-ipv4-off-by-one-in-continuation-handling-in-proc-net.patch linux: fix off-by-one in handling in /proc/net/route 9 years ago
102-ehci_hcd_ignore_oc.patch generic: add linux 4.1 support 9 years ago
110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch generic: add linux 4.1 support 9 years ago
111-jffs2-add-RENAME_EXCHANGE-support.patch generic: add linux 4.1 support 9 years ago
120-bridge_allow_receiption_on_disabled_port.patch generic: add linux 4.1 support 9 years ago
132-mips_inline_dma_ops.patch kernel: update 4.1 to 4.1.5 9 years ago
140-mtd-part-add-generic-parsing-of-linux-part-probe.patch kernel: move linux, part-probe dt parsing in generic code 9 years ago
180-usb-xhci-make-USB_XHCI_PLATFORM-selectable.patch generic: add linux 4.1 support 9 years ago
190-cdc_ncm_add_support_for_moving_ndp_to_end_of_ncm_frame.patch kernel: cdc_ncm: Add support for moving NDP to end of NCM frame 9 years ago
191-usb-ehci-orion-fix-probe-for-GENERIC_PHY.patch mvebu: kirkwood: fix ehci-orion probe if generic-phy isn't enabled 9 years ago
200-fix_localversion.patch generic: add linux 4.1 support 9 years ago
201-extra_optimization.patch generic: add linux 4.1 support 9 years ago
202-reduce_module_size.patch generic: add linux 4.1 support 9 years ago
203-kallsyms_uncompressed.patch generic: add linux 4.1 support 9 years ago
204-module_strip.patch generic: add linux 4.1 support 9 years ago
205-backtrace_module_info.patch generic: add linux 4.1 support 9 years ago
210-darwin_scripts_include.patch generic: add linux 4.1 support 9 years ago
212-byteshift_portability.patch generic: add linux 4.1 support 9 years ago
214-spidev_h_portability.patch generic: add linux 4.1 support 9 years ago
220-gc_sections.patch generic: add linux 4.1 support 9 years ago
221-module_exports.patch generic: add linux 4.1 support 9 years ago
230-openwrt_lzma_options.patch generic: add linux 4.1 support 9 years ago
250-netfilter_depends.patch generic: add linux 4.1 support 9 years ago
251-sound_kconfig.patch generic: add linux 4.1 support 9 years ago
252-mv_cesa_depends.patch generic: add linux 4.1 support 9 years ago
253-ssb_b43_default_on.patch generic: add linux 4.1 support 9 years ago
254-textsearch_kconfig_hacks.patch generic: add linux 4.1 support 9 years ago
255-lib80211_kconfig_hacks.patch generic: add linux 4.1 support 9 years ago
256-crypto_add_kconfig_prompts.patch generic: add linux 4.1 support 9 years ago
257-wireless_ext_kconfig_hack.patch generic: add linux 4.1 support 9 years ago
258-netfilter_netlink_kconfig_hack.patch generic: add linux 4.1 support 9 years ago
259-regmap_dynamic.patch kmod-regmap: make regmap-mmio user selectable 9 years ago
260-crypto_test_dependencies.patch generic: add linux 4.1 support 9 years ago
262-compressor_kconfig_hack.patch generic: add linux 4.1 support 9 years ago
270-uapi-kernel.h-glibc-specific-inclusion-of-sysinfo.h.patch kernel: improve uapi headers coexistence with musl 9 years ago
271-uapi-libc-compat.h-do-not-rely-on-__GLIBC__.patch kernel: improve uapi headers coexistence with musl 9 years ago
272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch kernel: improve uapi headers coexistence with musl 9 years ago
300-mips_expose_boot_raw.patch kernel: update 4.1 to 4.1.5 9 years ago
301-mips_image_cmdline_hack.patch generic: add linux 4.1 support 9 years ago
302-mips_no_branch_likely.patch generic: add linux 4.1 support 9 years ago
304-mips_disable_fpu.patch kernel: update 4.1 to 4.1.5 9 years ago
305-mips_module_reloc.patch mips: Free memory when load_module fails (#14453) 9 years ago
306-mips_mem_functions_performance.patch generic: add linux 4.1 support 9 years ago
307-mips_highmem_offset.patch generic: add linux 4.1 support 9 years ago
309-mips_fuse_workaround.patch generic: add linux 4.1 support 9 years ago
310-arm_module_unresolved_weak_sym.patch generic: add linux 4.1 support 9 years ago
320-ppc4xx_optimization.patch generic: add linux 4.1 support 9 years ago
321-powerpc_crtsavres_prereq.patch generic: add linux 4.1 support 9 years ago
330-MIPS-kexec-Accept-command-line-parameters-from-users.patch generic: add linux 4.1 support 9 years ago
400-mtd-add-rootfs-split-support.patch kernel: move linux, part-probe dt parsing in generic code 9 years ago
401-mtd-add-support-for-different-partition-parser-types.patch kernel: move linux, part-probe dt parsing in generic code 9 years ago
402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch kernel: move linux, part-probe dt parsing in generic code 9 years ago
403-mtd-hook-mtdsplit-to-Kbuild.patch generic: add linux 4.1 support 9 years ago
404-mtd-add-more-helper-functions.patch kernel: move linux, part-probe dt parsing in generic code 9 years ago
405-mtd-old-firmware-uimage-splitter.patch kernel: move linux, part-probe dt parsing in generic code 9 years ago
406-mtd-old-rootfs-squashfs-splitter.patch kernel: move linux, part-probe dt parsing in generic code 9 years ago
410-mtd-move-forward-declaration-of-struct-mtd_info.patch generic: add linux 4.1 support 9 years ago
411-mtd-partial_eraseblock_write.patch kernel: move linux, part-probe dt parsing in generic code 9 years ago
412-mtd-partial_eraseblock_unlock.patch kernel: move linux, part-probe dt parsing in generic code 9 years ago
420-mtd-redboot_space.patch generic: add linux 4.1 support 9 years ago
430-mtd-add-myloader-partition-parser.patch generic: add linux 4.1 support 9 years ago
431-mtd-bcm47xxpart-support-for-Xiaomi-specific-board_da.patch generic: add linux 4.1 support 9 years ago
432-mtd-bcm47xxpart-detect-T_Meter-partition.patch generic: add linux 4.1 support 9 years ago
440-block2mtd_init.patch generic: add linux 4.1 support 9 years ago
441-block2mtd_probe.patch generic: add linux 4.1 support 9 years ago
450-mtd-nand-allow-to-use-platform-specific-chip-fixup.patch generic: add linux 4.1 support 9 years ago
451-mtd-nand-fix-return-code-of-nand_correct_data-function.patch generic: add linux 4.1 support 9 years ago
460-mtd-cfi_cmdset_0002-no-erase_suspend.patch generic: add linux 4.1 support 9 years ago
461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch generic: add linux 4.1 support 9 years ago
473-mtd-spi-nor-add-support-for-the-Macronix-MX25L512E-S.patch generic: add linux 4.1 support 9 years ago
474-mtd-spi-nor-add-support-for-the-ISSI-SI25CD512-SPI-f.patch generic: add linux 4.1 support 9 years ago
480-mtd-set-rootfs-to-be-root-dev.patch generic: add linux 4.1 support 9 years ago
490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch generic: add linux 4.1 support 9 years ago
491-ubi-auto-create-ubiblock-device-for-rootfs.patch generic: add linux 4.1 support 9 years ago
492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch generic: add linux 4.1 support 9 years ago
493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch generic: add linux 4.1 support 9 years ago
494-mtd-ubi-add-EOF-marker-support.patch generic: add linux 4.1 support 9 years ago
500-yaffs-Kbuild-integration.patch generic: add linux 4.1 support 9 years ago
502-yaffs-fix-compat-tags-handling.patch generic: add linux 4.1 support 9 years ago
503-yaffs-add-tags-9bytes-mount-option.patch kernel: yaffs2: update to version from 2015-06-02 9 years ago
504-yaffs-3.16-new-fops.patch kernel: yaffs2: update to version from 2015-06-02 9 years ago
505-yaffs-3.19-f_dentry-remove.patch kernel: yaffs2: update to version from 2015-06-02 9 years ago
520-squashfs_update_xz_comp_opts.patch generic: add linux 4.1 support 9 years ago
530-jffs2_make_lzma_available.patch generic: add linux 4.1 support 9 years ago
531-debloat_lzma.patch generic: add linux 4.1 support 9 years ago
532-jffs2_eofdetect.patch generic: add linux 4.1 support 9 years ago
540-crypto-xz-decompression-support.patch generic: add linux 4.1 support 9 years ago
541-ubifs-xz-decompression-support.patch generic: add linux 4.1 support 9 years ago
551-ubifs-fix-default-compression-selection.patch generic: add linux 4.1 support 9 years ago
600-netfilter_conntrack_flush.patch generic: add linux 4.1 support 9 years ago
610-netfilter_match_bypass_default_checks.patch generic: add linux 4.1 support 9 years ago
611-netfilter_match_bypass_default_table.patch generic: add linux 4.1 support 9 years ago
612-netfilter_match_reduce_memory_access.patch generic: add linux 4.1 support 9 years ago
613-netfilter_optional_tcp_window_check.patch generic: add linux 4.1 support 9 years ago
615-netfilter_add_xt_id_match.patch generic: add linux 4.1 support 9 years ago
616-net_optimize_xfrm_calls.patch generic: add linux 4.1 support 9 years ago
620-sched_esfq.patch generic: add linux 4.1 support 9 years ago
630-packet_socket_type.patch kernel: update 4.1 to 4.1.2 9 years ago
640-bridge_no_eap_forward.patch kernel: describe bridge patch "no EAP forward" 9 years ago
641-bridge_always_accept_eap.patch kernel: describe bridge patch "always accept EAP" 9 years ago
642-bridge_port_isolate.patch kernel: describe bridge patch "port isolate" 9 years ago
643-bridge_remove_ipv6_dependency.patch kernel: describe bridge patch "remove IPv6 depependency of bridge in 2.6.38+" 9 years ago
645-bridge_multicast_to_unicast.patch kernel: describe bridge patch "multicast to unicast" 9 years ago
650-pppoe_header_pad.patch generic: add linux 4.1 support 9 years ago
651-wireless_mesh_header.patch generic: add linux 4.1 support 9 years ago
652-atm_header_changes.patch generic: add linux 4.1 support 9 years ago
653-disable_netlink_trim.patch generic: add linux 4.1 support 9 years ago
655-increase_skb_pad.patch generic: add linux 4.1 support 9 years ago
656-skb_reduce_truesize-helper.patch generic: add linux 4.1 support 9 years ago
657-qdisc_reduce_truesize.patch generic: add linux 4.1 support 9 years ago
660-fq_codel_defaults.patch generic: add linux 4.1 support 9 years ago
661-fq_codel_keep_dropped_stats.patch generic: add linux 4.1 support 9 years ago
662-use_fq_codel_by_default.patch generic: add linux 4.1 support 9 years ago
663-remove_pfifo_fast.patch generic: add linux 4.1 support 9 years ago
664-codel_fix_3_12.patch generic: add linux 4.1 support 9 years ago
666-Add-support-for-MAP-E-FMRs-mesh-mode.patch generic: add linux 4.1 support 9 years ago
670-ipv6-allow-rejecting-with-source-address-failed-policy.patch generic: add linux 4.1 support 9 years ago
671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch generic: add linux 4.1 support 9 years ago
680-NET-skip-GRO-for-foreign-MAC-addresses.patch generic: add linux 4.1 support 9 years ago
681-NET-add-of_get_mac_address_mtd.patch kernel: fix build with CONFIG_MTD unset 9 years ago
700-swconfig.patch generic: add linux 4.1 support 9 years ago
701-phy_extension.patch generic: add linux 4.1 support 9 years ago
702-phy_add_aneg_done_function.patch kernel: update 4.1 to 4.1.2 9 years ago
703-phy-add-detach-callback-to-struct-phy_driver.patch generic: add linux 4.1 support 9 years ago
704-phy-no-genphy-soft-reset.patch kernel: update 4.1 to 4.1.2 9 years ago
710-phy-add-mdio_register_board_info.patch generic: add linux 4.1 support 9 years ago
720-phy_adm6996.patch generic: add linux 4.1 support 9 years ago
721-phy_packets.patch generic: add linux 4.1 support 9 years ago
722-phy_mvswitch.patch generic: add linux 4.1 support 9 years ago
723-phy_ip175c.patch generic: add linux 4.1 support 9 years ago
724-phy_ar8216.patch generic: add linux 4.1 support 9 years ago
725-phy_rtl8306.patch generic: add linux 4.1 support 9 years ago
726-phy_rtl8366.patch generic: add linux 4.1 support 9 years ago
727-phy-rtl8367.patch generic: add linux 4.1 support 9 years ago
728-phy-rtl8367b.patch generic: add linux 4.1 support 9 years ago
729-phy-tantos.patch generic: add linux 4.1 support 9 years ago
730-phy_b53.patch generic: add linux 4.1 support 9 years ago
731-phy_mvswitch_3.10_compilation.patch generic: add linux 4.1 support 9 years ago
732-phy-ar8216-led-support.patch generic: add linux 4.1 support 9 years ago
733-phy_mvsw61xx.patch generic: add linux 4.1 support 9 years ago
750-hostap_txpower.patch generic: add linux 4.1 support 9 years ago
773-bgmac-add-srab-switch.patch generic: add linux 4.1 support 9 years ago
780-igb-Fix-Null-pointer-dereference-in-igb_reset_q_vect.patch generic: add linux 4.1 support 9 years ago
785-hso-support-0af0-9300.patch generic: add linux 4.1 support 9 years ago
810-pci_disable_common_quirks.patch kernel: update to linux 4.1.3 9 years ago
811-pci_disable_usb_common_quirks.patch generic: add linux 4.1 support 9 years ago
820-usb_add_usb_find_device_by_name.patch generic: add linux 4.1 support 9 years ago
830-ledtrig_morse.patch generic: add linux 4.1 support 9 years ago
831-ledtrig_netdev.patch generic: add linux 4.1 support 9 years ago
832-ledtrig_usbdev.patch generic: add linux 4.1 support 9 years ago
834-ledtrig-libata.patch kernel: update 4.1 to 4.1.4 9 years ago
840-rtc7301.patch generic: add linux 4.1 support 9 years ago
841-rtc_pt7c4338.patch generic: add linux 4.1 support 9 years ago
861-04_spi_gpio_implement_spi_delay.patch generic: add linux 4.1 support 9 years ago
862-gpio_spi_driver.patch generic: add linux 4.1 support 9 years ago
863-gpiommc.patch generic: add linux 4.1 support 9 years ago
864-gpiommc_configfs_locking.patch generic: add linux 4.1 support 9 years ago
870-hifn795x_byteswap.patch generic: add linux 4.1 support 9 years ago
880-gateworks_system_controller.patch generic: add linux 4.1 support 9 years ago
890-8250_optional_sysrq.patch generic: add linux 4.1 support 9 years ago
900-slab_maxsize.patch generic: add linux 4.1 support 9 years ago
901-debloat_sock_diag.patch generic: add linux 4.1 support 9 years ago
902-debloat_proc.patch generic: add linux 4.1 support 9 years ago
903-debloat_direct_io.patch generic: add linux 4.1 support 9 years ago
910-kobject_uevent.patch generic: add linux 4.1 support 9 years ago
911-kobject_add_broadcast_uevent.patch generic: add linux 4.1 support 9 years ago
921-use_preinit_as_init.patch kernel: update to linux 4.1.3 9 years ago
922-always-create-console-node-in-initramfs.patch generic: add linux 4.1 support 9 years ago
930-crashlog.patch generic: add linux 4.1 support 9 years ago
940-ocf_kbuild_integration.patch generic: add linux 4.1 support 9 years ago
941-ocf_20120127.patch generic: add linux 4.1 support 9 years ago
960-decompress_unlzo_fix.patch generic: add linux 4.1 support 9 years ago
970-remove-unsane-filenames-from-deps_initramfs-list.patch generic: add linux 4.1 support 9 years ago
980-arm_openwrt_machtypes.patch kernel: generic: add missing arm machtypes 9 years ago
990-gpio_wdt.patch generic: add linux 4.1 support 9 years ago
995-mangle_bootargs.patch generic: add linux 4.1 support 9 years ago
997-device_tree_cmdline.patch generic: add linux 4.1 support 9 years ago
998-enable_wilink_platform_without_drivers.patch generic: add linux 4.1 support 9 years ago