13 Mar, 2020

1 commit

  • This commit adds a test to check if we can fully utilize 4-tuples for
    connect() when all ephemeral ports are exhausted.

    The test program changes the local port range to use only one port and binds
    two sockets with or without SO_REUSEADDR and SO_REUSEPORT, and with the same
    EUID or with different EUIDs, then do listen().

    We should be able to bind only one socket having both SO_REUSEADDR and
    SO_REUSEPORT per EUID, which restriction is to prevent unintentional
    listen().

    Signed-off-by: Kuniyuki Iwashima
    Signed-off-by: David S. Miller

    Kuniyuki Iwashima
     

10 Mar, 2020

1 commit

  • allows to run the tests with fixed receive buffer by passing
    "-R " to mptcp_connect.sh.

    While at it, add a default 10 second poll timeout so the "-t"
    becomes optional -- this makes mptcp_connect simpler to use
    during manual testing.

    Signed-off-by: Florian Westphal
    Signed-off-by: David S. Miller

    Florian Westphal
     

06 Mar, 2020

3 commits


04 Mar, 2020

4 commits


01 Mar, 2020

1 commit

  • Alexei Starovoitov says:

    ====================
    pull-request: bpf-next 2020-02-28

    The following pull-request contains BPF updates for your *net-next* tree.

    We've added 41 non-merge commits during the last 7 day(s) which contain
    a total of 49 files changed, 1383 insertions(+), 499 deletions(-).

    The main changes are:

    1) BPF and Real-Time nicely co-exist.

    2) bpftool feature improvements.

    3) retrieve bpf_sk_storage via INET_DIAG.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

28 Feb, 2020

18 commits

  • The mptcp conflict was overlapping additions.

    The SMC conflict was an additional and removal happening at the same
    time.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pull networking fixes from David Miller:

    1) Fix leak in nl80211 AP start where we leak the ACL memory, from
    Johannes Berg.

    2) Fix double mutex unlock in mac80211, from Andrei Otcheretianski.

    3) Fix RCU stall in ipset, from Jozsef Kadlecsik.

    4) Fix devlink locking in devlink_dpipe_table_register, from Madhuparna
    Bhowmik.

    5) Fix race causing TX hang in ll_temac, from Esben Haabendal.

    6) Stale eth hdr pointer in br_dev_xmit(), from Nikolay Aleksandrov.

    7) Fix TX hash calculation bounds checking wrt. tc rules, from Amritha
    Nambiar.

    8) Size netlink responses properly in schedule action code to take into
    consideration TCA_ACT_FLAGS. From Jiri Pirko.

    9) Fix firmware paths for mscc PHY driver, from Antoine Tenart.

    10) Don't register stmmac notifier multiple times, from Aaro Koskinen.

    11) Various rmnet bug fixes, from Taehee Yoo.

    12) Fix vsock deadlock in vsock transport release, from Stefano
    Garzarella.

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (61 commits)
    net: dsa: mv88e6xxx: Fix masking of egress port
    mlxsw: pci: Wait longer before accessing the device after reset
    sfc: fix timestamp reconstruction at 16-bit rollover points
    vsock: fix potential deadlock in transport->release()
    unix: It's CONFIG_PROC_FS not CONFIG_PROCFS
    net: rmnet: fix packet forwarding in rmnet bridge mode
    net: rmnet: fix bridge mode bugs
    net: rmnet: use upper/lower device infrastructure
    net: rmnet: do not allow to change mux id if mux id is duplicated
    net: rmnet: remove rcu_read_lock in rmnet_force_unassociate_device()
    net: rmnet: fix suspicious RCU usage
    net: rmnet: fix NULL pointer dereference in rmnet_changelink()
    net: rmnet: fix NULL pointer dereference in rmnet_newlink()
    net: phy: marvell: don't interpret PHY status unless resolved
    mlx5: register lag notifier for init network namespace only
    unix: define and set show_fdinfo only if procfs is enabled
    hinic: fix a bug of rss configuration
    hinic: fix a bug of setting hw_ioctxt
    hinic: fix a irq affinity bug
    net/smc: check for valid ib_client_data
    ...

    Linus Torvalds
     
  • The scale test for Spectrum-2 should be invoked for Spectrum-2 and
    Spectrum-3. Add the appropriate device ID.

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

    Amit Cohen
     
  • Currently, the test inserts X /32 routes and for each route it is
    testing that a packet sent from the first host is received by the second
    host, which is very time-consuming.

    Instead only validate the offload flag of each route and get the same result.

    Wait between the creation of the routes and the offload validation in
    order to make sure that all the routes were successfully offloaded.

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

    Danielle Ratson
     
  • After adding a given number of flower rules for different IPv6
    addresses, the test generates traffic and ensures that each packet is
    received, which is time-consuming.

    Instead, test the offload indication of the tc flower rules and reduce
    the running time by half.

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

    Danielle Ratson
     
  • Test the max shared buffer occupancy for port's pool and port's TC's (using
    different types of packets).

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

    Shalom Toledo
     
  • Add mlxsw lib for common defines, helpers etc.

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

    Shalom Toledo
     
  • Add two devlink port helpers:
    * devlink port get by netdev
    * devlink cpu port get

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

    Shalom Toledo
     
  • Sanity check for devlink info command.

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

    Shalom Toledo
     
  • Test physical ports' shared buffer configuration options using random
    values related to a specific configuration option. There are 3
    configuration options: pool, TC bind and portpool.

    Each sub-test, test a different configuration option and random the related
    values as the follow:
    * For pools, pool's size will be randomized.
    * For TC bind, pool number and threshold will be randomized.
    * For portpools, threshold will be randomized.

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

    Shalom Toledo
     
  • Rtnetlink test uses offload indication checks.

    Use a busywait helper and wait until the offload indication is set or
    fail if it reaches timeout.

    Signed-off-by: Danielle Ratson
    Reviewed-by: Petr Machata
    Signed-off-by: Ido Schimmel
    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Danielle Ratson
     
  • Vxlan test uses offload indication checks.

    Use a busywait helper and wait until the offload indication is set or
    fail if it reaches timeout.

    Signed-off-by: Danielle Ratson
    Reviewed-by: Petr Machata
    Signed-off-by: Ido Schimmel
    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Danielle Ratson
     
  • Blackhole routes test uses offload indication checks.

    Use busywait helper and wait until the routes offload indication is set or
    fail if it reaches timeout.

    Signed-off-by: Danielle Ratson
    Reviewed-by: Petr Machata
    Signed-off-by: Ido Schimmel
    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Danielle Ratson
     
  • The test checks that packets are trapped when they should egress a
    router interface (RIF) that has become disabled. This is a temporary
    state in a RIF's deletion sequence.

    Currently, the test deletes the RIF by flushing all the IP addresses
    configured on the associated netdev (br0). However, this is racy, as
    this also flushes all the routes pointing to the netdev and if the
    routes are deleted from the device before the RIF is disabled, then no
    packets will try to egress the disabled RIF and the trap will not be
    triggered.

    Instead, trigger the deletion of the RIF by unlinking the mlxsw port
    from the bridge that is backing the RIF. Unlike before, this will not
    cause the kernel to delete the routes pointing to the bridge.

    Note that due to current mlxsw locking scheme the RIF is always deleted
    first, but this is going to change.

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

    Ido Schimmel
     
  • Include test of forbidding to have multiple mirror actions.

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

    Jiri Pirko
     
  • Include test of forbidding to have redirect rule on egress-bound block.

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

    Jiri Pirko
     
  • This tests that below the queue minimum length, there is no dropping /
    marking, and above max, everything is dropped / marked.

    The test is structured as a core file with topology and test code, and
    three wrappers: one for RED used as a root Qdisc, and two for
    testing (W)RED under PRIO and ETS.

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

    Petr Machata
     
  • Extract a helper __start_traffic() configurable by protocol type. Allow
    passing through extra mausezahn arguments. Add a wrapper,
    start_tcp_traffic().

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

    Petr Machata
     

27 Feb, 2020

8 commits

  • Pull tracing and bootconfig updates:
    "Fixes and changes to bootconfig before it goes live in a release.

    Change in API of bootconfig (before it comes live in a release):
    - Have a magic value "BOOTCONFIG" in initrd to know a bootconfig
    exists
    - Set CONFIG_BOOT_CONFIG to 'n' by default
    - Show error if "bootconfig" on cmdline but not compiled in
    - Prevent redefining the same value
    - Have a way to append values
    - Added a SELECT BLK_DEV_INITRD to fix a build failure

    Synthetic event fixes:
    - Switch to raw_smp_processor_id() for recording CPU value in preempt
    section. (No care for what the value actually is)
    - Fix samples always recording u64 values
    - Fix endianess
    - Check number of values matches number of fields
    - Fix a printing bug

    Fix of trace_printk() breaking postponed start up tests

    Make a function static that is only used in a single file"

    * tag 'trace-v5.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    bootconfig: Fix CONFIG_BOOTTIME_TRACING dependency issue
    bootconfig: Add append value operator support
    bootconfig: Prohibit re-defining value on same key
    bootconfig: Print array as multiple commands for legacy command line
    bootconfig: Reject subkey and value on same parent key
    tools/bootconfig: Remove unneeded error message silencer
    bootconfig: Add bootconfig magic word for indicating bootconfig explicitly
    bootconfig: Set CONFIG_BOOT_CONFIG=n by default
    tracing: Clear trace_state when starting trace
    bootconfig: Mark boot_config_checksum() static
    tracing: Disable trace_printk() on post poned tests
    tracing: Have synthetic event test use raw_smp_processor_id()
    tracing: Fix number printing bug in print_synth_event()
    tracing: Check that number of vals matches number of synth event fields
    tracing: Make synth_event trace functions endian-correct
    tracing: Make sure synth_event_trace() example always uses u64

    Linus Torvalds
     
  • …kernel/git/shuah/linux-kselftest

    Pull Kunit fixes from Shuah Khan:
    "This Kselftest kunit update consists of fixes to documentation and
    the run-time tool from Brendan Higgins and Heidi Fahim"

    * tag 'linux-kselftest-kunit-5.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    kunit: run kunit_tool from any directory
    kunit: test: Improve error messages for kunit_tool when kunitconfig is invalid
    Documentation: kunit: fixed sphinx error in code block

    Linus Torvalds
     
  • …/git/shuah/linux-kselftest

    Pull Kselftest fixes from Shuah Khan:

    - fixes to TIMEOUT failures and out-of-tree compilation compilation
    errors from Michael Ellerman.

    - declutter git status fix from Christophe Leroy

    * tag 'linux-kselftest-5.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    selftests/rseq: Fix out-of-tree compilation
    selftests: Install settings files to fix TIMEOUT failures
    selftest/lkdtm: Don't pollute 'git status'

    Linus Torvalds
     
  • Add Python module with tests for "bpftool feature" command, which mainly
    checks whether the "full" option is working properly.

    Signed-off-by: Michal Rostecki
    Signed-off-by: Daniel Borkmann
    Reviewed-by: Quentin Monnet
    Link: https://lore.kernel.org/bpf/20200226165941.6379-6-mrostecki@opensuse.org

    Michal Rostecki
     
  • Update bash completion for "bpftool feature" command with the new
    argument: "full".

    Signed-off-by: Michal Rostecki
    Signed-off-by: Daniel Borkmann
    Reviewed-by: Quentin Monnet
    Link: https://lore.kernel.org/bpf/20200226165941.6379-5-mrostecki@opensuse.org

    Michal Rostecki
     
  • Update documentation of "bpftool feature" command with information about
    new arguments: "full".

    Signed-off-by: Michal Rostecki
    Signed-off-by: Daniel Borkmann
    Reviewed-by: Quentin Monnet
    Link: https://lore.kernel.org/bpf/20200226165941.6379-4-mrostecki@opensuse.org

    Michal Rostecki
     
  • Probes related to bpf_probe_write_user and bpf_trace_printk helpers emit
    dmesg warnings which might be confusing for people running bpftool on
    production environments. This change filters them out by default and
    introduces the new positional argument "full" which enables all
    available probes.

    Signed-off-by: Michal Rostecki
    Signed-off-by: Daniel Borkmann
    Reviewed-by: Quentin Monnet
    Link: https://lore.kernel.org/bpf/20200226165941.6379-3-mrostecki@opensuse.org

    Michal Rostecki
     
  • Remove all calls of print_end_then_start_section function and for loops
    out from the do_probe function. Instead, provide separate functions for
    each section (like i.e. section_helpers) which are called in do_probe.
    This change is motivated by better readability.

    Signed-off-by: Michal Rostecki
    Signed-off-by: Daniel Borkmann
    Reviewed-by: Quentin Monnet
    Link: https://lore.kernel.org/bpf/20200226165941.6379-2-mrostecki@opensuse.org

    Michal Rostecki
     

