Permalink
Browse files

temporary remedy to fix an IPv6 packet output failure when an ICMPv6 …

…Redirect

message announces that the destination is onlink.
(the NDP entry created by ICMPv6 Redirect is mistaken as a permanent one
 in nd6_output())

ToDo: further consideration for much more generic solution.
(e.g. assign some lifetime to such non-permanent entries when creating
an NDP entry in nd6_lookup())
  • Loading branch information...
1 parent 0618791 commit 1940bf51c3445b74b3e52ead9d77344dcaa81fb6 suz committed Jan 22, 2005
Showing with 8 additions and 3 deletions.
  1. +6 −1 CHANGELOG
  2. +2 −2 kame/sys/netinet6/nd6.h
View
@@ -1,7 +1,12 @@
CHANGELOG for KAME kit
-$KAME: CHANGELOG,v 1.2718 2005/01/21 03:14:48 suz Exp $
+$KAME: CHANGELOG,v 1.2719 2005/01/22 19:23:43 suz Exp $
<200501>
+2005-01-23 suz@crl.hitachi.co.jp
+ * kame/sys/netinet6/nd6.h: fixed an IPv6 packet output failure
+ when an ICMPv6 Redirect message announces that the destination
+ is onlink in prior to the packet output.
+
2005-01-21 suz@crl.hitachi.co.jp
* kame/sys/netinet6/{nd6.c, nd6_nbr.c}: fixed a loss of fragmented
packets when the corresponding NDP state is not resolved.
@@ -1,4 +1,4 @@
-/* $KAME: nd6.h,v 1.115 2004/12/27 05:41:18 itojun Exp $ */
+/* $KAME: nd6.h,v 1.116 2005/01/22 19:23:44 suz Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -79,7 +79,7 @@ struct llinfo_nd6 {
#define ND6_LLINFO_PROBE 4
#define ND6_IS_LLINFO_PROBREACH(n) ((n)->ln_state > ND6_LLINFO_INCOMPLETE)
-#define ND6_LLINFO_PERMANENT(n) ((n)->ln_expire == 0)
+#define ND6_LLINFO_PERMANENT(n) (((n)->ln_expire == 0) && ((n)->ln_state > ND6_LLINFO_INCOMPLETE))
struct nd_ifinfo {
u_int32_t linkmtu; /* LinkMTU */

0 comments on commit 1940bf5

Please sign in to comment.