Tom Herbert
4465b46900
ipv4: Allow configuring subnets as local addresses
...
This patch allows a host to be configured to respond to any address in
a specified range as if it were local, without actually needing to
configure the address on an interface. This is done through routing
table configuration. For instance, to configure a host to respond
to any address in 10.1/16 received on eth0 as a local address we can do:
ip rule add from all iif eth0 lookup 200
ip route add local 10.1/16 dev lo proto kernel scope host src 127.0.0.1 table 200
This host is now reachable by any 10.1/16 address (route lookup on
input for packets received on eth0 can find the route). On output, the
rule will not be matched so that this host can still send packets to
10.1/16 (not sent on loopback). Presumably, external routing can be
configured to make sense out of this.
To make this work, we needed to modify the logic in finding the
interface which is assigned a given source address for output
(dev_ip_find). We perform a normal fib_lookup instead of just a
lookup on the local table, and in the lookup we ignore the input
interface for matching.
This patch is useful to implement IP-anycast for subnets of virtual
addresses.
Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-09-28 23:38:15 -07:00
..
9p
net/9p: Implement TXATTRCREATE 9p call
2010-08-02 14:28:34 -05:00
bluetooth
net: return operator cleanup
2010-09-23 14:33:39 -07:00
caif
caif-driver: Add CAIF-SPI Protocol driver.
2010-06-29 00:08:21 -07:00
irda
net: return operator cleanup
2010-09-23 14:33:39 -07:00
iucv
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
netfilter
netfilter: nf_nat: make unique_tuple return void
2010-08-02 17:20:54 +02:00
netns
ipv6: ip6mr: support multiple tables
2010-05-11 14:40:55 +02:00
phonet
Phonet: Implement Pipe Controller to support Nokia Slim Modems
2010-09-27 21:30:41 -07:00
sctp
net: return operator cleanup
2010-09-23 14:33:39 -07:00
tc_act
net/sched: add ACT_CSUM action to update packets checksums
2010-08-20 01:42:59 -07:00
tipc
net: return operator cleanup
2010-09-23 14:33:39 -07:00
act_api.h
pkt_sched: gen_kill_estimator() rcu fixes
2010-06-11 18:37:08 -07:00
addrconf.h
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
2010-09-27 01:03:03 -07:00
af_ieee802154.h
af_ieee802154: add support for WANT_ACK socket option
2009-08-12 21:54:50 -07:00
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
net: cleanup include/net
2009-11-04 05:06:25 -08:00
arp.h
net: make neigh_ops constant
2009-09-01 17:40:57 -07:00
atmclip.h
ax25.h
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
ax88796.h
cfg80211.h
include/net/cfg80211.h: wiphy_<level> messages use dev_printk
2010-09-16 15:19:44 -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
net: fix compat_sys_recvmmsg parameter type
2009-12-11 15:07:56 -08:00
datalink.h
dcbnl.h
dcbnl: Add support for setapp/getapp to netdev dcbnl_rtnl_ops
2009-09-01 01:24:30 -07:00
dn.h
dn_dev.h
net: use __packed annotation
2010-06-03 03:21:52 -07:00
dn_fib.h
decnet: Remove unused FIB metric macros.
2010-03-27 19:23:46 -07:00
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
dsa.h
dsfield.h
dst.h
tunnels: prepare percpu accounting
2010-09-27 21:30:42 -07:00
dst_ops.h
netns: embed ip6_dst_ops directly
2009-09-01 17:40:31 -07:00
esp.h
ethoc.h
fib_rules.h
net: fib_rules: mark arguments to fib_rules_register const and __net_initdata
2010-04-26 16:02:04 +02:00
flow.h
ipv4: Allow configuring subnets as local addresses
2010-09-28 23:38:15 -07:00
garp.h
gen_stats.h
net: cleanup include/net
2009-11-04 05:06:25 -08:00
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
ipv4: raw: move struct raw_sock and raw_sk() to include/net/raw.h
2010-04-13 14:49:31 -07:00
ieee80211_radiotap.h
wireless: update radiotap parser
2010-02-08 16:50:53 -05:00
ieee802154.h
ieee802154: move headers out of extra directory
2009-07-23 17:08:51 +04:00
ieee802154_netdev.h
ieee802154: add an mlme_ops call to retrieve PHY object
2009-11-06 14:32:18 +03:00
if_inet6.h
ipv6: Replace inet6_ifaddr->dead with state
2010-05-18 15:36:06 -07:00
inet6_connection_sock.h
net: replace ipfragok with skb->local_df
2010-04-15 23:36:37 -07:00
inet6_hashtables.h
tcp: Fix a connect() race with timewait sockets
2009-12-08 20:17:51 -08:00
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
net: return operator cleanup
2010-09-23 14:33:39 -07:00
inet_frag.h
fragment: add fast path for in-order fragments
2010-06-30 13:44:29 -07:00
inet_hashtables.h
tcp: Fix a connect() race with timewait sockets
2009-12-08 20:17:51 -08:00
inet_sock.h
net - IP_NODEFRAG option for IPv4 socket
2010-06-23 13:16:38 -07:00
inet_timewait_sock.h
net: suppress RCU lockdep false positive in twsk_net()
2010-04-27 12:39:01 -07:00
inetpeer.h
inetpeer: restore small inet_peer structures
2010-06-16 11:55:39 -07:00
ip.h
net: return operator cleanup
2010-09-23 14:33: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
net: sk_dst_cache RCUification
2010-04-13 01:41:33 -07:00
ip6_tunnel.h
net: use __packed annotation
2010-06-03 03:21:52 -07:00
ip_fib.h
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
2009-11-06 00:55:55 -08:00
ip_vs.h
ipvs: fix active FTP
2010-09-08 10:39:57 -07:00
ipcomp.h
percpu: add __percpu sparse annotations to net
2010-02-16 23:05:38 -08:00
ipconfig.h
ipip.h
tunnels: prepare percpu accounting
2010-09-27 21:30:42 -07:00
ipv6.h
net: return operator cleanup
2010-09-23 14:33:39 -07:00
ipx.h
net: use __packed annotation
2010-06-03 03:21:52 -07:00
iw_handler.h
include/net/iw_handler.h: Use SIOCIWFIRST not SIOCSIWCOMMIT in comment
2010-03-31 14:49:12 -04:00
lapb.h
lib80211.h
lib80211: remove unused host_build_iv option
2010-07-26 15:09:04 -04:00
llc.h
llc: convert llc_sap_list to RCU
2009-12-26 20:46:28 -08:00
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc: use a device based hash table to speed up multicast delivery
2009-12-26 20:43:57 -08:00
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
mac80211.h
mac80211: add p2p device type support
2010-09-16 15:46:07 -04:00
mip6.h
net: use __packed annotation
2010-06-03 03:21:52 -07:00
mld.h
ipv6 mcast: Introduce include/net/mld.h for MLD definitions.
2010-04-23 13:35:55 +09:00
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
nsproxy: remove INIT_NSPROXY()
2010-03-12 15:52:40 -08:00
netdma.h
netevent.h
netlabel.h
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
netlink.h
net: Fix a typo in netlink.h
2010-06-23 12:58:40 -07:00
netrom.h
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
nexthop.h
nl802154.h
ieee802154: add support for channel pages from IEEE 802.15.4-2006
2009-08-19 23:08:22 +04:00
p8022.h
pkt_cls.h
net: rename skb->iif to skb->skb_iif
2009-11-20 15:35:04 -08:00
pkt_sched.h
net: Define accessors to manipulate QDISC_STATE_RUNNING
2010-06-02 03:23:51 -07:00
protocol.h
net: drop capability from protocol definitions
2009-11-05 21:40:17 -08:00
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
ipv6: Use correct data types for ICMPv6 type and code
2009-06-23 04:31:07 -07:00
red.h
net: cleanup include/net
2009-11-04 05:06:25 -08:00
regulatory.h
wireless: only use alpha2 regulatory information from country IE
2010-07-20 16:44:35 -04:00
request_sock.h
tcp: account SYN-ACK timeouts & retransmissions
2010-01-17 19:09:39 -08:00
rose.h
NET: ROSE: Don't use static buffer.
2009-07-26 19:11:14 -07:00
route.h
net-next: remove useless union keyword
2010-06-10 23:31:35 -07:00
rtnetlink.h
rtnetlink: support specifying device flags on device creation
2010-02-27 02:43:40 -08:00
sch_generic.h
net: return operator cleanup
2010-09-23 14:33:39 -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
net: update SOCK_MIN_RCVBUF
2010-09-26 18:53:07 -07:00
stp.h
tcp.h
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
2010-09-27 01:03:03 -07:00
tcp_states.h
timewait_sock.h
transp_v6.h
IPv6: Add dontfrag argument to relevant functions
2010-04-23 23:35:28 -07:00
udp.h
udp: add rehash on connect()
2010-09-08 21:45:01 -07:00
udplite.h
wext.h
wext: refactor
2009-10-07 16:39:43 -04:00
wimax.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2009-12-09 19:43:33 -08:00
wpan-phy.h
ieee802154: add support for creation/removal of logic interfaces
2009-11-06 14:32:24 +03:00
x25.h
X25: Move accept approve flag to bitfield
2010-05-17 17:39:27 -07:00
x25device.h
X25: Add if_x25.h and x25 to device identifiers
2010-04-22 16:12:36 -07:00
xfrm.h
xfrm: Allow different selector family in temporary state
2010-09-20 11:11:38 -07:00