Linux kernel source tree
Go to file
Petr Machata 96e8f5a9fe net: ipv6: Add ip6_mr_output()
Multicast routing is today handled in the input path. Locally generated MC
packets don't hit the IPMR code today. Thus if a VXLAN remote address is
multicast, the driver needs to set an OIF during route lookup. Thus MC
routing configuration needs to be kept in sync with the VXLAN FDB and MDB.
Ideally, the VXLAN packets would be routed by the MC routing code instead.

To that end, this patch adds support to route locally generated multicast
packets. The newly-added routines do largely what ip6_mr_input() and
ip6_mr_forward() do: make an MR cache lookup to find where to send the
packets, and use ip6_output() to send each of them. When no cache entry is
found, the packet is punted to the daemon for resolution.

Similarly to the IPv4 case in a previous patch, the new logic is contingent
on a newly-added IP6CB flag being set.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Link: https://patch.msgid.link/3bcc034a3ab4d3c291072fff38f78d7fbbeef4e6.1750113335.git.petrm@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-06-17 18:18:46 -07:00
Documentation tcp: remove RFC3517/RFC6675 hint state: lost_skb_hint, lost_cnt_hint 2025-06-17 16:19:04 -07:00
LICENSES
arch ARC fixes for 6.16 2025-06-12 08:17:56 -07:00
block treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
certs
crypto
drivers net: ipv6: Add a flags argument to ip6tunnel_xmit(), udp_tunnel6_xmit_skb() 2025-06-17 18:18:45 -07:00
fs The delayed from_timer() API cleanup: 2025-06-08 11:33:00 -07:00
include net: ipv6: Add ip6_mr_output() 2025-06-17 18:18:46 -07:00
init Rust changes for v6.16 2025-06-04 21:18:37 -07:00
io_uring io_uring-6.16-20250606 2025-06-06 13:09:03 -07:00
ipc
kernel The delayed from_timer() API cleanup: 2025-06-08 11:33:00 -07:00
lib 13 hotfixes. 6 are cc:stable and the remainder address post-6.15 issues 2025-06-06 21:45:45 -07:00
mm Revert "mm/damon/Kconfig: enable CONFIG_DAMON by default" 2025-06-10 10:22:15 -07:00
net net: ipv6: Add ip6_mr_output() 2025-06-17 18:18:46 -07:00
rust Char/Misc/IIO pull request for 6.16-rc1 2025-06-06 11:50:47 -07:00
samples
scripts Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
security KEYS: Invert FINAL_PUT bit 2025-06-11 11:57:14 -07:00
sound treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
tools selftests: devmem: add ipv4 support to chunks test 2025-06-17 18:00:27 -07:00
usr
virt
.clang-format
.clippy.toml
.cocciconfig
.editorconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap Including fixes from bluetooth and wireless. 2025-06-12 09:50:36 -07:00
.pylintrc
.rustfmt.toml
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-06-12 10:09:10 -07:00
Makefile Linux 6.16-rc1 2025-06-08 13:44:43 -07:00
README

README

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.