Skip to content
  1. Jul 23, 2012
    • David S. Miller's avatar
      ipv4: Prepare for change of rt->rt_iif encoding. · 92101b3b
      David S. Miller authored
      
      
      Use inet_iif() consistently, and for TCP record the input interface of
      cached RX dst in inet sock.
      
      rt->rt_iif is going to be encoded differently, so that we can
      legitimately cache input routes in the FIB info more aggressively.
      
      When the input interface is "use SKB device index" the rt->rt_iif will
      be set to zero.
      
      This forces us to move the TCP RX dst cache installation into the ipv4
      specific code, and as well it should since doing the route caching for
      ipv6 is pointless at the moment since it is not inspected in the ipv6
      input paths yet.
      
      Also, remove the unlikely on dst->obsolete, all ipv4 dsts have
      obsolete set to a non-zero value to force invocation of the check
      callback.
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      92101b3b
  2. Jul 20, 2012
  3. Jul 17, 2012
    • David S. Miller's avatar
      net: Pass optional SKB and SK arguments to dst_ops->{update_pmtu,redirect}() · 6700c270
      David S. Miller authored
      
      
      This will be used so that we can compose a full flow key.
      
      Even though we have a route in this context, we need more.  In the
      future the routes will be without destination address, source address,
      etc. keying.  One ipv4 route will cover entire subnets, etc.
      
      In this environment we have to have a way to possess persistent storage
      for redirects and PMTU information.  This persistent storage will exist
      in the FIB tables, and that's why we'll need to be able to rebuild a
      full lookup flow key here.  Using that flow key will do a fib_lookup()
      and create/update the persistent entry.
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6700c270
  4. Jul 16, 2012
  5. Jul 12, 2012
  6. Jul 11, 2012
  7. Jul 05, 2012
  8. Jun 23, 2012
  9. Jun 15, 2012
    • David S. Miller's avatar
      ipv6: Handle PMTU in ICMP error handlers. · 81aded24
      David S. Miller authored
      
      
      One tricky issue on the ipv6 side vs. ipv4 is that the ICMP callouts
      to handle the error pass the 32-bit info cookie in network byte order
      whereas ipv4 passes it around in host byte order.
      
      Like the ipv4 side, we have two helper functions.  One for when we
      have a socket context and one for when we do not.
      
      ip6ip6 tunnels are not handled here, because they handle PMTU events
      by essentially relaying another ICMP packet-too-big message back to
      the original sender.
      
      This patch allows us to get rid of rt6_do_pmtu_disc().  It handles all
      kinds of situations that simply cannot happen when we do the PMTU
      update directly using a fully resolved route.
      
      In fact, the "plen == 128" check in ip6_rt_update_pmtu() can very
      likely be removed or changed into a BUG_ON() check.  We should never
      have a prefixed ipv6 route when we get there.
      
      Another piece of strange history here is that TCP and DCCP, unlike in
      ipv4, never invoke the update_pmtu() method from their ICMP error
      handlers.  This is incredibly astonishing since this is the context
      where we have the most accurate context in which to make a PMTU
      update, namely we have a fully connected socket and associated cached
      socket route.
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      81aded24
  10. May 17, 2012
  11. Apr 21, 2012
  12. Apr 19, 2012
  13. Apr 15, 2012
  14. Apr 14, 2012
  15. Mar 03, 2012
  16. Jan 11, 2012
  17. Dec 20, 2011
  18. Dec 16, 2011
  19. Dec 11, 2011
  20. Dec 09, 2011
  21. Dec 06, 2011
  22. Dec 01, 2011
    • David S. Miller's avatar
      dccp: Fix compile warning in probe code. · d984e619
      David S. Miller authored
      
      
      Commit 1386be55 ("dccp: fix
      auto-loading of dccp(_probe)") fixed a bug but created a new
      compiler warning:
      
      net/dccp/probe.c: In function ‘dccpprobe_init’:
      net/dccp/probe.c:166:2: warning: the omitted middle operand in ?: will always be ‘true’, suggest explicit middle operand [-Wparentheses]
      
      try_then_request_module() is built for situations where the
      "existence" test is some lookup function that returns a non-NULL
      object on success, and with a reference count of some kind held.
      
      Here we're looking for a success return of zero from the jprobe
      registry.
      
      Instead of fighting the way try_then_request_module() works, simply
      open code what we want to happen in a local helper function.
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d984e619
    • David S. Miller's avatar
      dccp: Evaluate ip_hdr() only once in dccp_v4_route_skb(). · 898f7358
      David S. Miller authored
      
      
      This also works around a bogus gcc warning generated by an
      upcoming patch from Eric Dumazet that rearranges the layout
      of struct flowi4.
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      898f7358
  23. Nov 22, 2011
  24. Nov 21, 2011
  25. Nov 08, 2011
  26. Nov 03, 2011
  27. Oct 31, 2011
  28. Oct 27, 2011
  29. Aug 07, 2011
    • David S. Miller's avatar
      net: Compute protocol sequence numbers and fragment IDs using MD5. · 6e5714ea
      David S. Miller authored
      
      
      Computers have become a lot faster since we compromised on the
      partial MD4 hash which we use currently for performance reasons.
      
      MD5 is a much safer choice, and is inline with both RFC1948 and
      other ISS generators (OpenBSD, Solaris, etc.)
      
      Furthermore, only having 24-bits of the sequence number be truly
      unpredictable is a very serious limitation.  So the periodic
      regeneration and 8-bit counter have been removed.  We compute and
      use a full 32-bit sequence number.
      
      For ipv6, DCCP was found to use a 32-bit truncated initial sequence
      number (it needs 43-bits) and that is fixed here as well.
      
      Reported-by: default avatarDan Kaminsky <dan@doxpara.com>
      Tested-by: default avatarWilly Tarreau <w@1wt.eu>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6e5714ea
  30. Aug 01, 2011
Loading