1 // Copyright 2013 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // +build darwin dragonfly freebsd netbsd openbsd 6 7 package net 8 9 import ( 10 "fmt" 11 "os/exec" 12 "runtime" 13 ) 14 15 func (ti *testInterface) setBroadcast(vid int) error { 16 if runtime.GOOS == "openbsd" { 17 ti.name = fmt.Sprintf("vether%d", vid) 18 } else { 19 ti.name = fmt.Sprintf("vlan%d", vid) 20 } 21 xname, err := exec.LookPath("ifconfig") 22 if err != nil { 23 return err 24 } 25 ti.setupCmds = append(ti.setupCmds, &exec.Cmd{ 26 Path: xname, 27 Args: []string{"ifconfig", ti.name, "create"}, 28 }) 29 ti.teardownCmds = append(ti.teardownCmds, &exec.Cmd{ 30 Path: xname, 31 Args: []string{"ifconfig", ti.name, "destroy"}, 32 }) 33 return nil 34 } 35 36 func (ti *testInterface) setPointToPoint(suffix int) error { 37 ti.name = fmt.Sprintf("gif%d", suffix) 38 xname, err := exec.LookPath("ifconfig") 39 if err != nil { 40 return err 41 } 42 ti.setupCmds = append(ti.setupCmds, &exec.Cmd{ 43 Path: xname, 44 Args: []string{"ifconfig", ti.name, "create"}, 45 }) 46 ti.setupCmds = append(ti.setupCmds, &exec.Cmd{ 47 Path: xname, 48 Args: []string{"ifconfig", ti.name, "inet", ti.local, ti.remote}, 49 }) 50 ti.teardownCmds = append(ti.teardownCmds, &exec.Cmd{ 51 Path: xname, 52 Args: []string{"ifconfig", ti.name, "destroy"}, 53 }) 54 return nil 55 } 56