Commit graph

1856 commits

Author SHA1 Message Date
Felix Fietkau
e6fb730daa yaffs2: remove __TIME__ __DATE__ macros
prevent compiler errors with gcc 4.9
increase reproducibility

Signed-off-by: Dirk Neukirchen <dirkneukirchen@web.de>

SVN-Revision: 46858
2015-09-11 16:33:12 +00:00
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
2015-09-09 18:40:15 +00:00
Rafał Miłecki
f0c747dee5 kernel: describe bridge patch "multicast to unicast"
It was initially added in r41367 by nbd.

SVN-Revision: 46828
2015-09-08 16:43:32 +00:00
Rafał Miłecki
b8c9d6b296 kernel: describe bridge patch "optimize netfilter hooks"
It was initially added in r30917 by nbd.

SVN-Revision: 46827
2015-09-08 16:43:21 +00:00
Rafał Miłecki
255d7ad8ba kernel: describe bridge patch "remove IPv6 depependency of bridge in 2.6.38+"
It was initially added in r27237 by jow as patch from Jonas.

SVN-Revision: 46826
2015-09-08 16:43:10 +00:00
Rafał Miłecki
f8a689d276 kernel: describe bridge patch "port isolate"
It was initially added in r25762 by nbd.

SVN-Revision: 46825
2015-09-08 16:43:04 +00:00
Rafał Miłecki
e77fae4cba kernel: describe bridge patch "always accept EAP"
It was initially added in r26015 by nbd.

SVN-Revision: 46824
2015-09-08 16:42:58 +00:00
Rafał Miłecki
c64214d465 kernel: describe bridge patch "no EAP forward"
It was initially added in r25095 by nbd.

SVN-Revision: 46823
2015-09-08 16:42:50 +00:00
Felix Fietkau
75744d133d kernel: restore 640-bridge_no_eap_forward.patch to its original form
It was corrupted in r38528. The most obvious symptom is repeated messages like this:

Tue Sep  8 08:25:18 2015 kern.warn kernel: [77141.972226] br-lan: received packet on wlan0 with own address as source address

Signed-off-by: Dmitry Ivanov <dima@ubnt.com>

SVN-Revision: 46821
2015-09-08 14:29:55 +00:00
Felix Fietkau
e29efa2fb7 kernel: remove packaging of kmod-crypto-core and kmod-crypto-arc4
Everything except for blkcipher was already built-in, so make blkcipher
built-in as well.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 46820
2015-09-08 12:31:04 +00:00
Jonas Gorski
7d6cff4882 kernel: update 3.18 to 3.18.21
Changelog:
 * https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.21

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 46768
2015-09-02 10:18:15 +00:00
Felix Fietkau
2416e506f5 kernel: bridge, multicast-to-unicast: fix echoes on STA
Currently, multicast packets from an STA are sent to any according
multicast listener directly through the bridge multicast-to-unicast
feature. Unfortunately, so far this includes the originating STA, too,
resulting in multicast packets being echo'ed back to the originating STA
if it itself is a multicast listener for that group.

This behaviour breaks IPv6 duplicate address detection: An IPv6 Neighbor
Solicitation for IPv6 Duplicate Address Detection is being echo'ed back,
resulting in the host falsely detecting an address collision, which
makes the node unable to claim an IPv6 address and use IPv6 in general.

Mac80211 unfortunately only prevents the echoes for us for multicast
frames. For the multicast frames cast to a unicast destination we'll
need to take care of excluding the originator ourselves.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>

SVN-Revision: 46765
2015-09-02 09:23:59 +00:00
Jonas Gorski
a486ffacea linux: fix off-by-one in handling in /proc/net/route
Add an upstream fix for /proc/net/route causing missing routes doing
several continued reads from it.

Only 4.1+ is affected.

Closes #20403.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 46726
2015-08-26 10:11:41 +00:00
Felix Fietkau
ddf8858cea kernel: bridge, multicast-to-unicast: assign src after pskb_may_pull()
A call to pskb_may_pull() might reallocate skb->data. Therefore we
should only assign the src-pointer after any potential reallocations.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 46721
2015-08-25 07:25:20 +00:00
Felix Fietkau
ea9963bb21 Revert "kernel: disable multicast-to-unicast translation for ipv6 neighbor solicitation (#17625)"
This reverts commit a080e8e1943156168913d0353a2e99d1151102aa.

It did not fix the problem but just hid some symptom. The real issue was
that IGMP/MLD report suppression was not considered for the
multicast-to-unicast feature. A recent netifd which isolates IGMP/MLD
reports between STAs by utilizing AP-isolation and bridge-hairpinning
should have fixed this.

It is perfectly fine to apply multicast-to-unicast to IPv6 Neighbor
Solicitations, too (once that feature is configured correctly).

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 46720
2015-08-25 07:25:10 +00:00
Jonas Gorski
2d53e22357 kernel: remove already upstream applied patch
Remove 131-MIPS-export-get_c0_perfcount_int.patch which was already applied
in 4.1.6. This fixes the following build error:

