• David S. Miller's avatar
    ipv4: Handle PMTU in all ICMP error handlers. · 36393395
    David S. Miller authored
    With ip_rt_frag_needed() removed, we have to explicitly update PMTU
    information in every ICMP error handler.
    Create two helper functions to facilitate this.
    1) ipv4_sk_update_pmtu()
       This updates the PMTU when we have a socket context to
       work with.
    2) ipv4_update_pmtu()
       Raw version, used when no socket context is available.  For this
       interface, we essentially just pass in explicit arguments for
       the flow identity information we would have extracted from the
       And you'll notice that ipv4_sk_update_pmtu() is simply implemented
       in terms of ipv4_update_pmtu()
    Note that __ip_route_output_key() is used, rather than something like
    ip_route_output_flow() or ip_route_output_key().  This is because we
    absolutely do not want to end up with a route that does IPSEC
    encapsulation and the like.  Instead, we only want the route that
    would get us to the node described by the outermost IP header.
    Reported-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>