Skip to content

graph traverse v2 #8876

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 416 commits into
base: bpf-next_base
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
416 commits
Select commit Hold shift + click to select a range
7a7513a
rxrpc: rxgk: Implement connection rekeying
dhowells Apr 11, 2025
b794dc1
rxrpc: Allow the app to store private data on peer structs
dhowells Apr 11, 2025
d03539d
rxrpc: Display security params in the afs_cb_call tracepoint
dhowells Apr 11, 2025
d98c317
afs: Use rxgk RESPONSE to pass token for callback channel
dhowells Apr 11, 2025
fba6995
rxrpc: Add more CHALLENGE/RESPONSE packet tracing
dhowells Apr 11, 2025
aa21990
rxrpc: rxperf: Add test RxGK server keys
dhowells Apr 11, 2025
5b38e82
Merge branch 'rxrpc-afs-add-afs-gssapi-security-class-to-af_rxrpc-and…
kuba-moo Apr 15, 2025
b458981
net: stmmac: qcom-ethqos: set serdes speed using serdes_speed
Apr 12, 2025
a3d5464
net: stmmac: qcom-ethqos: remove ethqos->speed
Apr 12, 2025
4c30093
net: stmmac: qcom-ethqos: remove unnecessary setting max_speed
Apr 12, 2025
0d1c18a
net: stmmac: qcom-ethqos: remove speed_mode_2500() method
Apr 12, 2025
23f09f0
Merge branch 'net-stmmac-qcom-ethqos-simplifications'
kuba-moo Apr 15, 2025
24e31e4
net: mdio: Add RTL9300 MDIO driver
cpackham-atlnz Apr 9, 2025
9f61eb2
eth: fbnic: add locking support for hw stats
Apr 10, 2025
8f20a2b
eth: fbnic: add coverage for hw queue stats
Apr 10, 2025
986c63a
eth: fbnic: add coverage for RXB stats
Apr 10, 2025
5f8bd2c
eth: fbnic: add support for TMI stats
Apr 10, 2025
f295714
eth: fbnic: add support for TTI HW stats
Apr 10, 2025
0f2be57
Merge branch 'eth-fbnic-extend-hardware-stats-coverage'
Apr 15, 2025
ee6a2db
net: dsa: mt7530: generalize read port stats logic
Ansuel Apr 10, 2025
33bc7af
net: dsa: mt7530: move pkt size and rx err MIB counter to rmon stats API
Ansuel Apr 10, 2025
e12989a
net: dsa: mt7530: move pause MIB counter to eth_ctrl stats API
Ansuel Apr 10, 2025
dcf9eb6
net: dsa: mt7530: move pkt stats and err MIB counter to eth_mac stats…
Ansuel Apr 10, 2025
c3b904c
net: dsa: mt7530: move remaining MIB counter to define
Ansuel Apr 10, 2025
88c810f
net: dsa: mt7530: implement .get_stats64
Ansuel Apr 10, 2025
4c2e0b0
Merge branch 'net-dsa-mt7530-modernize-mib-handling-fix'
Apr 15, 2025
8c9b406
tipc: Removing deprecated strncpy()
kevinpaul468 Apr 11, 2025
e8a1bd8
net: ncsi: Fix GCPS 64-bit member variables
HariKalavakunta Apr 10, 2025
8982fc0
devlink: add value check to devlink_info_version_put()
jjagielsk Apr 10, 2025
fd5ef52
ixgbe: wrap netdev_priv() usage
pkitszel Apr 10, 2025
a028523
ixgbe: add initial devlink support
jjagielsk Apr 10, 2025
f6b588a
ixgbe: add handler for devlink .info_get()
jjagielsk Apr 10, 2025
5f21415
ixgbe: add E610 functions for acquiring flash data
smrozowx Apr 10, 2025
70db078
ixgbe: read the OROM version information
smrozowx Apr 10, 2025
904c2b4
ixgbe: read the netlist version information
smrozowx Apr 10, 2025
8210ff7
ixgbe: add .info_get extension specific for E610 devices
jjagielsk Apr 10, 2025
4654ec6
ixgbe: add E610 functions getting PBA and FW ver info
jjagielsk Apr 10, 2025
6eae2ae
ixgbe: extend .info_get() with stored versions
jjagielsk Apr 10, 2025
a0f4567
ixgbe: add device flash update via devlink
jjagielsk Apr 10, 2025
c9e563c
ixgbe: add support for devlink reload
jjagielsk Apr 10, 2025
b5aae90
ixgbe: add FW API version check
jjagielsk Apr 10, 2025
29cb3b8
ixgbe: add E610 implementation of FW recovery mode
jjagielsk Apr 10, 2025
4811b0c
ixgbe: add support for FW rollback mode
CuriousPanCake Apr 10, 2025
f15e410
net: txgbe: Update module description
Apr 14, 2025
6e83166
mptcp: sched: remove mptcp_sched_data
matttbe Apr 13, 2025
760ff07
mptcp: sched: split validation part
Apr 13, 2025
def9d09
mptcp: pm: Return local variable instead of freed pointer
toblux Apr 13, 2025
60cbf31
mptcp: pass right struct to subflow_hmac_valid
matttbe Apr 13, 2025
4ce7fb8
mptcp: add MPJoinRejected MIB counter
matttbe Apr 13, 2025
98dea4f
selftests: mptcp: validate MPJoinRejected counter
matttbe Apr 13, 2025
f9c7504
selftests: mptcp: diag: drop nlh parameter of recv_nlmsg
Apr 13, 2025
a862771
selftests: mptcp: use IPPROTO_MPTCP for getaddrinfo
pizhenwei Apr 13, 2025
cd6d627
Merge branch 'mptcp-various-small-and-unrelated-improvements'
kuba-moo Apr 15, 2025
f995646
net: phy: remove device_phy_find_device
hkallweit Apr 13, 2025
e056d3d
qed: Remove unused qed_memset_*ctx functions
Apr 14, 2025
fa381e2
qed: Remove unused qed_calc_*_ctx_validation functions
Apr 14, 2025
3c18ace
qed: Remove unused qed_ptt_invalidate
Apr 14, 2025
058fa87
qed: Remove unused qed_print_mcp_trace_*
Apr 14, 2025
915359a
qed: Remove unused qed_db_recovery_dp
Apr 14, 2025
0418711
Merge branch 'qed-deadcoding'
kuba-moo Apr 15, 2025
95d06e9
netlink: Introduce nlmsg_payload helper
leitao Apr 14, 2025
7527efe
neighbour: Use nlmsg_payload in neightbl_valid_dump_info
leitao Apr 14, 2025
2d1f827
neighbour: Use nlmsg_payload in neigh_valid_get_req
leitao Apr 14, 2025
77d0229
rtnetlink: Use nlmsg_payload in valid_fdb_dump_strict
leitao Apr 14, 2025
72be72b
mpls: Use nlmsg_payload in mpls_valid_fib_dump_req
leitao Apr 14, 2025
e87187d
ipv6: Use nlmsg_payload in inet6_valid_dump_ifaddr_req
leitao Apr 14, 2025
8cf1e30
ipv6: Use nlmsg_payload in inet6_rtm_valid_getaddr_req
leitao Apr 14, 2025
69a1ecf
mpls: Use nlmsg_payload in mpls_valid_getroute_req
leitao Apr 14, 2025
4c113c8
net: fib_rules: Use nlmsg_payload in fib_valid_dumprule_req
leitao Apr 14, 2025
8ff9530
net: fib_rules: Use nlmsg_payload in fib_{new,del}rule()
leitao Apr 14, 2025
2f8cc49
Merge branch 'net-introduce-nlmsg_payload-helper'
kuba-moo Apr 15, 2025
c30a45a
net: stmmac: anarion: clean up anarion_config_dt() error handling
Apr 14, 2025
a55ec9c
net: stmmac: anarion: clean up interface parsing
Apr 14, 2025
5956527
net: stmmac: anarion: use stmmac_pltfr_probe()
Apr 14, 2025
a1afabe
net: stmmac: anarion: use devm_stmmac_pltfr_probe()
Apr 14, 2025
9d9bc1a
Merge branch 'net-stmmac-anarion-cleanups'
kuba-moo Apr 15, 2025
b2ee445
net: stmmac: imx: use stmmac_pltfr_probe()
Apr 14, 2025
debfcb3
net: stmmac: ingenic: convert to stmmac_pltfr_pm_ops
Apr 14, 2025
96f8bf8
net: stmmac: ingenic: convert to devm_stmmac_pltfr_probe()
Apr 14, 2025
fd7c362
Merge branch 'net-stmmac-ingenic-cleanups'
kuba-moo Apr 15, 2025
bbfc077
octeon_ep_vf: Remove octep_vf_wq
horms Apr 14, 2025
5f5f929
tc: Return an error if filters try to attach too many actions
tohojo Apr 9, 2025
1310f44
net: phy: remove redundant dependency on NETDEVICES for PHYLINK and P…
hkallweit Apr 13, 2025
a496d2f
net: bridge: locally receive all multicast packets if IFF_ALLMULTI is…
Headcrabed Apr 14, 2025
7c571ac
net: ptp: introduce .supported_extts_flags to ptp_clock_info
jacob-keller Apr 14, 2025
d9f3e9e
net: ptp: introduce .supported_perout_flags to ptp_clock_info
jacob-keller Apr 14, 2025
ac1df71
Merge branch 'net-ptp-driver-opt-in-for-supported-ptp-ioctl-flags'
kuba-moo Apr 16, 2025
1a377f1
net: ethernet: ti: am65-cpsw: set fwnode for ports
mwalle Apr 14, 2025
09737cb
net: ethernet: ti: am65-cpsw: handle -EPROBE_DEFER
mwalle Apr 14, 2025
20accfd
Merge branch 'net-ethernet-ti-am65-cpsw-fix-mac-address-fetching'
kuba-moo Apr 17, 2025
8a8f3f4
net: lan743x: Allocate rings outside ZONE_DMA
Apr 15, 2025
cd1fafe
eth: bnxt: add support rx side device memory TCP
TaeheeYoo Apr 15, 2025
978d13b
net: stmmac: intel: remove unnecessary setting max_speed
Apr 15, 2025
4cc8b57
net: stmmac: sun8i: use stmmac_pltfr_probe()
Apr 15, 2025
00868d0
net: phy: mediatek: init val in .phy_led_polarity_set for AN7581
Ansuel Apr 15, 2025
49593c2
docs: networking: clarify intended audience of netdevices.rst
kuba-moo Apr 15, 2025
72d02a9
net: stmmac: sti: use phy_interface_mode_is_rgmii()
Apr 15, 2025
403068c
net: stmmac: sti: convert to devm_stmmac_pltfr_probe()
Apr 15, 2025
b3334f9
net: stmmac: sti: convert to stmmac_pltfr_pm_ops
Apr 15, 2025
da59cee
Merge branch 'net-stmmac-sti-cleanups'
kuba-moo Apr 17, 2025
5ef4097
ipv6: Use nlmsg_payload in addrlabel file
leitao Apr 15, 2025
6c45427
ipv6: Use nlmsg_payload in addrconf file
leitao Apr 15, 2025
bc05add
ipv6: Use nlmsg_payload in route file
leitao Apr 15, 2025
7d82cc2
ipv4: Use nlmsg_payload in devinet file
leitao Apr 15, 2025
b411638
ipv4: Use nlmsg_payload in fib_frontend file
leitao Apr 15, 2025
d5ce0ed
ipv4: Use nlmsg_payload in route file
leitao Apr 15, 2025
04e00a8
ipv4: Use nlmsg_payload in ipmr file
leitao Apr 15, 2025
9b1097a
vxlan: Use nlmsg_payload in vxlan_vnifilter_dump
leitao Apr 15, 2025
522b93f
Merge branch 'adopting-nlmsg_payload-in-ipv4-ipv6'
kuba-moo Apr 17, 2025
4e34a84
Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git…
kuba-moo Apr 17, 2025
df8398f
net: airoha: Add matchall filter offload support
LorenzoBianconi Apr 15, 2025
9f23d94
net: introduce OpenVPN Data Channel Offload (ovpn)
ordex Apr 15, 2025
b7a6339
ovpn: add basic netlink support
ordex Apr 15, 2025
c2d950c
ovpn: add basic interface creation/destruction/management routines
ordex Apr 15, 2025
8327a3b
ovpn: keep carrier always on for MP interfaces
ordex Apr 15, 2025
80747ca
ovpn: introduce the ovpn_peer object
ordex Apr 15, 2025
f6226ae
ovpn: introduce the ovpn_socket object
ordex Apr 15, 2025
08857b5
ovpn: implement basic TX path (UDP)
ordex Apr 15, 2025
ab66abb
ovpn: implement basic RX path (UDP)
ordex Apr 15, 2025
8534731
ovpn: implement packet processing
ordex Apr 15, 2025
04ca149
ovpn: store tunnel and transport statistics
ordex Apr 15, 2025
11851cb
ovpn: implement TCP transport
ordex Apr 15, 2025
1724074
skb: implement skb_send_sock_locked_with_flags()
ordex Apr 15, 2025
36bb1d7
ovpn: add support for MSG_NOSIGNAL in tcp_sendmsg
ordex Apr 15, 2025
05003b4
ovpn: implement multi-peer support
ordex Apr 15, 2025
a3aaef8
ovpn: implement peer lookup logic
ordex Apr 15, 2025
3ecfd93
ovpn: implement keepalive mechanism
ordex Apr 15, 2025
f0281c1
ovpn: add support for updating local or remote UDP endpoint
ordex Apr 15, 2025
1d36a36
ovpn: implement peer add/get/dump/delete via netlink
ordex Apr 15, 2025
203e2bf
ovpn: implement key add/get/del/swap via netlink
ordex Apr 15, 2025
89d3c0e
ovpn: kill key and notify userspace in case of IV exhaustion
ordex Apr 15, 2025
a215d25
ovpn: notify userspace when a peer is deleted
ordex Apr 15, 2025
b756861
ovpn: add basic ethtool support
ordex Apr 15, 2025
959bc33
testing/selftests: add test tool and scripts for ovpn module
ordex Apr 15, 2025
9a0b084
Merge branch 'introducing-openvpn-data-channel-offload'
Apr 17, 2025
d55acb9
net: ipv6: ioam6: use consistent dst names
IurmanJ Apr 15, 2025
47ce7c8
net: ipv6: ioam6: fix double reallocation
IurmanJ Apr 15, 2025
4a1f69b
Merge branch 'mitigate-double-allocations-in-ioam6_iptunnel'
Apr 17, 2025
3bc1ca7
net: pktgen: fix code style (ERROR: else should follow close brace '}')
pseiderer Apr 15, 2025
65f5b9c
net: pktgen: fix code style (WARNING: please, no space before tabs)
pseiderer Apr 15, 2025
422cf22
net: pktgen: fix code style (WARNING: Prefer strscpy over strcpy)
pseiderer Apr 15, 2025
22ab6b9
Merge branch 'net-pktgen-fix-checkpatch-code-style-errors-warnings'
Apr 17, 2025
a1b669e
bpf: Prepare to reuse get_ctx_arg_idx
ameryhung Apr 9, 2025
c824034
bpf: net_sched: Support implementation of Qdisc_ops in bpf
Apr 9, 2025
870c285
bpf: net_sched: Add basic bpf qdisc kfuncs
Apr 9, 2025
7a2dafd
bpf: net_sched: Add a qdisc watchdog timer
Apr 9, 2025
544e0a1
bpf: net_sched: Support updating bstats
Apr 9, 2025
e582778
bpf: net_sched: Disable attaching bpf qdisc to non root
ameryhung Apr 9, 2025
4b15121
libbpf: Support creating and destroying qdisc
Apr 9, 2025
11c7016
selftests/bpf: Add a basic fifo qdisc test
Apr 9, 2025
2b59bd9
selftests/bpf: Add a bpf fq qdisc to selftest
Apr 9, 2025
2b7b5b7
selftests/bpf: Test attaching bpf qdisc to mq and non root
ameryhung Apr 9, 2025
fd23ce3
Merge branch 'bpf-qdisc'
Apr 17, 2025
240ce92
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
kuba-moo Apr 17, 2025
a27d798
net: stmmac: sunxi: convert to set_clk_tx_rate()
Apr 15, 2025
dd2cdba
net: stmmac: sunxi: use stmmac_pltfr_probe()
Apr 15, 2025
69b3e38
net: stmmac: sunxi: use devm_stmmac_pltfr_probe()
Apr 15, 2025
cd384b8
Merge branch 'net-stmmac-sunxi-cleanups'
kuba-moo Apr 18, 2025
2b065c0
r8169: refactor chip version detection
hkallweit Apr 15, 2025
fe73361
r8169: add RTL_GIGA_MAC_VER_LAST to facilitate adding support for new…
hkallweit Apr 15, 2025
151e13e
net: ethtool: Adjust exactly ETH_GSTRING_LEN-long stats to use memcpy
kees Apr 16, 2025
cfba1d1
net/mlx5e: ethtool: Fix formatting of ptp_rq0_csum_complete_tail_slow
kees Apr 16, 2025
22cbc1e
netdev: fix the locking for netdev notifications
kuba-moo Apr 16, 2025
7c6cd70
net: stmmac: dwc-qos: use PHY clock-stop capability
Apr 16, 2025
01be295
net: stmmac: mediatek: stop initialising plat->mac_interface
Apr 16, 2025
2b905de
net: Delete the outer () duplicated of macro SOCK_SKB_CB_OFFSET defin…
zijun-hu Apr 16, 2025
1df4a94
trace: tcp: Add const qualifier to skb parameter in tcp_probe event
leitao Apr 16, 2025
8066e38
net: add UAPI to the header guard in various network headers
kuba-moo Apr 16, 2025
12b1965
tools: ynl: add missing header deps
kuba-moo Apr 18, 2025
61fde51
net: axienet: Fix spelling mistake "archecture" -> "architecture"
ColinIanKing Apr 18, 2025
1e36473
net/mlx5: Fix spelling mistakes in mlx5_core_dbg message and comments
ColinIanKing Apr 18, 2025
199561a
s390: ism: Pass string literal as format argument of dev_set_name()
horms Apr 17, 2025
9929ba1
net: Use nlmsg_payload in neighbour file
leitao Apr 17, 2025
a451930
net: Use nlmsg_payload in rtnetlink file
leitao Apr 17, 2025
544456b
Merge branch 'net-adopting-nlmsg_payload-final-series'
kuba-moo Apr 22, 2025
9276bfc
net: stmmac: socfpga: init dwmac->stmmac_rst before registration
Apr 17, 2025
0dbd4a6
net: stmmac: socfpga: provide init function
Apr 17, 2025
6bf70d9
net: stmmac: socfpga: convert to stmmac_pltfr_pm_ops
Apr 17, 2025
9125534
net: stmmac: socfpga: call set_phy_mode() before registration
Apr 17, 2025
1dbefd5
net: stmmac: socfpga: convert to devm_stmmac_pltfr_probe()
Apr 17, 2025
50f2570
Merge branch 'net-stmmac-socfpga-fix-init-ordering-and-cleanups'
kuba-moo Apr 22, 2025
0fcad44
bnxt_en: Change FW message timeout warning
Apr 17, 2025
c21c8e1
bnxt_en: Report the ethtool coredump length after copying the coredump
Apr 17, 2025
5bccacb
bnxt_en: Remove unused field "ref_count" in struct bnxt_ulp
Apr 17, 2025
76a69f3
bnxt_en: Remove unused macros in bnxt_ulp.h
Apr 17, 2025
59af38c
Merge branch 'bnxt_en-update-for-net-next'
kuba-moo Apr 22, 2025
07e3223
Merge tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel…
kuba-moo Apr 22, 2025
804b09b
vxlan: Add RCU read-side critical sections in the Tx path
idosch Apr 15, 2025
884dd44
vxlan: Simplify creation of default FDB entry
idosch Apr 15, 2025
69281e0
vxlan: Insert FDB into hash table in vxlan_fdb_create()
idosch Apr 15, 2025
ccc203b
vxlan: Unsplit default FDB entry creation and notification
idosch Apr 15, 2025
6ba480c
vxlan: Relocate assignment of default remote device
idosch Apr 15, 2025
094adad
vxlan: Use a single lock to protect the FDB table
idosch Apr 15, 2025
8d45673
vxlan: Add a linked list of FDB entries
idosch Apr 15, 2025
7aa0dc7
vxlan: Use linked list to traverse FDB entries
idosch Apr 15, 2025
a6d04f8
vxlan: Convert FDB garbage collection to RCU
idosch Apr 15, 2025
54f4518
vxlan: Convert FDB flushing to RCU
idosch Apr 15, 2025
5cde39e
vxlan: Rename FDB Tx lookup function
idosch Apr 15, 2025
ebe6420
vxlan: Create wrappers for FDB lookup
idosch Apr 15, 2025
20c76da
vxlan: Do not treat dst cache initialization errors as fatal
idosch Apr 15, 2025
f13f3b4
vxlan: Introduce FDB key structure
idosch Apr 15, 2025
1f763fa
vxlan: Convert FDB table to rhashtable
idosch Apr 15, 2025
30af0cb
Merge branch 'vxlan-convert-fdb-table-to-rhashtable'
Apr 22, 2025
c51ab83
ionic: extend the QSFP module sprom for more pages
emusln Apr 15, 2025
9c2e17d
ionic: support ethtool get_module_eeprom_by_page
emusln Apr 15, 2025
0651c83
ionic: add module eeprom channel data to ionic_if and ethtool
emusln Apr 15, 2025
a86aa9c
Merge branch 'ionic-support-qsfp-cmis'
Apr 22, 2025
b77ad30
rxrpc: rxgk: Set error code in rxgk_yfs_decode_ticket()
Apr 16, 2025
37f2f2f
rtase: Add ndo_setup_tc support for CBS offload in traffic control setup
Apr 16, 2025
45bd443
net: 802: Remove unused p8022 code
Apr 18, 2025
67b083f
octeontx2-af: Remove unused rvu_npc_enable_bcast_entry
Apr 20, 2025
b7ed5d5
r8169: use pci_prepare_to_sleep in rtl_shutdown
hkallweit Apr 21, 2025
4cb6316
dt-bindings: net: ethernet-phy: add property mac-termination-ohms
DimitriFedrau Apr 16, 2025
1de1390
dt-bindings: net: dp83822: add constraints for mac-termination-ohms
DimitriFedrau Apr 16, 2025
145436a
net: phy: Add helper for getting MAC termination resistance
DimitriFedrau Apr 16, 2025
6c3c3c2
net: phy: dp83822: Add support for changing the MAC termination
DimitriFedrau Apr 16, 2025
044412d
Merge branch 'net-phy-dp83822-add-support-for-changing-the-mac-series…
kuba-moo Apr 23, 2025
f0f149d
emulex/benet: Annotate flash_cookie as nonstring
kees Apr 16, 2025
a7696fb
ptp: Do not enable by default during compile testing
krzk Apr 17, 2025
8c98936
dt-bindings: net: dwmac: Increase 'maxItems' for 'interrupts' and 'in…
prabhakarlad Apr 17, 2025
8fff7ae
dt-bindings: net: Document support for Renesas RZ/V2H(P) GBETH
prabhakarlad Apr 17, 2025
461f652
net: stmmac: Add DWMAC glue layer for Renesas GBETH
prabhakarlad Apr 17, 2025
326976b
MAINTAINERS: Add entry for Renesas RZ/V2H(P) DWMAC GBETH glue layer d…
prabhakarlad Apr 17, 2025
eff59eb
Merge branch 'add-gbeth-glue-layer-driver-for-renesas-rz-v2h-p-soc'
kuba-moo Apr 23, 2025
f7ca612
net: dsa: rzn1_a5psw: Make the read-only array offsets static const
ColinIanKing Apr 17, 2025
21b01cb
net: stmmac: visconti: convert to set_clk_tx_rate() method
Apr 17, 2025
434efd3
net: Drop hold_rtnl arg from ops_undo_list().
q2ven Apr 18, 2025
81eccc1
pfcp: Convert pfcp_net_exit() to ->exit_rtnl().
q2ven Apr 18, 2025
7ee3207
ppp: Split ppp_exit_net() to ->exit_rtnl().
q2ven Apr 18, 2025
84ee6e5
Merge branch 'net-followup-series-for-exit_rtnl'
kuba-moo Apr 23, 2025
f294516
net: txgbe: Support to set UDP tunnel port
Apr 21, 2025
3b05aa9
net: wangxun: restrict feature flags for tunnel packets
Apr 21, 2025
a1980cc
Merge branch 'implement-udp-tunnel-port-for-txgbe'
kuba-moo Apr 23, 2025
0e0a7e3
xdp: create locked/unlocked instances of xdp redirect target setters
josh8551021 Apr 22, 2025
4b30ae9
net: bridge: mcast: re-implement br_multicast_{enable, disable}_port …
Apr 17, 2025
6c13104
net: bridge: mcast: update multicast contex when vlan state is changed
Apr 17, 2025
aea4536
selftests: net/bridge : add tests for per vlan snooping with stp stat…
Apr 17, 2025
88922fe
Merge branch 'bridge-mc-per-vlan-qquery'
davem330 Apr 23, 2025
8ff6175
bnxt_en: hide CONFIG_DETECT_HUNG_TASK specific code
arndb Apr 23, 2025
1ce6510
selftests/bpf: Fix compilation errors
kknjh Apr 28, 2025
7625645
bpf: net_sched: Fix using bpf qdisc as default qdisc
ameryhung Apr 29, 2025
f69da1d
adding ci files
May 1, 2025
c5ed211
bpf: Check KF_bpf_rbtree_add_impl for the "case KF_ARG_PTR_TO_RB_NODE"
Mar 14, 2025
4e408c6
bpf: Simplify reg0 marking for the rbtree kfuncs that return a bpf_rb…
Mar 14, 2025
a779905
bpf: Add bpf_rbtree_{root,left,right} kfunc
Mar 14, 2025
c47082c
bpf: Allow refcounted bpf_rb_node used in bpf_rbtree_{remove,left,right}
Apr 16, 2025
1d76285
selftests/bpf: Add tests for bpf_rbtree_{root,left,right}
Apr 30, 2025
04a2413
bpf: Simplify reg0 marking for the list kfuncs that return a bpf_list…
Mar 20, 2025
1ccd8cb
bpf: Add bpf_list_{front,back} kfunc
Mar 20, 2025
6d8accb
selftests/bpf: Add test for bpf_list_{front,back}
Mar 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
49 changes: 49 additions & 0 deletions .github/actions/veristat_baseline_compare/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: 'run-veristat'
description: 'Run veristat benchmark'
inputs:
veristat_output:
description: 'Veristat output filepath'
required: true
baseline_name:
description: 'Veristat baseline cache name'
required: true
runs:
using: "composite"
steps:
- uses: actions/upload-artifact@v4
with:
name: ${{ inputs.baseline_name }}
if-no-files-found: error
path: ${{ github.workspace }}/${{ inputs.veristat_output }}

# For pull request:
# - get baseline log from cache
# - compare it to current run
- if: ${{ github.event_name == 'pull_request' }}
uses: actions/cache/restore@v4
with:
key: ${{ inputs.baseline_name }}-${{ github.base_ref }}
restore-keys: |
${{ inputs.baseline_name }}-
path: '${{ github.workspace }}/${{ inputs.baseline_name }}'

- if: ${{ github.event_name == 'pull_request' }}
name: Show veristat comparison
shell: bash
run: ./.github/scripts/compare-veristat-results.sh
env:
BASELINE_PATH: ${{ github.workspace }}/${{ inputs.baseline_name }}
VERISTAT_OUTPUT: ${{ inputs.veristat_output }}

# For push: just put baseline log to cache
- if: ${{ github.event_name == 'push' }}
shell: bash
run: |
mv "${{ github.workspace }}/${{ inputs.veristat_output }}" \
"${{ github.workspace }}/${{ inputs.baseline_name }}"

- if: ${{ github.event_name == 'push' }}
uses: actions/cache/save@v4
with:
key: ${{ inputs.baseline_name }}-${{ github.ref_name }}-${{ github.run_id }}
path: '${{ github.workspace }}/${{ inputs.baseline_name }}'
18 changes: 18 additions & 0 deletions .github/scripts/compare-veristat-results.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/bash

if [[ ! -f "${BASELINE_PATH}" ]]; then
echo "# No ${BASELINE_PATH} available" >> "${GITHUB_STEP_SUMMARY}"

echo "No ${BASELINE_PATH} available"
echo "Printing veristat results"
cat "${VERISTAT_OUTPUT}"

exit
fi

selftests/bpf/veristat \
--output-format csv \
--emit file,prog,verdict,states \
--compare "${BASELINE_PATH}" "${VERISTAT_OUTPUT}" > compare.csv

python3 ./.github/scripts/veristat_compare.py compare.csv
30 changes: 30 additions & 0 deletions .github/scripts/download-gcc-bpf.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/bash

set -euo pipefail

GCC_BPF_RELEASE_GH_REPO=$1
INSTALL_DIR=$(realpath $2)

cd /tmp

tag=$(gh release list -L 1 -R ${GCC_BPF_RELEASE_GH_REPO} --json tagName -q .[].tagName)
if [[ -z "$tag" ]]; then
echo "Could not find latest GCC BPF release at ${GCC_BPF_RELEASE_GH_REPO}"
exit 1
fi

url="https://github.com/${GCC_BPF_RELEASE_GH_REPO}/releases/download/${tag}/${tag}.tar.zst"
echo "Downloading $url"
wget -q "$url"

tarball=${tag}.tar.zst
dir=$(tar tf $tarball | head -1 || true)

echo "Extracting $tarball ..."
tar -I zstd -xf $tarball && rm -f $tarball

rm -rf $INSTALL_DIR
mv -v $dir $INSTALL_DIR

cd -

278 changes: 278 additions & 0 deletions .github/scripts/matrix.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,278 @@
#!/usr/bin/env python3

import dataclasses
import json
import os

from enum import Enum
from typing import Any, Dict, Final, List, Optional, Set, Union

import requests

MANAGED_OWNER: Final[str] = "kernel-patches"
MANAGED_REPOS: Final[Set[str]] = {
f"{MANAGED_OWNER}/bpf",
f"{MANAGED_OWNER}/vmtest",
}

DEFAULT_SELF_HOSTED_RUNNER_TAGS: Final[List[str]] = ["self-hosted", "docker-noble-main"]
DEFAULT_GITHUB_HOSTED_RUNNER: Final[str] = "ubuntu-24.04"
DEFAULT_GCC_VERSION: Final[int] = 14
DEFAULT_LLVM_VERSION: Final[int] = 20

RUNNERS_BUSY_THRESHOLD: Final[float] = 0.8


class Arch(str, Enum):
"""
CPU architecture supported by CI.
"""

