From: Nick Piggin <[EMAIL PROTECTED]>
Date: Tue, 6 Mar 2007 10:11:12 +0100

> @@ -1449,6 +1472,12 @@ static struct dst_entry *ipv4_negative_a
>                                         "%u.%u.%u.%u/%02x dropped\n",
>                               NIPQUAD(rt->rt_dst), rt->fl.fl4_tos);
>  #endif
> +                     /* XXX:
> +                      * What if rt does not exist in rt_hash, but is in
> +                      * old_rt_hash? Don't we have to also check there?
> +                      * Similar questions for a couple of other places that
> +                      * look at rt_hash, but not old_rt_hash.
> +                      */
>                       rt_del(h, hash, rt);
>                       ret = NULL;
>               }

For the cases like ip_rt_redirect() I made the decision that we'll
just not add the complexity of having to look in the old_rt_hash
table.

In these kinds of cases it's OK to miss events, they will just happen
again.

It's one of the nice things about the routing cache, if you lose
information it's OK because we'll just cook up a new entry from
the persistent backing store that is the real routing tables.
And for events like redirects, if we miss it, we'll just send the
packet to the wrong next-hop again and receive another redirect
message which we'll (hopefully) propagate to a routine cache
entry.

Thanks for your feedback patch Nick, I'll process it tomorrow
hopefully after getting some sleep.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to