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
7package net
8
9import (
10	"fmt"
11	"os/exec"
12	"runtime"
13)
14
15func (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
36func (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