loopback support CNI CHECK
Signed-off-by: Bruce Ma <brucema19901024@gmail.com>
This commit is contained in:
@ -15,6 +15,9 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
|
"net"
|
||||||
|
|
||||||
"github.com/vishvananda/netlink"
|
"github.com/vishvananda/netlink"
|
||||||
|
|
||||||
"github.com/containernetworking/cni/pkg/skel"
|
"github.com/containernetworking/cni/pkg/skel"
|
||||||
@ -78,6 +81,18 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func cmdCheck(args *skel.CmdArgs) error {
|
func cmdCheck(args *skel.CmdArgs) error {
|
||||||
// TODO: implement
|
args.IfName = "lo" // ignore config, this only works for loopback
|
||||||
return nil
|
|
||||||
|
return ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error {
|
||||||
|
link, err := netlink.LinkByName(args.IfName)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if link.Attrs().Flags&net.FlagUp != net.FlagUp {
|
||||||
|
return errors.New("loopback interface is down")
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user