[technique] CR 20170605 DPDK / packet-journey

Laurent GUERBY laurent at guerby.net
Jeu 8 Juin 15:14:34 CEST 2017


Re,

J'ai oublié de dire que le papier que nous avons présenté
au JRES 2017 a Nantes a été accepté (ainsi que le stand associatif du
libre), il est le jeudi 16 novembre a 8h45 dans le programme
préliminaire :

https://www.jres.org/programme

Nous le soumettrons aussi au Capitole du Libre (18-19 novembre 2017) et
au FOSDEM 2018 (debut fevrier).

Dernier détail resultat de l'outil lstopo sur h8 :

http://pano.tetaneutral.net/data/dpdk/topo-h8.pdf

core & PCIe hw p0rn :)

Laurent

On Thu, 2017-06-08 at 15:08 +0200, Laurent GUERBY wrote:
> Bonjour,
> 
> Ce lundi 20170605 avec eZag et mherrb nous avons fait fonctionner
> pktgen (~ 10 Gbit/s TX et ~ 30 Gbit/s RX petit paquet 64 byte, ~ 40
> millions PPS) et packet-journey (ping seulement pour le moment) sur la
> machine h8 équipée de 4 cartes 2x10G :). L'atelier via jitsi a duré de
> 9h30 a vers 20h30 avec une pause repas.
> 
> Matthieu avait deja contribué une correction :
> 
> https://github.com/Gandi/packet-journey/pull/36
> 
> Et j'ai ajouté un petit bug fix lors de la session du lundi :
> 
> https://github.com/Gandi/packet-journey/pull/38
> (pullé le lendemain de la contribution :)
> 
> packet-journey a aussi fonctionné sur une machine avec des cartes
> gigabit pilote igb chez Matthieu, et sur la carte gigabit de h8 (igb
> aussi). Avec un pilote e1000e ce n'etait pas ok, a creuser.
> 
> packet-journey sur carte 10G pilote ixgbe ne fonctionne
> qu'avec certaines versions de DPDK, sur certaines version DPDK
> a l'allumage de la carte nous avons "RX mbuf alloc failed " :
> 
> PKTJ_CRTL1: processed 1 netlink msg in buffer
> KNI: ----   kni_config_network_interface
> KNI: Configure network interface of 0 up
> PMD: ixgbe_set_rx_function(): Vector rx enabled, please make sure RX
> burst size no less than 4 (port=0).
> PMD: ixgbe_alloc_rx_queue_mbufs(): RX mbuf alloc failed queue_id=0
> PMD: ixgbe_dev_rx_queue_start(): Could not alloc mbuf for queue:0
> PMD: ixgbe_dev_start(): Unable to start rxtx queues
> PMD: ixgbe_dev_start(): failure in ixgbe_dev_start(): -1
> KNI: Failed to start port 0
> KNI: finished kni_config_network_interface
> 
> Matthieu a trouvé comment compiler en debug mais ce n'est
> pas tres probant pour trouver le probleme au milieu du coeur de DPDK,
> nous poursuivrons probablement avec la bonne vieille methode "printf".
> 
> packet-journey n'a quasiment pas de fichier de configuration son
> fonctionnement est simple : au demarrage il prend le controle
> des cartes reseaux indiquées et fait apparaitre au kernel
> linux des interfaces "KNI" appellées dpdk0 dpdk1 ..., une par carte.
> Il suffit de mettre des IP et des routes avec les outils classiques
> (iproute2, bird, ...) sur ces interfaces dpdkN et le routage est
> automatiquement fait par packet-journey quand il sait faire (paquet a
> forwarder d'une interface DPDK a une autre, le gros du boulot du
> routeur) sinon il fait passer au kernel linux (partie ICMP & cie et
> destination IP mise sur dpdkN pour BGP et ssh par exemple).
> 
> In fine :
> 
> root at h8:~/guerby/packet-journey# cat ttnn.conf
> ; pktj
> [pktj]
> callback-setup 	= /root/guerby/packet-journey/up.sh
> rule_ipv4	= /dev/null
> rule_ipv6	= /dev/null
> promiscuous = 1
> ; Port configuration
> [port 0]
> eal queues	= 0,2 ; queue,lcore
> kni			= 3,0 ; lcore,kthread
> root at h8:~/guerby/packet-journey# cat up.sh
> #!/bin/bash
> C=88
> while [ $# -ge 2 ]; do
> link1=$1
> mac1=$2
> shift
> shift
> echo link $link1 mac $mac1
> ip link set $link1 address $mac1
> ip link set $link1 up
> ip addr add 192.168.$C.1/24 dev $link1
> ip -6 addr add 2a03:7220:1:${C}::1/64 dev $link1
> C=$((C+1))
> done
> root at h8:~/guerby/packet-journey# ./build/app/build/pktj -l 0-5 -n 2
> --log-level=9 -- --configfile /root/guerby/packet-journey/ttnn.conf
> ...
> root at h8:~# ip a
> 14: dpdk0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
> state UNKNOWN group default qlen 1000
>     link/ether a0:36:9f:0e:36:aa brd ff:ff:ff:ff:ff:ff
>     inet 192.168.88.1/24 scope global dpdk0
>        valid_lft forever preferred_lft forever
>     inet6 2a03:7220:1:88::1/64 scope global tentative 
>        valid_lft forever preferred_lft forever
>     inet6 fe80::a236:9fff:fe0e:36aa/64 scope link tentative 
>        valid_lft forever preferred_lft forever
> 
> Le pad de travail https://pad.tetaneutral.net/p/dpdk
> avec en haut choix de la date du prochain atelier.
> 
> Sincèrement,
> 
> Laurent
> 
> PS: listes des tickets contribués au long du projet DPDK
> tetaneutral.net :
> https://chiliproject.tetaneutral.net/projects/tetaneutral/wiki/DPDK#Atelier-Issues
> 





Plus d'informations sur la liste de diffusion technique