Re: [PATCH] sctp: check dst validity after IPsec operations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Le 06/09/2012 19:03, Vlad Yasevich a écrit :
On 09/06/2012 12:40 PM, Nicolas Dichtel wrote:
Le 06/09/2012 18:04, Vlad Yasevich a écrit :
On 09/06/2012 01:40 PM, Nicolas Dichtel wrote:
dst stored in struct sctp_transport needs to be recalculated when
ipsec policy
are updated. We use flow_cache_genid for that.

For example, if a SCTP connection is established and then an IPsec
policy is
set, the old SCTP flow will not be updated and thus will not use the new
IPsec policy.

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx>

why doesn't this need to be done for TCP?  What makes SCTP special in
this case?
Tests prove that the pb does not exist with TCP. I made the patch some
times ago, I will look again deeply to find the difference.


TCP appears to cache the flowi and uses that to re-route the packet.
However, re-route still seems predicated on dst_check()...
Yes ... but I don't find the difference. Re-route is not done immediately in TCP, it takes few seconds.



ip_queue_xmit does an __sk_dst_check() which is essentially what
sctp_transport_dst_check() does.  That should determine if the
currently cached
route is valid or not.
The problem is that route will not be invalidated, because dst->check()
has no xfrm path so xfrm_dst_check() will never be called.


Shouldn't the cache be invalidated in this case?  If the cache is invalidated,
that should cause a new lookup.  If the cache isn't invalidated, then any
established connections that may now be impacted by the policy will not pick it up.
Yes, you're right. If I flush the cache manually (with the sysctl), route are correctly updated.
I will send a new proposal.


Regards,
Nicolas
--
To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Networking Development]     [Linux OMAP]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux