26 Jul, 2019

1 commit


12 Jul, 2019

1 commit

  • Pull networking updates from David Miller:
    "Some highlights from this development cycle:

    1) Big refactoring of ipv6 route and neigh handling to support
    nexthop objects configurable as units from userspace. From David
    Ahern.

    2) Convert explored_states in BPF verifier into a hash table,
    significantly decreased state held for programs with bpf2bpf
    calls, from Alexei Starovoitov.

    3) Implement bpf_send_signal() helper, from Yonghong Song.

    4) Various classifier enhancements to mvpp2 driver, from Maxime
    Chevallier.

    5) Add aRFS support to hns3 driver, from Jian Shen.

    6) Fix use after free in inet frags by allocating fqdirs dynamically
    and reworking how rhashtable dismantle occurs, from Eric Dumazet.

    7) Add act_ctinfo packet classifier action, from Kevin
    Darbyshire-Bryant.

    8) Add TFO key backup infrastructure, from Jason Baron.

    9) Remove several old and unused ISDN drivers, from Arnd Bergmann.

    10) Add devlink notifications for flash update status to mlxsw driver,
    from Jiri Pirko.

    11) Lots of kTLS offload infrastructure fixes, from Jakub Kicinski.

    12) Add support for mv88e6250 DSA chips, from Rasmus Villemoes.

    13) Various enhancements to ipv6 flow label handling, from Eric
    Dumazet and Willem de Bruijn.

    14) Support TLS offload in nfp driver, from Jakub Kicinski, Dirk van
    der Merwe, and others.

    15) Various improvements to axienet driver including converting it to
    phylink, from Robert Hancock.

    16) Add PTP support to sja1105 DSA driver, from Vladimir Oltean.

    17) Add mqprio qdisc offload support to dpaa2-eth, from Ioana
    Radulescu.

    18) Add devlink health reporting to mlx5, from Moshe Shemesh.

    19) Convert stmmac over to phylink, from Jose Abreu.

    20) Add PTP PHC (Physical Hardware Clock) support to mlxsw, from
    Shalom Toledo.

    21) Add nftables SYNPROXY support, from Fernando Fernandez Mancera.

    22) Convert tcp_fastopen over to use SipHash, from Ard Biesheuvel.

    23) Track spill/fill of constants in BPF verifier, from Alexei
    Starovoitov.

    24) Support bounded loops in BPF, from Alexei Starovoitov.

    25) Various page_pool API fixes and improvements, from Jesper Dangaard
    Brouer.

    26) Just like ipv4, support ref-countless ipv6 route handling. From
    Wei Wang.

    27) Support VLAN offloading in aquantia driver, from Igor Russkikh.

    28) Add AF_XDP zero-copy support to mlx5, from Maxim Mikityanskiy.

    29) Add flower GRE encap/decap support to nfp driver, from Pieter
    Jansen van Vuuren.

    30) Protect against stack overflow when using act_mirred, from John
    Hurley.

    31) Allow devmap map lookups from eBPF, from Toke Høiland-Jørgensen.

    32) Use page_pool API in netsec driver, Ilias Apalodimas.

    33) Add Google gve network driver, from Catherine Sullivan.

    34) More indirect call avoidance, from Paolo Abeni.

    35) Add kTLS TX HW offload support to mlx5, from Tariq Toukan.

    36) Add XDP_REDIRECT support to bnxt_en, from Andy Gospodarek.

    37) Add MPLS manipulation actions to TC, from John Hurley.

    38) Add sending a packet to connection tracking from TC actions, and
    then allow flower classifier matching on conntrack state. From
    Paul Blakey.

    39) Netfilter hw offload support, from Pablo Neira Ayuso"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (2080 commits)
    net/mlx5e: Return in default case statement in tx_post_resync_params
    mlx5: Return -EINVAL when WARN_ON_ONCE triggers in mlx5e_tls_resync().
    net: dsa: add support for BRIDGE_MROUTER attribute
    pkt_sched: Include const.h
    net: netsec: remove static declaration for netsec_set_tx_de()
    net: netsec: remove superfluous if statement
    netfilter: nf_tables: add hardware offload support
    net: flow_offload: rename tc_cls_flower_offload to flow_cls_offload
    net: flow_offload: add flow_block_cb_is_busy() and use it
    net: sched: remove tcf block API
    drivers: net: use flow block API
    net: sched: use flow block API
    net: flow_offload: add flow_block_cb_{priv, incref, decref}()
    net: flow_offload: add list handling functions
    net: flow_offload: add flow_block_cb_alloc() and flow_block_cb_free()
    net: flow_offload: rename TCF_BLOCK_BINDER_TYPE_* to FLOW_BLOCK_BINDER_TYPE_*
    net: flow_offload: rename TC_BLOCK_{UN}BIND to FLOW_BLOCK_{UN}BIND
    net: flow_offload: add flow_block_cb_setup_simple()
    net: hisilicon: Add an tx_desc to adapt HI13X1_GMAC
    net: hisilicon: Add an rx_desc to adapt HI13X1_GMAC
    ...

    Linus Torvalds
     

