Gao feng
1716a96101
ipv6: fix problem with expired dst cache
...
If the ipv6 dst cache which copy from the dst generated by ICMPV6 RA packet.
this dst cache will not check expire because it has no RTF_EXPIRES flag.
So this dst cache will always be used until the dst gc run.
Change the struct dst_entry,add a union contains new pointer from and expires.
When rt6_info.rt6i_flags has no RTF_EXPIRES flag,the dst.expires has no use.
we can use this field to point to where the dst cache copy from.
The dst.from is only used in IPV6.
rt6_check_expired check if rt6_info.dst.from is expired.
ip6_rt_copy only set dst.from when the ort has flag RTF_ADDRCONF
and RTF_DEFAULT.then hold the ort.
ip6_dst_destroy release the ort.
Add some functions to operate the RTF_EXPIRES flag and expires(from) together.
and change the code to use these new adding functions.
Changes from v5:
modify ip6_route_add and ndisc_router_discovery to use new adding functions.
Only set dst.from when the ort has flag RTF_ADDRCONF
and RTF_DEFAULT.then hold the ort.
Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-04-13 12:58:29 -04:00
..
9p
9p: Reduce object size with CONFIG_NET_9P_DEBUG
2012-01-05 10:51:44 -06:00
bluetooth
Bluetooth: Fix userspace compatibility issue with mgmt interface
2012-04-05 15:05:51 -03:00
caif
caif-hsi: Add RX flip buffer
2012-02-04 16:06:28 -05:00
irda
iucv
af_iucv: add shutdown for HS transport
2012-03-07 22:52:24 -08:00
netfilter
netfilter: xt_LOG: don't use xchg() for simple assignment
2012-03-26 14:00:28 +02:00
netns
BUG: headers with BUG/BUG_ON etc. need linux/bug.h
2012-03-04 17:54:34 -05:00
nfc
NFC: NCI code identation fixes
2012-03-06 15:16:25 -05:00
phonet
sctp
sctp: Export sctp_do_peeloff
2012-03-08 13:52:08 -08:00
tc_act
act_api.h
net: sched: constify tcf_proto and tc_action
2011-07-06 02:52:16 -07:00
addrconf.h
ipv6: Remove never used function inet6_ac_check().
2012-02-01 16:14:17 -05:00
af_ieee802154.h
af_rxrpc.h
af_unix.h
switch unix_sock to struct path
2012-03-20 21:29:41 -04:00
ah.h
arp.h
ipv4: Eliminate spurious argument to __ipv4_neigh_lookup
2012-02-15 17:48:35 -05:00
atmclip.h
atm: clip: Use device neigh support on top of "arp_tbl".
2011-11-30 18:51:03 -05:00
ax25.h
atomic: use <linux/atomic.h>
2011-07-26 16:49:47 -07:00
ax88796.h
cfg80211-wext.h
cfg80211: remove unused wext handler exports
2011-08-08 14:26:29 -04:00
cfg80211.h
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
2012-03-27 22:15:01 -04:00
checksum.h
cipso_ipv4.h
doc: Update the email address for Paul Moore in various source files
2011-08-01 17:58:33 -07:00
cls_cgroup.h
compat.h
net: get rid of some pointless casts to sockaddr
2012-03-11 19:11:22 -07:00
datalink.h
dcbevent.h
dcb: Add stub routines for !CONFIG_DCB
2011-10-06 15:49:51 -04:00
dcbnl.h
net: dcb: getnumtcs()/setnumtcs() should return an int
2012-03-02 18:16:49 -08:00
dn.h
decnet: net/dn.h needs net/flow.h
2012-02-15 16:37:44 -05:00
dn_dev.h
dn_fib.h
dn_neigh.h
dn_nsp.h
dn_route.h
dsa.h
dsa: Include linux/if_ether.h to fix build error
2011-12-01 11:41:06 -05:00
dsfield.h
dst.h
ipv6: fix problem with expired dst cache
2012-04-13 12:58:29 -04:00
dst_ops.h
net: Rename the dst_opt default_mtu method to mtu
2011-11-26 14:29:50 -05:00
esp.h
ethoc.h
fib_rules.h
flow.h
ipv4: reset flowi parameters on route connect
2012-02-04 19:29:48 -05:00
flow_keys.h
flow_dissector: use a 64bit load/store
2011-11-29 13:17:03 -05:00
garp.h
garp: remove last synchronize_rcu() call
2011-05-12 17:46:56 -04:00
gen_stats.h
genetlink.h
net: Deinline __nlmsg_put and genlmsg_put. -7k code on i386 defconfig.
2012-01-30 15:22:06 -05:00
gre.h
icmp.h
ipv4: reduce percpu needs for icmpmsg mibs
2011-11-09 16:04:20 -05:00
ieee80211_radiotap.h
wireless: move ieee80211chan2mhz macro
2011-11-11 12:32:50 -05:00
ieee802154.h
6LoWPAN: add fragmentation support
2011-11-14 00:19:42 -05:00
ieee802154_netdev.h
if_inet6.h
ipv6: updates to privacy addresses per RFC 4941.
2011-08-01 18:05:00 -07:00
inet6_connection_sock.h
inet6_hashtables.h
net: use IS_ENABLED(CONFIG_IPV6)
2011-12-11 18:25:16 -05:00
inet_common.h
inet_connection_sock.h
net: rename sk_clone to sk_clone_lock
2011-11-08 17:07:07 -05:00
inet_ecn.h
inet: add rfc 3168 extract in front of INET_ECN_encapsulate()
2011-10-22 01:25:23 -04:00
inet_frag.h
inet_hashtables.h
atomic: use <linux/atomic.h>
2011-07-26 16:49:47 -07:00
inet_sock.h
net: implement IP_RECVTOS for IP_PKTOPTIONS
2012-02-13 00:46:41 -05:00
inet_timewait_sock.h
inet: remove rcu protection on tw_net
2011-12-14 13:34:55 -05:00
inetpeer.h
route: Remove redirect_genid
2012-03-08 00:30:32 -08:00
ip.h
ipv4: Make ip_call_ra_chain() return bool.
2012-03-09 14:34:50 -08:00
ip6_checksum.h
ip6_fib.h
ipv6: fix problem with expired dst cache
2012-04-13 12:58:29 -04:00
ip6_route.h
Merge branch 'nf-next' of git://1984.lsi.us.es/net-next
2011-12-25 02:21:45 -05:00
ip6_tunnel.h
ip_fib.h
ip_vs.h
BUG: headers with BUG/BUG_ON etc. need linux/bug.h
2012-03-04 17:54:34 -05:00
ipcomp.h
ipconfig.h
ipip.h
ipv6.h
ipv6: Add fragment reporting to ipv6_skip_exthdr().
2011-12-03 09:35:10 -08:00
ipx.h
iw_handler.h
lapb.h
wan: make LAPB callbacks const
2011-09-16 19:20:20 -04:00
lib80211.h
include: replace linux/module.h with "struct module" wherever possible
2011-10-31 19:32:32 -04:00
llc.h
atomic: use <linux/atomic.h>
2011-07-26 16:49:47 -07:00
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc_if.h
llc_pdu.h
bonding,llc: Fix structure sizeof incompatibility for some PDUs
2011-05-13 15:13:24 -04:00
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
mac80211.h
mac80211: Convert WARN_ON to WARN_ON_ONCE
2012-04-09 15:54:48 -04:00
mip6.h
mld.h
ndisc.h
ipv6: Remove neigh argument from ndisc_send_redirect()
2012-01-27 21:00:08 -05:00
neighbour.h
ipv6: Use universal hash for NDISC.
2011-12-28 15:06:58 -05:00
net_namespace.h
net: use IS_ENABLED(CONFIG_IPV6)
2011-12-11 18:25:16 -05:00
net_ratelimit.h
net: Kill ratelimit.h dependency in linux/net.h
2011-05-27 13:41:33 -04:00
netdma.h
netevent.h
netlabel.h
doc: Update the email address for Paul Moore in various source files
2011-08-01 17:58:33 -07:00
netlink.h
net: Deinline __nlmsg_put and genlmsg_put. -7k code on i386 defconfig.
2012-01-30 15:22:06 -05:00
netprio_cgroup.h
netprio_cgroup: fix wrong memory access when NETPRIO_CGROUP=m
2012-02-10 15:08:57 -05:00
netrom.h
nexthop.h
nl802154.h
p8022.h
ping.h
net: ping: fix build failure
2011-05-17 14:16:58 -04:00
pkt_cls.h
pkt_sched.h
net: sched: constify tcf_proto and tc_action
2011-07-06 02:52:16 -07:00
protocol.h
net: use IS_ENABLED(CONFIG_IPV6)
2011-12-11 18:25:16 -05:00
psnap.h
raw.h
rawv6.h
red.h
BUG: headers with BUG/BUG_ON etc. need linux/bug.h
2012-03-04 17:54:34 -05:00
regulatory.h
cfg80211: pass DFS region to drivers through reg_notifier()
2011-11-21 16:20:41 -05:00
request_sock.h
tcp: Change possible SYN flooding messages
2011-09-15 14:49:43 -04:00
rose.h
route.h
ipv4: reset flowi parameters on route connect
2012-02-04 19:29:48 -05:00
rtnetlink.h
rtnetlink: Fix problem with buffer allocation
2012-02-21 16:56:45 -05:00
sch_generic.h
net: Make qdisc_skb_cb upper size bound explicit.
2012-02-09 13:50:34 -05:00
scm.h
af_unix: dont send SCM_CREDENTIALS by default
2011-09-28 13:29:50 -04:00
secure_seq.h
tcp: add const qualifiers where possible
2011-10-21 05:22:42 -04:00
slhc_vj.h
snmp.h
Merge branch 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu
2012-01-09 13:08:28 -08:00
sock.h
poll: add poll_requested_events() and poll_does_not_wait() functions
2012-03-23 16:58:38 -07:00
stp.h
tcp.h
The following text was taken from the original review request:
2012-03-24 10:08:39 -07:00
tcp_memcontrol.h
cgroup: remove cgroup_subsys argument from callbacks
2012-02-02 09:20:22 -08:00
tcp_states.h
timewait_sock.h
BUG: headers with BUG/BUG_ON etc. need linux/bug.h
2012-03-04 17:54:34 -05:00
transp_v6.h
net: relax PKTINFO non local ipv6 udp xmit check
2011-08-30 17:39:01 -04:00
udp.h
BUG: headers with BUG/BUG_ON etc. need linux/bug.h
2012-03-04 17:54:34 -05:00
udplite.h
net: ipv4: Standardize prefixes for message logging
2012-03-12 17:05:21 -07:00
wext.h
wimax.h
net: wimax: Remove of unused 'rfkill_input' pointer
2011-06-24 17:50:44 -07:00
wpan-phy.h
BUG: headers with BUG/BUG_ON etc. need linux/bug.h
2012-03-04 17:54:34 -05:00
x25.h
x25device.h
xfrm.h
xfrm: remove unneeded method typedef declaration in net/xfrm.h.
2012-02-25 20:19:24 -05:00