11 years ago[UDP]: Avoid repeated counting of checksum errors due to peeking
Herbert Xu [Wed, 5 Dec 2007 09:51:58 +0000]
[UDP]: Avoid repeated counting of checksum errors due to peeking

Currently it is possible for two processes to peek on the same socket
and end up incrementing the error counter twice for the same packet.

This patch fixes it by making skb_kill_datagram return whether it
succeeded in unlinking the packet and only incrementing the counter
if it did.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[IPV6]: Eliminate difference in actions of sysctl and proc handler for conf.all.forwa...
Pavel Emelyanov [Wed, 5 Dec 2007 09:50:24 +0000]
[IPV6]: Eliminate difference in actions of sysctl and proc handler for conf.all.forwarding

The only difference in this case is that updating all.forwarding
causes the update in default.forwarding when done via proc, but
not via the system call.

Besides, this consolidates a good portion of code.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[INET]: Merge sys.net.ipv4.ip_forward and sys.net.ipv4.conf.all.forwarding
Pavel Emelyanov [Wed, 5 Dec 2007 09:44:58 +0000]
[INET]: Merge sys.net.ipv4.ip_forward and sys.net.ipv4.conf.all.forwarding

AFAIS these two entries should do the same thing - change the
forwarding state on ipv4_devconf and on all the devices.

I propose to merge the handlers together using ctl paths.

The inet_forward_change() is static after this and I move
it higher to be closer to other "propagation" helpers and
to avoid diff making patches based on { and } matching :)
i.e. - make them easier to read.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[IPV6]: Use sysctl paths to register ipv6 sysctl tables
Pavel Emelyanov [Wed, 5 Dec 2007 09:44:02 +0000]
[IPV6]: Use sysctl paths to register ipv6 sysctl tables

I have already done this for core, ipv4 and tr tables, so repeat this
for the ipv6 ones.

This makes the ipv6.ko smaller and creates the ground needed for net
namespaces support in ipv6.ko ssctls.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[IPV6]: Make the ipv6/sysctl_net_ipv6.c compilation cleaner
Pavel Emelyanov [Wed, 5 Dec 2007 09:43:25 +0000]
[IPV6]: Make the ipv6/sysctl_net_ipv6.c compilation cleaner

Since this file is entirely enclosed with the
#ifdef CONFIG_SYSCTL/#endif pair, it's OK to move this
CONFIG_ into a Makefile.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NET]: Remove the empty net_table
Pavel Emelyanov [Wed, 5 Dec 2007 09:42:49 +0000]
[NET]: Remove the empty net_table

I have removed all the entries from this table (core_table,
ipv4_table and tr_table), so now we can safely drop it.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[TR]: Use ctl paths to register net/token-ring/ table
Pavel Emelyanov [Fri, 25 Jan 2008 01:04:49 +0000]
[TR]: Use ctl paths to register net/token-ring/ table

The same thing for token-ring - use ctl paths and get
rid of external references on the tr_table.

Unfortunately, I couldn't split this patch into cleanup and
use-the-paths parts.

As a lame excuse I can say, that the cleanup is just moving
the tr_table from one file to another - closet to a single
variable, that this ctl table tunes. Since the source  file
becomes empty after the move, I remove it.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[IPV4]: Use ctl paths to register net/ipv4/ table
Pavel Emelyanov [Wed, 5 Dec 2007 09:41:26 +0000]
[IPV4]: Use ctl paths to register net/ipv4/ table

This is the same as I did for the net/core/ table in the
second patch in his series: use the paths and isolate the
whole table in the .c file.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[IPV4]: Cleanup the sysctl_net_ipv4.c file
Pavel Emelyanov [Wed, 5 Dec 2007 09:38:23 +0000]
[IPV4]: Cleanup the sysctl_net_ipv4.c file

This includes several cleanups:

 * tune Makefile to compile out this file when SYSCTL=n. Now
   it looks like net/core/sysctl_net_core.c one;
 * move the ipv4_config to af_inet.c to exist all the time;
 * remove additional sysctl_ip_nonlocal_bind declaration
   (it is already declared in net/ip.h);
 * remove no nonger needed ifdefs from this file.

This is a preparation for using ctl paths for net/ipv4/
sysctl table.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NET]: Isolate the net/core/ sysctl table
Pavel Emelyanov [Wed, 5 Dec 2007 09:37:34 +0000]
[NET]: Isolate the net/core/ sysctl table

Using ctl paths we can put all the stuff, related to net/core/
sysctl table, into one file and remove all the references on it.

As a good side effect this hides the "core_table" name from
the global scope :)

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NET]: Remove unneeded ifdefs from sysctl_net_core.c
Pavel Emelyanov [Wed, 5 Dec 2007 09:36:23 +0000]
[NET]: Remove unneeded ifdefs from sysctl_net_core.c

This file is already compiled out when the SYSCTL=n, so
these ifdefs, that enclose the whole file, can be removed.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: Select CONFIG_NETFILTER_NETLINK when needed
Patrick McHardy [Wed, 5 Dec 2007 09:31:52 +0000]
[NETFILTER]: Select CONFIG_NETFILTER_NETLINK when needed

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: remove NF_CONNTRACK_ENABLED option
Patrick McHardy [Wed, 5 Dec 2007 09:31:37 +0000]
[NETFILTER]: remove NF_CONNTRACK_ENABLED option

Remove the NF_CONNTRACK_ENABLED option. It was meant for a smoother upgrade
to nf_conntrack, people having reconfigured their kernel at least once since
ip_conntrack was removed will have the NF_CONNTRACK option already set.
People upgrading from older kernels have to reconfigure a lot anyway.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nfnetlink_queue: update copyright
Patrick McHardy [Wed, 5 Dec 2007 09:31:17 +0000]
[NETFILTER]: nfnetlink_queue: update copyright

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nfnetlink_queue: remove useless enqueue status codes
Patrick McHardy [Wed, 5 Dec 2007 09:31:01 +0000]
[NETFILTER]: nfnetlink_queue: remove useless enqueue status codes

The queueing core doesn't care about the exact return value from
the queue handler, so there's no need to go through the trouble
of returning a meaningful value as long as we indicate an error.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nfnetlink_queue: eliminate impossible switch case
Patrick McHardy [Wed, 5 Dec 2007 09:30:29 +0000]
[NETFILTER]: nfnetlink_queue: eliminate impossible switch case

We don't need a default case in nfqnl_build_packet_message(), the
copy_mode is validated when it is set. Tell the compiler about
the possible types and remove the default case. Saves 80b of
text on x86_64.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nfnetlink_queue: use endianness-aware attribute functions
Patrick McHardy [Wed, 5 Dec 2007 09:30:02 +0000]
[NETFILTER]: nfnetlink_queue: use endianness-aware attribute functions

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nfnetlink_queue: mark hash table __read_mostly
Patrick McHardy [Wed, 5 Dec 2007 09:29:38 +0000]
[NETFILTER]: nfnetlink_queue: mark hash table __read_mostly

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nfnetlink_queue: remove useless debugging
Patrick McHardy [Wed, 5 Dec 2007 09:29:23 +0000]
[NETFILTER]: nfnetlink_queue: remove useless debugging

Originally I wanted to just remove the QDEBUG macro and use pr_debug, but
none of the messages seems worth keeping.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nfnetlink_queue: kill useless wrapper
Patrick McHardy [Wed, 5 Dec 2007 09:29:05 +0000]
[NETFILTER]: nfnetlink_queue: kill useless wrapper

nfqnl_set_mode takes the queue lock and calls __nfqnl_set_mode. Just move
the code from __nfqnl_set_mode to nfqnl_set_mode since there is no other
user.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nfnetlink: use RCU for queue instances hash
Patrick McHardy [Wed, 5 Dec 2007 09:28:50 +0000]
[NETFILTER]: nfnetlink: use RCU for queue instances hash

Use RCU for queue instances hash. Avoids multiple atomic operations
for each packet.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nfnetlink_queue: fix checks in nfqnl_recv_config
Patrick McHardy [Wed, 5 Dec 2007 09:28:30 +0000]
[NETFILTER]: nfnetlink_queue: fix checks in nfqnl_recv_config

The peer_pid must be checked in all cases when a queue exists, currently
it is not checked if for NFQA_CFG_QUEUE_MAXLEN when a NFQA_CFG_CMD
attribute exists in some cases. Same for the queue existance check,
which can cause a NULL pointer dereference.

Also consistently return -ENODEV for "queue not found". -ENOENT would
be better, but that is already used to indicate a queued skb id doesn't
exist.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nfnetlink_queue: avoid unnecessary atomic operation
Patrick McHardy [Wed, 5 Dec 2007 09:28:10 +0000]
[NETFILTER]: nfnetlink_queue: avoid unnecessary atomic operation

The sequence counter doesn't need to be an atomic_t, just move the increment
inside the locked section.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: remove annoying debugging message
Patrick McHardy [Wed, 5 Dec 2007 09:27:46 +0000]
[NETFILTER]: remove annoying debugging message

Don't log "nf_hook: Verdict = QUEUE." message with NETFILTER_DEBUG=y.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nf_queue: clean up error paths
Patrick McHardy [Wed, 5 Dec 2007 09:27:19 +0000]
[NETFILTER]: nf_queue: clean up error paths

Move duplicated error handling to end of function and add a helper function
to release the device and module references from the queue entry.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: {nfnetlink,ip,ip6}_queue: kill issue_verdict
Patrick McHardy [Wed, 5 Dec 2007 09:27:02 +0000]
[NETFILTER]: {nfnetlink,ip,ip6}_queue: kill issue_verdict

Now that issue_verdict doesn't need to free the queue entries anymore,
all it does is disable local BHs and call nf_reinject. Move the BH
disabling to the okfn invocation in nf_reinject and kill the
issue_verdict functions.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nf_queue: move list_head/skb/id to struct nf_info
Patrick McHardy [Wed, 5 Dec 2007 09:26:33 +0000]
[NETFILTER]: nf_queue: move list_head/skb/id to struct nf_info

Move common fields for queue management to struct nf_info and rename it
to struct nf_queue_entry. The avoids one allocation/free per packet and
simplifies the code a bit.

