aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-10-13netfilter: xtables: resolve indirect macros 3/3Jan Engelhardt8-131/+94
2010-10-13netfilter: xtables: resolve indirect macros 2/3Jan Engelhardt7-108/+103
Signed-off-by: Jan Engelhardt <[email protected]>
2010-10-13netfilter: xtables: resolve indirect macros 1/3Jan Engelhardt6-30/+35
Many of the used macros are just there for userspace compatibility. Substitute the in-kernel code to directly use the terminal macro and stuff the defines into #ifndef __KERNEL__ sections. Signed-off-by: Jan Engelhardt <[email protected]>
2010-10-04netfilter: add missing xt_log.h filePatrick McHardy1-0/+54
Forgot to add xt_log.h in commit a8defca0 (netfilter: ipt_LOG: add bufferisation to call printk() once) Signed-off-by: Patrick McHardy <[email protected]>
2010-10-04netfilter: unregister nf hooks, matches and targets in the reverse orderChangli Gao2-12/+6
Since we register nf hooks, matches and targets in order, we'd better unregister them in the reverse order. Signed-off-by: Changli Gao <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-10-04netfilter: remove duplicated includeNicolas Kaiser1-1/+0
Remove duplicated include. Signed-off-by: Nicolas Kaiser <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-10-04netfilter: ipt_LOG: add bufferisation to call printk() onceEric Dumazet2-150/+152
ipt_LOG & ip6t_LOG use lot of calls to printk() and use a lock in a hope several cpus wont mix their output in syslog. printk() being very expensive [1], its better to call it once, on a prebuilt and complete line. Also, with mixed IPv4 and IPv6 trafic, separate IPv4/IPv6 locks dont avoid garbage. I used an allocation of a 1024 bytes structure, sort of seq_printf() but with a fixed size limit. Use a static buffer if dynamic allocation failed. Emit a once time alert if buffer size happens to be too short. [1]: printk() has various features like printk_delay()... Signed-off-by: Eric Dumazet <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-10-04netfilter: nf_nat: make find/put staticStephen Hemminger2-7/+2
The functions nf_nat_proto_find_get and nf_nat_proto_put are only used internally in nf_nat_core. This might break some out of tree NAT module. Signed-off-by: Stephen Hemminger <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-10-04IPVS: sip persistence engineSimon Horman3-0/+177
Add the SIP callid as a key for persistence. This allows multiple connections from the same IP address to be differentiated on the basis of the callid. When used in conjunction with the persistence mask, it allows connections from different IP addresses to be aggregated on the basis of the callid. It is envisaged that a persistence mask of 0.0.0.0 will be a useful setting. That is, ignore the source IP address when checking for persistence. It is envisaged that this option will be used in conjunction with one-packet scheduling. This only works with UDP and cannot be made to work with TCP within the current framework. Signed-off-by: Simon Horman <[email protected]> Acked-by: Julian Anastasov <[email protected]>
2010-10-04IPVS: Fallback if persistence engine failsSimon Horman2-9/+7
Fall back to normal persistence handling if the persistence engine fails to recognise a packet. This way, at least the packet will go somewhere. It is envisaged that iptables could be used to block packets such if this is not desired although nf_conntrack_sip would likely need to be enhanced first. Signed-off-by: Simon Horman <[email protected]> Acked-by: Julian Anastasov <[email protected]>
2010-10-04IPVS: Allow configuration of persistence enginesSimon Horman3-3/+58
Allow the persistence engine of a virtual service to be set, edited and unset. This feature only works with the netlink user-space interface. Signed-off-by: Simon Horman <[email protected]> Acked-by: Julian Anastasov <[email protected]>
2010-10-04IPVS: management of persistence engine modulesSimon Horman3-1/+154
This is based heavily on the scheduler management code Signed-off-by: Simon Horman <[email protected]> Acked-by: Julian Anastasov <[email protected]>
2010-10-04IPVS: Add persistence engine data to /proc/net/ip_vs_connSimon Horman2-5/+21
This shouldn't break compatibility with userspace as the new data is at the end of the line. I have confirmed that this doesn't break ipvsadm, the main (only?) user-space user of this data. Signed-off-by: Simon Horman <[email protected]> Acked-by: Julian Anastasov <[email protected]>
2010-10-04IPVS: Add struct ip_vs_peSimon Horman5-21/+129
Signed-off-by: Simon Horman <[email protected]> Acked-by: Julian Anastasov <[email protected]>
2010-10-04IPVS: ip_vs_{un,}bind_scheduler NULL argumentsSimon Horman2-22/+4
In general NULL arguments aren't passed by the few callers that exist, so don't test for them. The exception is to make passing NULL to ip_vs_unbind_scheduler() a noop. Signed-off-by: Simon Horman <[email protected]> Acked-by: Julian Anastasov <[email protected]>
2010-10-04IPVS: Allow null argument to ip_vs_scheduler_put()Simon Horman2-10/+5
This simplifies caller logic sightly. Signed-off-by: Simon Horman <[email protected]> Acked-by: Julian Anastasov <[email protected]>
2010-10-04IPVS: Add struct ip_vs_conn_paramSimon Horman7-203/+211
Signed-off-by: Simon Horman <[email protected]> Acked-by: Julian Anastasov <[email protected]>
2010-10-04IPVS: compact ip_vs_sched_persist()Simon Horman1-105/+51
Compact ip_vs_sched_persist() by setting up parameters and calling functions once. Signed-off-by: Simon Horman <[email protected]> Acked-by: Julian Anastasov <[email protected]>
2010-10-04netfilter: nf_conntrack_sip: Add callid parserSimon Horman2-0/+40
Signed-off-by: Simon Horman <[email protected]> Acked-by: Julian Anastasov <[email protected]>
2010-10-04netfilter: nf_conntrack_sip: Allow ct_sip_get_header() to be called with a ↵Simon Horman1-0/+3
null ct argument Signed-off-by: Simon Horman <[email protected]> Acked-by: Julian Anastasov <[email protected]>
2010-09-28netfilter: ctnetlink: add support for user-space expectation helpersPablo Neira Ayuso4-31/+79
This patch adds the basic infrastructure to support user-space expectation helpers via ctnetlink and the netfilter queuing infrastructure NFQUEUE. Basically, this patch: * adds NF_CT_EXPECT_USERSPACE flag to identify user-space created expectations. I have also added a sanity check in __nf_ct_expect_check() to avoid that kernel-space helpers may create an expectation if the master conntrack has no helper assigned. * adds some branches to check if the master conntrack helper exists, otherwise we skip the code that refers to kernel-space helper such as the local expectation list and the expectation policy. * allows to set the timeout for user-space expectations with no helper assigned. * a list of expectations created from user-space that depends on ctnetlink (if this module is removed, they are deleted). * includes USERSPACE in the /proc output for expectations that have been created by a user-space helper. This patch also modifies ctnetlink to skip including the helper name in the Netlink messages if no kernel-space helper is set (since no user-space expectation has not kernel-space kernel assigned). You can access an example user-space FTP conntrack helper at: http://people.netfilter.org/pablo/userspace-conntrack-helpers/nf-ftp-helper-userspace-POC.tar.bz Signed-off-by: Pablo Neira Ayuso <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-09-22netfilter: ctnetlink: allow to specify the expectation flagsPablo Neira Ayuso4-4/+12
With this patch, you can specify the expectation flags for user-space created expectations. Signed-off-by: Pablo Neira Ayuso <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-09-22netfilter: ctnetlink: missing validation of CTA_EXPECT_ZONE attributePablo Neira Ayuso1-0/+1
This patch adds the missing validation of the CTA_EXPECT_ZONE attribute in the ctnetlink code. Signed-off-by: Pablo Neira Ayuso <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-09-22netfilter: nf_nat: better error handling of nf_ct_expect_related() in helpersPablo Neira Ayuso5-14/+93
This patch improves the situation in which the expectation table is full for conntrack NAT helpers. Basically, we give up if we don't find a place in the table instead of looping over nf_ct_expect_related() with a different port (we should only do this if it returns -EBUSY, for -EMFILE or -ESHUTDOWN I think that it's better to skip this). Signed-off-by: Pablo Neira Ayuso <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-09-21ipvs: changes related to service usecntJulian Anastasov2-154/+102
Change the usage of svc usecnt during command execution: - we check if svc is registered but we do not need to hold usecnt reference while under __ip_vs_mutex, only the packet handling needs it during scheduling - change __ip_vs_service_get to __ip_vs_service_find and __ip_vs_svc_fwm_get to __ip_vs_svc_fwm_find because now caller will increase svc->usecnt - put common code that calls update_service in __ip_vs_update_dest - put common code in ip_vs_unlink_service() and use it to unregister the service - add comment that svc should not be accessed after ip_vs_del_service anymore - all IP_VS_WAIT_WHILE calls are now unified: usecnt > 0 - Properly log the app ports As result, some problems are fixed: - possible use-after-free of svc in ip_vs_genl_set_cmd after ip_vs_del_service because our usecnt reference does not guarantee that svc is not freed on refcnt==0, eg. when no dests are moved to trash - possible usecnt leak in do_ip_vs_set_ctl after ip_vs_del_service when the service is not freed now, for example, when some destionations are moved into trash and svc->refcnt remains above 0. It is harmless because svc is not in hash anymore. Signed-off-by: Julian Anastasov <[email protected]> Acked-by: Simon Horman <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-09-21netfilter: save the hash of the tuple in the original direction for latter useChangli Gao1-34/+78
Since we don't change the tuple in the original direction, we can save it in ct->tuplehash[IP_CT_DIR_REPLY].hnode.pprev for __nf_conntrack_confirm() use. __hash_conntrack() is split into two steps: hash_conntrack_raw() is used to get the raw hash, and __hash_bucket() is used to get the bucket id. In SYN-flood case, early_drop() doesn't need to recompute the hash again. Signed-off-by: Changli Gao <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-09-21ipvs: make rerouting optional with snat_rerouteJulian Anastasov3-8/+38
Add new sysctl flag "snat_reroute". Recent kernels use ip_route_me_harder() to route LVS-NAT responses properly by VIP when there are multiple paths to client. But setups that do not have alternative default routes can skip this routing lookup by using snat_reroute=0. Signed-off-by: Julian Anastasov <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-09-21ipvs: netfilter connection tracking changesJulian Anastasov10-196/+475
Add more code to IPVS to work with Netfilter connection tracking and fix some problems. - Allow IPVS to be compiled without connection tracking as in 2.6.35 and before. This can avoid keeping conntracks for all IPVS connections because this costs memory. ip_vs_ftp still depends on connection tracking and NAT as implemented for 2.6.36. - Add sysctl var "conntrack" to enable connection tracking for all IPVS connections. For loaded IPVS directors it needs tuning of nf_conntrack_max limit. - Add IP_VS_CONN_F_NFCT connection flag to request the connection to use connection tracking. This allows user space to provide this flag, for example, in dest->conn_flags. This can be useful to request connection tracking per real server instead of forcing it for all connections with the "conntrack" sysctl. This flag is set currently only by ip_vs_ftp and of course by "conntrack" sysctl. - Add ip_vs_nfct.c file to hold all connection tracking code, by this way main code should not depend of netfilter conntrack support. - Return back the ip_vs_post_routing handler as in 2.6.35 and use skb->ipvs_property=1 to allow IPVS to work without connection tracking Connection tracking: - most of the code is already in 2.6.36-rc - alter conntrack reply tuple for LVS-NAT connections when first packet from client is forwarded and conntrack state is NEW or RELATED. Additionally, alter reply for RELATED connections from real server, again for packet in original direction. - add IP_VS_XMIT_TUNNEL to confirm conntrack (without altering reply) for LVS-TUN early because we want to call nf_reset. It is needed because we add IPIP header and the original conntrack should be preserved, not destroyed. The transmitted IPIP packets can reuse same conntrack, so we do not set skb->ipvs_property. - try to destroy conntrack when the IPVS connection is destroyed. It is not fatal if conntrack disappears before that, it depends on the used timers. Fix problems from long time: - add skb->ip_summed = CHECKSUM_NONE for the LVS-TUN transmitters Signed-off-by: Julian Anastasov <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-09-17ipvs: extend connection flags to 32 bitsJulian Anastasov5-14/+28
- the sync protocol supports 16 bits only, so bits 0..15 should be used only for flags that should go to backup server, bits 16 and above should be allocated for flags not sent to backup. - use IP_VS_CONN_F_DEST_MASK as mask of connection flags in destination that can be changed by user space - allow IP_VS_CONN_F_ONE_PACKET to be set in destination Signed-off-by: Julian Anastasov <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-09-16netfilter: nf_conntrack: fix the hash random initializing raceChangli Gao1-6/+13
nf_conntrack_alloc() isn't called with nf_conntrack_lock locked, so hash random initializing code maybe executed more than once on different CPUs. Signed-off-by: Changli Gao <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-09-16netfilter: nf_nat: no IP_NAT_RANGE_MAP_IPS flags when alloc_null_binding()Changli Gao1-9/+8
When alloc_null_binding(), no IP_NAT_RNAGE_MAP_IPS in flags means no IP address translation is needed. It isn't necessary to specify the address explicitly. Signed-off-by: Changli Gao <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-09-16netfilter: nf_nat_core: don't check if the tuple is used if there is no ↵Changli Gao1-5/+11
other choice Eliminate nf_nat_used_tuple() to save some CPU cycles when there is no other choice. Signed-off-by: Changli Gao <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-09-16netfilter: use NFPROTO_IPV4 instead of AF_INETChangli Gao1-1/+1
The field family of xt_target should be NFPROTO_IPV4, though NFPROTO_IPV4 and AF_INET are the same. Signed-off-by: Changli Gao <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-09-15netfilter: nf_nat: add nf_nat_csum()Changli Gao1-45/+31
Add a static function nf_nat_csum() to replace the duplicate code in nf_nat_mangle_udp_packet() and __nf_nat_mangle_tcp_packet(). Signed-off-by: Changli Gao <[email protected]> Signed-off-by: Patrick McHardy <[email protected]>
2010-09-14e1000e: Simplify MSI interrupt testingJean Delvare1-25/+4
The code is quite convoluted, simplify it. This also avoids calling e1000_request_irq() without testing the value it returned, which was bad. Signed-off-by: Jean Delvare <[email protected]> Cc: Bruce Allan <[email protected]> Cc: Jeff Kirsher <[email protected]> Acked-by: Jeff Kirsher <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-09-13uwb: use '%pM' format to print MAC addressAndy Shevchenko2-9/+3
Signed-off-by: Andy Shevchenko <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-09-13bnx2x: Spread rx buffers between allocated queuesDmitry Kravkov4-5/+17
Default number of rx buffers will be divided equally between allocated queues. This will decrease amount of pre-allocated buffers on systems with multiple CPUs. User can override this behavior with ethtool -G. Minimum amount of rx buffers per queue set to 128. Reported-by: Eric Dumazet <[email protected]> Signed-off-by: Dmitry Kravkov <[email protected]> Signed-off-by: Eilon Greenstein <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-09-13cx82310_eth: allow empty URBsOndrej Zary1-9/+3
Empty received URBs are currently counted as errors but the device sends them sometimes as part of regular traffic - so remove this check. Signed-off-by: Ondrej Zary <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-09-13cx82310_eth: check usb_string() return value for errorOndrej Zary1-5/+3
Fix that usb_string() return value is not checked for error (negative value). Also change the ignore message a bit and lower its level to info. Signed-off-by: Ondrej Zary <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-09-13drivers/net/skfp: Remove pr_<level> uses of KERN_<level>Joe Perches1-42/+42
Signed-off-by: Joe Perches <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-09-13net/cxgb3: remove undefined operationsAndreas Schwab1-1/+1
Modifying an object twice without an intervening sequence point is undefined. Signed-off-by: Andreas Schwab <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-09-13net/de4x5: remove undefined operationsAndreas Schwab1-9/+9
Modifying an object twice without an intervening sequence point is undefined. Signed-off-by: Andreas Schwab <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-09-13sundance: Add power management hooksDenis Kirjanov1-0/+48
This patch to adds support for PM hooks into sundance driver Signed-off-by: Denis Kirjanov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-09-13flow: better memory managementEric Dumazet1-36/+42
Allocate hash tables for every online cpus, not every possible ones. NUMA aware allocations. Dont use a full page on arches where PAGE_SIZE > 1024*sizeof(void *) misc: __percpu , __read_mostly, __cpuinit annotations flow_compare_t is just an "unsigned long" Signed-off-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-09-13sfc: Fix order of channel_name array dimensionsBen Hutchings1-1/+1
Signed-off-by: Ben Hutchings <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-09-12bna: Check for NULL before deref in bnad_cb_tx_cleanupDavid S. Miller1-1/+2
Reported-by: Jiri Slaby <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-09-10pkt_sched: remov unnecessary bh_disablestephen hemminger1-2/+2
Now that est_tree_lock is acquired with BH protection, the other call is unnecessary. Signed-off-by: Stephen Hemminger <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-09-10fib: cleanupsEric Dumazet1-32/+23
Use rcu_dereference_rtnl() helper Change hard coded constants in fib_flag_trans() 7 -> RTN_UNREACHABLE 8 -> RTN_PROHIBIT Signed-off-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-09-10sfc: Allow changing the DMA ring sizes dynamically via ethtoolBen Hutchings5-52/+224
This requires some reorganisation of channel setup and teardown to ensure that we can always roll-back a failed change. Based on work by Steve Hodgson <[email protected]> Signed-off-by: Ben Hutchings <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-09-10sfc: Make the dmaq size a run-time setting (rather than compile-time)Steve Hodgson7-76/+109
- Allow the ring size to be specified in non power-of-two sizes (for instance to limit the amount of receive buffers). - Automatically size the event queue. Signed-off-by: Ben Hutchings <[email protected]> Signed-off-by: David S. Miller <[email protected]>