28 Jun, 2019

1 commit

  • Provide user documentation about sockopt prog type and cgroup hooks.

    v9:
    * add details about setsockopt context and inheritance

    v7:
    * add description for retval=0 and optlen=-1

    v6:
    * describe cgroup chaining, add example

    v2:
    * use return code 2 for kernel bypass

    Cc: Andrii Nakryiko
    Cc: Martin Lau
    Signed-off-by: Stanislav Fomichev
    Signed-off-by: Alexei Starovoitov

    Stanislav Fomichev
     

15 Jun, 2019

1 commit


09 Jun, 2019

1 commit


01 Jun, 2019

1 commit

  • There has been quite a few progress around the two steps mentioned in the
    answer to the following question:

    Q: BPF 32-bit subregister requirements

    This patch updates the answer to reflect what has been done.

    v2:
    - Add missing full stop. (Song Liu)
    - Minor tweak on one sentence. (Song Liu)

    v1:
    - Integrated rephrase from Quentin and Jakub

    Reviewed-by: Quentin Monnet
    Reviewed-by: Jakub Kicinski
    Signed-off-by: Jiong Wang
    Acked-by: Song Liu
    Signed-off-by: Alexei Starovoitov

    Jiong Wang
     

14 May, 2019

1 commit


10 May, 2019

1 commit


23 Apr, 2019

1 commit


19 Apr, 2019

2 commits

  • In commit da7031491786 ("bpf: Document BPF_PROG_TYPE_CGROUP_SYSCTL")
    Andrey proposes to put per-prog type docs under Documentation/bpf/

    Let's move flow dissector documentation there as well.

    Signed-off-by: Stanislav Fomichev
    Signed-off-by: Alexei Starovoitov

    Stanislav Fomichev
     
  • Add documentation for BPF_PROG_TYPE_CGROUP_SYSCTL, including general
    info, attach type, context, return code, helpers, example and usage
    considerations.

    A separate file prog_cgroup_sysctl.rst is added to Documentation/bpf/.

    In the future more program types can be documented in their own
    prog_.rst files.

    Another way to place program type specific documentation would be to
    group program types somehow (e.g. cgroup.rst for all cgroup-bpf
    programs), but it may not scale well since some program types may belong
    to different groups, e.g. BPF_PROG_TYPE_CGROUP_SKB can be documented
    together with either cgroup-bpf programs or programs that access skb.

    The new file is added to the index and verified by `make htmldocs` /
    sanity-check by lynx.

    Signed-off-by: Andrey Ignatov
    Acked-by: Yonghong Song
    Signed-off-by: Alexei Starovoitov

    Andrey Ignatov
     

12 Apr, 2019

1 commit

  • Daniel Borkmann says:

    ====================
    pull-request: bpf-next 2019-04-12

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

    The main changes are:

    1) Improve BPF verifier scalability for large programs through two
    optimizations: i) remove verifier states that are not useful in pruning,
    ii) stop walking parentage chain once first LIVE_READ is seen. Combined
    gives approx 20x speedup. Increase limits for accepting large programs
    under root, and add various stress tests, from Alexei.

    2) Implement global data support in BPF. This enables static global variables
    for .data, .rodata and .bss sections to be properly handled which allows
    for more natural program development. This also opens up the possibility
    to optimize program workflow by compiling ELFs only once and later only
    rewriting section data before reload, from Daniel and with test cases and
    libbpf refactoring from Joe.

    3) Add config option to generate BTF type info for vmlinux as part of the
    kernel build process. DWARF debug info is converted via pahole to BTF.
    Latter relies on libbpf and makes use of BTF deduplication algorithm which
    results in 100x savings compared to DWARF data. Resulting .BTF section is
    typically about 2MB in size, from Andrii.

    4) Add BPF verifier support for stack access with variable offset from
    helpers and add various test cases along with it, from Andrey.

    5) Extend bpf_skb_adjust_room() growth BPF helper to mark inner MAC header
    so that L2 encapsulation can be used for tc tunnels, from Alan.

    6) Add support for input __sk_buff context in BPF_PROG_TEST_RUN so that
    users can define a subset of allowed __sk_buff fields that get fed into
    the test program, from Stanislav.

    7) Add bpf fs multi-dimensional array tests for BTF test suite and fix up
    various UBSAN warnings in bpftool, from Yonghong.

    8) Generate a pkg-config file for libbpf, from Luca.

    9) Dump program's BTF id in bpftool, from Prashant.

    10) libbpf fix to use smaller BPF log buffer size for AF_XDP's XDP
    program, from Magnus.

    11) kallsyms related fixes for the case when symbols are not present in
    BPF selftests and samples, from Daniel
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

10 Apr, 2019

1 commit

  • This adds the BTF specification and UAPI bits for supporting BTF Var
    and DataSec kinds. This is following LLVM upstream commit ac4082b77e07
    ("[BPF] Add BTF Var and DataSec Support") which has been merged recently.
    Var itself is for describing a global variable and DataSec to describe
    ELF sections e.g. data/bss/rodata sections that hold one or multiple
    global variables.

    Signed-off-by: Daniel Borkmann
    Acked-by: Martin KaFai Lau
    Signed-off-by: Alexei Starovoitov

    Daniel Borkmann
     

27 Mar, 2019

1 commit

  • Section 2.2.1 BTF_KIND_INT a bullet list was collapsed due to
    text reflow in commit 9ab5305dbe3f ("docs/btf: reflow text to
    fill up to 78 characters").

    This patch correct the mistake. Also adjust next bullet list,
    which is used for comparison, to get rendered the same way.

    Fixes: 9ab5305dbe3f ("docs/btf: reflow text to fill up to 78 characters")
    Link: https://www.kernel.org/doc/html/latest/bpf/btf.html#btf-kind-int
    Signed-off-by: Jesper Dangaard Brouer
    Acked-by: Andrii Nakryiko
    Signed-off-by: Alexei Starovoitov

    Jesper Dangaard Brouer
     

02 Mar, 2019

3 commits


23 Jan, 2019

1 commit


08 Jan, 2019

1 commit


08 Aug, 2018

1 commit

  • Daniel Borkmann says:

    ====================
    pull-request: bpf-next 2018-08-07

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

    The main changes are:

    1) Add cgroup local storage for BPF programs, which provides a fast
    accessible memory for storing various per-cgroup data like number
    of transmitted packets, etc, from Roman.

    2) Support bpf_get_socket_cookie() BPF helper in several more program
    types that have a full socket available, from Andrey.

    3) Significantly improve the performance of perf events which are
    reported from BPF offload. Also convert a couple of BPF AF_XDP
    samples overto use libbpf, both from Jakub.

    4) seg6local LWT provides the End.DT6 action, which allows to
    decapsulate an outer IPv6 header containing a Segment Routing Header.
    Adds this action now to the seg6local BPF interface, from Mathieu.

    5) Do not mark dst register as unbounded in MOV64 instruction when
    both src and dst register are the same, from Arthur.

    6) Define u_smp_rmb() and u_smp_wmb() to their respective barrier
    instructions on arm64 for the AF_XDP sample code, from Brian.

    7) Convert the tcp_client.py and tcp_server.py BPF selftest scripts
    over from Python 2 to Python 3, from Jeremy.

    8) Enable BTF build flags to the BPF sample code Makefile, from Taeung.

    9) Remove an unnecessary rcu_read_lock() in run_lwt_bpf(), from Taehee.

    10) Several improvements to the README.rst from the BPF documentation
    to make it more consistent with RST format, from Tobin.

    11) Replace all occurrences of strerror() by calls to strerror_r()
    in libbpf and fix a FORTIFY_SOURCE build error along with it,
    from Thomas.

    12) Fix a bug in bpftool's get_btf() function to correctly propagate
    an error via PTR_ERR(), from Yue.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

27 Jul, 2018

4 commits

  • The majority of files in the kernel documentation index use
    capitalisation for all words, especially the shorter ones. BPF docs
    better fit in with the rest of the documentation if the heading is all
    capitalised.

    Capitalise document heading.

    Signed-off-by: Tobin C. Harding
    Signed-off-by: Daniel Borkmann

    Tobin C. Harding
     
  • Recently bpf/ docs were converted to us RST format. bp/index.rst was
    created out of README but toctree was not added to include files within
    Documentation/bpf/

    Add toctree to Documentation/bpf/index.rst

    Signed-off-by: Tobin C. Harding
    Signed-off-by: Daniel Borkmann

    Tobin C. Harding
     
  • Recently bpf/ docs were converted to use RST format. 'README.rst' was
    created but in order to fit in with the Sphinx build system this file
    should be named 'index.rst'. Rename file, fixes to integrate into
    Sphinx build system in following patches.

    docs: Rename Documentation/bpf/README.rst to Documentation/bpf/index.rst

    Signed-off-by: Tobin C. Harding
    Signed-off-by: Daniel Borkmann

    Tobin C. Harding
     
  • File 'Documentation/networking/netdev-FAQ.txt' has been converted to RST
    format. We should update all links/references to point to the new file.

    Update references to netdev-FAQ

    Signed-off-by: Tobin C. Harding
    Signed-off-by: David S. Miller

    Tobin C. Harding
     

15 May, 2018

5 commits

  • I always forget howto run the BPF selftests. Thus, lets add that info
    to the QA document.

    Documentation was based on Cilium's documentation:
    http://cilium.readthedocs.io/en/latest/bpf/#verifying-the-setup

    Signed-off-by: Jesper Dangaard Brouer
    Signed-off-by: Alexei Starovoitov

    Jesper Dangaard Brouer
     
  • Same story as bpf_design_QA.rst RST format conversion.

    Again thanks to Quentin Monnet for
    fixes and patches that have been squashed.

    Signed-off-by: Jesper Dangaard Brouer
    Signed-off-by: Alexei Starovoitov

    Jesper Dangaard Brouer
     
  • The RST formatting is done such that that when rendered or converted
    to different formats, an automatic index with links are created to the
    subsections.

    Thus, the questions are created as sections (or subsections), in-order
    to get the wanted auto-generated FAQ/QA index.

    Special thanks to Quentin Monnet who
    have reviewed and corrected both RST formatting and GitHub rendering
    issues in this file. Those commits have been squashed.

    I've manually tested that this also renders nicely if included as part
    of the kernel 'make htmldocs'. As the end-goal is for this to become
    more integrated with kernel-doc project/movement.

    Signed-off-by: Jesper Dangaard Brouer
    Signed-off-by: Alexei Starovoitov

    Jesper Dangaard Brouer
     
  • This will cause them to get auto rendered, e.g. when viewing them on GitHub.
    Followup patches will correct the content to be RST compliant.

    Also adjust README.rst to point to the renamed files.

    Signed-off-by: Jesper Dangaard Brouer
    Signed-off-by: Alexei Starovoitov

    Jesper Dangaard Brouer
     
  • A README.rst file in a directory have special meaning for sites like
    github, which auto renders the contents. Plus search engines like
    Google also index these README.rst files.

    Auto rendering allow us to use links, for (re)directing eBPF users to
    other places where docs live. The end-goal would be to direct users
    towards https://www.kernel.org/doc/html/latest but we haven't written
    the full docs yet, so we start out small and take this incrementally.

    This directory itself contains some useful docs, which can be linked
    to from the README.rst file (verified this works for github).

    Signed-off-by: Jesper Dangaard Brouer
    Signed-off-by: Alexei Starovoitov

    Jesper Dangaard Brouer
     

24 Apr, 2018

1 commit

  • BPF_PROG_TYPE_SK_MSG programs use a 'void *' for both data and the
    data_end pointers. Additionally, the verifier ensures that every
    accesses into the values is a __u64 read. This correctly maps on
    to the BPF 64-bit architecture.

    However, to ensure that when building on 32bit architectures that
    clang uses correct types the '-target bpf' option _must_ be
    specified. To make this clear add a note to the Documentation.

    Signed-off-by: John Fastabend
    Acked-by: Alexei Starovoitov
    Signed-off-by: Daniel Borkmann

    John Fastabend
     

21 Mar, 2018

1 commit


02 Feb, 2018

1 commit


07 Dec, 2017

1 commit


01 Nov, 2017

1 commit