Skip to content

KVM: add configurable MAC/IP script hook for static ARP/NDP and routes#13495

Open
wido wants to merge 1 commit into
apache:mainfrom
wido:vxlan-static-macip
Open

KVM: add configurable MAC/IP script hook for static ARP/NDP and routes#13495
wido wants to merge 1 commit into
apache:mainfrom
wido:vxlan-static-macip

Conversation

@wido

@wido wido commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Introduces a new agent.properties option vm.network.macip.script (absolute path, disabled by default) that BridgeVifDriver invokes on every NIC plug (VM start) and unplug (VM stop).

This is very useful in EVPN+VXLAN environments as it can reduce BUM traffic. By setting static ARP/NDP entries bridges can be configured using 'neigh_suppress on' as the ARP/NDP entries are already set statically by CloudStack.

@codecov

codecov Bot commented Jun 25, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 15.90909% with 37 lines in your changes missing coverage. Please review.
✅ Project coverage is 18.94%. Comparing base (348ce95) to head (3f8193c).
⚠️ Report is 274 commits behind head on main.

Files with missing lines Patch % Lines
...cloud/hypervisor/kvm/resource/BridgeVifDriver.java 9.75% 35 Missing and 2 partials ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main   #13495      +/-   ##
============================================
+ Coverage     17.68%   18.94%   +1.26%     
- Complexity    15793    18376    +2583     
============================================
  Files          5922     6192     +270     
  Lines        533123   556600   +23477     
  Branches      65201    67964    +2763     
============================================
+ Hits          94268   105450   +11182     
- Misses       428212   439572   +11360     
- Partials      10643    11578     +935     
Flag Coverage Δ
uitests 3.51% <ø> (-0.18%) ⬇️
unittests 20.15% <15.90%> (+1.39%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@DaanHoogland DaanHoogland left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

clgtm, why not set your script as default value for the property @wido ? (if it is well tested and robust, that is)

@wido

wido commented Jun 26, 2026

Copy link
Copy Markdown
Contributor Author

clgtm, why not set your script as default value for the property @wido ? (if it is well tested and robust, that is)

Thanks, the reason the script does not always execute is that it could break existing setups. Therefor it is not set by default.

@DaanHoogland

Copy link
Copy Markdown
Contributor

clgtm, why not set your script as default value for the property @wido ? (if it is well tested and robust, that is)

Thanks, the reason the script does not always execute is that it could break existing setups. Therefor it is not set by default.

yeah, that is what I meant by robust ;) np, fine like this as well.

Introduces a new agent.properties option `vm.network.macip.static`
(false by default) that makes BridgeVifDriver invoke on modifymacip.sh
on every NIC plug (VM start) and unplug (VM stop).

This is very useful in EVPN+VXLAN environments as it can reduce BUM
traffic. By setting static ARP/NDP entries bridges can be configured
using 'neigh_suppress on' as the ARP/NDP entries are already set
statically by CloudStack.

Setting 'neigh_suppress on' requires a manual change in the modifyvxlan.sh
script as this is not the default behavior.
@wido wido force-pushed the vxlan-static-macip branch from 4fc35a6 to 3f8193c Compare June 29, 2026 20:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants