19 Sep, 2020

1 commit

  • When IPV6_SEG6_HMAC is enabled and CRYPTO is disabled, it results in the
    following Kbuild warning:

    WARNING: unmet direct dependencies detected for CRYPTO_HMAC
    Depends on [n]: CRYPTO [=n]
    Selected by [y]:
    - IPV6_SEG6_HMAC [=y] && NET [=y] && INET [=y] && IPV6 [=y]

    WARNING: unmet direct dependencies detected for CRYPTO_SHA1
    Depends on [n]: CRYPTO [=n]
    Selected by [y]:
    - IPV6_SEG6_HMAC [=y] && NET [=y] && INET [=y] && IPV6 [=y]

    WARNING: unmet direct dependencies detected for CRYPTO_SHA256
    Depends on [n]: CRYPTO [=n]
    Selected by [y]:
    - IPV6_SEG6_HMAC [=y] && NET [=y] && INET [=y] && IPV6 [=y]

    The reason is that IPV6_SEG6_HMAC selects CRYPTO_HMAC, CRYPTO_SHA1, and
    CRYPTO_SHA256 without depending on or selecting CRYPTO while those configs
    are subordinate to CRYPTO.

    Honor the kconfig menu hierarchy to remove kconfig dependency warnings.

    Fixes: bf355b8d2c30 ("ipv6: sr: add core files for SR HMAC support")
    Signed-off-by: Necip Fazil Yildiran
    Signed-off-by: David S. Miller

    Necip Fazil Yildiran
     

07 Jul, 2020

1 commit

  • Rationale:
    Reduces attack surface on kernel devs opening the links for MITM
    as HTTPS traffic is much harder to manipulate.

    Deterministic algorithm:
    For each file:
    If not .svg:
    For each line:
    If doesn't contain `\bxmlns\b`:
    For each link, `\bhttp://[^# \t\r\n]*(?:\w|/)`:
    If both the HTTP and HTTPS versions
    return 200 OK and serve the same content:
    Replace HTTP with HTTPS.

    Signed-off-by: Alexander A. Klimov
    Signed-off-by: David S. Miller

    Alexander A. Klimov
     

20 Jun, 2020

1 commit

  • Steffen Klassert says:

    ====================
    pull request (net): ipsec 2020-06-19

    1) Fix double ESP trailer insertion in IPsec crypto offload if
    netif_xmit_frozen_or_stopped is true. From Huy Nguyen.

    2) Merge fixup for "remove output_finish indirection from
    xfrm_state_afinfo". From Stephen Rothwell.

    3) Select CRYPTO_SEQIV for ESP as this is needed for GCM and several
    other encryption algorithms. Also modernize the crypto algorithm
    selections for ESP and AH, remove those that are maked as "MUST NOT"
    and add those that are marked as "MUST" be implemented in RFC 8221.
    From Eric Biggers.

    Please note the merge conflict between commit:

    a7f7f6248d97 ("treewide: replace '---help---' in Kconfig files with 'help'")

    from Linus' tree and commits:

    7d4e39195925 ("esp, ah: consolidate the crypto algorithm selections")
    be01369859b8 ("esp, ah: modernize the crypto algorithm selections")

    from the ipsec tree.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

15 Jun, 2020

2 commits

  • The crypto algorithms selected by the ESP and AH kconfig options are
    out-of-date with the guidance of RFC 8221, which lists the legacy
    algorithms MD5 and DES as "MUST NOT" be implemented, and some more
    modern algorithms like AES-GCM and HMAC-SHA256 as "MUST" be implemented.
    But the options select the legacy algorithms, not the modern ones.

    Therefore, modify these options to select the MUST algorithms --
    and *only* the MUST algorithms.

    Also improve the help text.

    Note that other algorithms may still be explicitly enabled in the
    kconfig, and the choice of which to actually use is still controlled by
    userspace. This change only modifies the list of algorithms for which
    kernel support is guaranteed to be present.

    Suggested-by: Herbert Xu
    Suggested-by: Steffen Klassert
    Acked-by: Herbert Xu
    Cc: Corentin Labbe
    Cc: Greg Kroah-Hartman
    Signed-off-by: Eric Biggers
    Signed-off-by: Steffen Klassert

    Eric Biggers
     
  • Instead of duplicating the algorithm selections between INET_AH and
    INET6_AH and between INET_ESP and INET6_ESP, create new tristates
    XFRM_AH and XFRM_ESP that do the algorithm selections, and make these be
    selected by the corresponding INET* options.

    Suggested-by: Herbert Xu
    Acked-by: Herbert Xu
    Cc: Corentin Labbe
    Cc: Greg Kroah-Hartman
    Cc: Steffen Klassert
    Signed-off-by: Eric Biggers
    Signed-off-by: Steffen Klassert

    Eric Biggers
     

14 Jun, 2020

1 commit

  • Since commit 84af7a6194e4 ("checkpatch: kconfig: prefer 'help' over
    '---help---'"), the number of '---help---' has been gradually
    decreasing, but there are still more than 2400 instances.

    This commit finishes the conversion. While I touched the lines,
    I also fixed the indentation.

    There are a variety of indentation styles found.

    a) 4 spaces + '---help---'
    b) 7 spaces + '---help---'
    c) 8 spaces + '---help---'
    d) 1 space + 1 tab + '---help---'
    e) 1 tab + '---help---' (correct indentation)
    f) 1 tab + 1 space + '---help---'
    g) 1 tab + 2 spaces + '---help---'

    In order to convert all of them to 1 tab + 'help', I ran the
    following commend:

    $ find . -name 'Kconfig*' | xargs sed -i 's/^[[:space:]]*---help---/\thelp/'

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

30 May, 2020

1 commit

  • Steffen Klassert says:

    ====================
    pull request (net-next): ipsec-next 2020-05-29

    1) Add IPv6 encapsulation support for ESP over UDP and TCP.
    From Sabrina Dubroca.

    2) Remove unneeded reference when initializing xfrm interfaces.
    From Nicolas Dichtel.

    3) Remove some indirect calls from the state_afinfo.
    From Florian Westphal.

    Please note that this pull request has two merge conflicts

    between commit:

    0c922a4850eb ("xfrm: Always set XFRM_TRANSFORMED in xfrm{4,6}_output_finish")

    from Linus' tree and commit:

    2ab6096db2f1 ("xfrm: remove output_finish indirection from xfrm_state_afinfo")

    from the ipsec-next tree.

    and between commit:

    3986912f6a9a ("ipv6: move SIOCADDRT and SIOCDELRT handling into ->compat_ioctl")

    from the net-next tree and commit:

    0146dca70b87 ("xfrm: add support for UDPv6 encapsulation of ESP")

    from the ipsec-next tree.

    Both conflicts can be resolved as done in linux-next.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

29 Apr, 2020

1 commit


28 Apr, 2020

1 commit

  • This extends espintcp to support IPv6, building on the existing code
    and the new UDPv6 encapsulation support. Most of the code is either
    reused directly (stream parser, ULP) or very similar to the IPv4
    variant (net/ipv6/esp6.c changes).

    The separation of config options for IPv4 and IPv6 espintcp requires a
    bit of Kconfig gymnastics to enable the core code.

    Signed-off-by: Sabrina Dubroca
    Signed-off-by: Steffen Klassert

    Sabrina Dubroca
     

30 Mar, 2020

1 commit

  • This patch adds functionality to configure routes for RPL source routing
    functionality. There is no IPIP functionality yet implemented which can
    be added later when the cases when to use IPv6 encapuslation comes more
    clear.

    Signed-off-by: Alexander Aring
    Signed-off-by: David S. Miller

    Alexander Aring
     

21 May, 2019

1 commit


08 Apr, 2019

1 commit

  • after previous changes, xfrm_mode contains no function pointers anymore
    and all modules defining such struct contain no code except an init/exit
    functions to register the xfrm_mode struct with the xfrm core.

    Just place the xfrm modes core and remove the modules,
    the run-time xfrm_mode register/unregister functionality is removed.

    Before:

    text data bss dec filename
    7523 200 2364 10087 net/xfrm/xfrm_input.o
    40003 628 440 41071 net/xfrm/xfrm_state.o
    15730338 6937080 4046908 26714326 vmlinux

    7389 200 2364 9953 net/xfrm/xfrm_input.o
    40574 656 440 41670 net/xfrm/xfrm_state.o
    15730084 6937068 4046908 26714060 vmlinux

    The xfrm*_mode_{transport,tunnel,beet} modules are gone.

    v2: replace CONFIG_INET6_XFRM_MODE_* IS_ENABLED guards with CONFIG_IPV6
    ones rather than removing them.

    Signed-off-by: Florian Westphal
    Reviewed-by: Sabrina Dubroca
    Signed-off-by: Steffen Klassert

    Florian Westphal
     

25 Jul, 2018

1 commit


19 Jul, 2018

1 commit

  • My randconfig builds came across an old missing dependency for ILA:

    ERROR: "dst_cache_set_ip6" [net/ipv6/ila/ila.ko] undefined!
    ERROR: "dst_cache_get" [net/ipv6/ila/ila.ko] undefined!
    ERROR: "dst_cache_init" [net/ipv6/ila/ila.ko] undefined!
    ERROR: "dst_cache_destroy" [net/ipv6/ila/ila.ko] undefined!

    We almost never run into this by accident because randconfig builds
    end up selecting DST_CACHE from some other tunnel protocol, and this
    one appears to be the only one missing the explicit 'select'.

    >From all I can tell, this problem first appeared in linux-4.9
    when dst_cache support got added to ILA.

    Fixes: 79ff2fc31e0f ("ila: Cache a route to translated address")
    Cc: Tom Herbert
    Signed-off-by: Arnd Bergmann
    Signed-off-by: David S. Miller

    Arnd Bergmann
     

24 May, 2018

1 commit

  • The BPF seg6local hook should be powerful enough to enable users to
    implement most of the use-cases one could think of. After some thinking,
    we figured out that the following actions should be possible on a SRv6
    packet, requiring 3 specific helpers :
    - bpf_lwt_seg6_store_bytes: Modify non-sensitive fields of the SRH
    - bpf_lwt_seg6_adjust_srh: Allow to grow or shrink a SRH
    (to add/delete TLVs)
    - bpf_lwt_seg6_action: Apply some SRv6 network programming actions
    (specifically End.X, End.T, End.B6 and
    End.B6.Encap)

    The specifications of these helpers are provided in the patch (see
    include/uapi/linux/bpf.h).

    The non-sensitive fields of the SRH are the following : flags, tag and
    TLVs. The other fields can not be modified, to maintain the SRH
    integrity. Flags, tag and TLVs can easily be modified as their validity
    can be checked afterwards via seg6_validate_srh. It is not allowed to
    modify the segments directly. If one wants to add segments on the path,
    he should stack a new SRH using the End.B6 action via
    bpf_lwt_seg6_action.

    Growing, shrinking or editing TLVs via the helpers will flag the SRH as
    invalid, and it will have to be re-validated before re-entering the IPv6
    layer. This flag is stored in a per-CPU buffer, along with the current
    header length in bytes.

    Storing the SRH len in bytes in the control block is mandatory when using
    bpf_lwt_seg6_adjust_srh. The Header Ext. Length field contains the SRH
    len rounded to 8 bytes (a padding TLV can be inserted to ensure the 8-bytes
    boundary). When adding/deleting TLVs within the BPF program, the SRH may
    temporary be in an invalid state where its length cannot be rounded to 8
    bytes without remainder, hence the need to store the length in bytes
    separately. The caller of the BPF program can then ensure that the SRH's
    final length is valid using this value. Again, a final SRH modified by a
    BPF program which doesn’t respect the 8-bytes boundary will be discarded
    as it will be considered as invalid.

    Finally, a fourth helper is provided, bpf_lwt_push_encap, which is
    available from the LWT BPF IN hook, but not from the seg6local BPF one.
    This helper allows to encapsulate a Segment Routing Header (either with
    a new outer IPv6 header, or by inlining it directly in the existing IPv6
    header) into a non-SRv6 packet. This helper is required if we want to
    offer the possibility to dynamically encapsulate a SRH for non-SRv6 packet,
    as the BPF seg6local hook only works on traffic already containing a SRH.
    This is the BPF equivalent of the seg6 LWT infrastructure, which achieves
    the same purpose but with a static SRH per route.

    These helpers require CONFIG_IPV6=y (and not =m).

    Signed-off-by: Mathieu Xhonneux
    Acked-by: David Lebrun
    Signed-off-by: Daniel Borkmann

    Mathieu Xhonneux
     

08 May, 2018

1 commit


02 Mar, 2018

1 commit

  • The two implementations have almost identical structures - vif_device and
    mif_device. As a step toward uniforming the mr_tables, eliminate the
    mif_device and relocate the vif_device definition into a new common
    header file.

    Also, introduce a common initializing function for setting most of the
    vif_device fields in a new common source file. This requires modifying
    the ipv{4,6] Kconfig and ipv4 makefile as we're introducing a new common
    config option - CONFIG_IP_MROUTE_COMMON.

    Signed-off-by: Yuval Mintz
    Acked-by: Nikolay Aleksandrov
    Signed-off-by: David S. Miller

    Yuval Mintz
     

26 Aug, 2017

1 commit

  • This patch adds three helper functions to be used with the seg6local packet
    processing actions.

    The decap_and_validate() function will be used by the End.D* actions, that
    decapsulate an SR-enabled packet.

    The advance_nextseg() function applies the fundamental operations to update
    an SRH for the next segment.

    The lookup_nexthop() function helps select the next-hop for the processed
    SR packets. It supports an optional next-hop address to route the packet
    specifically through it, and an optional routing table to use.

    Signed-off-by: David Lebrun
    Signed-off-by: David S. Miller

    David Lebrun
     

08 Aug, 2017

2 commits

  • This patch implements a new type of lightweight tunnel named seg6local.
    A seg6local lwt is defined by a type of action and a set of parameters.
    The action represents the operation to perform on the packets matching the
    lwt's route, and is not necessarily an encapsulation. The set of parameters
    are arguments for the processing function.

    Each action is defined in a struct seg6_action_desc within
    seg6_action_table[]. This structure contains the action, mandatory
    attributes, the processing function, and a static headroom size required by
    the action. The mandatory attributes are encoded as a bitmask field. The
    static headroom is set to a non-zero value when the processing function
    always add a constant number of bytes to the skb (e.g. the header size for
    encapsulations).

    To facilitate rtnetlink-related operations such as parsing, fill_encap,
    and cmp_encap, each type of action parameter is associated to three
    function pointers, in seg6_action_params[].

    All actions defined in seg6_local.h are detailed in [1].

    [1] https://tools.ietf.org/html/draft-filsfils-spring-srv6-network-programming-01

    Signed-off-by: David Lebrun
    Signed-off-by: David S. Miller

    David Lebrun
     
  • This patch exports the seg6_do_srh_encap() and seg6_do_srh_inline()
    functions. It also removes the CONFIG_IPV6_SEG6_INLINE knob
    that enabled the compilation of seg6_do_srh_inline(). This function
    is now built-in.

    Signed-off-by: David Lebrun
    Signed-off-by: David S. Miller

    David Lebrun
     

28 Mar, 2017

1 commit


17 Feb, 2017

1 commit

  • Steffen Klassert says:

    ====================
    pull request (net-next): ipsec-next 2017-02-16

    1) Make struct xfrm_input_afinfo const, nothing writes to it.
    From Florian Westphal.

    2) Remove all places that write to the afinfo policy backend
    and make the struct const then.
    From Florian Westphal.

    3) Prepare for packet consuming gro callbacks and add
    ESP GRO handlers. ESP packets can be decapsulated
    at the GRO layer then. It saves a round through
    the stack for each ESP packet.

    Please note that this has a merge coflict between commit

    63fca65d0863 ("net: add confirm_neigh method to dst_ops")

    from net-next and

    3d7d25a68ea5 ("xfrm: policy: remove garbage_collect callback")
    a2817d8b279b ("xfrm: policy: remove family field")

    from ipsec-next.

    The conflict can be solved as it is done in linux-next.

    Please pull or let me know if there are problems.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

15 Feb, 2017

1 commit

  • This patch adds GRO ifrastructure and callbacks for ESP on
    ipv4 and ipv6.

    In case the GRO layer detects an ESP packet, the
    esp{4,6}_gro_receive() function does a xfrm state lookup
    and calls the xfrm input layer if it finds a matching state.
    The packet will be decapsulated and reinjected it into layer 2.

    Signed-off-by: Steffen Klassert

    Steffen Klassert
     

09 Feb, 2017

1 commit


17 Nov, 2016

1 commit

  • This patch adds a new option CONFIG_IPV6_SEG6_LWTUNNEL to enable/disable
    support of encapsulation with the lightweight tunnels. When this option
    is enabled, CONFIG_LWTUNNEL is automatically selected.

    Fix commit 6c8702c60b88 ("ipv6: sr: add support for SRH encapsulation and injection with lwtunnels")

    Without a proper option to control lwtunnel support for SR-IPv6, if
    CONFIG_LWTUNNEL=n then the IPv6 initialization fails as a consequence
    of seg6_iptunnel_init() failure with EOPNOTSUPP:

    NET: Registered protocol family 10
    IPv6: Attempt to unregister permanent protocol 6
    IPv6: Attempt to unregister permanent protocol 136
    IPv6: Attempt to unregister permanent protocol 17
    NET: Unregistered protocol family 10

    Tested (compiling, booting, and loading ipv6 module when relevant)
    with possible combinations of CONFIG_IPV6={y,m,n},
    CONFIG_IPV6_SEG6_LWTUNNEL={y,n} and CONFIG_LWTUNNEL={y,n}.

    Reported-by: Lorenzo Colitti
    Suggested-by: Roopa Prabhu
    Signed-off-by: David Lebrun
    Signed-off-by: David S. Miller

    David Lebrun
     

10 Nov, 2016

2 commits

  • This patch adds the necessary functions to compute and check the HMAC signature
    of an SR-enabled packet. Two HMAC algorithms are supported: hmac(sha1) and
    hmac(sha256).

    In order to avoid dynamic memory allocation for each HMAC computation,
    a per-cpu ring buffer is allocated for this purpose.

    A new per-interface sysctl called seg6_require_hmac is added, allowing a
    user-defined policy for processing HMAC-signed SR-enabled packets.
    A value of -1 means that the HMAC field will always be ignored.
    A value of 0 means that if an HMAC field is present, its validity will
    be enforced (the packet is dropped is the signature is incorrect).
    Finally, a value of 1 means that any SR-enabled packet that does not
    contain an HMAC signature or whose signature is incorrect will be dropped.

    Signed-off-by: David Lebrun
    Signed-off-by: David S. Miller

    David Lebrun
     
  • This patch creates a new type of interfaceless lightweight tunnel (SEG6),
    enabling the encapsulation and injection of SRH within locally emitted
    packets and forwarded packets.

    >From a configuration viewpoint, a seg6 tunnel would be configured as follows:

    ip -6 ro ad fc00::1/128 encap seg6 mode encap segs fc42::1,fc42::2,fc42::3 dev eth0

    Any packet whose destination address is fc00::1 would thus be encapsulated
    within an outer IPv6 header containing the SRH with three segments, and would
    actually be routed to the first segment of the list. If `mode inline' was
    specified instead of `mode encap', then the SRH would be directly inserted
    after the IPv6 header without outer encapsulation.

    The inline mode is only available if CONFIG_IPV6_SEG6_INLINE is enabled. This
    feature was made configurable because direct header insertion may break
    several mechanisms such as PMTUD or IPSec AH.

    Signed-off-by: David Lebrun
    Signed-off-by: David S. Miller

    David Lebrun
     

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
     

05 May, 2016

1 commit

  • The ipv6 gre implementation was cleaned up to share more code
    with the ipv4 version, but it can be enabled even when NET_IPGRE_DEMUX
    is disabled, resulting in a link error:

    net/built-in.o: In function `gre_rcv':
    :(.text+0x17f5d0): undefined reference to `gre_parse_header'
    ERROR: "gre_parse_header" [net/ipv6/ip6_gre.ko] undefined!

    This adds a Kconfig dependency to prevent that now invalid
    configuration.

    Signed-off-by: Arnd Bergmann
    Fixes: 308edfdf1563 ("gre6: Cleanup GREv6 receive path, call common GRE functions")
    Acked-by: Tom Herbert
    Signed-off-by: David S. Miller

    Arnd Bergmann
     

17 Feb, 2016

1 commit

  • This also fix a potential race into the existing tunnel code, which
    could lead to the wrong dst to be permanenty cached:

    CPU1: CPU2:


    dst = ip6_route_output(...)

    dst_cache_reset() // no effect,
    // the cache is empty
    dst_cache_set() // the wrong dst
    // is permanenty stored
    // into the cache

    With the new dst implementation the above race is not possible
    since the first cache lookup after dst_cache_reset will fail due
    to the timestamp check

    Signed-off-by: Paolo Abeni
    Suggested-and-acked-by: Hannes Frederic Sowa
    Signed-off-by: David S. Miller

    Paolo Abeni
     

26 Jan, 2016

1 commit

  • The ESP algorithms using CBC mode require echainiv. Hence INET*_ESP have
    to select CRYPTO_ECHAINIV in order to work properly. This solves the
    issues caused by a misconfiguration as described in [1].
    The original approach, patching crypto/Kconfig was turned down by
    Herbert Xu [2].

    [1] https://lists.strongswan.org/pipermail/users/2015-December/009074.html
    [2] http://marc.info/?l=linux-crypto-vger&m=145224655809562&w=2

    Signed-off-by: Thomas Egerer
    Acked-by: Herbert Xu
    Signed-off-by: David S. Miller

    Thomas Egerer
     

