code: func NetworkCreateVethPair(name1, name2 string, txQueueLen int) error {
  	s, err := getNetlinkSocket()
  	if err != nil {
  		return err
  	}
  	defer s.Close()
  
  	wb := newNetlinkRequest(syscall.RTM_NEWLINK, syscall.NLM_F_CREATE|syscall.NLM_F_EXCL|syscall.NLM_F_ACK)
  
  	msg := newIfInfomsg(syscall.AF_UNSPEC)
  	wb.AddData(msg)
  
  	nameData := newRtAttr(syscall.IFLA_IFNAME, zeroTerminated(name1))
  	wb.AddData(nameData)
  
  	txqLen := make([]byte, 4)
  	native.PutUint32(txqLen, uint32(txQueueLen))
  	txqData := newRtAttr(syscall.IFLA_TXQLEN, txqLen)
  	wb.AddData(txqData)
  
  	nest1 := newRtAttr(syscall.IFLA_LINKINFO, nil)
  	newRtAttrChild(nest1, IFLA_INFO_KIND, zeroTerminated("veth"))
  	nest2 := newRtAttrChild(nest1, IFLA_INFO_DATA, nil)
  	nest3 := newRtAttrChild(nest2, VETH_INFO_PEER, nil)
  
  	newIfInfomsgChild(nest3, syscall.AF_UNSPEC)
  	newRtAttrChild(nest3, syscall.IFLA_IFNAME, zeroTerminated(name2))
  
  	txqLen2 := make([]byte, 4)
  	native.PutUint32(txqLen2, uint32(txQueueLen))
  	newRtAttrChild(nest3, syscall.IFLA_TXQLEN, txqLen2)
  
  	wb.AddData(nest1)
  
  	if err := s.Send(wb); err != nil {
  		return err
  	}
  
  	if err := s.HandleAck(wb.Seq); err != nil {
  		if os.IsExist(err) {
  			return ErrInterfaceExists
  		}
  
  		return err
  	}
  
  	return nil
  }
docs: // Add a new VETH pair link on the host
  // This is identical to running: ip link add name $name type veth peer name $peername