Skip to content

Kernel: T9067: Update Linux Kernel to 6.18.41 - #1257

Merged
c-po merged 1 commit into
vyos:rollingfrom
c-po:kernel-6.18.41
Aug 2, 2026
Merged

Kernel: T9067: Update Linux Kernel to 6.18.41#1257
c-po merged 1 commit into
vyos:rollingfrom
c-po:kernel-6.18.41

Conversation

@c-po

@c-po c-po commented Aug 2, 2026

Copy link
Copy Markdown
Member

Change summary

Upgrade rolling release Kernel version.

Changelogs:

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes)
  • Migration from an old Vyatta component to vyos-1x, please link to related PR inside obsoleted component
  • Other (please describe):

Related Task(s)

Related PR(s)

How to test / Smoketest result

All Smoketests passed

Checklist:

  • I have read the CONTRIBUTING document
  • I have linked this PR to one or more Phabricator Task(s)
  • My commit headlines contain a valid Task id
  • My change requires a change to the documentation
  • I have updated the documentation accordingly

@coderabbitai

coderabbitai Bot commented Aug 2, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Added IPv4 and IPv6 link filtering controls through network device settings.
    • IPv6 route selection can now exclude routes from devices that are down or lack carrier, depending on the configured filter level.
  • Bug Fixes

    • Updated the default Linux kernel version to 6.18.41.

Walkthrough

Changes

IPv4 and IPv6 link filtering

Layer / File(s) Summary
Link filtering configuration
scripts/package-build/linux-kernel/patches/kernel/0001-linkstate-ip-device-attribute.patch
Adds IPv4 and IPv6 link_filter configuration, sysctl entries, IPv6 configuration export, and documentation.
IPv6 route selection filtering
scripts/package-build/linux-kernel/patches/kernel/0001-linkstate-ip-device-attribute.patch
Adds rt6_link_filter() and applies it during IPv6 route scoring. Routes are rejected when the device is down or lacks carrier under the configured value.

Default kernel version

Layer / File(s) Summary
Default kernel version update
data/defaults.toml
Changes the configured kernel version from 6.18.38 to 6.18.41.

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the kernel update to version 6.18.41 and references task T9067.
Description check ✅ Passed The description explains the kernel upgrade, lists included releases, references task T9067, and reports smoketest results.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
✨ Simplify code
  • Create PR with simplified code

Comment @coderabbitai help to get the list of available commands.

@mergify mergify Bot added the rolling label Aug 2, 2026
@mergify mergify Bot assigned c-po Aug 2, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
scripts/package-build/linux-kernel/patches/kernel/0001-linkstate-ip-device-attribute.patch (3)

37-46: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Document IPv6 link_filter behavior separately.

This documentation is in the IPv4 section and describes received-packet behavior. The patch also adds net.ipv6.conf.*.link_filter, which filters IPv6 route selection. Add an IPv6-specific entry with the supported sysctl paths and route-selection semantics.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@scripts/package-build/linux-kernel/patches/kernel/0001-linkstate-ip-device-attribute.patch`
around lines 37 - 46, Separate the IPv4 received-packet description for
link_filter from the IPv6 documentation, and add an IPv6-specific entry covering
net.ipv6.conf.all.link_filter and net.ipv6.conf.default.link_filter. Describe
the supported values in terms of IPv6 route selection, including the down and
no-carrier conditions, while preserving the existing IPv4 entry.

145-151: 🩺 Stability & Availability | 🔴 Critical | ⚡ Quick win

Guard __in6_dev_get() before reading cnf.link_filter.

At scripts/package-build/linux-kernel/patches/kernel/0001-linkstate-ip-device-attribute.patch:145-151, return 0 when __in6_dev_get(dev) returns NULL. Read idev->cnf.link_filter with READ_ONCE(). IPv6 teardown can clear dev->ip6_ptr, causing a NULL-pointer dereference during route lookup.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@scripts/package-build/linux-kernel/patches/kernel/0001-linkstate-ip-device-attribute.patch`
around lines 145 - 151, Update rt6_link_filter to store the result of
__in6_dev_get(dev), return 0 when it is NULL, and read idev->cnf.link_filter via
READ_ONCE() before evaluating the existing link-state conditions.

127-133: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Propagate net.ipv6.conf.all.link_filter.

proc_dointvec updates only devconf_all->link_filter; rt6_link_filter() reads idev->cnf.link_filter, and new interfaces copy devconf_dflt. Add an all-aware handler that updates existing interfaces and the default configuration.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@scripts/package-build/linux-kernel/patches/kernel/0001-linkstate-ip-device-attribute.patch`
around lines 127 - 133, Replace the link_filter entry’s proc_handler with an
all-aware IPv6 configuration handler that updates devconf_all, propagates the
value to existing interface configurations used by rt6_link_filter(), and
updates devconf_dflt for newly created interfaces; preserve the existing proc
entry metadata and integer handling.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@data/defaults.toml`:
- Line 17: Update the PR metadata associated with kernel_version in
defaults.toml to reference T9151 instead of T9067, while preserving the Linux
6.18.41 version value.

---

Outside diff comments:
In
`@scripts/package-build/linux-kernel/patches/kernel/0001-linkstate-ip-device-attribute.patch`:
- Around line 37-46: Separate the IPv4 received-packet description for
link_filter from the IPv6 documentation, and add an IPv6-specific entry covering
net.ipv6.conf.all.link_filter and net.ipv6.conf.default.link_filter. Describe
the supported values in terms of IPv6 route selection, including the down and
no-carrier conditions, while preserving the existing IPv4 entry.
- Around line 145-151: Update rt6_link_filter to store the result of
__in6_dev_get(dev), return 0 when it is NULL, and read idev->cnf.link_filter via
READ_ONCE() before evaluating the existing link-state conditions.
- Around line 127-133: Replace the link_filter entry’s proc_handler with an
all-aware IPv6 configuration handler that updates devconf_all, propagates the
value to existing interface configurations used by rt6_link_filter(), and
updates devconf_dflt for newly created interfaces; preserve the existing proc
entry metadata and integer handling.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: f852c314-6165-4868-b1e6-65c1d7e14b55

📥 Commits

Reviewing files that changed from the base of the PR and between 8d1faab and 97c2a87.

📒 Files selected for processing (2)
  • data/defaults.toml
  • scripts/package-build/linux-kernel/patches/kernel/0001-linkstate-ip-device-attribute.patch
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • ansible/ansible (manual)
📜 Review details
⏰ Context from checks skipped due to timeout. (4)
  • GitHub Check: build_iso
  • GitHub Check: codeql-analysis-call / Analyze (python)
  • GitHub Check: Mergify Merge Protections
  • GitHub Check: Summary
🧰 Additional context used
🔍 Remote MCP vyos.dev

Relevant review context

  • T9067 is titled “Update Linux Kernel to 6.18.38”, is Resolved, and its description only lists kernel versions 6.18.38 and 6.18.37. Its sole comment links to PR #1238. This does not directly match the current 6.18.41 update.
  • A newer task, T9151, is titled “Update Linux Kernel to 6.18.41 | 6.6.147” and is In progress. Its description explicitly covers Linux 6.18.39, 6.18.40, and 6.18.41, matching this PR’s stated kernel upgrade.
  • T9151 has no comments providing additional implementation or acceptance criteria.

The PR may need its task reference checked: T9151 appears directly aligned with the 6.18.41 upgrade, whereas T9067 tracks the prior 6.18.38 update.

🔇 Additional comments (1)
scripts/package-build/linux-kernel/patches/kernel/0001-linkstate-ip-device-attribute.patch (1)

52-52: LGTM!

Also applies to: 59-59, 71-71, 83-83, 95-95, 107-107, 119-119, 138-138

Comment thread data/defaults.toml
release_train = "rolling"

kernel_version = "6.18.38"
kernel_version = "6.18.41"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🔍 Additional research query:

Confirm whether the Linux kernel 6.18.41 update should reference T9067 or T9151.

💡 Result:

The Linux kernel 6.18.41 update should reference T9151. T9067 covers 6.18.38 and is resolved; T9151 explicitly covers 6.18.41 and is in progress.


🏁 Script executed:

#!/bin/bash
printf '%s\n' '--- kernel version ---'
nl -ba data/defaults.toml | sed -n '12,22p'
printf '%s\n' '--- tracker references ---'
rg -n --hidden --glob '!/.git/**' 'T9067|T9151|6\.18\.41|6\.18\.38' . || true

Repository: vyos/vyos-build

Length of output: 290


Update the PR metadata to reference T9151. T9067 covers Linux 6.18.38, while T9151 covers Linux 6.18.41.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@data/defaults.toml` at line 17, Update the PR metadata associated with
kernel_version in defaults.toml to reference T9151 instead of T9067, while
preserving the Linux 6.18.41 version value.

Source: MCP tools

@sarthurdev sarthurdev left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update kernel version + patch

@mergify

mergify Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown

CI integration 👍 passed!

Details

CI logs

  • Config tests 👍 passed

@c-po
c-po merged commit 15de7f8 into vyos:rolling Aug 2, 2026
15 checks passed
@vyos-bot vyos-bot Bot added mirror-initiated This PR initiated for mirror sync workflow mirror-completed and removed mirror-initiated This PR initiated for mirror sync workflow labels Aug 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

2 participants