From 72337159c1c28772f752e9abedf74f7b24fce11a Mon Sep 17 00:00:00 2001 From: Stefan Junker Date: Fri, 27 May 2016 10:57:39 +0200 Subject: [PATCH] plugins: don't require CNI_NETNS for DEL command This will allow to free up the IPAM allocations when the caller doesn't have access to the network namespace anymore, e.g. due to a reboot. --- pkg/skel/skel.go | 2 +- plugins/main/bridge/bridge.go | 4 ++++ plugins/main/ipvlan/ipvlan.go | 4 ++++ plugins/main/macvlan/macvlan.go | 4 ++++ plugins/main/ptp/ptp.go | 4 ++++ 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/pkg/skel/skel.go b/pkg/skel/skel.go index 1f9438c1..9cf03917 100644 --- a/pkg/skel/skel.go +++ b/pkg/skel/skel.go @@ -69,7 +69,7 @@ func PluginMain(cmdAdd, cmdDel func(_ *CmdArgs) error) { &netns, reqForCmdEntry{ "ADD": true, - "DEL": true, + "DEL": false, }, }, { diff --git a/plugins/main/bridge/bridge.go b/plugins/main/bridge/bridge.go index 6a90a4a6..d4fc89c3 100644 --- a/plugins/main/bridge/bridge.go +++ b/plugins/main/bridge/bridge.go @@ -289,6 +289,10 @@ func cmdDel(args *skel.CmdArgs) error { return err } + if args.Netns == "" { + return nil + } + var ipn *net.IPNet err = ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error { var err error diff --git a/plugins/main/ipvlan/ipvlan.go b/plugins/main/ipvlan/ipvlan.go index 84f9c77f..d7cfc39f 100644 --- a/plugins/main/ipvlan/ipvlan.go +++ b/plugins/main/ipvlan/ipvlan.go @@ -152,6 +152,10 @@ func cmdDel(args *skel.CmdArgs) error { return err } + if args.Netns == "" { + return nil + } + return ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error { return ip.DelLinkByName(args.IfName) }) diff --git a/plugins/main/macvlan/macvlan.go b/plugins/main/macvlan/macvlan.go index f7eb6569..7739d7b8 100644 --- a/plugins/main/macvlan/macvlan.go +++ b/plugins/main/macvlan/macvlan.go @@ -170,6 +170,10 @@ func cmdDel(args *skel.CmdArgs) error { return err } + if args.Netns == "" { + return nil + } + return ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error { return ip.DelLinkByName(args.IfName) }) diff --git a/plugins/main/ptp/ptp.go b/plugins/main/ptp/ptp.go index ec6e23ef..aa695e39 100644 --- a/plugins/main/ptp/ptp.go +++ b/plugins/main/ptp/ptp.go @@ -199,6 +199,10 @@ func cmdDel(args *skel.CmdArgs) error { return err } + if args.Netns == "" { + return nil + } + var ipn *net.IPNet err := ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error { var err error