-func AddTap(ifName, ifAddress string) error {
- cmd := exec.Command("ip", "tuntap", "add", ifName, "mode", "tap")
- o, err := cmd.CombinedOutput()
- if err != nil {
- s := fmt.Sprintf("error creating tap %s: %v: %s", ifName, err, string(o))
- return errors.New(s)
- }
-
- cmd = exec.Command("ip", "addr", "add", ifAddress, "dev", ifName)
- err = cmd.Run()
- if err != nil {
- DelLink(ifName)
- s := fmt.Sprintf("error setting addr for tap %s: %v", ifName, err)
- return errors.New(s)
- }
-
- err = SetDevUp(ifName, "")
- if err != nil {
- DelLink(ifName)
- return err
- }
- return nil
-}
-