AARCH64 = "aarch64"
S390X = "s390x"
X86_64 = "x86_64"


class Compiler(str, Enum):
GCC = "gcc"
LLVM = "llvm"


def query_runners_from_github() -> List[Dict[str, Any]]:
if "GITHUB_TOKEN" not in os.environ:
return []
token = os.environ["GITHUB_TOKEN"]
headers = {
"Authorization": f"token {token}",
"Accept": "application/vnd.github.v3+json",
}
owner = os.environ["GITHUB_REPOSITORY_OWNER"]
url: Optional[str] = f"https://api.github.com/orgs/{owner}/actions/runners"
# GitHub returns 30 runners per page, fetch all
all_runners = []
try:
while url is not None:
response = requests.get(url, headers=headers)
if response.status_code != 200:
print(f"Failed to query runners: {response.status_code}")
print(f"response: {response.text}")
return []
data = response.json()
all_runners.extend(data.get("runners", []))
# Check for next page URL in Link header
url = None
if "Link" in response.headers:
links = requests.utils.parse_header_links(response.headers["Link"])
for link in links:
if link["rel"] == "next":
url = link["url"]
break
return all_runners
except Exception as e:
print(f"Warning: Failed to query runner status due to exception: {e}")
return []


all_runners_cached: Optional[List[Dict[str, Any]]] = None


def all_runners() -> List[Dict[str, Any]]:
global all_runners_cached
if all_runners_cached is None:
print("Querying runners from GitHub...")
all_runners_cached = query_runners_from_github()
print(f"Github returned {len(all_runners_cached)} runners")
counts = count_by_status(all_runners_cached)
print(
f"Busy: {counts['busy']}, Idle: {counts['idle']}, Offline: {counts['offline']}"
)
return all_runners_cached


def runner_labels(runner: Dict[str, Any]) -> List[str]:
return [label["name"] for label in runner["labels"]]


def is_self_hosted_runner(runner: Dict[str, Any]) -> bool:
labels = runner_labels(runner)
for label in DEFAULT_SELF_HOSTED_RUNNER_TAGS:
if label not in labels:
return False
return True


def self_hosted_runners() -> List[Dict[str, Any]]:
runners = all_runners()
return [r for r in runners if is_self_hosted_runner(r)]


def runners_by_arch(arch: Arch) -> List[Dict[str, Any]]:
runners = self_hosted_runners()
return [r for r in runners if arch.value in runner_labels(r)]


def count_by_status(runners: List[Dict[str, Any]]) -> Dict[str, int]:
result = {"busy": 0, "idle": 0, "offline": 0}
for runner in runners:
if runner["status"] == "online":
if runner["busy"]:
result["busy"] += 1
else:
result["idle"] += 1
else:
result["offline"] += 1
return result


