04 Sep, 2013

1 commit


15 Aug, 2013

1 commit

  • This patch allows to switch the netns when packet is encapsulated or
    decapsulated. In other word, the encapsulated packet is received in a netns,
    where the lookup is done to find the tunnel. Once the tunnel is found, the
    packet is decapsulated and injecting into the corresponding interface which
    stands to another netns.

    When one of the two netns is removed, the tunnel is destroyed.

    Signed-off-by: Nicolas Dichtel
    Signed-off-by: David S. Miller

    Nicolas Dichtel
     

27 Mar, 2013

1 commit

  • Following patch refactors GRE code into ip tunneling code and GRE
    specific code. Common tunneling code is moved to ip_tunnel module.
    ip_tunnel module is written as generic library which can be used
    by different tunneling implementations.

    ip_tunnel module contains following components:
    - packet xmit and rcv generic code. xmit flow looks like
    (gre_xmit/ipip_xmit)->ip_tunnel_xmit->ip_local_out.
    - hash table of all devices.
    - lookup for tunnel devices.
    - control plane operations like device create, destroy, ioctl, netlink
    operations code.
    - registration for tunneling modules, like gre, ipip etc.
    - define single pcpu_tstats dev->tstats.
    - struct tnl_ptk_info added to pass parsed tunnel packet parameters.

    ipip.h header is renamed to ip_tunnel.h

    Signed-off-by: Pravin B Shelar
    Signed-off-by: David S. Miller

    Pravin B Shelar
     

11 Mar, 2013

1 commit

  • Similar to iptunnel_xmit(), group these operations into a
    helper function.

    This by the way fixes the missing u64_stats_update_begin()
    and u64_stats_update_end() for 32 bit arch.

    Cc: Eric Dumazet
    Cc: Pravin B Shelar
    Cc: "David S. Miller"
    Signed-off-by: Cong Wang
    Signed-off-by: David S. Miller

    Cong Wang
     

15 Aug, 2012

1 commit


29 Jun, 2012

1 commit

  • At Facebook, we do Layer-3 DSR via IP-in-IP tunneling. Our load balancers wrap
    an extra IP header on incoming packets so they can be routed to the backend.
    In the v4 tunnel driver, when these packets fall on the default tunl0 device,
    the behavior is to decapsulate them and drop them back on the stack. So our
    setup is that tunl0 has the VIP and eth0 has (obviously) the backend's real
    address.

    In IPv6 we do the same thing, but the v6 tunnel driver didn't have this same
    behavior - if you didn't have an explicit tunnel setup, it would drop the
    packet.

    This patch brings that v4 feature to the v6 driver.

    The same IPv6 address checks are performed as with any normal tunnel,
    but as the fallback tunnel endpoint addresses are unspecified, the checks
    must be performed on a per-packet basis, rather than at tunnel
    configuration time.

    [Patch description modified by phil@ipom.com]

    Signed-off-by: Ville Nuorvala
    Tested-by: Phil Dibowitz
    Signed-off-by: David S. Miller

    Ville Nuorvala
     

26 Oct, 2010

1 commit

  • (struct ip6_tnl)->next is rcu protected :
    (struct ip_tunnel)->next is rcu protected :
    (struct xfrm6_tunnel)->next is rcu protected :

    add __rcu annotation and proper rcu primitives.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     

03 Jun, 2010

1 commit


10 Mar, 2010

1 commit


12 Jun, 2008

1 commit


22 May, 2008

1 commit


24 Feb, 2008

1 commit

  • Use the added dev_alloc_name() call to create tunnel device name,
    rather than iterate in a hand-made loop with an artificial limit.

    Thanks Patrick for noticing this.

    [ The way this works is, when the device is actually registered,
    the generic code noticed the '%' in the name and invokes
    dev_alloc_name() to fully resolve the name. -DaveM ]

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     

21 Dec, 2007

1 commit


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