David S. Miller <[EMAIL PROTECTED]> wrote:
> 
> One idea is to pass in a "const struct flowi *flp" into the
> dst->ops->update_pmtu() handler which has the src/dest address fields
> filled in.  I did code something like that up, then threw it away, but
> such a simple change is easily rematerializable.

Thanks for the excellent summary Dave.

I was just thinking about the cow + update_pmtu implementation.  What
we could do is have a new dst->ops->cow() function that executed a
COW if necessary.  So for IPv4 it would return the dst as is, for IPv6
it'd return the dst if it's already the most specific, otherwise it'd
perform a COW and return the resulting dst.

You could then say

dst = dst->ops->cow(dst, flow);
dst->update_pmtu(dst, mtu);

You can also store the returned dst in the socket.  I think this is
worthwhile since receiving an PMTU message is usually followed by a
retransmission which means that you'll need to look up the dst again
if we don't update the cached version.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[EMAIL PROTECTED]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
-
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