Yu Watanabe
798931160e
tree-wide: add a space after if, switch, for, and while
2022-04-01 22:48:42 +09:00
Yu Watanabe
18f84f8aba
udev/net: support to set MDI-X mode
...
Closes #22386 .
2022-02-08 15:47:46 +00:00
Lennart Poettering
7c248223eb
tree-wide: use new RET_NERRNO() helper at various places
2021-11-16 08:04:09 +01:00
Yu Watanabe
ed9fa69f1c
ethtool-util: introduce ethtool_get_permanent_hw_addr()
...
And replaces all ethtool_get_permanent_macaddr() with it.
2021-11-13 08:53:33 +09:00
Lennart Poettering
95fe7b28d3
ethtool-util: let's use userspace types in userspace code
...
Using kernel types __u32 is fine for headers shared by the kernel, but
if we define something in userspace and only use it in userspace, in our
own .c files, let's stick to userspace fixed-length types.
2021-10-11 14:10:44 +02:00
Yu Watanabe
9bd3ecdd8d
ethtool-util: make ethtool_set_wol() take password
2021-10-06 21:57:14 +09:00
Yu Watanabe
20274ab86a
ethtool-util: do not try to enable unsupported WoL options
2021-10-06 21:44:02 +09:00
Yu Watanabe
b4b2a49287
ethtool-util: make wol_options_to_string() not return all flag strings
2021-10-06 21:33:06 +09:00
Yu Watanabe
77bf5c31de
ethtool-util: add more network device features
...
Then, we can easily add new settings to configure features in .link
file.
2021-09-15 02:12:02 +09:00
Yu Watanabe
7a4f203547
ethtool-util: apply tx-checksum-* features at last
...
NET_DEV_FEAT_TX matches multiple features. In the next commit, all
features whose strings start with "tx-checksum-" will be added.
To make them take precedence over NET_DEV_FEAT_TX, it will be applied
only when each explicit feature is not applied.
2021-09-15 02:07:15 +09:00
Yu Watanabe
008d3a370c
ethtool: do not set unavailable or never_changed bits
2021-09-15 01:56:19 +09:00
Yu Watanabe
4253dab576
ethtool-util: shorten code a bit
...
Also fixes a error code in debugging log.
2021-09-15 01:41:19 +09:00
Yu Watanabe
6d9a72f3b9
ethtool-util: use sizeof()
2021-09-15 01:32:35 +09:00
Yu Watanabe
72328a5977
ethtool: move function
...
I'd like to locate all conf parsers at end of file.
2021-08-26 03:32:39 +09:00
Daan De Meyer
8f821d90bf
link: Add support for rx-gro-hw nic feature
2021-08-20 09:15:02 +01:00
Daan De Meyer
6c35ea5ef0
udev: Add support for configuring nic coalescing settings
...
These are configured via the corresponding ethtool ioctl.
2021-08-20 00:32:28 +01:00
Yu Watanabe
0d341eccef
udev: make RxChannels= or friends also accept "max"
...
Follow-up for 406041b7de .
Also, this makes
- the settings accept an empty string,
- if the specified value is too large, also use the advertised maximum
value.
- mention the range of the value in the man page.
2021-08-18 16:55:03 +02:00
Daan De Meyer
406041b7de
udev: Support "max" string for BufferSize options ( #20458 )
...
"max" indicates the hardware advertised maximum queue buffer size
should be used.
The max sizes can be checked by running `ethtool -g <dev>` (Preset maximums).
Since the buffer sizes can't be set to 0 by users, internally we use 0 to
indicate that the hardware advertised maximum should be used.
2021-08-18 15:59:13 +09:00
Yu Watanabe
c2f2250e5c
ethtool: make ethtool_set_features() return earlier when nothing is requested
2021-08-17 00:49:01 +09:00
Yu Watanabe
0db68800c7
ethtool: make the size of 'features' array static
2021-08-17 00:48:18 +09:00
Yu Watanabe
c50404aecc
udev: make WakeOnLan= take multiple features
...
WAKE_XXX are flag, not enum.
2021-06-08 18:24:11 +02:00
Yu Watanabe
3ee316bd7b
ethtool-util: drop unused function
2021-05-23 11:40:15 +09:00
Yu Watanabe
ba1030594e
ethtool-util: do not touch anything if nothing is requested
...
And update settings only when it is necessary.
2021-05-23 11:40:15 +09:00
Yu Watanabe
c8e644b116
ethtool-util: disable autonegotiation when speed, duplex, or port is specified
...
And if autonegotiation is enabled, speed, duplex, and port are ignored.
Fixes #19625 .
2021-05-23 11:40:15 +09:00
Yu Watanabe
4323046c5f
ethtool-util: move and rebreak comments
2021-05-23 11:40:15 +09:00
Yu Watanabe
4f5040313d
ethtool-util: make ethtool_connect() open fd only when it is not opened
2021-05-23 11:39:56 +09:00
Yu Watanabe
11a288e846
ethtool-util: downgrade log level
...
This just hides issue #19625 . It will be fixed in later commits.
2021-05-22 04:40:54 +09:00
Yu Watanabe
b98680b2b8
tree-wide: use error codes in xxx_from_string()
2021-02-12 01:17:13 +09:00
Yu Watanabe
131e4deaf3
ethtool: add two new link modes
2020-12-03 11:23:50 +09:00
Yu Watanabe
861de64e68
ethtool: make ethtool_get_driver() return -ENODATA if ioctl succeeds but driver name is empty
...
Inspired by #17532 .
2020-11-10 01:14:42 +09:00
Yu Watanabe
a93187ced5
ethtool: add several assertions
2020-11-10 01:04:39 +09:00
Yu Watanabe
db9ecf0501
license: LGPL-2.1+ -> LGPL-2.1-or-later
2020-11-09 13:23:58 +09:00
Zbigniew Jędrzejewski-Szmek
943142a97d
Merge pull request #17185 from yuwata/ethtool-update
...
ethtool: add several link modes
2020-10-23 08:22:09 +02:00
Yu Watanabe
fe2aeef816
ethtool: add several new link modes
2020-09-28 22:49:33 +09:00
Yu Watanabe
41f4269619
ethtool: convert underscore to hyphen
2020-09-28 22:44:05 +09:00
Yu Watanabe
cadc7ed2e2
ethtool: constify arguments for ethtool_set_xxx()
2020-09-15 11:06:25 +09:00
Yu Watanabe
4c382a8772
ethtool: downgrade log level when the error will be ignored
2020-09-10 13:59:04 +09:00
Lennart Poettering
d8ea7f838b
ethtool-util: don't pass error value that isn't used to log_syntax
2020-09-09 23:43:20 +02:00
Zbigniew Jędrzejewski-Szmek
9b107000ab
Merge pull request #15762 from keszybz/gcc-10-build
...
Fix build with -O3 with gcc 10
2020-05-11 19:43:40 +02:00
Zbigniew Jędrzejewski-Szmek
94c0c5b7ea
shared/ethtool-util: hush gcc warnings about array bounds
...
[127/1355] Compiling C object 'src/shared/5afaae1@@systemd-shared-245@sta/ethtool-util.c.o'
../src/shared/ethtool-util.c: In function ‘ethtool_get_permanent_macaddr’:
../src/shared/ethtool-util.c:260:60: warning: array subscript 5 is outside the bounds of an interior zero-length array ‘__u8[0]’ {aka ‘unsigned char[]’} [-Wzero-length-bounds]
260 | ret->ether_addr_octet[i] = epaddr.addr.data[i];
| ~~~~~~~~~~~~~~~~^~~
In file included from ../src/shared/ethtool-util.c:5:
../src/shared/linux/ethtool.h:704:7: note: while referencing ‘data’
704 | __u8 data[0];
| ^~~~
../src/shared/ethtool-util.c: In function ‘ethtool_set_features’:
../src/shared/ethtool-util.c:488:31: warning: array subscript 0 is outside the bounds of an interior zero-length array ‘__u32[0]’ {aka ‘unsigned int[]’} [-Wzero-length-bounds]
488 | len = buffer.info.data[0];
| ~~~~~~~~~~~~~~~~^~~
In file included from ../src/shared/ethtool-util.c:5:
../src/shared/linux/ethtool.h:631:8: note: while referencing ‘data’
631 | __u32 data[0];
| ^~~~
The kernel should not define the length of the array, but it does. We can't fix
that, so let's use a cast to avoid the warning.
For https://github.com/systemd/systemd/issues/6119#issuecomment-626073743 .
v2:
- use #pragma instead of a cast. It seems the cast only works in some cases, and
gcc is "smart" enough to see beyond the cast. Unfortunately clang does not support
this warning, so we need to do a config check whether to try to suppress.
2020-05-11 13:57:11 +02:00
наб
2f665f2437
networkctl: use uint64_t for link speed throughout
...
format-table used size_t/uint64_t interchangeably for TABLE_BPS,
and ethtool-util used SIZE_MAX to indicate SPEED_UNKNOWN,
which worked only on ABIs with 64-bit pointers.
For example, the tg3 driver returns SPEED_UNKNOWN with no link (cf.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/broadcom/tg3.c?id=3eb2efbea193789397c36f52b17d8692ac79bf68#n12190 )
which on x32 (and other 32-bit ABIs, presumably) caused
"networkctl status" to mark it with "Speed: 4Gbps":
nabijaczleweli@szarotka:~$ networkctl --version
systemd 245 (245.5-2)
nabijaczleweli@szarotka:~$ file $(which networkctl)
/bin/networkctl: ELF 32-bit LSB shared object, x86-64, version 1 (SYSV),
dynamically linked, interpreter /libx32/ld-linux-x32.so.2,
BuildID[sha1]=36d684cb1fc8fb5060050d32b969e5aa172fa607, for GNU/Linux
3.4.0, stripped
nabijaczleweli@szarotka:~$ networkctl status onboard1
● 4: onboard1
Driver: tg3
Model: NetXtreme BCM5755 Gigabit Ethernet PCI Express
Speed: 4Gbps
Whereas on 64-bit-pointer ABIs (here: amd64):
nabijaczleweli@szarotka:~$ networkctl --version
systemd 245 (245.5-2)
nabijaczleweli@szarotka:~$ file $(which networkctl)
/bin/networkctl: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2,
BuildID[sha1]=7a3e406e54968d7774ad467fc3f6a9d35ff7aea2, for GNU/Linux
3.2.0, stripped
nabijaczleweli@szarotka:~$ networkctl status onboard1
● 4: onboard1
Driver: tg3
Model: NetXtreme BCM5755 Gigabit Ethernet PCI Express
Speed: n/a
With this patch, networkctl returns, for x32:
nabijaczleweli@szarotka:~$ networkctl --version
systemd 245 (245.5-2.1~networkctl-4g-v2)
nabijaczleweli@szarotka:~$ file $(which networkctl)
/bin/networkctl: ELF 32-bit LSB shared object, x86-64, version 1 (SYSV),
dynamically linked, interpreter /libx32/ld-linux-x32.so.2,
BuildID[sha1]=36d684cb1fc8fb5060050d32b969e5aa172fa607, for GNU/Linux
3.4.0, stripped
nabijaczleweli@szarotka:~$ networkctl status onboard1
● 4: onboard1
Driver: tg3
Model: NetXtreme BCM5755 Gigabit Ethernet PCI Express
Speed: n/a
And for amd64:
nabijaczleweli@szarotka:~$ file $(which networkctl)
/bin/networkctl: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2,
BuildID[sha1]=7a3e406e54968d7774ad467fc3f6a9d35ff7aea2, for GNU/Linux
3.2.0, stripped
nabijaczleweli@szarotka:~$ networkctl status onboard1
● 4: onboard1
Driver: tg3
Model: NetXtreme BCM5755 Gigabit Ethernet PCI Express
Speed: n/a
2020-05-09 08:49:31 +02:00
nabijaczleweli
e81f5fc4e8
link: Allow configuring RX mini and jumbo ring sizes, too
...
This now covers all ethtool_ringparam configurables (as of v5.6;
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/ethtool.h?h=v5.6#n488 )
2020-04-29 18:57:13 +02:00
nabijaczleweli
80af9bdabe
link: Add units and fix typo in (Rx|Tx)BufferSize= manpage. Clean up the implementation slightly
2020-04-29 18:55:42 +02:00
Yu Watanabe
a34811e4ef
udev: support to update flow control parameter
...
Closes #14770 .
2020-03-07 01:43:26 +09:00
Yu Watanabe
bf2334c054
udev: add {Receive,Transmit}ChecksumOffload= settings
...
Closes #14661 .
2020-02-03 12:31:31 +09:00
Yu Watanabe
5029912157
network,udev: use uint64_t for bit rate
...
Fixes #14620 .
2020-01-21 16:51:19 +01:00
Zbigniew Jędrzejewski-Szmek
0475919b56
network: use automatic stack allocation and structured init
2020-01-08 17:15:19 +01:00
Zbigniew Jędrzejewski-Szmek
6666c4faee
network: do not require ethtool_get_permanent_macaddr() to get an fd
2020-01-08 17:14:56 +01:00
Zbigniew Jędrzejewski-Szmek
64be35ab02
network: rename *fd to *ethtool_fd
2020-01-08 11:55:07 +01:00
Yu Watanabe
79b4428a7d
ethtool: introduce ethtool_get_permanent_macaddr()
...
Will be used in later commits.
2020-01-08 17:51:56 +09:00