07 Jul, 2016

1 commit


28 Jun, 2016

1 commit

  • CALIPSO is a packet labelling protocol for IPv6 which is very similar
    to CIPSO. It is specified in RFC 5570. Much of the code is based on
    the current CIPSO code.

    This adds support for adding passthrough-type CALIPSO DOIs through the
    NLBL_CALIPSO_C_ADD command. It requires attributes:

    NLBL_CALIPSO_A_TYPE which must be CALIPSO_MAP_PASS.
    NLBL_CALIPSO_A_DOI.

    In passthrough mode the CALIPSO engine will map MLS secattr levels
    and categories directly to the packet label.

    At this stage, the major difference between this and the CIPSO
    code is that IPv6 may be compiled as a module. To allow for
    this the CALIPSO functions are registered at module init time.

    Signed-off-by: Huw Davies
    Signed-off-by: Paul Moore

    Huw Davies
     

01 Jun, 2016

1 commit

  • The Kconfig options I added to work around broken compilation ended
    up screwing up things more, as I used the wrong symbol to control
    compilation of the file, resulting in IPv6 fou support to never be built
    into the kernel.

    Changing CONFIG_NET_FOU_IPV6_TUNNELS to CONFIG_IPV6_FOU fixes that
    problem, I had renamed the symbol in one location but not the other,
    and as the file is never being used by other kernel code, this did not
    lead to a build failure that I would have caught.

    After that fix, another issue with the same patch becomes obvious, as we
    'select INET6_TUNNEL', which is related to IPV6_TUNNEL, but not the same,
    and this can still cause the original build failure when IPV6_TUNNEL is
    not built-in but IPV6_FOU is. The fix is equally trivial, we just need
    to select the right symbol.

    I have successfully build 350 randconfig kernels with this patch
    and verified that the driver is now being built.

    Signed-off-by: Arnd Bergmann
    Reported-by: Valentin Rothberg
    Fixes: fabb13db448e ("fou: add Kconfig options for IPv6 support")
    Signed-off-by: David S. Miller

    Arnd Bergmann
     

30 May, 2016

1 commit

  • A previous patch added the fou6.ko module, but that failed to link
    in a couple of configurations:

    net/built-in.o: In function `ip6_tnl_encap_add_fou_ops':
    net/ipv6/fou6.c:88: undefined reference to `ip6_tnl_encap_add_ops'
    net/ipv6/fou6.c:94: undefined reference to `ip6_tnl_encap_add_ops'
    net/ipv6/fou6.c:97: undefined reference to `ip6_tnl_encap_del_ops'
    net/built-in.o: In function `ip6_tnl_encap_del_fou_ops':
    net/ipv6/fou6.c:106: undefined reference to `ip6_tnl_encap_del_ops'
    net/ipv6/fou6.c:107: undefined reference to `ip6_tnl_encap_del_ops'

    If CONFIG_IPV6=m, ip6_tnl_encap_add_ops/ip6_tnl_encap_del_ops
    are in a module, but fou6.c can still be built-in, and that
    obviously fails to link.

    Also, if CONFIG_IPV6=y, but CONFIG_IPV6_TUNNEL=m or
    CONFIG_IPV6_TUNNEL=n, the same problem happens for a different
    reason.

    This adds two new silent Kconfig symbols to work around both
    problems:

    - CONFIG_IPV6_FOU is now always set to 'm' if either CONFIG_NET_FOU=m
    or CONFIG_IPV6=m
    - CONFIG_IPV6_FOU_TUNNEL is set implicitly when IPV6_FOU is enabled
    and NET_FOU_IP_TUNNELS is also turned out, and it will ensure
    that CONFIG_IPV6_TUNNEL is also available.

    The options could be made user-visible as well, to give additional
    room for configuration, but it seems easier not to bother users
    with more choice here.

    Signed-off-by: Arnd Bergmann
    Fixes: aa3463d65e7b ("fou: Add encap ops for IPv6 tunnels")
    Signed-off-by: David S. Miller

    Arnd Bergmann
     

21 May, 2016

1 commit


08 Apr, 2016

1 commit

  • This patch adds GRO functions (gro_receive and gro_complete) to UDP
    sockets. udp_gro_receive is changed to perform socket lookup on a
    packet. If a socket is found the related GRO functions are called.

    This features obsoletes using UDP offload infrastructure for GRO
    (udp_offload). This has the advantage of not being limited to provide
    offload on a per port basis, GRO is now applied to whatever individual
    UDP sockets are bound to. This also allows the possbility of
    "application defined GRO"-- that is we can attach something like
    a BPF program to a UDP socket to perfrom GRO on an application
    layer protocol.

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

    Tom Herbert
     

16 Dec, 2015

1 commit

  • Create ila directory in preparation for supporting other hooks in the
    kernel than LWT for doing ILA. This includes:
    - Moving ila.c to ila/ila_lwt.c
    - Splitting out some common functions into ila_common.c

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

    Tom Herbert
     

18 Aug, 2015

1 commit

  • Adding new module name ila. This implements ILA translation. Light
    weight tunnel redirection is used to perform the translation in
    the data path. This is configured by the "ip -6 route" command
    using the "encap ila " option, where is the
    value to set in destination locator of the packet. e.g.

    ip -6 route add 3333:0:0:1:5555:0:1:0/128 \
    encap ila 2001:0:0:1 via 2401:db00:20:911a:face:0:25:0

    Sets a route where 3333:0:0:1 will be overwritten by
    2001:0:0:1 on output.

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

    Tom Herbert
     

05 May, 2015

1 commit

  • With this patch, the IGMP and MLD message validation functions are moved
    from the bridge code to IPv4/IPv6 multicast files. Some small
    refactoring was done to enhance readibility and to iron out some
    differences in behaviour between the IGMP and MLD parsing code (e.g. the
    skb-cloning of MLD messages is now only done if necessary, just like the
    IGMP part always did).

    Finally, these IGMP and MLD message validation functions are exported so
    that not only the bridge can use it but batman-adv later, too.

    Signed-off-by: Linus Lüssing
    Signed-off-by: David S. Miller

    Linus Lüssing
     

20 Sep, 2014

2 commits

  • Functions supplied in ip6_udp_tunnel.c are only needed when IPV6 is
    selected. When IPV6 is not selected, those functions are stubbed out
    in udp_tunnel.h.

    ==================================================================
    net/ipv6/ip6_udp_tunnel.c:15:5: error: redefinition of 'udp_sock_create6'
    int udp_sock_create6(struct net *net, struct udp_port_cfg *cfg,
    In file included from net/ipv6/ip6_udp_tunnel.c:9:0:
    include/net/udp_tunnel.h:36:19: note: previous definition of 'udp_sock_create6' was here
    static inline int udp_sock_create6(struct net *net, struct udp_port_cfg *cfg,
    ==================================================================

    Fixes: fd384412e udp_tunnel: Seperate ipv6 functions into its own file
    Reported-by: kbuild test robot
    Signed-off-by: Andy Zhou
    Signed-off-by: David S. Miller

    Andy Zhou
     
  • Add ip6_udp_tunnel.c for ipv6 UDP tunnel functions to avoid ifdefs
    in udp_tunnel.c

    Signed-off-by: Andy Zhou
    Signed-off-by: David S. Miller

    Andy Zhou
     

14 Mar, 2014

1 commit


10 Oct, 2013

1 commit


26 May, 2013

1 commit

  • This adds the ability to send ICMPv6 echo requests without a
    raw socket. The equivalent ability for ICMPv4 was added in
    2011.

    Instead of having separate code paths for IPv4 and IPv6, make
    most of the code in net/ipv4/ping.c dual-stack and only add a
    few IPv6-specific bits (like the protocol definition) to a new
    net/ipv6/ping.c. Hopefully this will reduce divergence and/or
    duplication of bugs in the future.

    Caveats:

    - Setting options via ancillary data (e.g., using IPV6_PKTINFO
    to specify the outgoing interface) is not yet supported.
    - There are no separate security settings for IPv4 and IPv6;
    everything is controlled by /proc/net/ipv4/ping_group_range.
    - The proc interface does not yet display IPv6 ping sockets
    properly.

    Tested with a patched copy of ping6 and using raw socket calls.
    Compiles and works with all of CONFIG_IPV6={n,m,y}.

    Signed-off-by: Lorenzo Colitti
    Signed-off-by: David S. Miller

    Lorenzo Colitti
     

30 Apr, 2013

1 commit

  • Following patch adds icmp-registration module for ipv6. It allows
    ipv6 protocol to register icmp_sender which is used for sending
    ipv6 icmp msgs. This extra layer allows us to kill ipv6 dependency
    for sending icmp packets.

    This patch also fixes ip_tunnel compilation problem when ip_tunnel
    is statically compiled in kernel but ipv6 is module

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

    Pravin B Shelar
     

09 Jan, 2013

1 commit


17 Dec, 2012

1 commit

  • The following commit breaks IPv6 TCP transmission for me:
    Commit 75fe83c32248d99e6d5fe64155e519b78bb90481
    Author: Vlad Yasevich
    Date: Fri Nov 16 09:41:21 2012 +0000
    ipv6: Preserve ipv6 functionality needed by NET

    This patch fixes the typo "ipv6_offload" which should be
    "ipv6-offload".

    I don't know why not including the offload modules should
    break TCP. Disabling all offload options on the NIC didn't
    help. Outgoing pulseaudio traffic kept stalling.

    Signed-off-by: Simon Arlott
    Signed-off-by: David S. Miller

    Simon Arlott
     

18 Nov, 2012

1 commit


16 Nov, 2012

6 commits


15 Aug, 2012

1 commit


05 Apr, 2008

1 commit


07 Mar, 2008

1 commit

  • This reverts commit db1ed684f6c430c4cdad67d058688b8a1b5e607c ("[IPV6]
    UDP: Rename IPv6 UDP files."), commit
    8be8af8fa4405652e6c0797db5465a4be8afb998 ("[IPV4] UDP: Move
    IPv4-specific bits to other file.") and commit
    e898d4db2749c6052072e9bc4448e396cbdeb06a ("[UDP]: Allow users to
    configure UDP-Lite.").

    First, udplite is of such small cost, and it is a core protocol just
    like TCP and normal UDP are.

    We spent enormous amounts of effort to make udplite share as much code
    with core UDP as possible. All of that work is less valuable if we're
    just going to slap a config option on udplite support.

    It is also causing build failures, as reported on linux-next, showing
    that the changeset was not tested very well. In fact, this is the
    second build failure resulting from the udplite change.

    Finally, the config options provided was a bool, instead of a modular
    option. Meaning the udplite code does not even get build tested
    by allmodconfig builds, and furthermore the user is not presented
    with a reasonable modular build option which is particularly needed
    by distribution vendors.

    Signed-off-by: David S. Miller

    David S. Miller
     

04 Mar, 2008

3 commits


29 Jan, 2008

2 commits


11 Jul, 2007

1 commit

  • This patch makes MIPv6 loadable module named "mip6".

    Here is a modprobe.conf(5) example to load it automatically
    when user application uses XFRM state for MIPv6:

    alias xfrm-type-10-43 mip6
    alias xfrm-type-10-60 mip6

    Some MIPv6 feature is not included by this modular, however,
    it should not be affected to other features like either IPsec
    or IPv6 with and without the patch.
    We may discuss XFRM, MH (RAW socket) and ancillary data/sockopt
    separately for future work.

    Loadable features:
    * MH receiving check (to send ICMP error back)
    * RO header parsing and building (i.e. RH2 and HAO in DSTOPTS)
    * XFRM policy/state database handling for RO

    These are NOT covered as loadable:
    * Home Address flags and its rule on source address selection
    * XFRM sub policy (depends on its own kernel option)
    * XFRM functions to receive RO as IPv6 extension header
    * MH sending/receiving through raw socket if user application
    opens it (since raw socket allows to do so)
    * RH2 sending as ancillary data
    * RH2 operation with setsockopt(2)

    Signed-off-by: Masahide NAKAMURA
    Signed-off-by: David S. Miller

    Masahide NAKAMURA
     

26 Apr, 2007

3 commits


27 Feb, 2007

1 commit


03 Dec, 2006

1 commit

  • This is a revision of the previously submitted patch, which alters
    the way files are organized and compiled in the following manner:

    * UDP and UDP-Lite now use separate object files
    * source file dependencies resolved via header files
    net/ipv{4,6}/udp_impl.h
    * order of inclusion files in udp.c/udplite.c adapted
    accordingly

    [NET/IPv4]: Support for the UDP-Lite protocol (RFC 3828)

    This patch adds support for UDP-Lite to the IPv4 stack, provided as an
    extension to the existing UDPv4 code:
    * generic routines are all located in net/ipv4/udp.c
    * UDP-Lite specific routines are in net/ipv4/udplite.c
    * MIB/statistics support in /proc/net/snmp and /proc/net/udplite
    * shared API with extensions for partial checksum coverage

    [NET/IPv6]: Extension for UDP-Lite over IPv6

    It extends the existing UDPv6 code base with support for UDP-Lite
    in the same manner as per UDPv4. In particular,
    * UDPv6 generic and shared code is in net/ipv6/udp.c
    * UDP-Litev6 specific extensions are in net/ipv6/udplite.c
    * MIB/statistics support in /proc/net/snmp6 and /proc/net/udplite6
    * support for IPV6_ADDRFORM
    * aligned the coding style of protocol initialisation with af_inet6.c
    * made the error handling in udpv6_queue_rcv_skb consistent;
    to return `-1' on error on all error cases
    * consolidation of shared code

    [NET]: UDP-Lite Documentation and basic XFRM/Netfilter support

    The UDP-Lite patch further provides
    * API documentation for UDP-Lite
    * basic xfrm support
    * basic netfilter support for IPv4 and IPv6 (LOG target)

    Signed-off-by: Gerrit Renker
    Signed-off-by: David S. Miller

    Gerrit Renker
     

12 Oct, 2006

1 commit


04 Oct, 2006

1 commit

  • This patch introduces the BEET mode (Bound End-to-End Tunnel) with as
    specified by the ietf draft at the following link:

    http://www.ietf.org/internet-drafts/draft-nikander-esp-beet-mode-06.txt

    The patch provides only single family support (i.e. inner family =
    outer family).

    Signed-off-by: Diego Beltrami
    Signed-off-by: Miika Komu
    Signed-off-by: Herbert Xu
    Signed-off-by: Abhinav Pathak
    Signed-off-by: Jeff Ahrenholz
    Signed-off-by: David S. Miller

    Diego Beltrami