Skip to content

Add Inline value to DNSPolicyMode table and mark default#2561

Merged
ctauchen merged 1 commit intotigera:mainfrom
ctauchen:dnspolicymode-inline
Mar 4, 2026
Merged

Add Inline value to DNSPolicyMode table and mark default#2561
ctauchen merged 1 commit intotigera:mainfrom
ctauchen:dnspolicymode-inline

Conversation

@ctauchen
Copy link
Collaborator

@ctauchen ctauchen commented Mar 4, 2026

Summary

  • Adds the new Inline DNSPolicyMode value to the hand-written felixconfig reference tables
  • Marks DelayDeniedPacket as the default value in the table
  • Applied to CE 3.22+, CE 3.23+, CE latest, CC 22+, and CC latest

Description

The Inline mode parses DNS responses inline with DNS response packet processing within iptables, guaranteeing DNS rules reflect changes immediately. This mode works for iptables only and matches the same mode for BPFDNSPolicyMode. It is ignored on Windows where NoDelay is always used.

Test plan

  • Verify the DNSPolicyMode tables render correctly in each version
  • Confirm the Inline row appears between DelayDNSResponse and NoDelay
  • Confirm DelayDeniedPacket shows "(default)" in the Value column

🤖 Generated with Claude Code

Add the new Inline DNSPolicyMode option to the hand-written
felixconfig reference tables for CE 3.22+, CE 3.23+, CE latest,
CC 22+, and CC latest. Also mark DelayDeniedPacket as the default.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ctauchen ctauchen requested a review from a team as a code owner March 4, 2026 15:21
Copilot AI review requested due to automatic review settings March 4, 2026 15:21
@netlify
Copy link

netlify bot commented Mar 4, 2026

Deploy Preview for calico-docs-preview-next ready!

Name Link
🔨 Latest commit 936751c
🔍 Latest deploy log https://app.netlify.com/projects/calico-docs-preview-next/deploys/69a84de1290bce0008066cfe
😎 Deploy Preview https://deploy-preview-2561--calico-docs-preview-next.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link

netlify bot commented Mar 4, 2026

Deploy Preview succeeded!

Built without sensitive environment variables

Name Link
🔨 Latest commit 936751c
🔍 Latest deploy log https://app.netlify.com/projects/tigera/deploys/69a84de1c589900008fa9522
😎 Deploy Preview https://deploy-preview-2561--tigera.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 68 (no change from production)
Accessibility: 98 (no change from production)
Best Practices: 92 (no change from production)
SEO: 100 (no change from production)
PWA: -
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates FelixConfiguration reference docs to reflect the new Inline DNSPolicyMode option and to explicitly mark the default DNSPolicyMode value in the enum table for the affected Calico Enterprise and Calico Cloud doc versions.

Changes:

  • Add Inline as a documented DNSPolicyMode enum value (positioned between DelayDNSResponse and NoDelay).
  • Mark DelayDeniedPacket as the default value in the DNSPolicyMode table.
  • Apply the updates across targeted CE and CC versioned/unversioned doc sets.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
calico-enterprise_versioned_docs/version-3.23-1/reference/resources/felixconfig.mdx Updates DNSPolicyMode enum table to include Inline and mark the default.
calico-enterprise_versioned_docs/version-3.22-2/reference/resources/felixconfig.mdx Same DNSPolicyMode table updates for CE v3.22-2 docs.
calico-enterprise/reference/resources/felixconfig.mdx Same DNSPolicyMode table updates for CE “latest/next” docs.
calico-cloud_versioned_docs/version-22-2/reference/resources/felixconfig.mdx Same DNSPolicyMode table updates for CC v22-2 docs.
calico-cloud/reference/resources/felixconfig.mdx Same DNSPolicyMode table updates for CC “latest/next” docs.

| Value | Description |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| DelayDeniedPacket | Felix delays any denied packet that traversed a policy that included egress domain matches, but did not match. The packet is released after a fixed time, or after the destination IP address was programmed. |
| DelayDeniedPacket (default) | Felix delays any denied packet that traversed a policy that included egress domain matches, but did not match. The packet is released after a fixed time, or after the destination IP address was programmed. |
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

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

The Value cell includes the annotation “(default)”, which makes it no longer match the actual config value (DelayDeniedPacket). This can lead to invalid copy/paste into dnsPolicyMode. Consider keeping the Value column as the literal enum value and indicating the default separately (for example via a note below the table or a dedicated default indicator column).

Copilot uses AI. Check for mistakes.
| Inline | Parses DNS response inline with DNS response packet processing within iptables. This guarantees the DNS rules reflect any change immediately. This mode works for iptables only and matches the same mode for `BPFDNSPolicyMode`. This setting is ignored on Windows and `NoDelay` is always used. |
| NoDelay | Felix does not introduce any delay to the packets. DNS rules may not have been programmed by the time the first packet traverses the policy rules. Client applications need to handle reconnection attempts if initial connection attempts fail. This may be problematic for some applications or for very low DNS TTLs. |

On Windows, or when using the eBPF dataplane, this setting is ignored. Windows always uses `NoDelay` while eBPF has its own [BPFDNSPolicyMode](#bpfdnspolicymode) option.
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

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

This section notes DNSPolicyMode is ignored on Windows/eBPF, but it doesn’t mention nftables. The generated Felix config param description in this repo states DNSPolicyMode has no effect in nftables mode and NFTablesDNSPolicyMode should be used instead. Please update the note here (or the table text) to reflect nftables behavior so users don’t assume this setting applies to nftables.

Suggested change
On Windows, or when using the eBPF dataplane, this setting is ignored. Windows always uses `NoDelay` while eBPF has its own [BPFDNSPolicyMode](#bpfdnspolicymode) option.
On Windows, when using the eBPF dataplane, or when using the nftables dataplane, this setting is ignored. Windows always uses `NoDelay`, while eBPF has its own [BPFDNSPolicyMode](#bpfdnspolicymode) option and nftables has its own `NFTablesDNSPolicyMode` option.

Copilot uses AI. Check for mistakes.
| Value | Description |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| DelayDeniedPacket | Felix delays any denied packet that traversed a policy that included egress domain matches, but did not match. The packet is released after a fixed time, or after the destination IP address was programmed. |
| DelayDeniedPacket (default) | Felix delays any denied packet that traversed a policy that included egress domain matches, but did not match. The packet is released after a fixed time, or after the destination IP address was programmed. |
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

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

The Value cell includes the annotation “(default)”, which makes it no longer match the actual config value (DelayDeniedPacket). This can lead to invalid copy/paste into dnsPolicyMode. Consider keeping the Value column as the literal enum value and indicating the default separately (for example via a note below the table or a dedicated default indicator column).

Copilot uses AI. Check for mistakes.
| Inline | Parses DNS response inline with DNS response packet processing within iptables. This guarantees the DNS rules reflect any change immediately. This mode works for iptables only and matches the same mode for `BPFDNSPolicyMode`. This setting is ignored on Windows and `NoDelay` is always used. |
| NoDelay | Felix does not introduce any delay to the packets. DNS rules may not have been programmed by the time the first packet traverses the policy rules. Client applications need to handle reconnection attempts if initial connection attempts fail. This may be problematic for some applications or for very low DNS TTLs. |

On Windows, or when using the eBPF dataplane, this setting is ignored. Windows always uses `NoDelay` while eBPF has its own [BPFDNSPolicyMode](#bpfdnspolicymode) option.
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

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

This section notes DNSPolicyMode is ignored on Windows/eBPF, but it doesn’t mention nftables. The generated Felix config param description in this repo states DNSPolicyMode has no effect in nftables mode and NFTablesDNSPolicyMode should be used instead. Please update the note here (or the table text) to reflect nftables behavior so users don’t assume this setting applies to nftables.

Suggested change
On Windows, or when using the eBPF dataplane, this setting is ignored. Windows always uses `NoDelay` while eBPF has its own [BPFDNSPolicyMode](#bpfdnspolicymode) option.
On Windows, when using the eBPF dataplane, or when using the nftables dataplane, this setting is ignored. Windows always uses `NoDelay`, eBPF has its own [BPFDNSPolicyMode](#bpfdnspolicymode) option, and nftables uses [NFTablesDNSPolicyMode](#nftablesdnspolicymode).

Copilot uses AI. Check for mistakes.
| Value | Description |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| DelayDeniedPacket | Felix delays any denied packet that traversed a policy that included egress domain matches, but did not match. The packet is released after a fixed time, or after the destination IP address was programmed. |
| DelayDeniedPacket (default) | Felix delays any denied packet that traversed a policy that included egress domain matches, but did not match. The packet is released after a fixed time, or after the destination IP address was programmed. |
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

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

The Value cell includes the annotation “(default)”, which makes it no longer match the actual config value (DelayDeniedPacket). This can lead to invalid copy/paste into dnsPolicyMode. Consider keeping the Value column as the literal enum value and indicating the default separately (for example via a note below the table or a dedicated default indicator column).

Suggested change
| DelayDeniedPacket (default) | Felix delays any denied packet that traversed a policy that included egress domain matches, but did not match. The packet is released after a fixed time, or after the destination IP address was programmed. |
| DelayDeniedPacket | Felix delays any denied packet that traversed a policy that included egress domain matches, but did not match. The packet is released after a fixed time, or after the destination IP address was programmed. This is the default mode. |

Copilot uses AI. Check for mistakes.
Comment on lines +322 to 325
| Inline | Parses DNS response inline with DNS response packet processing within iptables. This guarantees the DNS rules reflect any change immediately. This mode works for iptables only and matches the same mode for `BPFDNSPolicyMode`. This setting is ignored on Windows and `NoDelay` is always used. |
| NoDelay | Felix does not introduce any delay to the packets. DNS rules may not have been programmed by the time the first packet traverses the policy rules. Client applications need to handle reconnection attempts if initial connection attempts fail. This may be problematic for some applications or for very low DNS TTLs. |

On Windows, or when using the eBPF dataplane, this setting is ignored. Windows always uses `NoDelay` while eBPF has its own [BPFDNSPolicyMode](#bpfdnspolicymode) option.
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

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

This section notes DNSPolicyMode is ignored on Windows/eBPF, but it doesn’t mention nftables. The generated Felix config param description in this repo states DNSPolicyMode has no effect in nftables mode and NFTablesDNSPolicyMode should be used instead. Please update the note here (or the table text) to reflect nftables behavior so users don’t assume this setting applies to nftables.

Copilot uses AI. Check for mistakes.
| Value | Description |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| DelayDeniedPacket | Felix delays any denied packet that traversed a policy that included egress domain matches, but did not match. The packet is released after a fixed time, or after the destination IP address was programmed. |
| DelayDeniedPacket (default) | Felix delays any denied packet that traversed a policy that included egress domain matches, but did not match. The packet is released after a fixed time, or after the destination IP address was programmed. |
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

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

The Value cell includes the annotation “(default)”, which makes it no longer match the actual config value (DelayDeniedPacket). This can lead to invalid copy/paste into dnsPolicyMode. Consider keeping the Value column as the literal enum value and indicating the default separately (for example via a note below the table or a dedicated default indicator column).

Copilot uses AI. Check for mistakes.
Comment on lines +322 to 325
| Inline | Parses DNS response inline with DNS response packet processing within iptables. This guarantees the DNS rules reflect any change immediately. This mode works for iptables only and matches the same mode for `BPFDNSPolicyMode`. This setting is ignored on Windows and `NoDelay` is always used. |
| NoDelay | Felix does not introduce any delay to the packets. DNS rules may not have been programmed by the time the first packet traverses the policy rules. Client applications need to handle reconnection attempts if initial connection attempts fail. This may be problematic for some applications or for very low DNS TTLs. |

On Windows, or when using the eBPF dataplane, this setting is ignored. Windows always uses `NoDelay` while eBPF has its own [BPFDNSPolicyMode](#bpfdnspolicymode) option.
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

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

This section notes DNSPolicyMode is ignored on Windows/eBPF, but it doesn’t mention nftables. The generated Felix config param description in this repo states DNSPolicyMode has no effect in nftables mode and NFTablesDNSPolicyMode should be used instead. Please update the note here (or the table text) to reflect nftables behavior so users don’t assume this setting applies to nftables.

Copilot uses AI. Check for mistakes.
| Value | Description |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| DelayDeniedPacket | Felix delays any denied packet that traversed a policy that included egress domain matches, but did not match. The packet is released after a fixed time, or after the destination IP address was programmed. |
| DelayDeniedPacket (default) | Felix delays any denied packet that traversed a policy that included egress domain matches, but did not match. The packet is released after a fixed time, or after the destination IP address was programmed. |
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

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

The Value cell includes the annotation “(default)”, which makes it no longer match the actual config value (DelayDeniedPacket). This can lead to invalid copy/paste into dnsPolicyMode. Consider keeping the Value column as the literal enum value and indicating the default separately (for example via a note below the table or a dedicated default indicator column).

Copilot uses AI. Check for mistakes.
Comment on lines +323 to 326
| Inline | Parses DNS response inline with DNS response packet processing within iptables. This guarantees the DNS rules reflect any change immediately. This mode works for iptables only and matches the same mode for `BPFDNSPolicyMode`. This setting is ignored on Windows and `NoDelay` is always used. |
| NoDelay | Felix does not introduce any delay to the packets. DNS rules may not have been programmed by the time the first packet traverses the policy rules. Client applications need to handle reconnection attempts if initial connection attempts fail. This may be problematic for some applications or for very low DNS TTLs. |

On Windows, or when using the eBPF dataplane, this setting is ignored. Windows always uses `NoDelay` while eBPF has its own [BPFDNSPolicyMode](#bpfdnspolicymode) option.
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

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

This section notes DNSPolicyMode is ignored on Windows/eBPF, but it doesn’t mention nftables. The generated Felix config param description in this repo states DNSPolicyMode has no effect in nftables mode and NFTablesDNSPolicyMode should be used instead. Please update the note here (or the table text) to reflect nftables behavior so users don’t assume this setting applies to nftables.

Copilot uses AI. Check for mistakes.
@ctauchen ctauchen merged commit 0da8263 into tigera:main Mar 4, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants