Skip to content

Commit 838d59d

Browse files
author
Aritra Basu
committed
fix IPv6 gateway reachability with ND proxy
IPv6 gateway traffic (DHCPv6/ICMP) fails when VPP takes over the uplink. - Without gateway ND proxy, host NS for the default gateway is dropped by VPP with "neighbor solicitations for unknown targets" error due to missing /128 target entry in the tap FIB. Fix: - Enable ND proxy for the gateway on the tap so the host can resolve the gateway via VPP. Signed-off-by: Aritra Basu <[email protected]>
1 parent 86f489e commit 838d59d

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

vpp-manager/vpp_runner.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,22 @@ func (v *VppRunner) configureVppUplinkInterface(
654654
}
655655
}
656656

657+
/*
658+
* Add ND proxy for IPv6 gateway addresses.
659+
* Without ND proxy for gateway, host's NS for gateway is dropped with "neighbor
660+
* solicitations for unknown targets" error because there's no /128 FIB entry.
661+
* This requires VPP patch https://gerrit.fd.io/r/c/vpp/+/44350 to fix NA loop bug.
662+
*/
663+
for _, route := range ifState.Routes {
664+
if route.Gw != nil && route.Gw.To4() == nil {
665+
log.Infof("Adding ND proxy for IPv6 gateway %s", route.Gw)
666+
err = v.vpp.EnableIP6NdProxy(tapSwIfIndex, route.Gw)
667+
if err != nil {
668+
log.Errorf("Error configuring ND proxy for gateway %s: %v", route.Gw, err)
669+
}
670+
}
671+
}
672+
657673
if *config.GetCalicoVppDebug().GSOEnabled {
658674
err = v.vpp.EnableGSOFeature(tapSwIfIndex)
659675
if err != nil {

vpplink/generated/vpp_clone_current.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ git_cherry_pick refs/changes/07/43107/4 # 43107: vcl: fix fifo private vpp sh on
145145
git_cherry_pick refs/changes/14/43714/5 # 43714: session: fix handling of closed during migration | https://gerrit.fd.io/r/c/vpp/+/43714
146146
git_cherry_pick refs/changes/39/43139/5 # 43139: udp: regrab connected session after transport clone | https://gerrit.fd.io/r/c/vpp/+/43139
147147
git_cherry_pick refs/changes/23/43723/3 # 43723: session svm: fix session migrate attach data corruption | https://gerrit.fd.io/r/c/vpp/+/43723
148+
git_cherry_pick refs/changes/50/44350/2 # 44350: vnet: fix unicast NA handling in ND proxy | https://gerrit.fd.io/r/c/vpp/+/44350
148149

149150
# --------------- private plugins ---------------
150151
# Generated with 'git format-patch --zero-commit -o ./patches/ HEAD^^^'

0 commit comments

Comments
 (0)