Tizen_4.0 base
[platform/upstream/docker-engine.git] / vendor / github.com / docker / libnetwork / drivers / solaris / overlay / ov_utils.go
1 package overlay
2
3 import (
4         "fmt"
5         "os/exec"
6         "strings"
7
8         "github.com/docker/libnetwork/osl"
9 )
10
11 func validateID(nid, eid string) error {
12         if nid == "" {
13                 return fmt.Errorf("invalid network id")
14         }
15
16         if eid == "" {
17                 return fmt.Errorf("invalid endpoint id")
18         }
19
20         return nil
21 }
22
23 func createVxlan(name string, vni uint32, mtu int) error {
24         defer osl.InitOSContext()()
25
26         // Get default interface to plumb the vxlan on
27         routeCmd := "/usr/sbin/ipadm show-addr -p -o addrobj " +
28                 "`/usr/sbin/route get default | /usr/bin/grep interface | " +
29                 "/usr/bin/awk '{print $2}'`"
30         out, err := exec.Command("/usr/bin/bash", "-c", routeCmd).Output()
31         if err != nil {
32                 return fmt.Errorf("cannot get default route: %v", err)
33         }
34
35         defaultInterface := strings.SplitN(string(out), "/", 2)
36         propList := fmt.Sprintf("interface=%s,vni=%d", defaultInterface[0], vni)
37
38         out, err = exec.Command("/usr/sbin/dladm", "create-vxlan", "-t", "-p", propList,
39                 name).Output()
40         if err != nil {
41                 return fmt.Errorf("error creating vxlan interface: %v %s", err, out)
42         }
43
44         return nil
45 }
46
47 func deleteInterfaceBySubnet(brPrefix string, s *subnet) error {
48         return nil
49
50 }
51
52 func deleteInterface(name string) error {
53         defer osl.InitOSContext()()
54
55         out, err := exec.Command("/usr/sbin/dladm", "delete-vxlan", name).Output()
56         if err != nil {
57                 return fmt.Errorf("error creating vxlan interface: %v %s", err, out)
58         }
59
60         return nil
61 }