1. 14 Mar, 2011 1 commit
    • Hiroaki SHIMODA's avatar
      ipv4: Fix PMTU update. · 46af3180
      Hiroaki SHIMODA authored
      On current net-next-2.6, when Linux receives ICMP Type: 3, Code: 4
      (Destination unreachable (Fragmentation needed)),
      
        icmp_unreach
          -> ip_rt_frag_needed
               (peer->pmtu_expires is set here)
          -> tcp_v4_err
               -> do_pmtu_discovery
                    -> ip_rt_update_pmtu
                         (peer->pmtu_expires is already set,
                          so check_peer_pmtu is skipped.)
                         -> check_peer_pmtu
      
      check_peer_pmtu is skipped and MTU is not updated.
      
      To fix this, let check_peer_pmtu execute unconditionally.
      And some minor fixes
      1) Avoid potential peer->pmtu_expires set to be zero.
      2) In check_peer_pmtu, argument of time_before is reversed.
      3) check_peer_pmtu expects peer->pmtu_orig is initialized as zero,
         but not initialized.
      Signed-off-by: default avatarHiroaki SHIMODA <shimoda.hiroaki@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      46af3180
  2. 12 Mar, 2011 39 commits