History

Merge tag 'net-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net

Pull networking fixes from Jakub Kicinski: "Cross-tree/merge window issues: - rtl8150: don't incorrectly assign random MAC addresses; fix late in the 5.9 cycle started depending on a return code from a function which changed with the 5.10 PR from the usb subsystem Current release regressions: - Revert "virtio-net: ethtool configurable RXCSUM", it was causing crashes at probe when control vq was not negotiated/available Previous release regressions: - ixgbe: fix probing of multi-port 10 Gigabit Intel NICs with an MDIO bus, only first device would be probed correctly - nexthop: Fix performance regression in nexthop deletion by effectively switching from recently added synchronize_rcu() to synchronize_rcu_expedited() - netsec: ignore 'phy-mode' device property on ACPI systems; the property is not populated correctly by the firmware, but firmware configures the PHY so just keep boot settings Previous releases - always broken: - tcp: fix to update snd_wl1 in bulk receiver fast path, addressing bulk transfers getting "stuck" - icmp: randomize the global rate limiter to prevent attackers from getting useful signal - r8169: fix operation under forced interrupt threading, make the driver always use hard irqs, even on RT, given the handler is light and only wants to schedule napi (and do so through a _irqoff() variant, preferably) - bpf: Enforce pointer id generation for all may-be-null register type to avoid pointers erroneously getting marked as null-checked - tipc: re-configure queue limit for broadcast link - net/sched: act_tunnel_key: fix OOB write in case of IPv6 ERSPAN tunnels - fix various issues in chelsio inline tls driver Misc: - bpf: improve just-added bpf_redirect_neigh() helper api to support supplying nexthop by the caller - in case BPF program has already done a lookup we can avoid doing another one - remove unnecessary break statements - make MCTCP not select IPV6, but rather depend on it" * tag 'net-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (62 commits) tcp: fix to update snd_wl1 in bulk receiver fast path net: Properly typecast int values to set sk_max_pacing_rate netfilter: nf_fwd_netdev: clear timestamp in forwarding path ibmvnic: save changed mac address to adapter->mac_addr selftests: mptcp: depends on built-in IPv6 Revert "virtio-net: ethtool configurable RXCSUM" rtnetlink: fix data overflow in rtnl_calcit() net: ethernet: mtk-star-emac: select REGMAP_MMIO net: hdlc_raw_eth: Clear the IFF_TX_SKB_SHARING flag after calling ether_setup net: hdlc: In hdlc_rcv, check to make sure dev is an HDLC device bpf, libbpf: Guard bpf inline asm from bpf_tail_call_static bpf, selftests: Extend test_tc_redirect to use modified bpf_redirect_neigh() bpf: Fix bpf_redirect_neigh helper api to support supplying nexthop mptcp: depends on IPV6 but not as a module sfc: move initialisation of efx->filter_sem to efx_init_struct() mpls: load mpls_gso after mpls_iptunnel net/sched: act_tunnel_key: fix OOB write in case of IPv6 ERSPAN tunnels net/sched: act_gate: Unlock ->tcfa_lock in tc_setup_flow_action() net: dsa: bcm_sf2: make const array static, makes object smaller mptcp: MPTCP_IPV6 should depend on IPV6 instead of selecting it ...

Linus Torvalds committed 6 years ago

Commit 3cb12d22 parents 0adc313 18ded9179 files · +676 −256Browse files

Showing the changes to include/uapi (1 of 79 files). Show all

Unified · Split

include/uapi/linux/bpf.h+18−4
@@ -3677,15 +3677,19 @@ union bpf_attr { · 3676 unmodified lines
36773677 * Return
36783678 * The id is returned or 0 in case the id could not be retrieved.
36793679 *
3680− * long bpf_redirect_neigh(u32 ifindex, u64 flags)
3680+ * long bpf_redirect_neigh(u32 ifindex, struct bpf_redir_neigh *params, int plen, u64 flags)
36813681 * Description
36823682 * Redirect the packet to another net device of index *ifindex*
36833683 * and fill in L2 addresses from neighboring subsystem. This helper
36843684 * is somewhat similar to **bpf_redirect**\ (), except that it
36853685 * populates L2 addresses as well, meaning, internally, the helper
3686− * performs a FIB lookup based on the skb's networking header to
3687− * get the address of the next hop and then relies on the neighbor
3688− * lookup for the L2 address of the nexthop.
3686+ * relies on the neighbor lookup for the L2 address of the nexthop.
3687+ *
3688+ * The helper will perform a FIB lookup based on the skb's
3689+ * networking header to get the address of the next hop, unless
3690+ * this is supplied by the caller in the *params* argument. The
3691+ * *plen* argument indicates the len of *params* and should be set
3692+ * to 0 if *params* is NULL.
36893693 *
36903694 * The *flags* argument is reserved and must be 0. The helper is
36913695 * currently only supported for tc BPF program types, and enabled
@@ -4906,6 +4910,16 @@ struct bpf_fib_lookup { · 1214 unmodified lines
49064910 __u8 dmac[6]; /* ETH_ALEN */
49074911 };
49084912
4913+struct bpf_redir_neigh {
4914+ /* network family for lookup (AF_INET, AF_INET6) */
4915+ __u32 nh_family;
4916+ /* network address of nexthop; skips fib lookup to find gateway */
4917+ union {
4918+ __be32 ipv4_nh;
4919+ __u32 ipv6_nh[4]; /* in6_addr; network order */
4920+ };
4921+};
4922+
49094923 enum bpf_task_fd_type {
49104924 BPF_FD_TYPE_RAW_TRACEPOINT, /* tp name */
49114925 BPF_FD_TYPE_TRACEPOINT, /* tp name */