19 Dec, 2015

1 commit

  • The recently added generic ILA translation facility fails to
    build when CONFIG_NETFILTER is disabled:

    net/ipv6/ila/ila_xlat.c:229:20: warning: 'struct nf_hook_state' declared inside parameter list
    net/ipv6/ila/ila_xlat.c:235:27: error: array type has incomplete element type 'struct nf_hook_ops'
    static struct nf_hook_ops ila_nf_hook_ops[] __read_mostly = {

    This adds an explicit Kconfig dependency to avoid that case.

    Signed-off-by: Arnd Bergmann
    Fixes: 7f00feaf1076 ("ila: Add generic ILA translation facility")
    Signed-off-by: David S. Miller

    Arnd Bergmann
     

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
     

14 Jul, 2015

1 commit

  • This patch makes the default to build IPv6 into the kernel. IPv6
    now has significant traction and any remaining vestiges of IPv6
    not being provided parity with IPv4 should be swept away. IPv6 is now
    core to the Internet and kernel.

    Points on IPv6 adoption:

    - Per Google statistics, IPv6 usage has reached 7% on the Internet
    and continues to exhibit an exponential growth rate
    https://www.google.com/intl/en/ipv6/statistics.html
    - Just a few days ago ARIN officially depleted its IPv4 pool
    - IPv6 only data centers are being successfully built
    (e.g. at Facebook)

    This patch changes the IPv6 Kconfig for IPV6. Default for CONFIG_IPV6
    is set to "y" and the text has been updated to reflect the maturity of
    IPv6.

    Impact:

    Under some circumstances building modules in to kernel might have a
    performance advantage. In my testing, I did notice a very slight
    improvement.

    This will obviously increase the size of the kernel image. In my
    configuration I see:

    IPv6 as module:

    text data bss dec hex filename
    9703666 1899288 933888 12536842 bf4c0a vmlinux

    IPv6 built into kernel

    text data bss dec hex filename
    9436490 1879600 913408 12229498 ba9b7a vmlinux

    Which increases text size by ~270K (2.8% increase in size for me). If
    image size is an issue, presumably for a device which does not do IP
    networking (IMO we should be discouraging IPv4-only devices), IPV6 can
    be disabled or still built as a module.

    Acked-by: YOSHIFUJI Hideaki
    Signed-off-by: Tom Herbert
    Signed-off-by: David S. Miller

    Tom Herbert
     

20 Feb, 2014

1 commit


29 Oct, 2013

1 commit


10 Oct, 2013

1 commit


27 Mar, 2013

1 commit


22 Feb, 2013

1 commit

  • Merge misc patches from Andrew Morton:

    - Florian has vanished so I appear to have become fbdev maintainer
    again :(

    - Joel and Mark are distracted to welcome to the new OCFS2 maintainer

    - The backlight queue

    - Small core kernel changes

    - lib/ updates

    - The rtc queue

    - Various random bits

    * akpm: (164 commits)
    rtc: rtc-davinci: use devm_*() functions
    rtc: rtc-max8997: use devm_request_threaded_irq()
    rtc: rtc-max8907: use devm_request_threaded_irq()
    rtc: rtc-da9052: use devm_request_threaded_irq()
    rtc: rtc-wm831x: use devm_request_threaded_irq()
    rtc: rtc-tps80031: use devm_request_threaded_irq()
    rtc: rtc-lp8788: use devm_request_threaded_irq()
    rtc: rtc-coh901331: use devm_clk_get()
    rtc: rtc-vt8500: use devm_*() functions
    rtc: rtc-tps6586x: use devm_request_threaded_irq()
    rtc: rtc-imxdi: use devm_clk_get()
    rtc: rtc-cmos: use dev_warn()/dev_dbg() instead of printk()/pr_debug()
    rtc: rtc-pcf8583: use dev_warn() instead of printk()
    rtc: rtc-sun4v: use pr_warn() instead of printk()
    rtc: rtc-vr41xx: use dev_info() instead of printk()
    rtc: rtc-rs5c313: use pr_err() instead of printk()
    rtc: rtc-at91rm9200: use dev_dbg()/dev_err() instead of printk()/pr_debug()
    rtc: rtc-rs5c372: use dev_dbg()/dev_warn() instead of printk()/pr_debug()
    rtc: rtc-ds2404: use dev_err() instead of printk()
    rtc: rtc-efi: use dev_err()/dev_warn()/pr_err() instead of printk()
    ...

    Linus Torvalds