From 767c3940149aec3f417337e7587612b672a5a3e4 Mon Sep 17 00:00:00 2001 From: hhyasdf <552483776@qq.com> Date: Mon, 25 Apr 2022 17:01:21 +0800 Subject: [PATCH] add flag to disable enhanced address --- pkg/daemon/config/config.go | 4 ++++ pkg/daemon/controller/ipinstance.go | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pkg/daemon/config/config.go b/pkg/daemon/config/config.go index 8a1b9d8a..530e6898 100644 --- a/pkg/daemon/config/config.go +++ b/pkg/daemon/config/config.go @@ -93,6 +93,8 @@ type Configuration struct { NeighGCThresh1 int NeighGCThresh2 int NeighGCThresh3 int + + EnableVlanArpEnhancement bool } // ParseFlags will parse cmd args then init kubeClient and configuration @@ -119,6 +121,7 @@ func ParseFlags() (*Configuration, error) { argNeighGCThresh2 = pflag.Int("neigh-gc-thresh2", DefaultNeighGCThresh2, "Value to set net.ipv4/ipv6.neigh.default.gc_thresh2") argNeighGCThresh3 = pflag.Int("neigh-gc-thresh3", DefaultNeighGCThresh3, "Value to set net.ipv4/ipv6.neigh.default.gc_thresh3") argExtraNodeLocalVxlanIPCidrs = pflag.String("extra-node-local-vxlan-ip-cidrs", "", "The cidr list to select node extra local vxlan ip, e.g., \"192.168.10.0/24,10.2.3.0/24\"") + argEnableVlanArpEnhancement = pflag.Bool("enable-vlan-arp-enhancement", false, "Whether enable arp source enhancement in a vlan environment") ) // mute info log for ipset lib @@ -152,6 +155,7 @@ func ParseFlags() (*Configuration, error) { NeighGCThresh2: *argNeighGCThresh2, NeighGCThresh3: *argNeighGCThresh3, VxlanExpiredNeighCachesClearInterval: *argVxlanExpiredNeighCachesClearInterval, + EnableVlanArpEnhancement: *argEnableVlanArpEnhancement, } if *argPreferVlanInterfaces == "" { diff --git a/pkg/daemon/controller/ipinstance.go b/pkg/daemon/controller/ipinstance.go index 4de7c016..87e30ca0 100644 --- a/pkg/daemon/controller/ipinstance.go +++ b/pkg/daemon/controller/ipinstance.go @@ -193,8 +193,10 @@ func (r *ipInstanceReconciler) Reconcile(ctx context.Context, request reconcile. } } - if err := r.ctrlHubRef.addrV4Manager.SyncAddresses(r.ctrlHubRef.getIPInstanceByAddress); err != nil { - return reconcile.Result{Requeue: true}, fmt.Errorf("failed to sync ipv4 addresses: %v", err) + if r.ctrlHubRef.config.EnableVlanArpEnhancement { + if err := r.ctrlHubRef.addrV4Manager.SyncAddresses(r.ctrlHubRef.getIPInstanceByAddress); err != nil { + return reconcile.Result{Requeue: true}, fmt.Errorf("failed to sync ipv4 addresses: %v", err) + } } if err := r.ctrlHubRef.bgpManager.SyncIPInfos(); err != nil {