Alternatively we could add some private room at the tail, but since
all current users use identical structs this seems easier.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: ip6_queue: resync dev-index based flushing
Patrick McHardy [Wed, 5 Dec 2007 09:26:18 +0000]
[NETFILTER]: ip6_queue: resync dev-index based flushing

Resync dev_cmp to take bridge devices into account.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: ip6_queue: deobfuscate entry lookups
Patrick McHardy [Wed, 5 Dec 2007 09:26:02 +0000]
[NETFILTER]: ip6_queue: deobfuscate entry lookups

A queue entry lookup currently looks like this:

ipq_find_dequeue_entry -> __ipq_find_dequeue_entry ->
__ipq_find_entry -> cmpfn -> id_cmp

Use simple open-coded list walking and kill the cmpfn for
ipq_find_dequeue_entry. Instead add it to ipq_flush (after
similar cleanups) and use ipq_flush for both complete flushes
and flushing entries related to a device.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: ip_queue: deobfuscate entry lookups
Patrick McHardy [Wed, 5 Dec 2007 09:25:46 +0000]
[NETFILTER]: ip_queue: deobfuscate entry lookups

A queue entry lookup currently looks like this:

ipq_find_dequeue_entry -> __ipq_find_dequeue_entry ->
__ipq_find_entry -> cmpfn -> id_cmp

Use simple open-coded list walking and kill the cmpfn for
ipq_find_dequeue_entry. Instead add it to ipq_flush (after
similar cleanups) and use ipq_flush for both complete flushes
and flushing entries related to a device.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nfnetlink_queue: deobfuscate entry lookups
Patrick McHardy [Wed, 5 Dec 2007 09:25:30 +0000]
[NETFILTER]: nfnetlink_queue: deobfuscate entry lookups

A queue entry lookup currently looks like this:

find_dequeue_entry -> __find_dequeue_entry ->
__find_entry -> cmpfn -> id_cmp

Use simple open-coded list walking and kill the cmpfn for
find_dequeue_entry. Instead add it to nfqnl_flush (after
similar cleanups) and use nfqnl_flush for both complete
flushes and flushing entries related to a device.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: {nf_netlink,ip,ip6}_queue: use list_for_each_entry
Patrick McHardy [Wed, 5 Dec 2007 09:25:03 +0000]
[NETFILTER]: {nf_netlink,ip,ip6}_queue: use list_for_each_entry

Use list_add_tail/list_for_each_entry instead of list_add and
list_for_each_prev as a preparation for switching to RCU.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nf_queue: move queueing related functions/struct to seperate header
Patrick McHardy [Wed, 5 Dec 2007 09:24:48 +0000]
[NETFILTER]: nf_queue: move queueing related functions/struct to seperate header

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nf_queue: remove unused data pointer
Patrick McHardy [Wed, 5 Dec 2007 09:24:30 +0000]
[NETFILTER]: nf_queue: remove unused data pointer

Remove the data pointer from struct nf_queue_handler. It has never been used
and is useless for the only handler that really matters, nfnetlink_queue,
since the handler is shared between all instances.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nf_queue: make queue_handler const
Patrick McHardy [Wed, 5 Dec 2007 09:23:57 +0000]
[NETFILTER]: nf_queue: make queue_handler const

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nf_queue: remove unnecessary hook existance check
Patrick McHardy [Wed, 5 Dec 2007 09:23:41 +0000]
[NETFILTER]: nf_queue: remove unnecessary hook existance check

We hold a module reference for each queued packet, so the hook that
queued the packet can't disappear. Also remove an obsolete  comment
stating the opposite.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nf_queue: minor cleanup
Patrick McHardy [Wed, 5 Dec 2007 09:23:17 +0000]
[NETFILTER]: nf_queue: minor cleanup

Clean up

if (x) y;

constructs. We've got nothing to hide :)

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: Mark hooks __read_mostly
Patrick McHardy [Wed, 5 Dec 2007 09:23:00 +0000]
[NETFILTER]: Mark hooks __read_mostly

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: Use nf_register_hooks for multiple registrations
Patrick McHardy [Wed, 5 Dec 2007 09:22:43 +0000]
[NETFILTER]: Use nf_register_hooks for multiple registrations

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nf_conntrack_proto_icmp: kill extern declaration in .c file
Patrick McHardy [Wed, 5 Dec 2007 09:22:24 +0000]
[NETFILTER]: nf_conntrack_proto_icmp: kill extern declaration in .c file

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: nf_ct_h323: remove ipv6 module dependency
Patrick McHardy [Wed, 5 Dec 2007 09:22:05 +0000]
[NETFILTER]: nf_ct_h323: remove ipv6 module dependency

nf_conntrack_h323 needs ip6_route_output for the call forwarding filter.
Add a ->route function to nf_afinfo and use that to avoid pulling in the
ipv6 module.

Fix the #ifdef for the IPv6 code while I'm at it - the IPv6 support is
only needed when IPv6 conntrack is enabled.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: xt_hashlimit: remove ip6tables module dependency
Patrick McHardy [Wed, 5 Dec 2007 07:51:48 +0000]
[NETFILTER]: xt_hashlimit: remove ip6tables module dependency

Switch from ipv6_find_hdr to ipv6_skip_exthdr to avoid pulling in ip6_tables
and ipv6 when only using it for IPv4.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: {ip,ip6}t_LOG: log GID
Maciej Soltysiak [Wed, 5 Dec 2007 07:50:38 +0000]
[NETFILTER]: {ip,ip6}t_LOG: log GID

Log GID in addition to UID

Signed-off-by: Maciej Soltysiak <maciej.soltysiak@ae.poznan.pl>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: x_tables: add rateest match
Patrick McHardy [Tue, 4 Dec 2007 12:02:19 +0000]
[NETFILTER]: x_tables: add rateest match

Add rate estimator match. The rate estimator match can match on
estimated rates by the RATEEST target. It supports matching on
absolute bps/pps values, comparing two rate estimators and matching
on the difference between two rate estimators.

This is what I use to route outgoing data connections from a FTP
server over two lines based on the  available bandwidth:

# estimate outgoing rates
iptables -t mangle -A POSTROUTING -o eth0 -j RATEEST --rateest-name eth0 \
                                                     --rateest-interval 250ms \
                                                     --rateest-ewma 0.5s
iptables -t mangle -A POSTROUTING -o ppp0 -j RATEEST --rateest-name ppp0 \
                                                     --rateest-interval 250ms \
                                                     --rateest-ewma 0.5s

# mark based on available bandwidth
iptables -t mangle -A BALANCE -m state --state NEW \
                              -m helper --helper ftp \
                              -m rateest --rateest-delta \
                                         --rateest1 eth0 \
                                         --rateest-bps1 2.5mbit \
                                         --rateest-gt \
                                         --rateest2 ppp0 \
                                         --rateest-bps2 2mbit \
                              -j CONNMARK --set-mark 0x1

iptables -t mangle -A BALANCE -m state --state NEW \
                              -m helper --helper ftp \
                              -m rateest --rateest-delta \
                                         --rateest1 ppp0 \
                                         --rateest-bps1 2mbit \
                                         --rateest-gt \
                                         --rateest2 eth0 \
                                         --rateest-bps2 2.5mbit \
                              -j CONNMARK --set-mark 0x2

iptables -t mangle -A BALANCE -j CONNMARK --restore-mark

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: x_tables: add RATEEST target
Patrick McHardy [Wed, 5 Dec 2007 07:40:05 +0000]
[NETFILTER]: x_tables: add RATEEST target

Add new rate estimator target (using gen_estimator). In combination with
the rateest match (next patch) this can be used for load-based multipath
routing.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: ip_tables: remove obsolete SAME target
Patrick McHardy [Wed, 5 Dec 2007 07:39:36 +0000]
[NETFILTER]: ip_tables: remove obsolete SAME target

Remove the ipt_SAME target as scheduled in feature-removal-schedule.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: IPv6 capable xt_TOS v1 target
Jan Engelhardt [Wed, 5 Dec 2007 07:39:09 +0000]
[NETFILTER]: IPv6 capable xt_TOS v1 target

Extends the xt_DSCP target by xt_TOS v1 to add support for selectively
setting and flipping any bit in the IPv4 TOS and IPv6 Priority fields.
(ipt_TOS and xt_DSCP only accepted a limited range of possible
values.)

Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: IPv6 capable xt_tos v1 match
Jan Engelhardt [Wed, 5 Dec 2007 07:38:30 +0000]
[NETFILTER]: IPv6 capable xt_tos v1 match

Extends the xt_dscp match by xt_tos v1 to add support for selectively
matching any bit in the IPv4 TOS and IPv6 Priority fields. (ipt_tos
and xt_dscp only accepted a limited range of possible values.)

Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: Merge ipt_TOS into xt_DSCP
Jan Engelhardt [Wed, 5 Dec 2007 07:38:13 +0000]
[NETFILTER]: Merge ipt_TOS into xt_DSCP

Merge ipt_TOS into xt_DSCP.

Merge ipt_TOS (tos v0 target) into xt_DSCP. They both modify the same
field in the IPv4 header, so it seems reasonable to keep them in one
piece. This is part two of the implicit 4-patch series to move tos to
xtables and extend it by IPv6.

Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: Merge ipt_tos into xt_dscp
Jan Engelhardt [Wed, 5 Dec 2007 07:37:54 +0000]
[NETFILTER]: Merge ipt_tos into xt_dscp

Merge ipt_tos into xt_dscp.

Merge ipt_tos (tos v0 match) into xt_dscp. They both match on the same
field in the IPv4 header, so it seems reasonable to keep them in one
piece. This is part one of the implicit 4-patch series to move tos to
xtables and extend it by IPv6.

Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NET]: Constify include/net/dsfield.h
Jan Engelhardt [Wed, 5 Dec 2007 07:37:29 +0000]
[NET]: Constify include/net/dsfield.h

Constify include/net/dsfield.h

Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: Use lowercase names for matches in Kconfig
Jan Engelhardt [Wed, 5 Dec 2007 07:31:59 +0000]
[NETFILTER]: Use lowercase names for matches in Kconfig

Unify netfilter match kconfig descriptions

Consistently use lowercase for matches in kconfig one-line
descriptions and name the match module.

Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: ipt_addrtype: limit address type checking to an interface
Laszlo Attila Toth [Wed, 5 Dec 2007 07:30:18 +0000]
[NETFILTER]: ipt_addrtype: limit address type checking to an interface

Addrtype match has a new revision (1), which lets address type checking
limited to the interface the current packet belongs to. Either incoming
or outgoing interface can be used depending on the current hook. In the
FORWARD hook two maches should be used if both interfaces have to be checked.
The new structure is ipt_addrtype_info_v1.

Revision 0 lets older userspace programs use the match as earlier.
ipt_addrtype_info is used.

Signed-off-by: Laszlo Attila Toth <panther@balabit.hu>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[IPV4]: Add inet_dev_addr_type()
Laszlo Attila Toth [Wed, 5 Dec 2007 07:28:46 +0000]
[IPV4]: Add inet_dev_addr_type()

Address type search can be limited to an interface by
inet_dev_addr_type function.

Signed-off-by: Laszlo Attila Toth <panther@balabit.hu>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: merge ipt_owner/ip6t_owner in xt_owner
Jan Engelhardt [Wed, 5 Dec 2007 07:27:38 +0000]
[NETFILTER]: merge ipt_owner/ip6t_owner in xt_owner

xt_owner merges ipt_owner and ip6t_owner, and adds a flag to match
on socket (non-)existence.

Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: x_tables: remove obsolete overflow check
Patrick McHardy [Wed, 5 Dec 2007 07:25:26 +0000]
[NETFILTER]: x_tables: remove obsolete overflow check

We're not multiplying the size with the number of CPUs anymore, so the
check is obsolete.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: x_tables: struct xt_table_info diet
Eric Dumazet [Wed, 5 Dec 2007 07:24:56 +0000]
[NETFILTER]: x_tables: struct xt_table_info diet

Instead of using a big array of NR_CPUS entries, we can compute the size
needed at runtime, using nr_cpu_ids

This should save some ram (especially on David's machines where NR_CPUS=4096 :
32 KB can be saved per table, and 64KB for dynamically allocated ones (because
of slab/slub alignements) )

In particular, the 'bootstrap' tables are not any more static (in data
section) but on stack as their size is now very small.

This also should reduce the size used on stack in compat functions
(get_info() declares an automatic variable, that could be bigger than kernel
stack size for big NR_CPUS)

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: x_tables: consistent and unique symbol names
Jan Engelhardt [Wed, 5 Dec 2007 07:24:03 +0000]
[NETFILTER]: x_tables: consistent and unique symbol names

Give all Netfilter modules consistent and unique symbol names.

Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: replace list_for_each with list_for_each_entry
Li Zefan [Wed, 5 Dec 2007 07:22:26 +0000]
[NETFILTER]: replace list_for_each with list_for_each_entry

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETFILTER]: x_tables: add TCPOPTSTRIP target
Sven Schnelle [Wed, 5 Dec 2007 07:21:50 +0000]
[NETFILTER]: x_tables: add TCPOPTSTRIP target

Signed-off-by: Sven Schnelle <svens@bitebene.org>
Signed-off-by: Jan Engelhardt <jengelh@gmx.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NET]: netns compilation speedup
Denis V. Lunev [Tue, 4 Dec 2007 09:15:45 +0000]
[NET]: netns compilation speedup

This patch speedups compilation when net_namespace.h is changed.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NETLINK]: af_netlink.c checkpatch cleanups
Patrick McHardy [Tue, 4 Dec 2007 08:19:38 +0000]
[NETLINK]: af_netlink.c checkpatch cleanups

Fix large number of checkpatch errors.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[IPSEC]: Use the correct family for input state lookup
Herbert Xu [Tue, 4 Dec 2007 06:54:12 +0000]
[IPSEC]: Use the correct family for input state lookup

When merging the input paths of IPsec I accidentally left a hard-coded
AF_INET for the state lookup call.  This broke IPv6 obviously.  This
patch fixes by getting the input callers to specify the family through
skb->cb.

Credit goes to Kazunori Miyazawa for diagnosing this and providing an
initial patch.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[UDP]: Counter increment should be in USER mode for recvmsg
Wang Chen [Mon, 3 Dec 2007 11:36:13 +0000]
[UDP]: Counter increment should be in USER mode for recvmsg

System calls should be USER. So change the BH to USER for
UDP*_INC_STATS_BH().

Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[UDP]: Clean up for IS_UDPLITE macro
Wang Chen [Mon, 3 Dec 2007 11:34:16 +0000]
[UDP]: Clean up for IS_UDPLITE macro

Since we have macro IS_UDPLITE, we can use it.

Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[UDP]: Defer InDataGrams increment until recvmsg() does checksum
Wang Chen [Mon, 3 Dec 2007 11:33:28 +0000]
[UDP]: Defer InDataGrams increment until recvmsg() does checksum

Thanks dave, herbert, gerrit, andi and other people for your
discussion about this problem.

UdpInDatagrams can be confusing because it counts packets that
might be dropped later.
Move UdpInDatagrams into recvmsg() as allowed by the RFC.

Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[TCP]: Abstract tp->highest_sack accessing & point to next skb
Ilpo Järvinen [Sat, 1 Dec 2007 22:48:06 +0000]
[TCP]: Abstract tp->highest_sack accessing & point to next skb

Pointing to the next skb is necessary to avoid referencing
already SACKed skbs which will soon be on a separate list.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[TCP]: Cleanup local variables of clean_rtx_queue
Ilpo Järvinen [Sun, 30 Dec 2007 12:37:55 +0000]
[TCP]: Cleanup local variables of clean_rtx_queue

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[TCP]: Add unlikely() to urgent handling in clean_rtx_queue
Ilpo Järvinen [Sat, 1 Dec 2007 22:48:04 +0000]
[TCP]: Add unlikely() to urgent handling in clean_rtx_queue

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[TCP]: Remove duplicated code block from clean_rtx_queue
Ilpo Järvinen [Sun, 30 Dec 2007 12:35:27 +0000]
[TCP]: Remove duplicated code block from clean_rtx_queue

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[TCP]: Add tcp_for_write_queue_from_safe and use it in mtu_probe
Ilpo Järvinen [Sat, 1 Dec 2007 22:48:02 +0000]
[TCP]: Add tcp_for_write_queue_from_safe and use it in mtu_probe

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[TCP]: Remove local variable and use packets_in_flight directly
Ilpo Järvinen [Sat, 1 Dec 2007 22:48:01 +0000]
[TCP]: Remove local variable and use packets_in_flight directly

Lines won't be that long and it's compiler's job to optimize
them.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[TCP]: MTUprobe: prepare skb fields earlier
Ilpo Järvinen [Sat, 1 Dec 2007 22:48:00 +0000]
[TCP]: MTUprobe: prepare skb fields earlier

They better be valid when call to write_queue functions is made
once things that follow are going in.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[TCP]: Cong.ctrl modules: remove unused good_ack from cong_avoid
Ilpo Järvinen [Sat, 1 Dec 2007 22:47:59 +0000]
[TCP]: Cong.ctrl modules: remove unused good_ack from cong_avoid

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[TCP]: Unite identical code from two seqno split blocks
Ilpo Järvinen [Sat, 1 Dec 2007 22:47:58 +0000]
[TCP]: Unite identical code from two seqno split blocks

Bogus seqno compares just mislead, the code is identical for
both sides of the seqno compare (and was even executed just
once because of return in between).

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[TCP]: Remove superflucious FLAG_DATA_SACKED
Ilpo Järvinen [Sat, 1 Dec 2007 22:47:57 +0000]
[TCP]: Remove superflucious FLAG_DATA_SACKED

To get there, highest_sack must have advanced. When it advances,
a new skb is SACKed, which already sets that FLAG. Besides, the
original purpose of it has puzzled me, never understood why
LOST bit setting of retransmitted skb is marked with
FLAG_DATA_SACKED.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[TCP]: Move LOSTRETRANS MIB outside !(L|S) check
Ilpo Järvinen [Sat, 1 Dec 2007 22:47:56 +0000]
[TCP]: Move LOSTRETRANS MIB outside !(L|S) check

Usually those skbs will have L set, not counting them as lost
retransmissions is misleading.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[IPV6]: Use ctl paths to register addrconf sysctls
Pavel Emelyanov [Sat, 1 Dec 2007 13:59:38 +0000]
[IPV6]: Use ctl paths to register addrconf sysctls

This looks very much like the patch for ipv4's devinet.

This is also intended to help us with the net namespaces
and saves the ipv6.ko size by ~320 bytes.

The difference from the first version is just the patch
offsets, that changed due to changes in the patch #2.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[IPV6]: Unify and cleanup calls to addrconf_sysctl_register
Pavel Emelyanov [Sat, 1 Dec 2007 13:58:37 +0000]
[IPV6]: Unify and cleanup calls to addrconf_sysctl_register

Currently this call is (ab)used similar to devinet one - it
registers sysctls for devices and for the "default" confs, while
the "all" sysctls are registered separately. But unlike its
devinet brother, the passed inet6_device is needed.

The fix is to make a __addrconf_sysctl_register(), which registers
sysctls for all "devices" we need, including "default" and "all" :)

The original addrconf_sysctl_register() calls the introduced
function, passing the inet6_device, device name and ifindex (to
be used as procname and ctl_name) into it.

Thanks to Herbert again for pointing out, that we can shrink the
argument list to 1 :)

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[IPV4]: Use ctl paths to register devinet sysctls
Pavel Emelyanov [Sat, 1 Dec 2007 13:57:08 +0000]
[IPV4]: Use ctl paths to register devinet sysctls

This looks very much like the patch for neighbors.

The path is also located on the stack and is prepared
inside the function. This time, the call to the registering
function is guarded with the RTNL lock, but I decided
to keep it on the stack not to litter the devinet.c file
with unneeded names and to make it look similar to the
neighbors code.

This is also intended to help us with the net namespaces
and saves the vmlinux size as well - this time by more
than 670 bytes.

