kernel_optimize_test/include/net
Julian Anastasov fc60476761 ipvs: changes for local real server
This patch deals with local real servers:

- Add support for DNAT to local address (different real server port).
It needs ip_vs_out hook in LOCAL_OUT for both families because
skb->protocol is not set for locally generated packets and can not
be used to set 'af'.

- Skip packets in ip_vs_in marked with skb->ipvs_property because
ip_vs_out processing can be executed in LOCAL_OUT but we still
have the conn_out_get check in ip_vs_in.

- Ignore packets with inet->nodefrag from local stack

- Require skb_dst(skb) != NULL because we use it to get struct net

- Add support for changing the route to local IPv4 stack after DNAT
depending on the source address type. Local client sets output
route and the remote client sets input route. It looks like
IPv6 does not need such rerouting because the replies use
addresses from initial incoming header, not from skb route.

- All transmitters now have strict checks for the destination
address type: redirect from non-local address to local real
server requires NAT method, local address can not be used as
source address when talking to remote real server.

- Now LOCALNODE is not set explicitly as forwarding
method in real server to allow the connections to provide
correct forwarding method to the backup server. Not sure if
this breaks tools that expect to see 'Local' real server type.
If needed, this can be supported with new flag IP_VS_DEST_F_LOCAL.
Now it should be possible connections in backup that lost
their fwmark information during sync to be forwarded properly
to their daddr, even if it is local address in the backup server.
By this way backup could be used as real server for DR or TUN,
for NAT there are some restrictions because tuple collisions
in conntracks can create problems for the traffic.

- Call ip_vs_dst_reset when destination is updated in case
some real server IP type is changed between local and remote.

[ horms@verge.net.au: removed trailing whitespace ]
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Simon Horman <horms@verge.net.au>
2010-10-21 11:03:46 +02:00
..
9p net/9p: Implement TXATTRCREATE 9p call 2010-08-02 14:28:34 -05:00
bluetooth Bluetooth: Use 3-DH5 payload size for default ERTM max PDU size 2010-08-10 07:59:11 -04:00
caif caif-driver: Add CAIF-SPI Protocol driver. 2010-06-29 00:08:21 -07:00
irda irda: use net_device_stats from struct net_device 2010-08-21 23:32:31 -07:00
iucv
netfilter netfilter: ctnetlink: add expectation deletion events 2010-10-19 10:19:06 +02:00
netns ipv6: ip6mr: support multiple tables 2010-05-11 14:40:55 +02:00
phonet phonet: use call_rcu for phonet device free 2010-06-09 16:14:25 -07:00
sctp net/sctp: Use pr_fmt and pr_<level> 2010-08-26 14:11:48 -07:00
tc_act net/sched: add ACT_CSUM action to update packets checksums 2010-08-20 01:42:59 -07:00
tipc tipc: Update commenting in TIPC API 2010-05-12 23:02:23 -07:00
act_api.h pkt_sched: gen_kill_estimator() rcu fixes 2010-06-11 18:37:08 -07:00
addrconf.h
af_ieee802154.h
af_rxrpc.h
af_unix.h af_unix: Allow credentials to work across user and pid namespaces. 2010-06-16 14:58:16 -07:00
ah.h
arp.h
atmclip.h
ax25.h
ax88796.h
cfg80211.h cfg80211: allow changing port control protocol 2010-08-27 13:27:07 -04:00
checksum.h
cipso_ipv4.h
cls_cgroup.h cls_cgroup: Fix rcu lockdep warning 2010-09-03 09:55:24 -07:00
compat.h
datalink.h
dcbnl.h
dn_dev.h net: use __packed annotation 2010-06-03 03:21:52 -07:00
dn_fib.h
dn_neigh.h
dn_nsp.h net: use __packed annotation 2010-06-03 03:21:52 -07:00
dn_route.h net-next: remove useless union keyword 2010-06-10 23:31:35 -07:00
dn.h
dsa.h
dsfield.h
dst_ops.h
dst.h net: check for refcount if pop a stacked dst_entry 2010-06-04 15:56:00 -07:00
esp.h
ethoc.h
fib_rules.h
flow.h
garp.h
gen_stats.h
genetlink.h net: CONFIG_NET_NS reduction 2010-06-02 05:16:23 -07:00
gre.h PPTP: PPP over IPv4 (Point-to-Point Tunneling Protocol) 2010-08-21 23:05:39 -07:00
icmp.h
ieee80211_radiotap.h
ieee802154_netdev.h
ieee802154.h
if_inet6.h ipv6: Replace inet6_ifaddr->dead with state 2010-05-18 15:36:06 -07:00
inet6_connection_sock.h
inet6_hashtables.h
inet_common.h inet, inet6: make tcp_sendmsg() and tcp_sendpage() through inet_sendmsg() and inet_sendpage() 2010-07-12 20:21:46 -07:00
inet_connection_sock.h tcp: Add TCP_USER_TIMEOUT socket option. 2010-08-30 13:23:33 -07:00
inet_ecn.h
inet_frag.h fragment: add fast path for in-order fragments 2010-06-30 13:44:29 -07:00
inet_hashtables.h
inet_sock.h net - IP_NODEFRAG option for IPv4 socket 2010-06-23 13:16:38 -07:00
inet_timewait_sock.h
inetpeer.h inetpeer: restore small inet_peer structures 2010-06-16 11:55:39 -07:00
ip6_checksum.h
ip6_fib.h net-next: remove useless union keyword 2010-06-10 23:31:35 -07:00
ip6_route.h
ip6_tunnel.h net: use __packed annotation 2010-06-03 03:21:52 -07:00
ip_fib.h
ip_vs.h ipvs: changes for local real server 2010-10-21 11:03:46 +02:00
ip.h net: simplify flags for tx timestamping 2010-08-19 00:08:30 -07:00
ipcomp.h
ipconfig.h
ipip.h net-next: remove useless union keyword 2010-06-10 23:31:35 -07:00
ipv6.h snmp: 64bit ipstats_mib for all arches 2010-06-30 13:31:19 -07:00
ipx.h net: use __packed annotation 2010-06-03 03:21:52 -07:00
iw_handler.h
lapb.h
lib80211.h lib80211: remove unused host_build_iv option 2010-07-26 15:09:04 -04:00
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
llc.h
mac80211.h mac80211: support runtime interface type changes 2010-08-27 13:53:31 -04:00
mip6.h net: use __packed annotation 2010-06-03 03:21:52 -07:00
mld.h
ndisc.h net: use __packed annotation 2010-06-03 03:21:52 -07:00
neighbour.h net/neighbour.h: fix typo 2010-06-30 12:06:52 -07:00
net_namespace.h
netdma.h
netevent.h
netlabel.h
netlink.h net: Fix a typo in netlink.h 2010-06-23 12:58:40 -07:00
netrom.h
nexthop.h
nl802154.h
p8022.h
pkt_cls.h
pkt_sched.h net: Define accessors to manipulate QDISC_STATE_RUNNING 2010-06-02 03:23:51 -07:00
protocol.h
psnap.h
raw.h include/net/raw.h: Convert raw_seq_private macro to inline 2010-09-08 13:42:22 -07:00
rawv6.h
red.h
regulatory.h wireless: only use alpha2 regulatory information from country IE 2010-07-20 16:44:35 -04:00
request_sock.h
rose.h
route.h net-next: remove useless union keyword 2010-06-10 23:31:35 -07:00
rtnetlink.h
sch_generic.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-07-07 15:59:38 -07:00
scm.h scm: Capture the full credentials of the scm sender. 2010-06-16 14:55:56 -07:00
slhc_vj.h
snmp.h snmp: 64bit ipstats_mib for all arches 2010-06-30 13:31:19 -07:00
sock.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-09-09 22:27:33 -07:00
stp.h
tcp_states.h
tcp.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-09-09 22:27:33 -07:00
timewait_sock.h
transp_v6.h
udp.h udp: add rehash on connect() 2010-09-08 21:45:01 -07:00
udplite.h
wext.h
wimax.h
wpan-phy.h
x25.h X25: Move accept approve flag to bitfield 2010-05-17 17:39:27 -07:00
x25device.h
xfrm.h xfrm: fix XFRMA_MARK extraction in xfrm_mark_get 2010-06-30 10:43:31 -07:00