La Fibre

Télécom => Logiciels et systèmes d'exploitation => testdebit Iperf => Discussion démarrée par: Dji_ le 20 juillet 2015 à 08:23:47

Titre: Iperf x64 sous Windows
Posté par: Dji_ le 20 juillet 2015 à 08:23:47
Bonjour,

Je souhaite télécharger IPerf en 64 bits sous Windows mais je ne le trouve pas parmi les liens mis à disposition sur le site.
Dois-je le compiler par mes propres moyens (cygwin ?) ou quelqu'un peut-il me le mettre à disposition ?

D'avance merci pour vos réponses ! :)

Dji.

P.S : je ne peux pas utiliser le binaire 32 bits car je suis dans un pré-environnement Windows qui est strictement 64 bits.
Titre: Iperf x64 sous Windows
Posté par: vivien le 20 juillet 2015 à 08:36:07
Oui, il faudrait le compiler avec cygwin 64bits.
Je suis intéressé pour mettre ensuite le binaire à disposition sur https://iperf.fr/

Pour ma culture, c'est quoi, concrètement, un "pré-environnement Windows" ?
Titre: Iperf x64 sous Windows
Posté par: Dji_ le 20 juillet 2015 à 09:35:49
https://fr.wikipedia.org/wiki/Environnement_de_pr%C3%A9-installation_Windows
Je m'en sers dans le cadre de mon boulot pour réaliser mes installations d'OS de manière automatique

Bon bin, je vais m'y coller alors...
Titre: Iperf x64 sous Windows
Posté par: Dji_ le 20 juillet 2015 à 10:08:54
Ca commence mal:
$ ./configure

.....

nanosleep() required for timing operations.


Quelqu'un saurait m'assister dans les erreurs de compil ou dois-je me débrouiller par mes propres moyens ?
Titre: Iperf x64 sous Windows
Posté par: vivien le 20 juillet 2015 à 10:22:04
Si personne ne répond, je vois deux possibilités :

- https://github.com/esnet/iperf/issues

- Contacter BudMan (http://www.neowin.net/forum/topic/1234695-iperf-3011-windows-build/) qui a compilé Iperf3 pour Windows

Indiques bien quelle version tu tentes de compiler (je suppose que c'est Iperf 3.0.11)
Titre: Iperf x64 sous Windows
Posté par: Dji_ le 20 juillet 2015 à 10:51:40
Merci, je suis en train de suivre la méthodologie pour compiler iperf correctement :)

Pour mémoire:
 - Il faut installer tous les packages "Devel" de CygWin (et pas que l'installation de base)
 - modifier le source de iperf pour remplacer partout où l'appel à la méthode "iprintf(" est présent par, par exemple, "iperf_iprintf(" (car elle est déjà définie dans /usr/include/stdio.h)
 - modifier le source de iperf pour remplacer partout "/tmp/" par "./"
 - Pour générer la documentation, il faut:
    -  installer le paquet cygwin "sphinx"
    -  Installer le paquet python sphinx-bootstrap-theme (https://pypi.python.org/packages/source/s/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.7.tar.gz) (décompresser et dans le répertoire décompressé, exécuter "python setup.py install")



P.S : J'éditerai ce message si je trouve d'autres choses à faire

cd src
grep -rn "iprintf(" .
sed -i -e "s/iprintf(/iperf_iprintf(/g" *
grep -rn "iprintf(" .
grep -rn "/tmp/" .
sed -i -e "s/\/tmp\//.\//g" *
grep -rn "iperf3.XXXXXX" .
cd..
test -f configure || sh autogen.sh
./configure 
make
Le bon iperf3.exe se trouve dans le dossier src\.libs (taille > 400 Ko)
récupérer cygwin1.dll qui est dans /bin
récupérer cygstdc++-6.dll qui est dans /bin
Titre: Iperf x64 sous Windows
Posté par: Dji_ le 21 juillet 2015 à 11:08:53
Bon, il fonctionne dans une console cygwin mais pas en dehors.
J'ai vu que pour qu'il fonctionne dans une invite de commande "classique", je dois recompiler mais dans mingw, j'ai bon ?
Titre: Iperf x64 sous Windows
Posté par: Paulo31 le 21 juillet 2015 à 11:12:08
Heu normalement pas besoin, c'est juste qu'il doit te manquer des dépendances cygwin dans ton path

Recompiler avec mingw c'est mieux, mais si le code est trop ancré dans le mode posix ça peut demander du boulot
Titre: Iperf x64 sous Windows
Posté par: Dji_ le 21 juillet 2015 à 11:20:27
En fait c'est bon, j'ai compris, il m'avais déposé l'exe dans deux répertoires différents (?!) et un seul des deux fonctionne en dehors de cygwin :-)

Je vais faire quelques tests et vous tenir au courant de ceux-ci et vous envoyer le zip complet :-)
Titre: Iperf x64 sous Windows
Posté par: Dji_ le 22 juillet 2015 à 10:12:48
Bon bin j'ai aussi recompilé la version 32 bits car je n'avais pas les mêmes options de ligne de commande (notamment "--logfile" bien pratique et qui n'existait pas dans la version proposée par BudMan)

Voilà la lien du fichier iperf3.7z contenant les deux versions compilées ainsi que la documentation correspondante: http://www.audouy.fr/share/iperf3.7z (http://www.audouy.fr/share/iperf3.7z)
Titre: Iperf x64 sous Windows
Posté par: vivien le 23 juillet 2015 à 23:29:28
Merci !

J'ai mis à disposition les versions que tu as compilé sur https://iperf.fr
Titre: Iperf x64 sous Windows
Posté par: Dji_ le 24 juillet 2015 à 08:26:16
C'est top ça, merci ! :)
Titre: Iperf x64 sous Windows
Posté par: kgersen le 24 juillet 2015 à 09:05:22
Merci !

J'ai mis à disposition les versions que tu as compilé sur https://iperf.fr

3.testdebit.info ne repond pas ?
Titre: Iperf x64 sous Windows
Posté par: vivien le 24 juillet 2015 à 10:58:35
En fait, je modifie les pages de https://iperf.fr directement sur le site, et j'ai mis le tableau des serveurs iperf3 publics, avant de migrer 3.testdebit.info d'iperf2 vers iperf3.

Je viens de le migrer vers iperf3.

L'anglais n'est pas mon fort, si vous trouvez des tournures qui ne vont pas sut https://iperf.fr, n'hésitez pas à me le signaler.
Titre: Iperf x64 sous Windows
Posté par: kgersen le 24 juillet 2015 à 11:21:53

Je viens de le migrer vers iperf3.


donc il ne fait plus les 2 (iperf et iperf3) comme celui d'Online ?
Titre: Iperf x64 sous Windows
Posté par: vivien le 24 juillet 2015 à 11:56:03
Non, uniquement iPerf3.

iPerf2 avait tendance :
- à planter régulièrement (obligation de vérifier toutes les minutes si le process iperf est bien présent)
- à gonfler fortement en mémoire
- à ne plus accepter de nouvelles connexion TCP alors qu'il est toujours en ram
=> obligation de killer et de redémarrer iperf toutes les 10 minutes.

Par ailleurs, si je n'utilisait plus trop iperf en TCP, c'est qu'il avait également des problématiques de Rwin limitée a quelques centaines de Ko, ce qui limite le débit dès que la latence ou le débit augmente. Iperf restait la référence pour l'UDP.

Bref, iperf3 est censé avoir résolut ces problèmes, et je pense qu'il est bon de tourner la page de iperf2.

iPerf 3 apportes de nombreuses nouveautés, dont 3 particulièrement intéressantes pour des tests grand-public :
- Possibilité de faire un test en download sans faire de test en uplaod avant
- Il n'est plus nécessaire d'ouvrir les ports TCP/UDP pour les clients qui sont derrière une box avec du NAT
- Possibilité d'ignorer la montée en débit sur iPerf3, afin de se concentrer sur le débit en régime établit
Titre: Iperf x64 sous Windows
Posté par: alain_p le 24 juillet 2015 à 13:33:34
Sur le site iperf, je vois mentionnée la date du 9 Janvier pour les packages windows 3.0.11, par Dji, or tu les as bien mis aujourd'hui, donc la date doit être fausse ?
Titre: Iperf x64 sous Windows
Posté par: vivien le 24 juillet 2015 à 16:54:17
La date du 9 Janvier 2015, c'est la date de sortie de Iperf 3.0.11, pas la date de compilation.

Cela semble plus logique de mettre la date de sortie du logiciel que la date de compilation ou la date de mise en ligne sur le site.

Voici un historique (qui est disponible, plus bas sur la longue page https://iperf.fr avec le code source des différentes versions) :
iPerf 3.1      en développement
iPerf 3.0.11   9 Jan 2015    416 Kio
iPerf 3.0.10   16 Dec 2014   416 Kio
iPerf 3.0.9    14 Oct 2014   395 Kio
iPerf 3.0.8    30 Sep 2014   394 Kio
iPerf 3.0.7    28 Aug 2014   391 Kio
iPerf 3.0.6    28 Jul 2014   389 Kio
iPerf 3.0.5    16 Jun 2014   389 Kio
iPerf 3.0.4    12 Jun 2014   492 Kio
iPerf 3.0.3    26 Mar 2014   345 Kio
iPerf 3.0.2    10 Mar 2014   343 Kio
iPerf 3.0.1    10 Jan 2014   332 Kio
iPerf 2.0.5    8 Jul 2010    243 Kio
iPerf 2.0.4    7 Avr 2008    243 Kio
iPerf 2.0.3    18 Mar 2008   241 Kio
iPerf 2.0.2    3 Mai 2005    228 Kio
iPerf 2.0.1    8 Nov 2004    215 Kio
iPerf 1.7.0    13 Mar 2003   179 Kio


A noter que iPerf 2.0.5 a été patché a de nombreuses reprises, notamment par Roberto Lumbreras pour Debian / Ubuntu et que c'est ce patch que j'ai appliqué avec succés pour la version 2.0.5-2 de Windows.
Titre: Iperf x64 sous Windows
Posté par: vivien le 24 juillet 2015 à 21:21:24
J'ai un gros souci avec iPerf3 : Le serveur n'accepte pas d'avoir plusieurs clients en parallèle, comme Iperf2.

Quand un client tente de se connecter alors qu'un client est déja en train de réaliser un test, cela affiche "iperf3: error - the server is busy running a test. try again later"
C'est une propriété intéressante dans certains cas, mais pas pour un serveur public.
Le serveur "iperf.volia.net" reste utilisé en permance, j'ai fait de très ombreuses demandes, mais il est toujours "busy", probablement par un test de très longue durée.

L'option -D "Run the server in background as a daemon" ne change rien au problème.

Un petit malin a réussi à  faire que iperf3 ne réponde plus tout en restant en ram, ce qui fait qu'il n'est pas redémarré automatiquement. Il s'est attaqué à plusieurs serveurs de la liste. Exemple :
$ iperf3 -c iperf.eenet.ee -i 1
iperf3: error - unable to receive control message: Connection reset by peer

L'impact sur la RAM sur mon serveur avec 5,43 Go de ram committed :
(https://lafibre.info/images/iperf/201507_consommation_ram_iperf3.png)
Titre: Iperf x64 sous Windows
Posté par: kgersen le 24 juillet 2015 à 22:25:21
effectivement c'est génant. ouvres une requete sur le bugtracker: https://github.com/esnet/iperf/issues

j'ai rapidement regardé le code source du serveur:  https://github.com/esnet/iperf/blob/master/src/iperf_server_api.c

effectivement c'est 'en dur' pour un seul test a un moment et c'est pas 'forké': c'est le même processus qui écoute et traite un (seul) client (fonction iperf_accept).

Il faudrait donc 'forker' a chaque demande client pour être multi sessions mais ca va être compliquer à  mettre en oeuvre en gardant le multithreading (option -P).

il manque aussi un timeout/quota par client (quota temps et volume).

edit: a regarder plus en detail le code d'iperf, ca va pas etre simple à  faire , il est parti d'une approche vraiment mono client...
Titre: Iperf x64 sous Windows
Posté par: vivien le 24 juillet 2015 à 22:45:03
Tu pourrais faire la requête pour moi sur le bugtracker ? J'imagine qu'une requête complète qui utilise les bon terme a plus de chance d'être traitée.

Je pensais faire un script de test de débit (toujours le but d'avoir un test fiable pour les connexion 1Gpb qui consomme peu de ressources), il reste possible de démarrer le serveur iperf sur plusieurs ports, mais cela complique les script coté client.

Le risque de blocage du serveur, va m’obliger a killer régulièrement iperf3, comme iperf2 (Je ne l'ai pas encore fait, je regarde dans combien d'heure il sera de nouveau planté).


Titre: Iperf x64 sous Windows
Posté par: kgersen le 24 juillet 2015 à 23:36:24
j'ai fais la requête. https://github.com/esnet/iperf/issues/285

En attendant, tu peux éventuellement faire du load balancing dns avec plusieurs IP sur le même serveur par exemple.


 
Titre: Iperf x64 sous Windows
Posté par: vivien le 24 juillet 2015 à 23:50:52
Merci,

Problème, pour l'idée de load balancing sur plusieurs IP, il ne semble pas possible de forcer iPerf à écouter sur une IP particulière (comme le fait Apache2), pour mettre plusieurs iPerf sur le même port, sur des IP différentes, sur le même serveur.

Cela passe forcèment par une virtualisation ou une mise en container type Docker
Titre: Iperf x64 sous Windows
Posté par: cookie le 25 juillet 2015 à 13:54:26
Iperf3 n'est pas conçu pour avoir plusieurs clients en même temps.
Une demande avait été faite il y a 2 ans pour supporter plusieurs tests parallèle avec le même serveur.
https://code.google.com/p/iperf/issues/detail?id=130
La demande avait été rejetéé, les développeurs d'iperf n'ayant aucune intention d'aller vers cette voie.
Titre: Iperf x64 sous Windows
Posté par: vivien le 25 juillet 2015 à 14:45:01
Merci pour le lien.
Titre: Iperf x64 sous Windows
Posté par: vivien le 26 juillet 2015 à 09:08:33
En attendant, tu peux éventuellement faire du load balancing dns avec plusieurs IP sur le même serveur par exemple.

Je viens de réfléchir sur le balancing dns avec plusieurs IP : L’intérêt serait en cas de iPerf3 occupé, de relancer la commande pour tomber sur un autre serveur. mais "Le client conserve ensuite dans son cache DNS l'adresse IP utilisée, ce qui permet de conserver une relative stabilité dans la gestion des sessions du service." source : Wikipedia (https://fr.wikipedia.org/wiki/DNS_round-robin)

Donc un client va rester sur le même serveur iPerf3
Titre: Iperf x64 sous Windows
Posté par: kgersen le 26 juillet 2015 à 23:00:31
Merci,

Problème, pour l'idée de load balancing sur plusieurs IP, il ne semble pas possible de forcer iPerf à écouter sur une IP particulière (comme le fait Apache2), pour mettre plusieurs iPerf sur le même port, sur des IP différentes, sur le même serveur.

Cela passe forcèment par une virtualisation ou une mise en container type Docker

Ca devrait être simple a modifier le code pour forcer iperf sur une IP. On peut ouvrir un bug request dans ce sens. Voir un pull request si j'ai le temps mais pas avant fin aout pour moi donc si quelqu'un d'autre a le temps ici.

Isoler les iperf dans des containers Docker serait une bonne chose de toute façon.

Sinon en jouant avec du NAT et iptable localement sur le serveur tu devrais pouvoir 'jongler' avec plusieurs IP mais c'est compliquer à  faire.

Il y a aussi la technique du LD_PRELOAD mais je ne l'ai jamais utilisé (voir: http://daniel-lange.com/archives/53-Binding-applications-to-a-specific-IP.html ). Peut-etre d'autres techniques existent aussi pour imposer une ip a un process qui 'bind *'.

Je viens de réfléchir sur le balancing dns avec plusieurs IP : L’intérêt serait en cas de iPerf3 occupé, de relancer la commande pour tomber sur un autre serveur. mais "Le client conserve ensuite dans son cache DNS l'adresse IP utilisée, ce qui permet de conserver une relative stabilité dans la gestion des sessions du service." source : Wikipedia (https://fr.wikipedia.org/wiki/DNS_round-robin)

Donc un client va rester sur le même serveur iPerf3

ca reste dans le cache le temps du TTL non ? si tu mets un TTL a zero ca devrait le faire (en pratique zero peut poser des problèmes donc utilise 1).

apres c'est pas forcement un probleme qu'un client reste sur le meme serveur, deja d'avoir dispatché plusieurs clients sur plusieurs serveurs permet d'augmenter la dispo du serveur.

De toute façon l'idéal est soit une file d'attente, soit un support de plusieurs clients en même temps. Sinon n'importe quel 'hacker' peut DoS le serveur en laissant tourner un test en boucle. Avec cela un timeout coté serveur s'impose aussi (genre pas plus de 1 minute par client).

Éventuellement certaines de ces fonctions pourraient être mise en oeuvre par un front-end sans changer le code actuel d'iperf.

Il est clair que le design d'un test public et d'un outil de test privé n'est pas la même chose.

Une autre approche est peut-etre ce qu'ils font avec les outils d'Internet 2. voir http://software.internet2.edu/bwctl/
Une option a été rajouté a iperf3 pour cela: l'option "-1"  qui accepte un test puis quitte. Ca permet dynamiquement de preparer des tests puis les lancer.

Tu pourrais éventuellement t'inspirer de cela en faisant un script :
- le client contact le serveur et demande un test, le serveur lance un iperf3 sur un port libre avec l'option "-1" et renvoi au client le n° de port
- le client lance un iperf3 sur le port recu
avec un truc comme wget coté client et un front-end php ou autre coté serveur pour lancer les iperf.
Titre: Iperf x64 sous Windows
Posté par: Paul le 26 juillet 2015 à 23:13:29
Est-ce normal que l'option -r ne fonctionne pas ?
Titre: Iperf x64 sous Windows
Posté par: kgersen le 26 juillet 2015 à 23:16:36
Est-ce normal que l'option -r ne fonctionne pas ?

oui elle est 'deprecated'.

il y a l'option -R a la place qui permet de changer le sens du test mais en ayant toujours le client qui ouvre la connection donc ca passe a travers un NAT par exemple, contrairement a iperf2 avec qui on devait ouvrir les ports pour le test dans l'autre sens.

en contrepartie on ne peut plus tester les 2 sens en meme temps. il faut lancer 2 fois le test, avec et sans -R.
Titre: Iperf x64 sous Windows
Posté par: Paul le 26 juillet 2015 à 23:53:20
paul@Paulo-Asus:~$ iperf3 -c ping.online.net -i 2 -t 20 -R
iperf3: error - the server is busy running a test. try again later

QUI est encore en train d'utiliser le serveur ????!!

Nan mais bon ça fait depuis 11h que j'essaie quoi...
Titre: Iperf x64 sous Windows
Posté par: corrector le 27 juillet 2015 à 03:56:29
Je confirme, LD_PRELOAD c'est le fun! (enfin quand ça marche, ça peut aussi donner des résultats pas évidents à débuguer)
Titre: Iperf x64 sous Windows
Posté par: Dji_ le 27 juillet 2015 à 10:56:36
Iperf3 n'est pas conçu pour avoir plusieurs clients en même temps.
Une demande avait été faite il y a 2 ans pour supporter plusieurs tests parallèle avec le même serveur.
https://code.google.com/p/iperf/issues/detail?id=130
La demande avait été rejetée, les développeurs d'iperf n'ayant aucune intention d'aller vers cette voie.
Ca c'est vraiment nul :-(
Titre: Iperf x64 sous Windows
Posté par: kgersen le 27 juillet 2015 à 12:06:57
Ca c'est vraiment nul :-(

pas vraiment. C'est logique vu qui fait iperf3 et dans quel but. C'est pas fait pour faire du speedtest public mais pour "monitorer" leur réseau : http://ps-dashboard.es.net/ (menu Dashboard, puis 2eme entrée 'Throughput Testing' puis click sur un petit carré).

Son argument se tient. Pour avoir bien étudier le sujet (je suis en train d'écrire un speedtest public), l'interaction entre les clients, la charge serveur, la sécurité, etc tout cela complique énormèment la mise en oeuvre si on veut un résultat de qualité. Une approche simple, mono client comme ils ont fait, leur suffit amplement.

Apres ils parlent d'"iperf3 library" également donc on peut éventuellement construire une version serveur multi client compatible avec les clients iperf3 existants. C'est une piste.
Titre: Iperf x64 sous Windows
Posté par: kgersen le 28 juillet 2015 à 17:30:10
, il ne semble pas possible de forcer iPerf à écouter sur une IP particulière (comme le fait Apache2), pour mettre plusieurs iPerf sur le même port, sur des IP différentes, sur le même serveur.

L'option -B sert a ca non ?
Titre: Iperf x64 sous Windows
Posté par: vivien le 28 juillet 2015 à 19:34:31
L'option -B est uniquement pour le client, elle est dans la catégorie "CLIENT SPECIFIC OPTIONS"
Titre: Iperf x64 sous Windows
Posté par: kgersen le 28 juillet 2015 à 20:28:50
L'option -B est uniquement pour le client, elle est dans la catégorie "CLIENT SPECIFIC OPTIONS"

Je la vois dans  "Server or Client"

et ca marche chez moi:

iperf3 -s -B 192.168.1.20
le serveur n'est accessible que par cette IP et uniquement celle la (meme 127.0.0.1 ne marche plus).
Titre: Iperf x64 sous Windows
Posté par: vivien le 28 juillet 2015 à 21:16:23
Effectivement, les différentes pages du manuel ne mettent pas tous l'option -B au même endroit...

Je suppose que le changement a été fait dans le manuel de iPerf 3.1 car celui sur http://software.es.net/iperf/invoking.html#iperf3-manual-page a des options introduites avec la version 3.1 bêta, donc je suppose que c'est ce qui explique les différence avec le man livré avec iPerf 3.0.11
Titre: Iperf x64 sous Windows
Posté par: kgersen le 06 août 2015 à 18:52:02
j'ai fais la requête. https://github.com/esnet/iperf/issues/285

En attendant, tu peux éventuellement faire du load balancing dns avec plusieurs IP sur le même serveur par exemple.

reponse du dev: la meme qu'il y a 2 ans. niet
Titre: Iperf x64 sous Windows
Posté par: vivien le 06 août 2015 à 23:25:13
Sympa le projet perfSONAR (http://www.perfsonar.net/about/) (si j'ai bien compris, celui utilise la bibliothèque d'iperf3)

Avec 1000 points de tests a travers le monde c'est intéressant.

Il faut que je regarde quelles sont les conditions pour faire un test sur cette infrastructure.

Les points de test perfSONAR :
(https://lafibre.info/images/iperf/201508_perfsonar_carte.png)
Titre: Iperf x64 sous Windows
Posté par: NerdaBarniks le 10 janvier 2016 à 04:51:47
Bonjour, je cherche à downloader la plus récente version des binaires pour iperf3 sous Windows. Je vois sur le site https://iperf.fr/iperf-download.php#windows la version 3.0.11, mais celle-ci date d'il y a un an déjà.

Est-ce qu'un version compilée de la version 3.1 est disponible quelque part?

Merci.
Titre: Iperf x64 sous Windows
Posté par: kgersen le 11 janvier 2016 à 01:14:40
ca serait bien de faire un pull request pour avoir un build automatisé de la version Windows.

Dji_a meme ouvert une issue https://github.com/esnet/iperf/issues/280 mais y'a pas trop de suite.

Je regarde ca si on peut faire un crossbuild depuis Linux avec MinGW.

sinon:

Instructions pour compiler soi-meme IPerf3 sous Windows:

A. Installer Cygwin
1. télécharger cygwin : https://cygwin.com/install.html (prendre version 32 ou 64)
2. lors de l'installation de cygwin, un panneau avec plein de choix apparait. il faut click sur la ligne 'Devel' pour que ca passe de "default" a "install". Notez l'emplacement ou vous installez cygwin (par default c:\cygwin64 par exemple) pour l'etape D.
3. l'installation prend pas mal de temps

une fois cygwin installé, lancer "Cygwin64 Terminal" (ou la version 32): une fenêtre de commande type Unix devrait apparaître.
taper 'pwd' ca devrait afficher '/home/<User>' (<User> = notez ce nom pour l'etape D)
Les instructions qui suivent sont à  faire dans la fenetre Cygwin

B. Télécharger les sources

Les sources 'live' sont sur https://github.com/esnet/iperf et les versions stables sont dans 'branches' ( https://github.com/esnet/iperf/branches ).
Pour prendre la version live (sans doute pas stable et en cours de développement):
git clone https://github.com/esnet/iperf.git
Pour prendre une version (branch) plus stable, par exemple la "3.1-STABLE":
git clone -b 3.1-STABLE https://github.com/esnet/iperf.git

un répertoire 'iperf' va être crée et les sources seront dedans.

Se positionner dans ce répertoire:
cd iperf
C. Compilation

taper:
./configureca va defiler du texte qui devrait se finir par :

configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/version.h
config.status: creating examples/Makefile
config.status: creating iperf3.spec
config.status: creating src/iperf_config.h
config.status: executing depfiles commands
config.status: executing libtool commands

modifications du code pour Windows:
sed -i -e 's/\/tmp\/iperf3.XXXXXX/.\/iperf3.XXXXXX/' src/iperf_api.c
cd ./src
find ./ -iname "*.[ch]" |xargs -n1 sed -i s'#iprintf#newprintf#g'
cd ..

Ces 2 manips précédentes adaptent les sources pour Windows. Il se peut qu'a l'avenir cela ne soit plus nécessaire si les auteurs d'IPerf3 incorporent ces modifs dans les sources.

Lancement de la compilation:
makeca va défiler un bon moment.
si tout ce passe bien l'executable devrait être générer.
Taper:
src/iperf3.exe  --versionca doit afficher la version d'iperf3.
vérifier que la version autonome est bien la:
ls -l src/.libs/iperf3.exe
ca ne doit pas afficher d'erreur.

Si tout ok, la partie Cygwin est fini => vous pouvez quitter la fenetre Cygwin.


D. Recuperation de l'executable autonome et de sa DLL.
pour utiliser iperf3 dans une fenetre ligne de commande Windows normale (cmd) il faut copier les 2 fichiers suivants dans un répertoire de votre choix (vide de preférence):
1. <dossier installation de cygwin>\home\<User>\iperf\src\.libs\iperf3.exe
2. <dossier installation de cygwin>\bin\cygwin1.dll

iperf3.exe devrait fonctionner si la dll est présente dans le même répertoire.
Titre: Iperf x64 sous Windows
Posté par: vivien le 11 janvier 2016 à 07:14:28
Il y a d'autres choses à faire :

Merci, je suis en train de suivre la méthodologie pour compiler iperf correctement :)

Pour mémoire:
 - Il faut installer tous les packages "Devel" de CygWin (et pas que l'installation de base)
 - modifier le source de iperf pour remplacer partout où l'appel à la méthode "iprintf(" est présent par, par exemple, "iperf_iprintf(" (car elle est déjà définie dans /usr/include/stdio.h)
 - modifier le source de iperf pour remplacer partout "/tmp/" par "./"
 - Pour générer la documentation, il faut:
    -  installer le paquet cygwin "sphinx"
    -  Installer le paquet python sphinx-bootstrap-theme (https://pypi.python.org/packages/source/s/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.7.tar.gz) (décompresser et dans le répertoire décompressé, exécuter "python setup.py install")



P.S : J'éditerai ce message si je trouve d'autres choses à faire
Titre: Iperf x64 sous Windows
Posté par: kgersen le 11 janvier 2016 à 16:39:50
Il y a d'autres choses à faire :

tout ca est inclus déjà sauf pour générer pour la doc.
Titre: Iperf x64 sous Windows
Posté par: vivien le 05 mars 2016 à 18:34:13
J'ai compilé iperf 3.1.2, cela fonctionne parfaitement. ( https://iperf.fr/download/iperf_3.1/iperf-3.1.2-win64.zip )

Est-il nécessaire de mettre dans mon zip cygstdc++-6.dll ?

Cela semble fonctionner sans.

Elle sert à quoi cette DLL ? (les recherches Google sont pollués par ceux qui cherchent ce fichier)
Titre: Iperf x64 sous Windows
Posté par: kgersen le 05 mars 2016 à 20:09:59
c'est la version Cygwin de la https://fr.wikipedia.org/wiki/Biblioth%C3%A8que_standard_du_C%2B%2B

pas besoin a priori de la mettre.
Titre: Iperf x64 sous Windows
Posté par: vivien le 05 mars 2016 à 22:01:17
Et le tiret -6, c'est pourquoi ?

J'ai pensé a un moment a une bibliothèque IPv6...
Titre: Iperf x64 sous Windows
Posté par: kgersen le 06 mars 2016 à 00:54:39
C'est plutôt la version 64 bit je pense mais pas sur.

y'a pas la notion de réseau et d'IP dans la stdlib++.
Titre: Iperf x64 sous Windows
Posté par: corrector le 07 mars 2016 à 19:08:44
Pour la même raison qu'il y a un numéro dans tout objet partagé, c'est la version 6 tout simplement!