The difference from the first version is just the patch
offsets, that changed due to changes in the patch #2.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[IPV4]: Unify and cleanup calls to devinet_sysctl_register
Pavel Emelyanov [Sat, 1 Dec 2007 13:55:54 +0000]
[IPV4]: Unify and cleanup calls to devinet_sysctl_register

Currently this call is used to register sysctls for devices
and for the "default" confs. The "all" sysctls are registered
separately.

Besides, the inet_device is passed to this function, but it is
not needed there at all - just the device name and ifindex are
required.

Thanks to Herbert, who noticed, that this call doesn't even
require the devconf pointer (the last argument) - all we need
we can take from the in_device itself.

The fix is to make a __devinet_sysctl_register(), which registers
sysctls for all "devices" we need, including "default" and "all" :)

The original devinet_sysctl_register() works with struct net_device,
not the inet_device, and calls the introduced function, passing
the device name and ifindex (to be used as procname and ctl_name)
into it.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years agosoftmac: mark as obsolete and schedule for removal
John W. Linville [Wed, 21 Nov 2007 20:24:35 +0000]
softmac: mark as obsolete and schedule for removal

Schedule softmac for for removal in the 2.6.26 development window.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years agobcm43xx: mark as obsolete and schedule for removal
John W. Linville [Mon, 28 Jan 2008 06:48:37 +0000]
bcm43xx: mark as obsolete and schedule for removal

Schedule bcm43xx for for removal in the 2.6.26 development window.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years agomac80211: remove "bcn_int" and "capab" scan results info
John W. Linville [Wed, 21 Nov 2007 16:54:22 +0000]
mac80211: remove "bcn_int" and "capab" scan results info

These bits were dead code before "mac80211: Remove local->scan_flags"
(commit 6681dd3fd0e4d36a4547415853e83411baa7b705) and probably should
have been removed as part of that commit.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years agomac80211: move A-MSDU identifier to flags
Ron Rindjunsky [Thu, 29 Nov 2007 08:35:53 +0000]
mac80211: move A-MSDU identifier to flags

This patch moves u8 amsdu_frame in ieee80211_txrx_data to the flags
section as IEEE80211_TXRXD_RX_AMSDU

Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years agomac80211: adding 802.11n configuration flows
Ron Rindjunsky [Mon, 26 Nov 2007 14:14:34 +0000]
mac80211: adding 802.11n configuration flows

This patch configures the 802.11n mode of operation
internally in ieee80211_conf structure and in the low-level
driver as well (through op conf_ht).
It does not include AP configuration flows.

Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years agomac80211: adding 802.11n essential A-MSDU Rx capability
Ron Rindjunsky [Mon, 26 Nov 2007 14:14:33 +0000]
mac80211: adding 802.11n essential A-MSDU Rx capability

This patch adds the ability to receive and handle A-MSDU frames.

Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years agomac80211: adding 802.11n essential A-MPDU addBA capability
Ron Rindjunsky [Mon, 26 Nov 2007 14:14:32 +0000]
mac80211: adding 802.11n essential A-MPDU addBA capability

This patch adds the capability to identify and answer an add block ACK
request.
As this series of patches only adds HT handling with no aggregations,
(A-MPDU aggregations acceptance is not obligatory according to 802.11n
draft) we are currently sending back a refusal upon this request.

Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years agomac80211: adding 802.11n IEs handling
Ron Rindjunsky [Mon, 26 Nov 2007 14:14:31 +0000]
mac80211: adding 802.11n IEs handling

This patch presents the ability to parse and compose HT IEs, and to put
the IE relevant data inside the mac80211's internal HT structures

Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years agomac80211: adding 802.11n HT framework definitions
Ron Rindjunsky [Mon, 26 Nov 2007 14:14:30 +0000]
mac80211: adding 802.11n HT framework definitions

New structures:
 - ieee80211_ht_info: describing STA's HT capabilities
 - ieee80211_ht_bss_info: describing BSS's HT characteristics
Changed structures:
 - ieee80211_hw_mode: now also holds PHY HT capabilities for each HW mode
 - ieee80211_conf: ht_conf holds current self HT configuration
                   ht_bss_conf holds current BSS HT configuration
 - flag IEEE80211_CONF_SUPPORT_HT_MODE added to indicate if HT use is
   desired
 - sta_info: now also holds Peer's HT capabilities

Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years agomac80211: adding MAC80211_HT_DEBUG config variable
Ron Rindjunsky [Mon, 17 Dec 2007 00:09:26 +0000]
mac80211: adding MAC80211_HT_DEBUG config variable

This patch adds MAC80211_HT_DEBUG config variable
to separate HT debug features

Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years agomac80211: allow setting drop_unencrypted with wext
Johannes Berg [Wed, 28 Nov 2007 10:04:21 +0000]
mac80211: allow setting drop_unencrypted with wext

This patch allows wpa_supplicant to set the drop_unencrypted setting in
mac80211.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years agomac80211: make ieee80211_iterate_active_interfaces not need rtnl
Johannes Berg [Wed, 28 Nov 2007 09:55:32 +0000]
mac80211: make ieee80211_iterate_active_interfaces not need rtnl

