code: func setupTapDevice(podID types.UUID) (netlink.Link, error) {
  	// network device names are limited to 16 characters
  	// the suffix %d will be replaced by the kernel with a suitable number
  	nameTemplate := fmt.Sprintf("rkt-%s-tap%%d", podID.String()[0:4])
  	ifName, err := tuntap.CreatePersistentIface(nameTemplate, tuntap.Tap)
  	if err != nil {
  		return nil, errwrap.Wrap(errors.New("tuntap persist"), err)
  	}
  
  	link, err := netlink.LinkByName(ifName)
  	if err != nil {
  		return nil, errwrap.Wrap(fmt.Errorf("cannot find link %q", ifName), err)
  	}
  
  	if err := netlink.LinkSetUp(link); err != nil {
  		return nil, errwrap.Wrap(fmt.Errorf("cannot set link up %q", ifName), err)
  	}
  	return link, nil
  }
docs: // setupTapDevice creates persistent tap device
  // and returns a newly created netlink.Link structure