Hi Tom: On 8/29/15 12:02 PM, Tom Herbert wrote:
To begin with, can we abstract out the need for common code to know about the VRF device (netif_index_is_vrf). Looking more closely at udp_semdmsg code, there's seems to be some potential problems:
My intention to address your udp_sendmsg comment is to rip out the change that was added and set the source address in the VRF device driver. Doing so ...
1) In the VRF case route lookup is being called twice for every unconnected packet when going through vrf path :-( 2) The "unconnected socket" comment is not incorrect, this path is taken for connected sockets also before there is a cache route 3) Looks like in VRF path the source address can be arbitrarily overwritten in the case that it is non-zero (that is non-zero, but not a connect socket).
... fixes the above problems for non-VRF users completely. VRF users will still have multiple lookups but that is by design.
David -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html