14 Dec, 2020

1 commit


27 Aug, 2020

2 commits

  • Move all the MDIO drivers and multiplexers into drivers/net/mdio. The
    mdio core is however left in the phy directory, due to mutual
    dependencies between the MDIO core and the PHY core.

    Take this opportunity to sort the Kconfig based on the menuconfig
    strings, and move the multiplexers to the end with a separating
    comment.

    v2:
    Fix typo in commit message

    Acked-by: Florian Fainelli
    Signed-off-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Andrew Lunn
     
  • Create drivers/net/pcs and move the Synopsys DesignWare XPCS into the
    new directory. Move the header file into a subdirectory
    include/linux/pcs

    Start a naming convention of all PCS files use the prefix pcs-, and
    rename the XPCS files to fit.

    v2:
    Add include/linux/pcs

    v4:
    Fix include path in stmmac.
    Remove PCS_DEVICES to avoid new prompts

    Cc: Jose Abreu
    Reviewed-by: Florian Fainelli
    Signed-off-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Andrew Lunn
     

02 Jul, 2020

1 commit

  • The patch adds a basic XDP processing to xen-netfront driver.

    We ran an XDP program for an RX response received from netback
    driver. Also we request xen-netback to adjust data offset for
    bpf_xdp_adjust_head() header space for custom headers.

    synchronization between frontend and backend parts is done
    by using xenbus state switching:
    Reconfiguring -> Reconfigured- > Connected

    UDP packets drop rate using xdp program is around 310 kpps
    using ./pktgen_sample04_many_flows.sh and 160 kpps without the patch.

    Signed-off-by: Denis Kirjanov
    Signed-off-by: David S. Miller

    Denis Kirjanov
     

27 Jun, 2020

1 commit

  • Organize driver documentation by device type. Most documents
    have fairly verbose yet uninformative names, so let users
    first select a well defined device type, and then search for
    a particular driver.

    While at it rename the section from Vendor drivers to
    Hardware drivers. This seems more accurate, besides people
    sometimes refer to out-of-tree drivers as vendor drivers.

    Signed-off-by: Jakub Kicinski
    Acked-by: Jeff Kirsher
    Acked-by: Shannon Nelson
    Signed-off-by: David S. Miller

    Jakub Kicinski
     

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
     

02 May, 2020

2 commits


01 May, 2020

1 commit


29 Apr, 2020

2 commits

  • - add SPDX header;
    - add a document title;
    - adjust titles and chapters, adding proper markups;
    - mark code blocks and literals as such;
    - mark tables as such;
    - adjust identation, whitespaces and blank lines;
    - add to networking/index.rst.

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: David S. Miller

    Mauro Carvalho Chehab
     
  • - add SPDX header;
    - adjust titles and chapters, adding proper markups;
    - comment out text-only TOC from html/pdf output;
    - mark code blocks and literals as such;
    - mark tables as such;
    - add notes markups;
    - adjust identation, whitespaces and blank lines;
    - add to networking/index.rst.

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: David S. Miller

    Mauro Carvalho Chehab
     

26 Mar, 2020

2 commits

  • Overlapping header include additions in macsec.c

    A bug fix in 'net' overlapping with the removal of 'version'
    string in ena_netdev.c

    Overlapping test additions in selftests Makefile

    Overlapping PCI ID table adjustments in iwlwifi driver.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • net/netfilter/nft_fwd_netdev.c: In function ‘nft_fwd_netdev_eval’:
    net/netfilter/nft_fwd_netdev.c:32:10: error: ‘struct sk_buff’ has no member named ‘tc_redirected’
    pkt->skb->tc_redirected = 1;
    ^~
    net/netfilter/nft_fwd_netdev.c:33:10: error: ‘struct sk_buff’ has no member named ‘tc_from_ingress’
    pkt->skb->tc_from_ingress = 1;
    ^~

    To avoid a direct dependency with tc actions from netfilter, wrap the
    redirect bits around CONFIG_NET_REDIRECT and move helpers to
    include/linux/skbuff.h. Turn on this toggle from the ifb driver, the
    only existing client of these bits in the tree.

    This patch adds skb_set_redirected() that sets on the redirected bit
    on the skbuff, it specifies if the packet was redirect from ingress
    and resets the timestamp (timestamp reset was originally missing in the
    netfilter bugfix).

    Fixes: bcfabee1afd99484 ("netfilter: nft_fwd_netdev: allow to redirect to ifb via ingress")
    Reported-by: noreply@ellerman.id.au
    Reported-by: Geert Uytterhoeven
    Signed-off-by: Pablo Neira Ayuso
    Signed-off-by: David S. Miller

    Pablo Neira Ayuso
     

09 Mar, 2020

1 commit


25 Feb, 2020

1 commit


30 Jan, 2020

1 commit

  • Pull USB/Thunderbolt/PHY driver updates from Greg KH:
    "Here is the big USB and Thunderbolt and PHY driver updates for
    5.6-rc1.

    With the advent of USB4, "Thunderbolt" has really become USB4, so the
    renaming of the Kconfig option and starting to share subsystem code
    has begun, hence both subsystems coming in through the same tree here.

    PHY driver updates also touched USB drivers, so that is coming in
    through here as well.

    Major stuff included in here are:
    - USB 4 initial support added (i.e. Thunderbolt)
    - musb driver updates
    - USB gadget driver updates
    - PHY driver updates
    - USB PHY driver updates
    - lots of USB serial stuff fixed up
    - USB typec updates
    - USB-IP fixes
    - lots of other smaller USB driver updates

    All of these have been in linux-next for a while now (the usb-serial
    tree is already tested in linux-next on its own before merged into
    here), with no reported issues"

    [ Removed an incorrect compile test enablement for PHY_EXYNOS5250_SATA
    that causes configuration warnings - Linus ]

    * tag 'usb-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (207 commits)
    Doc: ABI: add usb charger uevent
    usb: phy: show USB charger type for user
    usb: cdns3: fix spelling mistake and rework grammar in text
    usb: phy: phy-gpio-vbus-usb: Convert to GPIO descriptors
    USB: serial: cyberjack: fix spelling mistake "To" -> "Too"
    USB: serial: ir-usb: simplify endpoint check
    USB: serial: ir-usb: make set_termios synchronous
    USB: serial: ir-usb: fix IrLAP framing
    USB: serial: ir-usb: fix link-speed handling
    USB: serial: ir-usb: add missing endpoint sanity check
    usb: typec: fusb302: fix "op-sink-microwatt" default that was in mW
    usb: typec: wcove: fix "op-sink-microwatt" default that was in mW
    usb: dwc3: pci: add ID for the Intel Comet Lake -V variant
    usb: typec: tcpci: mask event interrupts when remove driver
    usb: host: xhci-tegra: set MODULE_FIRMWARE for tegra186
    usb: chipidea: add inline for ci_hdrc_host_driver_init if host is not defined
    usb: chipidea: handle single role for usb role class
    usb: musb: fix spelling mistake: "periperal" -> "peripheral"
    phy: ti: j721e-wiz: Fix build error without CONFIG_OF_ADDRESS
    USB: usbfs: Always unlink URBs in reverse order
    ...

    Linus Torvalds
     

17 Jan, 2020

1 commit

  • If CONFIG_INET is not set and CONFIG_NETDEVSIM=y.
    Building drivers/net/netdevsim/fib.o will get the following error:

    drivers/net/netdevsim/fib.o: In function `nsim_fib4_rt_hw_flags_set':
    fib.c:(.text+0x12b): undefined reference to `fib_alias_hw_flags_set'
    drivers/net/netdevsim/fib.o: In function `nsim_fib4_rt_destroy':
    fib.c:(.text+0xb11): undefined reference to `free_fib_info'

    Correct the Kconfig for netdevsim.

    Reported-by: Hulk Robot
    Fixes: 48bb9eb47b270 ("netdevsim: fib: Add dummy implementation for FIB offload")
    Signed-off-by: Hongbo Yao
    Acked-by: Jakub Kicinski
    Signed-off-by: David S. Miller

    Hongbo Yao
     

15 Jan, 2020

1 commit

  • Implement dummy IPv4 and IPv6 FIB "offload" in the driver by storing
    currently "programmed" routes in a hash table. Each route in the hash
    table is marked with "trap" indication. The indication is cleared when
    the route is replaced or when the netdevsim instance is deleted.

    This will later allow us to test the route offload API on top of
    netdevsim.

    v2:
    * Convert to new fib_alias_hw_flags_set() interface

    Signed-off-by: Ido Schimmel
    Reviewed-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Ido Schimmel
     

18 Dec, 2019

1 commit

  • Since the driver now supports USB4 which is the standard going forward,
    update the Kconfig entry to mention this and rename the entry from
    CONFIG_THUNDERBOLT to CONFIG_USB4 instead to help people to find the
    correct option if they want to enable USB4.

    Also do the same for Thunderbolt network driver.

    Signed-off-by: Mika Westerberg
    Cc: David S. Miller
    Link: https://lore.kernel.org/r/20191217123345.31850-6-mika.westerberg@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman

    Mika Westerberg
     

17 Dec, 2019

1 commit


09 Dec, 2019

1 commit

  • WireGuard is a layer 3 secure networking tunnel made specifically for
    the kernel, that aims to be much simpler and easier to audit than IPsec.
    Extensive documentation and description of the protocol and
    considerations, along with formal proofs of the cryptography, are
    available at:

    * https://www.wireguard.com/
    * https://www.wireguard.com/papers/wireguard.pdf

    This commit implements WireGuard as a simple network device driver,
    accessible in the usual RTNL way used by virtual network drivers. It
    makes use of the udp_tunnel APIs, GRO, GSO, NAPI, and the usual set of
    networking subsystem APIs. It has a somewhat novel multicore queueing
    system designed for maximum throughput and minimal latency of encryption
    operations, but it is implemented modestly using workqueues and NAPI.
    Configuration is done via generic Netlink, and following a review from
    the Netlink maintainer a year ago, several high profile userspace tools
    have already implemented the API.

    This commit also comes with several different tests, both in-kernel
    tests and out-of-kernel tests based on network namespaces, taking profit
    of the fact that sockets used by WireGuard intentionally stay in the
    namespace the WireGuard interface was originally created, exactly like
    the semantics of userspace tun devices. See wireguard.com/netns/ for
    pictures and examples.

    The source code is fairly short, but rather than combining everything
    into a single file, WireGuard is developed as cleanly separable files,
    making auditing and comprehension easier. Things are laid out as
    follows:

    * noise.[ch], cookie.[ch], messages.h: These implement the bulk of the
    cryptographic aspects of the protocol, and are mostly data-only in
    nature, taking in buffers of bytes and spitting out buffers of
    bytes. They also handle reference counting for their various shared
    pieces of data, like keys and key lists.

    * ratelimiter.[ch]: Used as an integral part of cookie.[ch] for
    ratelimiting certain types of cryptographic operations in accordance
    with particular WireGuard semantics.

    * allowedips.[ch], peerlookup.[ch]: The main lookup structures of
    WireGuard, the former being trie-like with particular semantics, an
    integral part of the design of the protocol, and the latter just
    being nice helper functions around the various hashtables we use.

    * device.[ch]: Implementation of functions for the netdevice and for
    rtnl, responsible for maintaining the life of a given interface and
    wiring it up to the rest of WireGuard.

    * peer.[ch]: Each interface has a list of peers, with helper functions
    available here for creation, destruction, and reference counting.

    * socket.[ch]: Implementation of functions related to udp_socket and
    the general set of kernel socket APIs, for sending and receiving
    ciphertext UDP packets, and taking care of WireGuard-specific sticky
    socket routing semantics for the automatic roaming.

    * netlink.[ch]: Userspace API entry point for configuring WireGuard
    peers and devices. The API has been implemented by several userspace
    tools and network management utility, and the WireGuard project
    distributes the basic wg(8) tool.

    * queueing.[ch]: Shared function on the rx and tx path for handling
    the various queues used in the multicore algorithms.

    * send.c: Handles encrypting outgoing packets in parallel on
    multiple cores, before sending them in order on a single core, via
    workqueues and ring buffers. Also handles sending handshake and cookie
    messages as part of the protocol, in parallel.

    * receive.c: Handles decrypting incoming packets in parallel on
    multiple cores, before passing them off in order to be ingested via
    the rest of the networking subsystem with GRO via the typical NAPI
    poll function. Also handles receiving handshake and cookie messages
    as part of the protocol, in parallel.

    * timers.[ch]: Uses the timer wheel to implement protocol particular
    event timeouts, and gives a set of very simple event-driven entry
    point functions for callers.

    * main.c, version.h: Initialization and deinitialization of the module.

    * selftest/*.h: Runtime unit tests for some of the most security
    sensitive functions.

    * tools/testing/selftests/wireguard/netns.sh: Aforementioned testing
    script using network namespaces.

    This commit aims to be as self-contained as possible, implementing
    WireGuard as a standalone module not needing much special handling or
    coordination from the network subsystem. I expect for future
    optimizations to the network stack to positively improve WireGuard, and
    vice-versa, but for the time being, this exists as intentionally
    standalone.

    We introduce a menu option for CONFIG_WIREGUARD, as well as providing a
    verbose debug log and self-tests via CONFIG_WIREGUARD_DEBUG.

    Signed-off-by: Jason A. Donenfeld
    Cc: David Miller
    Cc: Greg KH
    Cc: Linus Torvalds
    Cc: Herbert Xu
    Cc: linux-crypto@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Signed-off-by: David S. Miller

    Jason A. Donenfeld
     

22 Nov, 2019

1 commit


26 Sep, 2019

1 commit


21 May, 2019

1 commit


25 Mar, 2019

1 commit

  • Some drivers are becoming more dependent on NET_DEVLINK being selected
    in configuration. With upcoming compat functions, the behavior would be
    wrong in case devlink was not compiled in. So make the drivers select
    NET_DEVLINK and rely on the functions being there, not just stubs.

    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jiri Pirko
     

19 Mar, 2019

1 commit

  • Similarly to commit a7603ac1fc8c ("geneve: change NET_UDP_TUNNEL
    dependency to select"), GTP has a dependency on NET_UDP_TUNNEL which
    makes impossible to compile it if no other protocol depending on
    NET_UDP_TUNNEL is selected.

    Fix this by changing the depends to a select, and drop NET_IP_TUNNEL from
    the select list, as it already depends on NET_UDP_TUNNEL.

    Signed-off-by: Matteo Croce
    Signed-off-by: David S. Miller

    Matteo Croce
     

27 Feb, 2019

1 commit

  • Being able to build devlink as a module causes growing pains.
    First all drivers had to add a meta dependency to make sure
    they are not built in when devlink is built as a module. Now
    we are struggling to invoke ethtool compat code reliably.

    Make devlink code built-in, users can still not build it at
    all but the dynamically loadable module option is removed.

    Signed-off-by: Jakub Kicinski
    Reviewed-by: Florian Fainelli
    Acked-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jakub Kicinski
     

16 Feb, 2019

1 commit

  • The netfilter conflicts were rather simple overlapping
    changes.

    However, the cls_tcindex.c stuff was a bit more complex.

    On the 'net' side, Cong is fixing several races and memory
    leaks. Whilst on the 'net-next' side we have Vlad adding
    the rtnl-ness support.

    What I've decided to do, in order to resolve this, is revert the
    conversion over to using a workqueue that Cong did, bringing us back
    to pure RCU. I did it this way because I believe that either Cong's
    races don't apply with have Vlad did things, or Cong will have to
    implement the race fix slightly differently.

    Signed-off-by: David S. Miller

    David S. Miller
     

15 Feb, 2019

1 commit

  • Fix the kconfig warning in IPVLAN_L3S when neither INET nor IPV6
    is enabled:

    WARNING: unmet direct dependencies detected for NET_L3_MASTER_DEV
    Depends on [n]: NET [=y] && (INET [=n] || IPV6 [=n])
    Selected by [y]:
    - IPVLAN_L3S [=y] && NETDEVICES [=y] && NET_CORE [=y] && NETFILTER [=y]

    Signed-off-by: Randy Dunlap
    Cc: Mahesh Bandewar
    Cc: Daniel Borkmann
    Acked-by: Daniel Borkmann
    Signed-off-by: David S. Miller

    Randy Dunlap
     

13 Feb, 2019

1 commit

  • Due to the depends on NET_UDP_TUNNEL, at the moment it is impossible to
    compile GENEVE if no other protocol depending on NET_UDP_TUNNEL is
    selected.

    Fix this changing the depends to a select, and drop NET_IP_TUNNEL from the
    select list, as it already depends on NET_UDP_TUNNEL.

    Signed-off-by: Matteo Croce
    Reviewed-and-tested-by: Andrea Claudi
    Tested-by: Davide Caratti
    Signed-off-by: David S. Miller

    Matteo Croce
     

09 Feb, 2019

1 commit

  • Right now ipvlan has a hard dependency on CONFIG_NETFILTER and
    otherwise it cannot be built. However, the only ipvlan operation
    mode that actually depends on netfilter is l3s, everything else
    is independent of it. Break this hard dependency such that users
    are able to use ipvlan l3 mode on systems where netfilter is not
    compiled in.

    Therefore, this adds a hidden CONFIG_IPVLAN_L3S bool which is
    defaulting to y when CONFIG_NETFILTER is set in order to retain
    existing behavior for l3s. All l3s related code is refactored
    into ipvlan_l3s.c that is compiled in when enabled.

    Signed-off-by: Daniel Borkmann
    Cc: Mahesh Bandewar
    Cc: Florian Westphal
    Cc: Martynas Pumputis
    Acked-by: Florian Westphal
    Signed-off-by: David S. Miller

    Daniel Borkmann
     

19 Jan, 2019

1 commit


06 Dec, 2018

1 commit

  • Documentation/networking/ is full of cryptically named files with
    driver documentation. This makes finding interesting information
    at a glance really hard. Move all those files into a directory
    called device_drivers (since not all drivers are for device) and
    fix up references.

    RFC v0.1 -> RFC v1:
    - also add .txt suffix to the files which are missing it (Quentin)

    Signed-off-by: Jakub Kicinski
    Reviewed-by: Quentin Monnet
    Acked-by: David Ahern
    Acked-by: Henrik Austad
    Signed-off-by: David S. Miller

    Jakub Kicinski
     

29 May, 2018

2 commits

  • This patch enables virtio_net to switch over to a VF datapath when STANDBY
    feature is enabled and a VF netdev is present with the same MAC address.
    It allows live migration of a VM with a direct attached VF without the need
    to setup a bond/team between a VF and virtio net device in the guest.

    It uses the API that is exported by the net_failover driver to create and
    and destroy a master failover netdev. When STANDBY feature is enabled, an
    additional netdev(failover netdev) is created that acts as a master device
    and tracks the state of the 2 lower netdevs. The original virtio_net netdev
    is marked as 'standby' netdev and a passthru device with the same MAC is
    registered as 'primary' netdev.

    The hypervisor needs to unplug the VF device from the guest on the source
    host and reset the MAC filter of the VF to initiate failover of datapath
    to virtio before starting the migration. After the migration is completed,
    the destination hypervisor sets the MAC filter on the VF and plugs it back
    to the guest to switch over to VF datapath.

    This patch is based on the discussion initiated by Jesse on this thread.
    https://marc.info/?l=linux-virtualization&m=151189725224231&w=2

    Signed-off-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Sridhar Samudrala
     
  • The net_failover driver provides an automated failover mechanism via APIs
    to create and destroy a failover master netdev and manages a primary and
    standby slave netdevs that get registered via the generic failover
    infrastructure.

    The failover netdev acts a master device and controls 2 slave devices. The
    original paravirtual interface gets registered as 'standby' slave netdev and
    a passthru/vf device with the same MAC gets registered as 'primary' slave
    netdev. Both 'standby' and 'failover' netdevs are associated with the same
    'pci' device. The user accesses the network interface via 'failover' netdev.
    The 'failover' netdev chooses 'primary' netdev as default for transmits when
    it is available with link up and running.

    This can be used by paravirtual drivers to enable an alternate low latency
    datapath. It also enables hypervisor controlled live migration of a VM with
    direct attached VF by failing over to the paravirtual datapath when the VF
    is unplugged.

    Signed-off-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Sridhar Samudrala
     

28 Apr, 2018

1 commit

  • Commit c40e89fd358e ("geneve: configure MTU based on a lower device") added
    an IS_ENABLED(CONFIG_IPV6) to geneve, leading to the following link error
    with CONFIG_GENEVE=y and CONFIG_IPV6=m:

    drivers/net/geneve.o: In function `geneve_link_config':
    geneve.c:(.text+0x14c): undefined reference to `rt6_lookup'

    Fix this by adding a Kconfig dependency and forcing GENEVE to be a module
    when IPV6 is a module.

    Fixes: c40e89fd358e ("geneve: configure MTU based on a lower device")
    Signed-off-by: Tobias Regnery
    Signed-off-by: David S. Miller

    Tobias Regnery
     

30 Mar, 2018

1 commit

  • Add devlink support to netdevsim and use it to implement a simple,
    profile based resource controller. Only one controller is needed
    per namespace, so the first netdevsim netdevice in a namespace
    registers with devlink. If that device is deleted, the resource
    settings are deleted.

    The resource controller allows a user to limit the number of IPv4 and
    IPv6 FIB entries and FIB rules. The resource paths are:
    /IPv4
    /IPv4/fib
    /IPv4/fib-rules
    /IPv6
    /IPv6/fib
    /IPv6/fib-rules

    The IPv4 and IPv6 top level resources are unlimited in size and can not
    be changed. From there, the number of FIB entries and FIB rule entries
    are unlimited by default. A user can specify a limit for the fib and
    fib-rules resources:

    $ devlink resource set netdevsim/netdevsim0 path /IPv4/fib size 96
    $ devlink resource set netdevsim/netdevsim0 path /IPv4/fib-rules size 16
    $ devlink resource set netdevsim/netdevsim0 path /IPv6/fib size 64
    $ devlink resource set netdevsim/netdevsim0 path /IPv6/fib-rules size 16
    $ devlink dev reload netdevsim/netdevsim0

    such that the number of rules or routes is limited (96 ipv4 routes in the
    example above):
    $ for n in $(seq 1 32); do ip ro add 10.99.$n.0/24 dev eth1; done
    Error: netdevsim: Exceeded number of supported fib entries.

    $ devlink resource show netdevsim/netdevsim0
    netdevsim/netdevsim0:
    name IPv4 size unlimited unit entry size_min 0 size_max unlimited size_gran 1 dpipe_tables non
    resources:
    name fib size 96 occ 96 unit entry size_min 0 size_max unlimited size_gran 1 dpipe_tables
    ...

    With this template in place for resource management, it is fairly trivial
    to extend and shows one way to implement a simple counter based resource
    controller typical of network profiles.

    Currently, devlink only supports initial namespace. Code is in place to
    adapt netdevsim to a per namespace controller once the network namespace
    issues are resolved.

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

    David Ahern
     

27 Feb, 2018

1 commit

  • We no longer depend on IPV6, but that now causes a link error with
    CONFIG_IPV6=m and CONFIG_IPVLAN=y:

    drivers/net/ipvlan/ipvlan_core.o: In function `ipvlan_queue_xmit':
    ipvlan_core.c:(.text+0x1440): undefined reference to `ip6_route_output_flags'
    drivers/net/ipvlan/ipvlan_core.o: In function `ipvlan_l3_rcv':
    ipvlan_core.c:(.text+0x1818): undefined reference to `ip6_route_input_lookup'

    This adds back the dependency on IPV6, with the option of building without
    IPV6, but forcing IPVLAN to be a module when IPV6 is a module.

    Fixes: 94333fac44d1 ("ipvlan: drop ipv6 dependency")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: David S. Miller

    Arnd Bergmann
     

22 Feb, 2018

2 commits