12 Jul, 2012
32 commits
-
Can be used to match packets against netfilter ip sets created via ipset(8).
skb->sk_iif is used as 'incoming interface', skb->dev is 'outgoing interface'.Since ipset is usually called from netfilter, the ematch
initializes a fake xt_action_param, pulls the ip header into the
linear area and also sets skb->data to the IP header (otherwise
matching Layer 4 set types doesn't work).Tested-by: Mr Dash Four
Signed-off-by: Florian Westphal
Signed-off-by: David S. Miller -
First update the adapter variables with the current speed and
mode before fire the notification. Otherwise, the get_settings()
may provide old values.Signed-off-by: Flavio Leitner
Acked-by: Rajesh Borundia
Signed-off-by: David S. Miller -
6lowpan module starts collecting incomming frames and fragments
right after lowpan_module_init() therefor it will be better to
clean unfinished fragments in lowpan_cleanup_module() function
instead of doing it when link goes down.Changed spinlocks type to prevent deadlock with expired timer event
and removed unused one.Signed-off-by: Alexander Smirnov
Signed-off-by: David S. Miller -
Function lowpan_alloc_new_frame() takes u8 tag as an argument. However,
its only caller, lowpan_process_data() passes down a u16. Hence,
the tag value can get corrupted. This prevent 6lowpan fragment reassembly of a
message when the fragment tag value is over 256.Signed-off-by: Alexander Smirnov
Cc: Tony Cheneau
Signed-off-by: David S. Miller -
Make symbols static to avoid the following warning shown up
by sparse:warning: symbol ... was not declared. Should it be static?
Signed-off-by: Alexander Smirnov
Signed-off-by: David S. Miller -
Use netdev_alloc_skb_ip_align() instead of alloc_skb() to get some
extra headroom in case we need to forward this frame in a tunnel or
something else.Signed-off-by: Alexander Smirnov
Signed-off-by: David S. Miller -
Add method to get the device short 802.15.4 address. This call
needed by ieee802154 layer to satisfy 'iz list' request from
the user space.Signed-off-by: Alexander Smirnov
Signed-off-by: David S. Miller -
Fix LOCKDEP bug message for the irq handler spinlock.
Make the irq processing code more explicit and stable.Signed-off-by: Alexander Smirnov
Signed-off-by: David S. Miller -
Revert the commit 768f7c7c121e80f458a9d013b2e8b169e5dfb1e5 to initialize
spinlock in the more preferable way and make it static to avoid sparse
warning.Signed-off-by: Alexander Smirnov
Signed-off-by: David S. Miller -
"retval" has to be a signed integer for the error handling to work.
Signed-off-by: Dan Carpenter
Signed-off-by: David S. Miller -
A number of older ColdFire CPU based boards use NS8390 based network
controllers. Most use the Davicom 9008F or the UMC 9008F. This driver
provides the support code to get these devices working on these platforms.Generally the NS8390 based eth device is direct connected via the general
purpose bus of the ColdFire CPU. So its addressing and interrupt setup is
fixed on each of the different platforms (classic platform setup).This driver is based on the other drivers/net/ethernet/8390 drivers, and
includes the lib8390.c code. It uses the existing definitions of the
board NS8390 device addresses, interrupts and access types from the
arch/m68k/include/asm/mcf8390.h, but moves the IO access functions into
the driver code and out of that header.Signed-off-by: Greg Ungerer
Signed-off-by: David S. Miller -
The mcfne.h include contains definitions to support NS8390 eth based hardware
on ColdFire based CPU boards. So change its name to reflect that better.Signed-off-by: Greg Ungerer
Signed-off-by: David S. Miller -
Reported-by: Fengguang Wu
Signed-off-by: David S. Miller -
As described in my patch series from the other day, we need to
rearrange redirect handling so that the local initiators of packets
(sockets, tunnels, xfrms, etc.) that implement the protocols compute
the route and pass this down into the ipv4/ipv6 routing code.These changes here do so by implementing a new dst_ops->redirect
method.No more do we have this funny code that tries several different sets
of routing keys to try and figure out which route the redirect should
actually be applied to.No more do we have the problem wherein TOS rewriting causes problems
for us.Signed-off-by: David S. Miller
-
No longer necessary.
Signed-off-by: David S. Miller
-
Signed-off-by: David S. Miller
-
And delete rt6_redirect(), since it is no longer used.
Signed-off-by: David S. Miller
-
Signed-off-by: David S. Miller
-
Signed-off-by: David S. Miller
-
Hook it into dst_ops->redirect as well.
Signed-off-by: David S. Miller
-
This sets things up so that we can have the protocol error handlers
call down into the ipv6 route code for redirects just as ipv4 already
does.Signed-off-by: David S. Miller
-
This is going to be used internally by the rt6 redirect code.
Signed-off-by: David S. Miller
-
No longer needed, as the protocol handlers now all properly
propagate the redirect back into the routing code.Signed-off-by: David S. Miller
-
Signed-off-by: David S. Miller
-
Signed-off-by: David S. Miller
-
All of the redirect acceptance policy is now contained within.
Signed-off-by: David S. Miller
-
Pass in the SKB rather than just the IP addresses, so that policy
and other aspects can reside in ip_rt_redirect() rather then
icmp_redirect().Signed-off-by: David S. Miller
-
Signed-off-by: David S. Miller
-
And thus, we can remove the ping_err() hack.
Signed-off-by: David S. Miller
-
Signed-off-by: David S. Miller
-
This introduce TSQ (TCP Small Queues)
TSQ goal is to reduce number of TCP packets in xmit queues (qdisc &
device queues), to reduce RTT and cwnd bias, part of the bufferbloat
problem.sk->sk_wmem_alloc not allowed to grow above a given limit,
allowing no more than ~128KB [1] per tcp socket in qdisc/dev layers at a
given time.TSO packets are sized/capped to half the limit, so that we have two
TSO packets in flight, allowing better bandwidth use.As a side effect, setting the limit to 40000 automatically reduces the
standard gso max limit (65536) to 40000/2 : It can help to reduce
latencies of high prio packets, having smaller TSO packets.This means we divert sock_wfree() to a tcp_wfree() handler, to
queue/send following frames when skb_orphan() [2] is called for the
already queued skbs.Results on my dev machines (tg3/ixgbe nics) are really impressive,
using standard pfifo_fast, and with or without TSO/GSO.Without reduction of nominal bandwidth, we have reduction of buffering
per bulk sender :
< 1ms on Gbit (instead of 50ms with TSO)
< 8ms on 100Mbit (instead of 132 ms)I no longer have 4 MBytes backlogged in qdisc by a single netperf
session, and both side socket autotuning no longer use 4 Mbytes.As skb destructor cannot restart xmit itself ( as qdisc lock might be
taken at this point ), we delegate the work to a tasklet. We use one
tasklest per cpu for performance reasons.If tasklet finds a socket owned by the user, it sets TSQ_OWNED flag.
This flag is tested in a new protocol method called from release_sock(),
to eventually send new segments.[1] New /proc/sys/net/ipv4/tcp_limit_output_bytes tunable
[2] skb_orphan() is usually called at TX completion time,
but some drivers call it in their start_xmit() handler.
These drivers should at least use BQL, or else a single TCP
session can still fill the whole NIC TX ring, since TSQ will
have no effect.Signed-off-by: Eric Dumazet
Cc: Dave Taht
Cc: Tom Herbert
Cc: Matt Mathis
Cc: Yuchung Cheng
Cc: Nandita Dukkipati
Signed-off-by: David S. Miller -
The recent patch "tcp: Maintain dynamic metrics in local cache." introduced
an out of bounds access due to what appears to be a typo. I believe this
change should resolve the issue by replacing the access to RTAX_CWND with
TCP_METRIC_CWND.Signed-off-by: Alexander Duyck
Signed-off-by: David S. Miller
11 Jul, 2012
8 commits
-
Fixes build when ipv6 is disabled.
Reported-by: Fengguang Wu
Signed-off-by: David S. Miller -
mld->mld_maxdelay is net endian, so we should use ntohs, not htons
CC: YOSHIFUJI Hideaki
Signed-off-by: Li RongQing
Signed-off-by: David S. Miller -
commit 6d29b1ef introduces a bug, ntohs is __be16_to_cpu,
not cpu_to_be16.We always use htons on IP_OFFSET and IP_MF, then compare
with network package.Signed-off-by: Li RongQing
Signed-off-by: David S. Miller -
ETH_P_IP is host Endian, skb->protocol is big Endian, when
compare them, Using htons on skb->protocol is wrong.And fix two code style issues: indentation and remove
unnecessary parentheses.CC: Tristram Ha
CC: Ben Hutchings
CC: Joe Perches
Signed-off-by: Li RongQing
Signed-off-by: David S. Miller -
Conflicts:
net/batman-adv/bridge_loop_avoidance.c
net/batman-adv/bridge_loop_avoidance.h
net/batman-adv/soft-interface.c
net/mac80211/mlme.cWith merge help from Antonio Quartulli (batman-adv) and
Stephen Rothwell (drivers/net/usb/qmi_wwan.c).The net/mac80211/mlme.c conflict seemed easy enough, accounting for a
conversion to some new tracing macros.Signed-off-by: David S. Miller
-
In rare cases, bnx2x_free_tx_skbs() can unmap the wrong DMA address
when it gets to the last entry of the tx ring. We were not using
the proper macro to skip the last entry when advancing the tx index.Reported-by: Zongyun Lai
Reviewed-by: Jeffrey Huang
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
Or Gerlitz reported triggering of WARN_ON_ONCE(delta < len); in
skb_try_coalesce()
This warning tracks drivers that incorrectly set skb->truesizeIPoIB indeed allocates a full page to store a fragment, but only
accounts in skb->truesize the used part of the page (frame length)This patch fixes skb truesize underestimation, and
also fixes a performance issue, because RX skbs have not enough tailroom
to allow IP and TCP stacks to pull their header in skb linear part
without an expensive call to pskb_expand_head()Signed-off-by: Eric Dumazet
Reported-by: Or Gerlitz
Cc: Erez Shitrit
Cc: Shlomo Pongartz
Cc: Roland Dreier
Signed-off-by: David S. Miller