@dataclasses.dataclass
class BuildConfig:
arch: Arch
kernel_compiler: Compiler = Compiler.GCC
gcc_version: int = DEFAULT_GCC_VERSION
llvm_version: int = DEFAULT_LLVM_VERSION
kernel: str = "LATEST"
run_veristat: bool = False
parallel_tests: bool = False
build_release: bool = False

@property
def runs_on(self) -> List[str]:
if is_managed_repo():
return DEFAULT_SELF_HOSTED_RUNNER_TAGS + [self.arch.value]
else:
return [DEFAULT_GITHUB_HOSTED_RUNNER]

@property
def build_runs_on(self) -> List[str]:
if not is_managed_repo():
return [DEFAULT_GITHUB_HOSTED_RUNNER]

# @Temporary: disable codebuild runners for cross-compilation jobs
match self.arch:
case Arch.S390X:
return DEFAULT_SELF_HOSTED_RUNNER_TAGS + [Arch.X86_64.value]
case Arch.AARCH64:
return DEFAULT_SELF_HOSTED_RUNNER_TAGS + [Arch.AARCH64.value]

# For managed repos, check the busyness of relevant self-hosted runners
# If they are too busy, use codebuild
runner_arch = self.arch
# We don't build s390x kernel on s390x runners, because it's too slow
# Cross-compiling on x86_64 is faster
if runner_arch == Arch.S390X:
runner_arch = Arch.X86_64
runners = runners_by_arch(runner_arch)
counts = count_by_status(runners)
online = counts["idle"] + counts["busy"]
busy = counts["busy"]
# if online <= 0, then something is wrong, don't use codebuild
if online > 0 and busy / online > RUNNERS_BUSY_THRESHOLD:
return ["codebuild"]
else:
return DEFAULT_SELF_HOSTED_RUNNER_TAGS + [runner_arch.value]

@property
def tests(self) -> Dict[str, Any]:
tests_list = [
"test_progs",
"test_progs_parallel",
"test_progs_no_alu32",
"test_progs_no_alu32_parallel",
"test_verifier",
]

if self.arch.value != "s390x":
tests_list.append("test_maps")

if self.llvm_version >= 18:
tests_list.append("test_progs_cpuv4")

# if self.arch in [Arch.X86_64, Arch.AARCH64]:
# tests_list.append("sched_ext")

# Don't run GCC BPF runner, because too many tests are failing
# See: https://lore.kernel.org/bpf/[email protected]/
# if self.arch == Arch.X86_64:
# tests_list.append("test_progs-bpf_gcc")

if not self.parallel_tests:
tests_list = [test for test in tests_list if not test.endswith("parallel")]

return {"include": [generate_test_config(test) for test in tests_list]}

def to_dict(self) -> Dict[str, Any]:
return {
"arch": self.arch.value,
"kernel_compiler": self.kernel_compiler.value,
"gcc_version": DEFAULT_GCC_VERSION,
"llvm_version": DEFAULT_LLVM_VERSION,
"kernel": self.kernel,
"run_veristat": self.run_veristat,
"parallel_tests": self.parallel_tests,
"build_release": self.build_release,
"runs_on": self.runs_on,
"tests": self.tests,
"build_runs_on": self.build_runs_on,
}


def is_managed_repo() -> bool:
return (
os.environ["GITHUB_REPOSITORY_OWNER"] == MANAGED_OWNER
and os.environ["GITHUB_REPOSITORY"] in MANAGED_REPOS
)


def set_output(name, value):
"""Write an output variable to the GitHub output file."""
with open(os.getenv("GITHUB_OUTPUT"), "a", encoding="utf-8") as file:
file.write(f"{name}={value}\n")


def generate_test_config(test: str) -> Dict[str, Union[str, int]]:
"""Create the configuration for the provided test."""
is_parallel = test.endswith("_parallel")
config = {
"test": test,
"continue_on_error": is_parallel,
# While in experimental mode, parallel jobs may get stuck
# anywhere, including in user space where the kernel won't detect
# a problem and panic. We add a second layer of (smaller) timeouts
# here such that if we get stuck in a parallel run, we hit this
# timeout and fail without affecting the overall job success (as
# would be the case if we hit the job-wide timeout). For
# non-experimental jobs, 360 is the default which will be
# superseded by the overall workflow timeout (but we need to
# specify something).
"timeout_minutes": 30 if is_parallel else 360,
}
return config


if __name__ == "__main__":
matrix = [
BuildConfig(
arch=Arch.X86_64,
run_veristat=True,
parallel_tests=True,
),
BuildConfig(
arch=Arch.X86_64,
kernel_compiler=Compiler.LLVM,
build_release=True,
),
BuildConfig(
arch=Arch.AARCH64,
),
BuildConfig(
arch=Arch.S390X,
),
]

# Outside of managed repositories only run on x86_64
if not is_managed_repo():
matrix = [config for config in matrix if config.arch == Arch.X86_64]

json_matrix = json.dumps({"include": [config.to_dict() for config in matrix]})
print(json.dumps(json.loads(json_matrix), indent=4))
set_output("build_matrix", json_matrix)
Loading
Loading