Commit c55f34a
Paolo Abeni
Merge branch 'netdev_features-start-cleaning-netdev_features_t-up'
Alexander Lobakin says:
====================
netdev_features: start cleaning netdev_features_t up
NETDEV_FEATURE_COUNT is currently 64, which means we can't add any new
features as netdev_features_t is u64.
As per several discussions, instead of converting netdev_features_t to
a bitmap, which would mean A LOT of changes, we can try cleaning up
netdev feature bits.
There's a bunch of bits which don't really mean features, rather device
attributes/properties that can't be changed via Ethtool in any of the
drivers. Such attributes can be moved to netdev private flags without
losing any functionality.
Start converting some read-only netdev features to private flags from
the ones that are most obvious, like lockless Tx, inability to change
network namespace etc. I was able to reduce NETDEV_FEATURE_COUNT from
64 to 60, which mean 4 free slots for new features. There are obviously
more read-only features to convert, such as highDMA, "challenged VLAN",
HSR (4 bits) - this will be done in subsequent series.
Please note that currently netdev features are not uAPI/ABI by any means.
Ethtool passes their names and bits to the userspace separately and there
are no hardcoded names/bits in the userspace, so that new Ethtool could
work on older kernels and vice versa.
This, however, isn't true for Ethtools < 3.4. I haven't changed the bit
positions of the already existing features and instead replaced the freed
bits with stubs. But it's anyway theoretically possible that Ethtools
older than 2011 will break. I hope no currently supported distros supply
such an ancient version.
Shell scripts also most likely won't break since the removed bits were
always read-only, meaning nobody would try touching them from a script.
====================
Link: https://patch.msgid.link/20240829123340.789395-1-aleksander.lobakin@intel.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>File tree
83 files changed
+208
-194
lines changed- Documentation/networking
- net_cachelines
- drivers
- net
- bonding
- ethernet
- adi
- chelsio
- cxgb4
- cxgb
- freescale
- dpaa2
- dpaa
- intel/ixgbe
- marvell/prestera
- mellanox
- mlx5/core
- mlxsw
- microchip/lan966x
- netronome/nfp
- pasemi
- qualcomm/rmnet
- rocker
- sfc
- tehuti
- ti
- toshiba
- hamradio
- ipvlan
- ppp
- team
- vxlan
- wireguard
- scsi/fcoe
- staging/octeon
- include/linux
- lib
- net
- 8021q
- batman-adv
- bridge
- core
- dsa
- ethtool
- hsr
- ieee802154
- 6lowpan
- ipv4
- ipv6
- l2tp
- openvswitch
- wireless
- xfrm
- tools/testing/selftests/net/forwarding
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
83 files changed
+208
-194
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
| 11 | + | |
10 | 12 | | |
11 | 13 | | |
12 | 14 | | |
| |||
23 | 25 | | |
24 | 26 | | |
25 | 27 | | |
26 | | - | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| |||
163 | 164 | | |
164 | 165 | | |
165 | 166 | | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
166 | 171 | | |
167 | 172 | | |
168 | 173 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | 142 | | |
158 | 143 | | |
159 | 144 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
258 | 258 | | |
259 | 259 | | |
260 | 260 | | |
261 | | - | |
| 261 | + | |
262 | 262 | | |
263 | 263 | | |
264 | 264 | | |
265 | | - | |
| 265 | + | |
266 | 266 | | |
267 | 267 | | |
268 | 268 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
137 | 137 | | |
138 | 138 | | |
139 | 139 | | |
140 | | - | |
| 140 | + | |
141 | 141 | | |
142 | 142 | | |
143 | | - | |
| 143 | + | |
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3098 | 3098 | | |
3099 | 3099 | | |
3100 | 3100 | | |
3101 | | - | |
| 3101 | + | |
| 3102 | + | |
3102 | 3103 | | |
3103 | | - | |
3104 | 3104 | | |
3105 | 3105 | | |
3106 | 3106 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
553 | 553 | | |
554 | 554 | | |
555 | 555 | | |
556 | | - | |
557 | 556 | | |
558 | 557 | | |
559 | 558 | | |
| |||
566 | 565 | | |
567 | 566 | | |
568 | 567 | | |
| 568 | + | |
569 | 569 | | |
570 | 570 | | |
571 | 571 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5928 | 5928 | | |
5929 | 5929 | | |
5930 | 5930 | | |
5931 | | - | |
| 5931 | + | |
| 5932 | + | |
| 5933 | + | |
| 5934 | + | |
5932 | 5935 | | |
5933 | 5936 | | |
5934 | 5937 | | |
| |||
5937 | 5940 | | |
5938 | 5941 | | |
5939 | 5942 | | |
5940 | | - | |
5941 | | - | |
5942 | | - | |
5943 | 5943 | | |
5944 | 5944 | | |
5945 | 5945 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
109 | 109 | | |
110 | 110 | | |
111 | 111 | | |
| 112 | + | |
112 | 113 | | |
113 | 114 | | |
114 | | - | |
| 115 | + | |
115 | 116 | | |
116 | 117 | | |
117 | 118 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1599 | 1599 | | |
1600 | 1600 | | |
1601 | 1601 | | |
1602 | | - | |
| 1602 | + | |
1603 | 1603 | | |
1604 | 1604 | | |
1605 | 1605 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1034 | 1034 | | |
1035 | 1035 | | |
1036 | 1036 | | |
1037 | | - | |
| 1037 | + | |
| 1038 | + | |
1038 | 1039 | | |
1039 | 1040 | | |
1040 | 1041 | | |
| |||
0 commit comments