arch/mips/ath79/setup.c:217:77: error: redefinition of '__kstrtab_get_c0_perfcount_int'
arch/mips/ath79/setup.c:211:77: note: previous definition of '__kstrtab_get_c0_perfcount_int' was here
arch/mips/ath79/setup.c:217:350: error: redefinition of '__ksymtab_get_c0_perfcount_int'
arch/mips/ath79/setup.c:211:350: note: previous definition of '__ksymtab_get_c0_perfcount_int' was here
scripts/Makefile.build:258: recipe for target 'arch/mips/ath79/setup.o' failed

Reported-by: swalker
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 46715
2015-08-23 21:33:57 +00:00
Jonas Gorski
2d379e796f kernel: update 4.1 to 4.1.6
Changelog:
* https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.6

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 46713
2015-08-23 18:06:11 +00:00
Jonas Gorski
2190f090bb mvebu: kirkwood: fix ehci-orion probe if generic-phy isn't enabled
Properly treat -ENOSYS as no PHY, else ehci-orion won't work without
generic phy support.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 46711
2015-08-23 13:35:03 +00:00
Imre Kaloz
9cca6c5ad9 Previously, all VLANs (port-based or 802.1q) were sharing a single database in the ATU. This created problems in the case of a system where two ports/devices share a MAC address (e.g. Linksys WRT1900AC eth0/eth1).
This also clears any bootloader-set FDB defaults. This had
caused issues creating port-based VLANs when mappings
overlapped previous VLANs. Packets destined to a port
not in the default port group flooded all ports.

Tested on a 88E6171 (Linksys EA4500) and 88E6172 ('1900AC)

Signed-off-by: Claudio Leite <leitec@staticky.com>
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>

SVN-Revision: 46699
2015-08-21 08:09:52 +00:00
Zoltan Herpai
f5fcb0b4b8 kernel: add missing symbols for 4.1
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>

SVN-Revision: 46696
2015-08-20 23:19:42 +00:00
John Crispin
6d461ddbb2 generic: crypto: remove IRQF_DISABLED
no-op since 2.6.35
    removed in Kernel 4.1
    see https://lwn.net/Articles/380931/

Signed-off-by: Dirk Neukirchen <dirkneukirchen@web.de>

SVN-Revision: 46671
2015-08-17 11:26:02 +00:00
John Crispin
6856535e29 kernel: move linux, part-probe dt parsing in generic code
The "linux,part-probe" dts parsing is a pretty neat generic feature.
It has been posted to kernel.org and could easily be reused by all
targets.

This change moves the patch to the 3.18 and 4.1 generic folders, and
makes the feature available to all platforms who may want to use it.

Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 46654
2015-08-17 06:17:37 +00:00
Hauke Mehrtens
b1bd85c40e kernel: yaffs2: update to version from 2015-06-02
In addition to the update this also fixes compile problems with kernel 4.1.

This closes #20323.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 46609
2015-08-15 17:16:03 +00:00
Jonas Gorski
6be2305da8 kernel: update 4.1 to 4.1.5
Changelog:
 * https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.5

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 46598
2015-08-14 13:06:33 +00:00
Zoltan Herpai
2013a7e0e0 kernel: add missing symbols for 4.1
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>

SVN-Revision: 46573
2015-08-09 15:12:07 +00:00
Hauke Mehrtens
0b8643af4f kernel: update 3.18 to 3.18.20
Changelog:
 * https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.20

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 46570
2015-08-09 11:09:52 +00:00
Jonas Gorski
caa73eb95c kernel: update 4.1 to 4.1.4
Changelog:
 * https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.4

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
[jogo: fix brcm2708 patches, refresh target patches]
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 46560
2015-08-05 13:55:14 +00:00
Zoltan Herpai
2facc7fb92 kernel: add missing symbol for 4.1
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>

SVN-Revision: 46539
2015-07-31 21:49:37 +00:00
Zoltan Herpai
18190373b0 kernel: add a few missing symbols for 4.1
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>

SVN-Revision: 46529
2015-07-31 18:14:59 +00:00
Hauke Mehrtens
2e3af78447 kernel: add missing CONFIG_ARM_CCI400_PMU config option
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 46503
2015-07-26 15:52:34 +00:00
Hauke Mehrtens
ab63719eb2 kernel: add CONFIG_REGMAP_MMIO config option
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 46501
2015-07-26 15:51:59 +00:00
Hauke Mehrtens
3dfacccf6f kernel: cdc_ncm: Add support for moving NDP to end of NCM frame
This patch was missing for kernel 4.0 and 4.1 in r46464. I also
replaced the version in OpenWrt with the version which went upstream
into the Linux mainline kernel.

This closes #20193 and #20192

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 46493
2015-07-25 13:41:21 +00:00
Jonas Gorski
71f2d6f865 kmod-regmap: make regmap-mmio user selectable
REGMAP_MMIO is a hidden symbol, so it cannot be directly selected. If nothing
selects it, it will fail the build with:

ERROR: module '/store/buildbot/slave/slave/rb532/build/build_dir/target-mipsel_mips32_musl-1.1.10/linux-rb532/linux-3.18.19/drivers/base/regmap/regmap-mmio.ko' is missing.
make[2]: *** [/store/buildbot/slave/slave/rb532/build/bin/rb532/packages/base/kmod-regmap_3.18.19-1_rb532.ipk] Error 1

Fix this by adding a description to allow selecting it manually.

Fixes: r46451 ("kmod-regmap: enable MMIO support")
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 46485
2015-07-25 09:55:32 +00:00
Felix Fietkau
bc0f9ad8ca kernel: fix oprofile performance counter interrupt handling on mips
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 46482
2015-07-24 15:36:02 +00:00
John Crispin
f1712c606c generic: cdc_ncm: Add support for moving NDP to end of NCM frame
NCM specs are not actually mandating a specific position in the frame for
the NDP (Network Datagram Pointer). However, some Huawei devices will
ignore our aggregates if it is not placed after the datagrams it points
to. Add support for doing just this, in a per-device configurable way.
While at it, update NCM subdrivers, disabling this functionality in all of
them, except in huawei_cdc_ncm where it is enabled instead.
We aren't making any distinction between different Huawei NCM devices,
based on what the vendor driver does. Standard NCM devices are left
unaffected: if they are compliant, they should be always usable, still
stay on the safe side.

This change has been tested and working with a Huawei E3131 device (which
works regardless of NDP position) and an E3372 device (which mandates NDP
to be after indexed datagrams).

Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
Signed-off-by: Matti Laakso <malaakso@elisanet.fi>

SVN-Revision: 46464
2015-07-24 09:10:47 +00:00
John Crispin
23cb02286f generic: Add missing symbols when tracing is enabled
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

SVN-Revision: 46463
2015-07-24 09:10:41 +00:00
John Crispin
d162dbb664 generic: add missing symbol
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 46462
2015-07-24 09:10:19 +00:00
Jonas Gorski
02198322b9 kernel: update 4.0 to 4.0.9
Changelog:
 * https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.9

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 46440
2015-07-22 12:51:04 +00:00
Felix Fietkau
54f5f6fa6c kernel: update to linux 4.1.3
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 46437
2015-07-22 12:45:07 +00:00
Felix Fietkau
3b17e2ab68 generic: add more missing linux 4.1 symbols
Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 46435
2015-07-22 12:44:55 +00:00
Felix Fietkau
d3a31435e0 kernel: add missing config symbols for 4.1
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 46428
2015-07-19 17:58:53 +00:00
Felix Fietkau
473ddd592c kernel: fix sched_getaffinity on MIPS SMP systems (fixes enabling RPS/XPS in netifd with musl)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 46420
2015-07-18 22:49:39 +00:00
John Crispin
bc5009472d generic: add missing linux 4.1 symbols
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 46400
2015-07-17 12:48:51 +00:00
Felix Fietkau
b04b1ca933 ar8216: add swconfig attributes for ARL table flushing
Add swconfig attributes for flushing the ARL table globally or per port.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>

SVN-Revision: 46382
2015-07-15 08:17:42 +00:00
Felix Fietkau
33b72b8e0f ar8216: adjust ATU flushing in case of link changes
If a link goes down, don't flush the complete ARL table.
Only flush the entries for the respective port.
Don't touch ARL table if a link goes up.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>

SVN-Revision: 46381
2015-07-15 08:17:36 +00:00
Felix Fietkau
00e599b0b7 ar8216: add ARL table flushing per port
Adds functions for flushing ARL table entries per port.

Successfully tested on AR8327. Implementation for AR8216/AR8236/AR8316
is based on the AR8236 datasheet and assumes that the three chips
share a common ATU register layout.
Compile-tested only for AR8216/AR8236/AR8316.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>

SVN-Revision: 46380
2015-07-15 08:17:28 +00:00
Felix Fietkau
2666403c3a ar8216: add reading ARL table for AR8216/AR8236/AR8316
Adds the chip-specific part of reading ARL table for AR8216/AR8236/AR8316.

It's based on the AR8236 datasheet and compile-tested only as I couldn't
find datasheets for AR8216/AR8316 and don't own devices with these chips.

The existing ar8216_atu_flush implementation was used for all three
chip types, therefore I guess they share a common ATU register layout.

More testing would be appreciated.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>

SVN-Revision: 46379
2015-07-15 08:17:23 +00:00
John Crispin
096b3759a9 build: Prevent more gzip timestamps
To improve reproducibility, prevent the inclusion of timestamps
in the gzip header.

Signed-off-by: Reiner Herrmann <reiner@reiner-h.de>

SVN-Revision: 46361
2015-07-14 09:57:45 +00:00
John Crispin
1b73796895 kernel: fix build with CONFIG_MTD unset
Fixed typo in the patch provided by Hauke:
https://lists.openwrt.org/pipermail/openwrt-devel/2015-July/034274.html

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 46346
2015-07-14 07:38:47 +00:00
John Crispin
a9b06a49a8 generic: add missing symbol
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 46345
2015-07-14 07:38:33 +00:00