summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-07-05bridge: mst: Add get/set support for MST statesHEADmainTobias Waldekranz
Allow a port's spanning tree state to be modified on a per-MSTI basis, and support dumping the current MST states for every port and MSTI. Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-07-05bridge: vlan: Add support for setting a VLANs MSTITobias Waldekranz
Allow the user to associate one or more VLANs with a multiple spanning tree instance (MSTI), when MST is enabled on the bridge. Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com> Reviewed-by: Hangbin Liu <liuhangbin@gmail.com> Acked-by: Nikolay Aleksandrov <razor@blackwall.org> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-07-05ip: bridge: add support for mst_enabledTobias Waldekranz
When enabled, the bridge's legacy per-VLAN STP facility is replaced with the Multiple Spanning Tree Protocol (MSTP) compatible version. Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com> Reviewed-by: Hangbin Liu <liuhangbin@gmail.com> Acked-by: Nikolay Aleksandrov <razor@blackwall.org> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-07-04route: filter by interface on multipath routesStephen Hemminger
The ip route command would silently hide multipath routes when filter by interface. The problem was it was not looking for interface when filter multipath routes. Example: ip link add name dummy1 up type dummy ip link add name dummy2 up type dummy ip address add 192.0.2.1/28 dev dummy1 ip address add 192.0.2.17/28 dev dummy2 ip route add 198.51.100.0/24 \ nexthop via 192.0.2.2 dev dummy1 \ nexthop via 192.0.2.18 dev dummy2 Before: ip route show dev dummy1 192.0.2.0/28 proto kernel scope link src 192.0.2.1 After: ip route show dev dummy1 192.0.2.0/28 proto kernel scope link src 192.0.2.1 198.51.100.0/24 nexthop via 192.0.2.2 dev dummy1 weight 1 nexthop via 192.0.2.18 dev dummy2 weight 1 Reported-by: "Muggeridge, Matt" <matt.muggeridge2@hpe.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-06-27ss: fix format string warningsStephen Hemminger
Clang complains that format string is not a string literal unless the functions are annotated. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-06-11devlink: Fix setting max_io_eqs as the sole attributeParav Pandit
dl_opts_put() function missed to consider IO eqs option flag. Due to this, when max_io_eqs setting is applied only when it is combined with other attributes such as roce/hw_addr. When max_io_eqs is the only attribute set, it missed to apply the attribute. Fix it by adding the missing flag. Fixes: e8add23c59b7 ("devlink: Support setting max_io_eqs") Signed-off-by: Parav Pandit <parav@nvidia.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-06-11devlink: trivial: fix err format on max_io_eqsWilliam Tu
Add missing ']'. Signed-off-by: William Tu <witu@nvidia.com> Fixes: e8add23c59b7 ("devlink: Support setting max_io_eqs") Reviewed-by: Parav Pandit <parav@nvidia.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-05-23Fix usage of poll.h headerIsmael Luceno
Change the legacy <sys/poll.h> to <poll.h> (POSIX.1-2001). Signed-off-by: Ismael Luceno <ismael@iodev.co.uk> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-05-20uapi: update to pre 6.10-rc1 headersStephen Hemminger
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-05-13rtmon: Align usage with ip helpYedaya Katsman
Also update the man page accordingly, and add ip-monitor to see also Signed-off-by: Yedaya Katsman <yedaya.ka@gmail.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-05-13bridge/vlan.c: bridge/vlan.c: fix build with gcc 14 on musl systemsGabi Falk
On glibc based systems the definition of 'struct timeval' is pulled in with inclusion of <stdlib.h> header, but on musl based systems it doesn't work this way. Missing definition triggers an incompatible-pointer-types error with gcc 14 (warning on previous versions of gcc): ../include/json_print.h:80:30: warning: 'struct timeval' declared inside parameter list will not be visible outside of this definition or declaration 80 | _PRINT_FUNC(tv, const struct timeval *) | ^~~~~~~ ../include/json_print.h:50:37: note: in definition of macro '_PRINT_FUNC' 50 | type value); \ | ^~~~ ../include/json_print.h:80:30: warning: 'struct timeval' declared inside parameter list will not be visible outside of this definition or declaration 80 | _PRINT_FUNC(tv, const struct timeval *) | ^~~~~~~ ../include/json_print.h:55:45: note: in definition of macro '_PRINT_FUNC' 55 | type value) \ | ^~~~ ../include/json_print.h: In function 'print_tv': ../include/json_print.h:58:48: error: passing argument 5 of 'print_color_tv' from incompatible pointer type [-Wincompatible-pointer-types] 58 | value); \ | ^~~~~ | | | const struct timeval * Signed-off-by: Gabi Falk <gabifalk@gmx.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-05-13Merge git://git.kernel.org/pub/scm/network/iproute2/iproute2-nextStephen Hemminger
2024-05-12v6.9.0v6.9.0Stephen Hemminger
2024-05-10uapi: spelling fix for xfrm.hStephen Hemminger
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-05-08man: fix typo in tc-mirred man pageAndrea Claudi
Signed-off-by: Andrea Claudi <aclaudi@redhat.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-05-07ip: Add missing options to route get help outputYedaya Katsman
The "as", "to", "connected" and "notify" options were missing from the help message in the route get section. Add them to usage help and man page. Note that there isn't an explanation for "as" or "notify" in the man page. Signed-off-by: Yedaya Katsman <yedaya.ka@gmail.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-05-03Merge remote-tracking branch 'main/main' into nextDavid Ahern
Signed-off-by: David Ahern <dsahern@kernel.org>
2024-05-03ip link: hsr: Add support for passing information about INTERLINK deviceLukasz Majewski
The HSR capable device can operate in two modes of operations - Doubly Attached Node for HSR (DANH) and RedBOX (HSR-SAN). The latter one allows connection of non-HSR aware device(s) to HSR network. This node is called SAN (Singly Attached Network) and is connected via INTERLINK network device. This patch adds support for passing information about the INTERLINK device, so the Linux driver can properly setup it. Signed-off-by: Lukasz Majewski <lukma@denx.de> Signed-off-by: David Ahern <dsahern@kernel.org>
2024-05-03Update kernel headersDavid Ahern
Update kernel headers to commit: 5829614a7b3b ("Merge branch 'net-sysctl-sentinel'") Signed-off-by: David Ahern <dsahern@kernel.org>
2024-05-03rdma: Add an option to display driver-specific QPs in the rdma toolChiara Meiohas
Utilize the -dd flag (driver-specific details) in the rdmatool to view driver-specific QPs which are not exposed yet. The following examples show mlx5 UMR QP which is visible now: $ rdma resource show qp link ibp8s0f1 link ibp8s0f1/1 lqpn 360 type UD state RTS sq-psn 0 comm [mlx5_ib] link ibp8s0f1/1 lqpn 0 type SMI state RTS sq-psn 0 comm [ib_core] link ibp8s0f1/1 lqpn 1 type GSI state RTS sq-psn 0 comm [ib_core] $ rdma resource show qp link ibp8s0f1 -dd link ibp8s0f1/1 lqpn 360 type UD state RTS sq-psn 0 comm [mlx5_ib] link ibp8s0f1/1 lqpn 465 type DRIVER subtype REG_UMR state RTS sq-psn 0 comm [mlx5_ib] link ibp8s0f1/1 lqpn 0 type SMI state RTS sq-psn 0 comm [ib_core] link ibp8s0f1/1 lqpn 1 type GSI state RTS sq-psn 0 comm [ib_core] $ rdma resource show 0: ibp8s0f0: pd 3 cq 4 qp 3 cm_id 0 mr 0 ctx 0 srq 2 1: ibp8s0f1: pd 3 cq 4 qp 3 cm_id 0 mr 0 ctx 0 srq 2 $ rdma resource show -dd 0: ibp8s0f0: pd 3 cq 4 qp 4 cm_id 0 mr 0 ctx 0 srq 2 1: ibp8s0f1: pd 3 cq 4 qp 4 cm_id 0 mr 0 ctx 0 srq 2 Signed-off-by: Chiara Meiohas <cmeiohas@nvidia.com> Signed-off-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: David Ahern <dsahern@kernel.org>
2024-05-03rdma: update uapi headerChiara Meiohas
Update rdma_netlink.h file up to kernel commit e18fa0bbcedf ("RDMA/core: Add an option to display driver-specific QPs in the rdmatool") Signed-off-by: Chiara Meiohas <cmeiohas@nvidia.com> Signed-off-by: Leon Romanovsky <leonro@nvidia.com> Reviewed-by: Subbaraya Sundeep <sbhatta@marvell.com> Signed-off-by: David Ahern <dsahern@kernel.org>
2024-04-29uapi: update vdpa.hStephen Hemminger
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-04-25ip: Exit exec in child process if setup failsYedaya Katsman
If we forked, returning from the function will make the calling code to continue in both the child and parent process. Make cmd_exec exit if setup failed and it forked already. An example of issues this causes, where a failure in setup causes multiple unnecessary tries: ``` $ ip netns ef ab $ ip -all netns exec ls netns: ef setting the network namespace "ef" failed: Operation not permitted netns: ab setting the network namespace "ab" failed: Operation not permitted netns: ab setting the network namespace "ab" failed: Operation not permitted ``` Signed-off-by: Yedaya Katsman <yedaya.ka@gmail.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-04-23Merge branch 'pfcp' into nextDavid Ahern
Wojciech Drewek says: ==================== New PFCP module was accepted in the kernel together with cls_flower changes which allow to filter the packets using PFCP specific fields [1]. Packet Forwarding Control Protocol is a 3GPP Protocol defined in TS 29.244 [2]. Extended ip link with the support for the new PFCP device. Add pfcp_opts support in tc-flower. [1] https://lore.kernel.org/netdev/171196563119.11638.12210788830829801735.git-patchwork-notify@kernel.org/ [2] https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3111 ==================== Signed-off-by: David Ahern <dsahern@kernel.org>
2024-04-23use missing argument helperStephen Hemminger
There is a helper in utilities to handle missing argument, but it was not being used consistently. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-04-23f_flower: implement pfcp optsMichal Swiatkowski
Allow adding tc filter for PFCP header. Add support for parsing TCA_FLOWER_KEY_ENC_OPTS_PFCP. Options are as follows: TYPE:SEID. TYPE is a 8-bit value represented in hex and can be 1 for session header and 0 for node header. In PFCP packet this is S flag in header. SEID is a 64-bit session id value represented in hex. This patch enables adding hardware filters using PFCP fields, see [1]. [1] https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=d823265dd45bbf14bd67aa476057108feb4143ce Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> Signed-off-by: Wojciech Drewek <wojciech.drewek@intel.com> Signed-off-by: David Ahern <dsahern@kernel.org>
2024-04-23ip: PFCP device supportWojciech Drewek
Packet Forwarding Control Protocol is a 3GPP Protocol defined in TS 29.244 [1]. Add support for PFCP device type in ip link. It is capable of receiving PFCP messages and extracting its metadata (session ID). Its only purpose is to be used together with tc flower to create SW/HW filters. PFCP module does not take any netlink attributes so there is no need to parse any args. Add new sections to the man to let the user know about new device type. [1] https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3111 Signed-off-by: Wojciech Drewek <wojciech.drewek@intel.com> Signed-off-by: David Ahern <dsahern@kernel.org>
2024-04-20man: fix doc, ip link does support "change"Jiayun Chen
ip link does support "change". if (matches(*argv, "set") == 0 || matches(*argv, "change") == 0) return iplink_modify(RTM_NEWLINK, 0, argc-1, argv+1); The attached patch documents this. Signed-off-by: Jiayun Chen <jiayunchen@smail.nju.edu.cn> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-04-21tc/util: remove unused argument from print_tcstats2_attrStephen Hemminger
The function doesn't use the FILE handle. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: David Ahern <dsahern@kernel.org>
2024-04-21tc/police: remove unused argument to tc_print_policeStephen Hemminger
FILE handle no longer used. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: David Ahern <dsahern@kernel.org>
2024-04-21tc/util: remove unused argument from print_action_controlStephen Hemminger
The FILE handle is no longer used. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: David Ahern <dsahern@kernel.org>
2024-04-21tc/util: remove unused argument from print_tmStephen Hemminger
File argument no longer used. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: David Ahern <dsahern@kernel.org>
2024-04-21tc/u32: remove FILE argumentStephen Hemminger
The pretty printing routines no longer use the file handle. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: David Ahern <dsahern@kernel.org>
2024-04-21Merge remote-tracking branch 'main/main' into nextDavid Ahern
Signed-off-by: David Ahern <dsahern@kernel.org>
2024-04-16man: use clsact qdisc for port mirroring examples on matchall and mirredArınç ÜNAL
The clsact qdisc supports ingress and egress. Instead of using two qdiscs to do ingress and egress port mirroring, clsact can be used. Therefore, use clsact for the port mirroring examples on the tc-matchall.8 and tc-mirred.8 documents. Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-04-15mnl: initialize generic netlink versionStephen Hemminger
The version field in mnlu was being passed in but never set. This meant that all places mnlu_gen_socket was used, the version would be uninitialized data from malloc(). Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-04-13ss: mptcp: print out last time countersGeliang Tang
Three new "last time" counters have been added to "struct mptcp_info": last_data_sent, last_data_recv and last_ack_recv. They have been added in commit 18d82cde7432 ("mptcp: add last time fields in mptcp_info") in net-next recently. This patch prints out these new counters into mptcp_stats output in ss. Signed-off-by: Geliang Tang <geliang@kernel.org> Acked-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Signed-off-by: David Ahern <dsahern@kernel.org>
2024-04-13devlink: Support setting max_io_eqsParav Pandit
Devices send event notifications for the IO queues, such as tx and rx queues, through event queues. Enable a privileged owner, such as a hypervisor PF, to set the number of IO event queues for the VF and SF during the provisioning stage. example: Get maximum IO event queues of the VF device:: $ devlink port show pci/0000:06:00.0/2 pci/0000:06:00.0/2: type eth netdev enp6s0pf0vf1 flavour pcivf pfnum 0 vfnum 1 function: hw_addr 00:00:00:00:00:00 ipsec_packet disabled max_io_eqs 10 Set maximum IO event queues of the VF device:: $ devlink port function set pci/0000:06:00.0/2 max_io_eqs 32 $ devlink port show pci/0000:06:00.0/2 pci/0000:06:00.0/2: type eth netdev enp6s0pf0vf1 flavour pcivf pfnum 0 vfnum 1 function: hw_addr 00:00:00:00:00:00 ipsec_packet disabled max_io_eqs 32 Signed-off-by: Parav Pandit <parav@nvidia.com> Signed-off-by: David Ahern <dsahern@kernel.org>
2024-04-13Update kernel headersDavid Ahern
Update kernel headers to commit: 32affa5578f0 ("fib: rules: no longer hold RTNL in fib_nl_dumprule()") Signed-off-by: David Ahern <dsahern@kernel.org>
2024-04-13ip: Support filter links with no VF inforenmingshuai
Kernel has add IFLA_EXT_MASK attribute for indicating that certain extended ifinfo values are requested by the user application. The ip link show cmd always request VFs extended ifinfo. In this case, RTM_GETLINK for greater than about 220 VFs truncates IFLA_VFINFO_LIST due to the maximum reach of nlattr's nla_len being exceeded. As a result, ip link show command only show the truncated VFs info sucn as: #ip link show dev eth0 1: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 ... link/ether ... vf 0 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff ... Truncated VF list: eth0 This patch add novf to support filter links with no VF info: ip link show novf v2: - use an one word option instead of an option with on/off. - fix the issue that break changes made for the link filter already done for VF's. v3: - "novf" set vfinfo to 0 and the RTEXT_FILTER_VF flag is not added. Signed-off-by: Mingshuai Ren <renmingshuai@huawei.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: David Ahern <dsahern@kernel.org>
2024-04-03man: fix brief explanation of `ip netns attach NAME PID`Yusuke Ichiki
Rewrite the explanation as it was duplicated with that of `ip netns add NAME`. Signed-off-by: Yusuke Ichiki <public@yusuke.pub> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-03-28arpd: create /var/lib/arpd on first useMax Gautier
The motivation is to build distributions packages without /var to go towards stateless systems, see link below (TL;DR: provisionning anything outside of /usr on boot). We only try do create the database directory when it's in the default location, and assume its parent (/var/lib in the usual case) exists. Links: https://0pointer.net/blog/projects/stateless.html Signed-off-by: Max Gautier <mg@max.gautier.name> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-03-28ila: allow show, list and lst as synonymsStephen Hemminger
Across ip commands show, list and misspelling lst are treated the same. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-03-26bridge: vlan: fix compressvlans usageDate Huang
Add the missing 'compressvlans' to man page Signed-off-by: Date Huang <tjjh89017@hotmail.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-03-26bridge: vlan: fix compressvlans usageDate Huang
Fix the incorrect short opt for compressvlans and color in usage Signed-off-by: Date Huang <tjjh89017@hotmail.com> Acked-by: Nikolay Aleksandrov <razor@blackwall.org> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-03-24uapi: update vdpa.hStephen Hemminger
Autogenerated from 6.9-rc1. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-03-19ifstat: don't set errno if strdup failsDenis Kirjanov
the strdup man page states that the errno value set by the function so there is not need to set it. Signed-off-by: Denis Kirjanov <dkirjanov@suse.de> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-03-19ifstat: handle strdup return valueDenis Kirjanov
get_nlmsg_extended is missing the check as it's done in get_nlmsg v2: don't set the errno value explicitly Signed-off-by: Denis Kirjanov <dkirjanov@suse.de> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-03-16uapi: update headersStephen Hemminger
User headers based on pre 6.9-rc1 Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2024-03-15Merge branch 'nexthop-grp-stats' into nextDavid Ahern
Petr Machata says: ==================== Next hop group stats allow verification of balancedness of a next hop group. The feature was merged in kernel commit 7cf497e5a122 ("Merge branch 'nexthop-group-stats'"). This patchset adds to ip the corresponding support. NH group stats come in two flavors: as statistics for SW and for HW datapaths. The former is shown when -s is given to "ip nexthop". The latter demands more work from the kernel, and possibly driver and HW, and might not be always necessary. Therefore tie it to -s -s, similarly to how ip link shows more detailed stats when -s is given twice. Here's an example usage: # ip link add name gre1 up type gre \ local 172.16.1.1 remote 172.16.1.2 tos inherit # ip nexthop replace id 1001 dev gre1 # ip nexthop replace id 1002 dev gre1 # ip nexthop replace id 1111 group 1001/1002 hw_stats on # ip -s -s -j -p nexthop show id 1111 [ { [ ...snip... ] "hw_stats": { "enabled": true, "used": true }, "group_stats": [ { "id": 1001, "packets": 0, "packets_hw": 0 },{ "id": 1002, "packets": 0, "packets_hw": 0 } ] } ] hw_stats.enabled shows whether hw_stats have been requested for the given group. hw_stats.used shows whether any driver actually implemented the counter. group_stats[].packets show the total stats, packets_hw only the HW-datapath stats. ==================== Signed-off-by: David Ahern <dsahern@kernel.org>