08 Oct, 2008

26 commits


07 Oct, 2008

1 commit

  • Jay Cliburn noticed and diagnosed a bug triggered in
    dev_gso_skb_destructor() after last change from qdisc->gso_skb
    to qdisc->requeue list. Since gso_segmented skbs can't be queued
    to another list this patch brings back qdisc->gso_skb for them.

    Reported-by: Jay Cliburn
    Signed-off-by: Jarek Poplawski
    Signed-off-by: David S. Miller

    Jarek Poplawski
     

06 Oct, 2008

5 commits


01 Oct, 2008

8 commits

  • sctp_is_any() function that is used to check for wildcard addresses
    only looks at the address itself to determine the address family.
    This function is used in the API to check the address passed in from
    the user. If the user simply zerroes out the sockaddr_storage and
    pass that in, we'll end up failing. So, let's try harder to determine
    the address family by also checking the socket if it's possible.

    Signed-off-by: Vlad Yasevich

    Vlad Yasevich
     
  • sctp_chunks should be put on a diet. This is some of the low hanging
    fruit that we can strip out. Changes all the __s8/__u8 flags to
    bitfields. Saves 12 bytes per chunk.

    Signed-off-by: Neil Horman
    Signed-off-by: Vlad Yasevich

    Neil Horman
     
  • The iptables tproxy code has to be able to do UDP socket hash lookups,
    so we have to provide an exported lookup function for this purpose.

    Signed-off-by: KOVACS Krisztian
    Signed-off-by: David S. Miller

    KOVACS Krisztian
     
  • Current TCP code relies on the local port of the listening socket
    being the same as the destination address of the incoming
    connection. Port redirection used by many transparent proxying
    techniques obviously breaks this, so we have to store the original
    destination port address.

    This patch extends struct inet_request_sock and stores the incoming
    destination port value there. It also modifies the handshake code to
    use that value as the source port when sending reply packets.

    Signed-off-by: KOVACS Krisztian
    Signed-off-by: David S. Miller

    KOVACS Krisztian
     
  • Netfilter's ip_route_me_harder() tries to re-route packets either
    generated or re-routed by Netfilter. This patch changes
    ip_route_me_harder() to handle packets from non-locally-bound sockets
    with IP_TRANSPARENT set as local and to set the appropriate flowi
    flags when re-doing the routing lookup.

    Signed-off-by: KOVACS Krisztian
    Signed-off-by: David S. Miller

    KOVACS Krisztian
     
  • The TCP stack sends out SYN+ACK/ACK/RST reply packets in response to
    incoming packets. The non-local source address check on output bites
    us again, as replies for transparently redirected traffic won't have a
    chance to leave the node.

    This patch selectively sets the FLOWI_FLAG_ANYSRC flag when doing the
    route lookup for those replies. Transparent replies are enabled if the
    listening socket has the transparent socket flag set.

    Signed-off-by: KOVACS Krisztian
    Signed-off-by: David S. Miller

    KOVACS Krisztian
     
  • Set FLOWI_FLAG_ANYSRC in flowi->flags if the socket has the
    transparent socket option set. This way we selectively enable certain
    connections with non-local source addresses to be routed.

    Signed-off-by: KOVACS Krisztian
    Signed-off-by: David S. Miller

    KOVACS Krisztian
     
  • inet_iif() in inet_sock.h requires route.h. Since users of inet_iif()
    usually require other route.h functionality anyway this patch moves
    inet_iif() to route.h.

    Signed-off-by: KOVACS Krisztian
    Signed-off-by: David S. Miller

    KOVACS Krisztian