[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <533D5398.7080209@securitycode.ru>
Date: Thu, 3 Apr 2014 16:27:04 +0400
From: "Ilya V. Matveychikov" <i.matveychikov@...uritycode.ru>
To: Hannes Frederic Sowa <hannes@...essinduktion.org>
CC: <netdev@...r.kernel.org>
Subject: Re: question: update_pmtu doesn't update dst mtu
On 03.04.2014 16:14, Hannes Frederic Sowa wrote:
> On Thu, Apr 03, 2014 at 04:07:21PM +0400, Ilya V. Matveychikov wrote:
>> On 03.04.2014 15:58, Hannes Frederic Sowa wrote:
>>> On Thu, Apr 03, 2014 at 03:37:33PM +0400, Ilya V. Matveychikov wrote:
>>>> Looking through the code gives me that rt_pmtu is always 0 for the skb->dst
>>>> entry and ipv4_mtu that called via the dst->ops->mtu() uses dev->mtu :(
>>>
>>> At this point you have to drop skb_dst and have to relookup the route. During
>>> that a new dst will be created which gets the mtu value from the next hop
>>> exception, which got created by update_pmtu.
>>>
>>> Normally routes are checked with dst_check if they are still valid
>>> and a relookup should happen. In your example just do the relookup
>>> unconditionally.
>>>
>>
>> Does it mean that the next packet must have an updated route without any
>> problems? I meant that if the first packet xmitting leads to updating the route
>> PMTU via the exception creating (or updating) so the next packets must have an
>> updated route? Am I right?
>
> In case the next packet causes a lookup in the routing table, yes. Or
> if it does cache the routing lookup in some structure and checks the
> route with dst_check and conditionally does a relookup (which kernel
> implementation should already do) then you should also get the updated
> mtu value.
>
OK, seems that I understand the logic. Thanks a lot.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists