1. 15 Jul, 2021 14 commits
  2. 12 Jul, 2021 1 commit
    • Martynas Pumputis's avatar
      libbpf: Fix reuse of pinned map on older kernel · 97eb3138
      Martynas Pumputis authored
      When loading a BPF program with a pinned map, the loader checks whether
      the pinned map can be reused, i.e. their properties match. To derive
      such of the pinned map, the loader invokes BPF_OBJ_GET_INFO_BY_FD and
      then does the comparison.
      
      Unfortunately, on < 4.12 kernels the BPF_OBJ_GET_INFO_BY_FD is not
      available, so loading the program fails with the following error:
      
      	libbpf: failed to get map info for map FD 5: Invalid argument
      	libbpf: couldn't reuse pinned map at
      		'/sys/fs/bpf/tc/globals/cilium_call_policy': parameter
      		mismatch"
      	libbpf: map 'cilium_call_policy': error reusing pinned map
      	libbpf: map 'cilium_call_policy': failed to create:
      		Invalid argument(-22)
      	libbpf: failed to load object 'bpf_overlay.o'
      
      To fix this, fallback to derivation of the map properties via
      /proc/$PID/fdinfo/$MAP_FD if BPF_OBJ_GET_INFO_BY_FD fails with EINVAL,
      which can be used as an indicator that the kernel doesn't support
      the latter.
      Signed-off-by: default avatarMartynas Pumputis <m@lambda.lt>
      Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Acked-by: default avatarJohn Fastabend <john.fastabend@gmail.com>
      Link: https://lore.kernel.org/bpf/20210712125552.58705-1-m@lambda.lt
      97eb3138
  3. 08 Jul, 2021 12 commits
  4. 01 Jul, 2021 12 commits
  5. 30 Jun, 2021 1 commit
    • Linus Torvalds's avatar
      Merge tag 'net-next-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · dbe69e43
      Linus Torvalds authored
      Pull networking updates from Jakub Kicinski:
       "Core:
      
         - BPF:
            - add syscall program type and libbpf support for generating
              instructions and bindings for in-kernel BPF loaders (BPF loaders
              for BPF), this is a stepping stone for signed BPF programs
            - infrastructure to migrate TCP child sockets from one listener to
              another in the same reuseport group/map to improve flexibility
              of service hand-off/restart
            - add broadcast support to XDP redirect
      
         - allow bypass of the lockless qdisc to improving performance (for
           pktgen: +23% with one thread, +44% with 2 threads)
      
         - add a simpler version of "DO_ONCE()" which does not require jump
           labels, intended for slow-path usage
      
         - virtio/vsock: introduce SOCK_SEQPACKET support
      
         - add getsocketopt to retrieve netns cookie
      
         - ip: treat lowest address of a IPv4 subnet as ordinary unicast
           address allowing reclaiming of precious IPv4 addresses
      
         - ipv6: use prandom_u32() for ID generation
      
         - ip: add support for more flexible field selection for hashing
           across multi-path routes (w/ offload to mlxsw)
      
         - icmp: add support for extended RFC 8335 PROBE (ping)
      
         - seg6: add support for SRv6 End.DT46 behavior
      
         - mptcp:
            - DSS checksum support (RFC 8684) to detect middlebox meddling
            - support Connection-time 'C' flag
            - time stamping support
      
         - sctp: packetization Layer Path MTU Discovery (RFC 8899)
      
         - xfrm: speed up state addition with seq set
      
         - WiFi:
            - hidden AP discovery on 6 GHz and other HE 6 GHz improvements
            - aggregation handling improvements for some drivers
            - minstrel improvements for no-ack frames
            - deferred rate control for TXQs to improve reaction times
            - switch from round robin to virtual time-based airtime scheduler
      
         - add trace points:
            - tcp checksum errors
            - openvswitch - action execution, upcalls
            - socket errors via sk_error_report
      
        Device APIs:
      
         - devlink: add rate API for hierarchical control of max egress rate
           of virtual devices (VFs, SFs etc.)
      
         - don't require RCU read lock to be held around BPF hooks in NAPI
           context
      
         - page_pool: generic buffer recycling
      
        New hardware/drivers:
      
         - mobile:
            - iosm: PCIe Driver for Intel M.2 Modem
            - support for Qualcomm MSM8998 (ipa)
      
         - WiFi: Qualcomm QCN9074 and WCN6855 PCI devices
      
         - sparx5: Microchip SparX-5 family of Enterprise Ethernet switches
      
         - Mellanox BlueField Gigabit Ethernet (control NIC of the DPU)
      
         - NXP SJA1110 Automotive Ethernet 10-port switch
      
         - Qualcomm QCA8327 switch support (qca8k)
      
         - Mikrotik 10/25G NIC (atl1c)
      
        Driver changes:
      
         - ACPI support for some MDIO, MAC and PHY devices from Marvell and
           NXP (our first foray into MAC/PHY description via ACPI)
      
         - HW timestamping (PTP) support: bnxt_en, ice, sja1105, hns3, tja11xx
      
         - Mellanox/Nvidia NIC (mlx5)
            - NIC VF offload of L2 bridging
            - support IRQ distribution to Sub-functions
      
         - Marvell (prestera):
            - add flower and match all
            - devlink trap
            - link aggregation
      
         - Netronome (nfp): connection tracking offload
      
         - Intel 1GE (igc): add AF_XDP support
      
         - Marvell DPU (octeontx2): ingress ratelimit offload
      
         - Google vNIC (gve): new ring/descriptor format support
      
         - Qualcomm mobile (rmnet & ipa): inline checksum offload support
      
         - MediaTek WiFi (mt76)
            - mt7915 MSI support
            - mt7915 Tx status reporting
            - mt7915 thermal sensors support
            - mt7921 decapsulation offload
            - mt7921 enable runtime pm and deep sleep
      
         - Realtek WiFi (rtw88)
            - beacon filter support
            - Tx antenna path diversity support
            - firmware crash information via devcoredump
      
         - Qualcomm WiFi (wcn36xx)
            - Wake-on-WLAN support with magic packets and GTK rekeying
      
         - Micrel PHY (ksz886x/ksz8081): add cable test support"
      
      * tag 'net-next-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2168 commits)
        tcp: change ICSK_CA_PRIV_SIZE definition
        tcp_yeah: check struct yeah size at compile time
        gve: DQO: Fix off by one in gve_rx_dqo()
        stmmac: intel: set PCI_D3hot in suspend
        stmmac: intel: Enable PHY WOL option in EHL
        net: stmmac: option to enable PHY WOL with PMT enabled
        net: say "local" instead of "static" addresses in ndo_dflt_fdb_{add,del}
        net: use netdev_info in ndo_dflt_fdb_{add,del}
        ptp: Set lookup cookie when creating a PTP PPS source.
        net: sock: add trace for socket errors
        net: sock: introduce sk_error_report
        net: dsa: replay the local bridge FDB entries pointing to the bridge dev too
        net: dsa: ensure during dsa_fdb_offload_notify that dev_hold and dev_put are on the same dev
        net: dsa: include fdb entries pointing to bridge in the host fdb list
        net: dsa: include bridge addresses which are local in the host fdb list
        net: dsa: sync static FDB entries on foreign interfaces to hardware
        net: dsa: install the host MDB and FDB entries in the master's RX filter
        net: dsa: reference count the FDB addresses at the cross-chip notifier level
        net: dsa: introduce a separate cross-chip notifier type for host FDBs
        net: dsa: reference count the MDB entries at the cross-chip notifier level
        ...
      dbe69e43