Interface iteration in mac80211 can be done without holding any
locks because I converted it to RCU. Initially, I thought this
wouldn't be needed for ieee80211_iterate_active_interfaces but
it's turning out that multi-BSS AP support can be much simpler
in a driver if ieee80211_iterate_active_interfaces can be called
without holding locks. This converts it to use RCU, it adds a
requirement that the callback it invokes cannot sleep.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years agomac80211: restructuring data Rx handlers
Ron Rindjunsky [Thu, 22 Nov 2007 17:49:12 +0000]
mac80211: restructuring data Rx handlers

This patch restructures the Rx handlers chain by incorporating previously
handlers ieee80211_rx_h_802_1x_pae and ieee80211_rx_h_drop_unencrypted
into ieee80211_rx_h_data, already in 802.3 form. this scheme follows more
precisely after the IEEE802.11 data plane archituecture, and will prevent
code duplication to IEEE8021.11n A-MSDU handler.

added function:
 - ieee80211_data_to_8023: transfering 802.11 data frames to 802.3 frame
 - ieee80211_deliver_skb: delivering the 802.3 frames to upper stack
eliminated handlers:
 - ieee80211_rx_h_drop_unencrypted: now function ieee80211_drop_unencrypted
 - ieee80211_rx_h_802_1x_pae: now function ieee80211_802_1x_pae
changed handlers:
 - ieee80211_rx_h_data: now contains calls to four above function

Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years agomac80211: hardware scan rework
Zhu Yi [Thu, 22 Nov 2007 02:53:21 +0000]
mac80211: hardware scan rework

The scan code in mac80211 makes the software scan assumption in various
places. For example, we stop the Tx queue during a software scan so that
all the Tx packets will be queued by the stack. We also drop frames not
related to scan in the software scan process. But these are not true for
hardware scan.

Some wireless hardwares (for example iwl3945/4965) has the ability to
perform the whole scan process by hardware and/or firmware. The hardware
scan is relative powerful in that it tries to maintain normal network
traffic while doing a scan in the background. Some drivers (i.e iwlwifi)
do provide a way to tune the hardware scan parameters (for example if the
STA is associated, what's the max time could the STA leave from the
associated channel, how long the scans get suspended after returning to
the service channel, etc). But basically this is transparent to the
stack. mac80211 should not stop Tx queues or drop Rx packets during a
hardware scan.

This patch resolves the above problem by spliting the current scan
indicator local->sta_scanning into local->sta_sw_scanning and
local->sta_hw_scanning. It then changes the scan related code to be aware
of hardware scan or software scan in various places. With this patch,
iwlwifi performs much better in the scan-while-associated condition and
disable_hw_scan=1 should never be required.

Cc: Mohamed Abbas <mohamed.abbas@intel.com>
Cc: Ben Cahill <ben.m.cahill@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[IPV6]: Cleanup the addconf_sysctl_register
Pavel Emelyanov [Sat, 1 Dec 2007 13:21:52 +0000]
[IPV6]: Cleanup the addconf_sysctl_register

This only includes fixing the space-indented lines and
removing one unneeded else after the goto.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[IPV4]: Cleanup the devinet_sysctl_register
Pavel Emelyanov [Sat, 1 Dec 2007 13:17:46 +0000]
[IPV4]: Cleanup the devinet_sysctl_register

I moved the call to kmalloc() from the *t declaration into
the code (this is confusing when a variable is initialized
with the result of some call) and removed unneeded comment
near the error path. Just like I did with the neigh ctl-s.

Besides, I fixed the goto's and the labels - they were indented
with spaces :(

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NEIGH]: Use the ctl paths to create neighbours sysctls
Pavel Emelyanov [Sat, 1 Dec 2007 13:08:16 +0000]
[NEIGH]: Use the ctl paths to create neighbours sysctls

The appropriate path is prepared right inside this function. It
is prepared similar to how the ctl tables were.

Since the path is modified, it is put on the stack, to avoid
possible races with multiple calls to neigh_sysctl_register() : it
is called by protocols and I didn't find any protection in this
case. Did I overlooked the rtnl lock?.

The stack growth of the neigh_sysctl_register() is 40 bytes. I
believe this is OK, since this is not that much and this function
is not called with the deep stack (device/protocols register).

The device's name is stored on the template to free it later.

This will help with the net namespaces, as each namespace should
have its own set of these ctls.

Besides, this saves ~350 bytes from the neigh template :)

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[NEIGH]: Cleanup the neigh_sysctl_register
Pavel Emelyanov [Sat, 1 Dec 2007 13:06:34 +0000]
[NEIGH]: Cleanup the neigh_sysctl_register

This mainly removes the err variable, as this call always
return the same error code (-ENOBUFS).

Besides, I moved the call to kmalloc() from the *t declaration
into the code (this is confusing when a variable is initialized
with the result of some call) and removed unneeded comment near
the error path.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

11 years ago[UNIX]: Make the unix sysctl tables per-namespace
Pavel Emelyanov [Sat, 1 Dec 2007 12:51:01 +0000]
[UNIX]: Make the unix sysctl tables per-namespace

This is the core.

 * add the ctl_table_header on the struct net;
 * make the unix_sysctl_register and _unregister clone the table;
 * moves calls to them into per-net init and exit callbacks;
 * move the .data pointer in the proper place.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Acked-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>