26 Feb, 2020

4 commits

  • Add support for prog types that were added to kernel but not present in
    bpftool yet: struct_ops, tracing, ext prog types and corresponding
    section names.

    Before:
    # bpftool p l
    ...
    184: type 26 name test_subprog3 tag dda135a7dc0daf54 gpl
    loaded_at 2020-02-25T13:28:33-0800 uid 0
    xlated 112B jited 103B memlock 4096B map_ids 136
    btf_id 85
    185: type 28 name new_get_skb_len tag d2de5b87d8e5dc49 gpl
    loaded_at 2020-02-25T13:28:33-0800 uid 0
    xlated 72B jited 69B memlock 4096B map_ids 136
    btf_id 85

    After:
    # bpftool p l
    ...
    184: tracing name test_subprog3 tag dda135a7dc0daf54 gpl
    loaded_at 2020-02-25T13:28:33-0800 uid 0
    xlated 112B jited 103B memlock 4096B map_ids 136
    btf_id 85
    185: ext name new_get_skb_len tag d2de5b87d8e5dc49 gpl
    loaded_at 2020-02-25T13:28:33-0800 uid 0
    xlated 72B jited 69B memlock 4096B map_ids 136
    btf_id 85

    Signed-off-by: Andrey Ignatov
    Signed-off-by: Daniel Borkmann
    Reviewed-by: Quentin Monnet
    Acked-by: Song Liu
    Link: https://lore.kernel.org/bpf/20200225223441.689109-1-rdna@fb.com

    Andrey Ignatov
     
  • Add a specific test for the crash reported by Phil Sutter and addressed
    in the previous patch. The test cases that, in my intention, should
    have covered these cases, that is, the ones from the 'concurrency'
    section, don't run these sequences tightly enough and spectacularly
    failed to catch this.

    While at it, define a convenient way to add these kind of tests, by
    adding a "reported issues" test section.

    It's more convenient, for this particular test, to execute the set
    setup in its own function. However, future test cases like this one
    might need to call setup functions, and will typically need no tools
    other than nft, so allow for this in check_tools().

    The original form of the reproducer used here was provided by Phil.

    Reported-by: Phil Sutter
    Signed-off-by: Stefano Brivio
    Signed-off-by: Pablo Neira Ayuso

    Stefano Brivio
     
  • Due to various bugs in tests clean up code (usually), if host system is
    misconfigured, it happens that test_progs will just crash in the middle of
    running a test with little to no indication of where and why the crash
    happened. For cases where coredump is not readily available (e.g., inside
    a CI), it's very helpful to have a stack trace, which lead to crash, to be
    printed out. This change adds a signal handler that will capture and print out
    symbolized backtrace:

    $ sudo ./test_progs -t mmap
    test_mmap:PASS:skel_open_and_load 0 nsec
    test_mmap:PASS:bss_mmap 0 nsec
    test_mmap:PASS:data_mmap 0 nsec
    Caught signal #11!
    Stack trace:
    ./test_progs(crash_handler+0x18)[0x42a888]
    /lib64/libpthread.so.0(+0xf5d0)[0x7f2aab5175d0]
    ./test_progs(test_mmap+0x3c0)[0x41f0a0]
    ./test_progs(main+0x160)[0x407d10]
    /lib64/libc.so.6(__libc_start_main+0xf5)[0x7f2aab15d3d5]
    ./test_progs[0x407ebc]
    [1] 1988412 segmentation fault (core dumped) sudo ./test_progs -t mmap

    Unfortunately, glibc's symbolization support is unable to symbolize static
    functions, only global ones will be present in stack trace. But it's still a
    step forward without adding extra libraries to get a better symbolization.

    Signed-off-by: Andrii Nakryiko
    Signed-off-by: Daniel Borkmann
    Acked-by: Song Liu
    Link: https://lore.kernel.org/bpf/20200225000847.3965188-1-andriin@fb.com

    Andrii Nakryiko
     
  • Extend existing devlink trap test to include metadata type for flow
    action cookie.

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

    Jiri Pirko