23 Sep, 2006

2 commits

  • Handling of ipip and ip_gre ICMP error relaying is b0rken; it accesses
    8bit field + 3 reserved octets as host-endian 32bit, does comparison,
    subtraction and stuffs the result back. That breaks on big-endian.

    Fixed, made endian-clean.

    [ Note that this effected code is permanently commented out with
    and ifdef, so this error couldn't actually cause problems for
    anyone. -DaveM ]

    Signed-off-by: Al Viro
    Signed-off-by: David S. Miller

    Al Viro
     
  • Replace CHECKSUM_HW by CHECKSUM_PARTIAL (for outgoing packets, whose
    checksum still needs to be completed) and CHECKSUM_COMPLETE (for
    incoming packets, device supplied full checksum).

    Patch originally from Herbert Xu, updated by myself for 2.6.18-rc3.

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     

22 Jul, 2006

1 commit


01 Jul, 2006

1 commit


10 Apr, 2006

1 commit

  • This patch changes GRE and SIT to generate port unreachable instead of
    protocol unreachable errors when we can't find a matching tunnel for a
    packet.

    This removes the ambiguity as to whether the error is caused by no
    tunnel being found or by the lack of support for the given tunnel
    type.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     

16 Feb, 2006

1 commit

  • When a packet matching an IPsec policy is SNATed so it doesn't match any
    policy anymore it looses its xfrm bundle, which makes xfrm4_output_finish
    crash because of a NULL pointer dereference.

    This patch directs these packets to the original output path instead. Since
    the packets have already passed the POST_ROUTING hook, but need to start at
    the beginning of the original output path which includes another
    POST_ROUTING invocation, a flag is added to the IPCB to indicate that the
    packet was rerouted and doesn't need to pass the POST_ROUTING hook again.

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     

12 Jan, 2006

1 commit


10 Jan, 2006

1 commit


08 Jan, 2006

2 commits

  • ip_route_me_harder doesn't use the port numbers of the xfrm lookup and
    uses ip_route_input for non-local addresses which doesn't do a xfrm
    lookup, ip6_route_me_harder doesn't do a xfrm lookup at all.

    Use xfrm_decode_session and do the lookup manually, make sure both
    only do the lookup if the packet hasn't been transformed already.

    Makeing sure the lookup only happens once needs a new field in the
    IP6CB, which exceeds the size of skb->cb. The size of skb->cb is
    increased to 48b. Apparently the IPv6 mobile extensions need some
    more room anyway.

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • Reset IPSKB_XFRM_TUNNEL_SIZE flags in ipip and ip_gre hard_start_xmit
    function before the packet reenters IP. This is neccessary so the
    encapsulated packets are checked not to be oversized in xfrm4_output.c
    again. Reset all flags in sit when a packet changes its address family.

    Also remove some obsolete IPSKB flags.

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     

06 Jan, 2006

1 commit


15 Dec, 2005

1 commit


30 Nov, 2005

1 commit


11 Nov, 2005

1 commit

  • Here is the patch that introduces the generic skb_checksum_complete
    which also checks for hardware RX checksum faults. If that happens,
    it'll call netdev_rx_csum_fault which currently prints out a stack
    trace with the device name. In future it can turn off RX checksum.

    I've converted every spot under net/ that does RX checksum checks to
    use skb_checksum_complete or __skb_checksum_complete with the
    exceptions of:

    * Those places where checksums are done bit by bit. These will call
    netdev_rx_csum_fault directly.

    * The following have not been completely checked/converted:

    ipmr
    ip_vs
    netfilter
    dccp

    This patch is based on patches and suggestions from Stephen Hemminger
    and David S. Miller.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     

04 Oct, 2005

1 commit

  • The following patch renames __in_dev_get() to __in_dev_get_rtnl() and
    introduces __in_dev_get_rcu() to cover the second case.

    1) RCU with refcnt should use in_dev_get().
    2) RCU without refcnt should use __in_dev_get_rcu().
    3) All others must hold RTNL and use __in_dev_get_rtnl().

    There is one exception in net/ipv4/route.c which is in fact a pre-existing
    race condition. I've marked it as such so that we remember to fix it.

    This patch is based on suggestions and prior work by Suzanne Wood and
    Paul McKenney.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     

31 Jul, 2005

1 commit

  • Tunnel modules used to obtain module refcount each time when
    some tunnel was created, which meaned that tunnel could be unloaded
    only after all the tunnels are deleted.

    Since killing old MOD_*_USE_COUNT macros this protection has gone.
    It is possible to return it back as module_get/put, but it looks
    more natural and practically useful to force destruction of all
    the child tunnels on module unload.

    Signed-off-by: Alexey Kuznetsov
    Signed-off-by: David S. Miller

    Alexey Kuznetsov
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds