From 48454152410aec3d87c9639adadc5d542ed4c7c1 Mon Sep 17 00:00:00 2001 From: kvaps Date: Thu, 12 Apr 2018 10:29:27 +0200 Subject: [PATCH 1/2] upd: proxy_arp per interface --- cmd/romana_agent/main.go | 2 -- cni/plugin.go | 7 +++++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/cmd/romana_agent/main.go b/cmd/romana_agent/main.go index 93c90d7..368c3a2 100644 --- a/cmd/romana_agent/main.go +++ b/cmd/romana_agent/main.go @@ -46,8 +46,6 @@ const ( var ( kernelParameter = []string{ - "/proc/sys/net/ipv4/conf/default/proxy_arp", - "/proc/sys/net/ipv4/conf/all/proxy_arp", "/proc/sys/net/ipv4/ip_forward", } ) diff --git a/cni/plugin.go b/cni/plugin.go index 7f26849..30ce94a 100644 --- a/cni/plugin.go +++ b/cni/plugin.go @@ -197,6 +197,13 @@ func CmdAdd(args *skel.CmdArgs) error { return fmt.Errorf("Failed to create veth interfaces in namespace %v, err=(%s)", netns, err) } + // enable proxy_arp + err = ioutil.WriteFile(fmt.Sprintf("/proc/sys/net/ipv4/conf/%s/proxy_arp", hostIface.Name), []byte("1"), 0) + if err != nil { + // this is an optimization, so errors are logged, but don't result in failure + log.Infof("Failed to set proxy_arp for %s, err=(%s)", hostIface.Name, err) + } + // set proxy_delay to zero err = ioutil.WriteFile(fmt.Sprintf("/proc/sys/net/ipv4/neigh/%s/proxy_delay", hostIface.Name), []byte("0"), 0) if err != nil { From 8806165d5d767ce5a18f0b84e7541658eaaa79c1 Mon Sep 17 00:00:00 2001 From: kvaps Date: Mon, 16 Apr 2018 11:44:53 +0200 Subject: [PATCH 2/2] fix: error if proxy_arp isn't set --- cni/plugin.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cni/plugin.go b/cni/plugin.go index 30ce94a..256e456 100644 --- a/cni/plugin.go +++ b/cni/plugin.go @@ -200,8 +200,7 @@ func CmdAdd(args *skel.CmdArgs) error { // enable proxy_arp err = ioutil.WriteFile(fmt.Sprintf("/proc/sys/net/ipv4/conf/%s/proxy_arp", hostIface.Name), []byte("1"), 0) if err != nil { - // this is an optimization, so errors are logged, but don't result in failure - log.Infof("Failed to set proxy_arp for %s, err=(%s)", hostIface.Name, err) + return fmt.Errorf("Failed to set proxy_arp for %s, err=(%s)", hostIface.Name, err) } // set proxy_delay to zero