Linux kernel source tree
Go to file
Ido Schimmel f036e68212 ipv4: Fix incorrect TOS in fibmatch route get reply
The TOS value that is returned to user space in the route get reply is
the one with which the lookup was performed ('fl4->flowi4_tos'). This is
fine when the matched route is configured with a TOS as it would not
match if its TOS value did not match the one with which the lookup was
performed.

However, matching on TOS is only performed when the route's TOS is not
zero. It is therefore possible to have the kernel incorrectly return a
non-zero TOS:

 # ip link add name dummy1 up type dummy
 # ip address add 192.0.2.1/24 dev dummy1
 # ip route get fibmatch 192.0.2.2 tos 0xfc
 192.0.2.0/24 tos 0x1c dev dummy1 proto kernel scope link src 192.0.2.1

Fix by instead returning the DSCP field from the FIB result structure
which was populated during the route lookup.

Output after the patch:

 # ip link add name dummy1 up type dummy
 # ip address add 192.0.2.1/24 dev dummy1
 # ip route get fibmatch 192.0.2.2 tos 0xfc
 192.0.2.0/24 dev dummy1 proto kernel scope link src 192.0.2.1

Extend the existing selftests to not only verify that the correct route
is returned, but that it is also returned with correct "tos" value (or
without it).

Fixes: b61798130f ("net: ipv4: RTM_GETROUTE: return matched fib result when requested")
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Reviewed-by: Guillaume Nault <gnault@redhat.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2024-07-18 11:11:02 +02:00
arch Networking changes for 6.11. Not much excitement - a handful of large 2024-07-16 19:28:34 -07:00
block for-6.11/block-20240710 2024-07-15 14:20:22 -07:00
certs kbuild: use $(src) instead of $(srctree)/$(src) for source directory 2024-05-10 04:34:52 +09:00
crypto This push fixes a bug in the new ecc P521 code as well as a buggy 2024-05-20 08:47:54 -07:00
Documentation Networking changes for 6.11. Not much excitement - a handful of large 2024-07-16 19:28:34 -07:00
drivers net: airoha: fix error branch in airoha_dev_xmit and airoha_set_gdm_ports 2024-07-17 22:11:55 -07:00
fs Networking changes for 6.11. Not much excitement - a handful of large 2024-07-16 19:28:34 -07:00
include ipv4: Fix incorrect TOS in route get reply 2024-07-18 11:11:02 +02:00
init gcc: disable '-Warray-bounds' for gcc-9 2024-06-15 10:43:04 -07:00
io_uring Networking changes for 6.11. Not much excitement - a handful of large 2024-07-16 19:28:34 -07:00
ipc ipc: mqueue: remove assignment from IS_ERR argument 2024-07-09 06:47:40 +02:00
kernel Networking changes for 6.11. Not much excitement - a handful of large 2024-07-16 19:28:34 -07:00
lib Networking changes for 6.11. Not much excitement - a handful of large 2024-07-16 19:28:34 -07:00
LICENSES LICENSES: Add the copyleft-next-0.3.1 license 2022-11-08 15:44:01 +01:00
mm linux_kselftest-kunit-6.11-rc1 2024-07-16 17:42:14 -07:00
net ipv4: Fix incorrect TOS in fibmatch route get reply 2024-07-18 11:11:02 +02:00
rust for-6.11/block-20240710 2024-07-15 14:20:22 -07:00
samples bpf-next-for-netdev 2024-05-28 07:27:29 -07:00
scripts Networking changes for 6.11. Not much excitement - a handful of large 2024-07-16 19:28:34 -07:00
security Performance events changes for v6.11: 2024-07-16 17:13:31 -07:00
sound Updates for timers, timekeeping and related functionality: 2024-07-15 15:03:09 -07:00
tools ipv4: Fix incorrect TOS in fibmatch route get reply 2024-07-18 11:11:02 +02:00
usr kbuild: use $(src) instead of $(srctree)/$(src) for source directory 2024-05-10 04:34:52 +09:00
virt KVM fixes for 6.10 2024-06-21 08:03:55 -04:00
.clang-format clang-format: Update with v6.7-rc4's for_each macro list 2023-12-08 23:54:38 +01:00
.cocciconfig
.editorconfig .editorconfig: remove trim_trailing_whitespace option 2024-06-13 16:47:52 +02:00
.get_maintainer.ignore Add Jeff Kirsher to .get_maintainer.ignore 2024-03-08 11:36:54 +00:00
.gitattributes .gitattributes: set diff driver for Rust source code files 2023-05-31 17:48:25 +02:00
.gitignore kbuild: create a list of all built DTB files 2024-02-19 18:20:39 +09:00
.mailmap soc: dt updates for 6.11 2024-07-16 11:43:51 -07:00
.rustfmt.toml rust: add .rustfmt.toml 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS Scheduler changes for v6.11: 2024-07-16 17:00:50 -07:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS Networking changes for 6.11. Not much excitement - a handful of large 2024-07-16 19:28:34 -07:00
Makefile asm-generic updates for 6.11 2024-07-16 12:09:03 -07:00
README README: Fix spelling 2024-03-18 03:36:32 -06:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the reStructuredText markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.