From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id D5194A04F6 for ; Sat, 21 Dec 2019 21:02:45 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 92B96F90; Sat, 21 Dec 2019 21:02:45 +0100 (CET) Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) by dpdk.org (Postfix) with ESMTP id 9D335F90 for ; Sat, 21 Dec 2019 21:02:43 +0100 (CET) Received: by mail-pf1-f174.google.com with SMTP id x185so7100067pfc.5 for ; Sat, 21 Dec 2019 12:02:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=gMNlTeO4c94GzzDWNl0R6+9v1JAHqlDcJZ4In1UT+RI=; b=DgU5JoJGN85DKMFBrb7DdAEFzYxA4P8fevvm5LUvwpPuEDR8be72uVTXJbBPiuhUPa q7YGCiimVYz+2OgQwHuZyuSxggKFV94lry+85H1OtWRu4GL2gsKAULOOQc1DqmC7lZvY MvnJjSU3dzN7XP3uZMdnIl3ptumtXHRkG1w03sv+FdUEFdHnk3ScgDYsIL27khJ0ng2x 5/QDv56RyNgy+nOpZxMsgse3i92f4iGhGaloLqCj/8FnRbSJy6bCjADi/uUMeocMKJ1R wJoNrkJ/vNNRIJNj6nJZlxJP68tMHhJqhl59Va0PlWq5cdXhAjp0l+yZHL6OG0zD6wDP lecQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=gMNlTeO4c94GzzDWNl0R6+9v1JAHqlDcJZ4In1UT+RI=; b=OzcNMNjVcxX8UJQGWME/hfNSnA/Zi+yj+d7u266w8a5ImP46Js2oQqjOWy/aYXLqdI 2dJwTHuy/VivTHZdKFlvSOZjMgn2cspDPVAW0qgghtI0l1ygmo5IONN+5tpXaaTd/mFH 9wPNHWCH0u0vNfcuHKRJNgC/6kN1WzOqkH7IWMDO/4KsYpNfMbhErJz3JbxzR/p3Y22A 86cecy/Vzqva9Zh4l6oiI13oS3A9GQpfQ05riVNqZvKYWkMuiKKqIMPfQm4lXD4g1sE8 ZutJHUhFajvjGICoIqfKtEw1dLfr02XgQaAoXsv7bIWGtjxqpGlC5NgI9JCnMV7bcN8j 3UpA== X-Gm-Message-State: APjAAAXv+jXEwF6XJgabN7snwSaiZ2F7wpO3wc4cn/eQlZxZ509hdbLQ y1d0jPb8h3SyXo1htdWmmq5h00NA X-Google-Smtp-Source: APXvYqwqya4beG0vgcfQvuX7AleLE/NzagDwLS5CU/QQA/T290gfSeweqnbJC+fW/joKwf/WEUpIFg== X-Received: by 2002:aa7:982d:: with SMTP id q13mr22738236pfl.152.1576958562582; Sat, 21 Dec 2019 12:02:42 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c8c2:de00:1ef:4d79:2cc8:ca4d]) by smtp.gmail.com with ESMTPSA id i4sm16278732pgc.51.2019.12.21.12.02.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Dec 2019 12:02:42 -0800 (PST) From: Yasufumi Ogawa To: spp@dpdk.org, ferruh.yigit@intel.com, yasufum.o@gmail.com Date: Sun, 22 Dec 2019 05:02:36 +0900 Message-Id: <20191221200236.10288-1-yasufum.o@gmail.com> X-Mailer: git-send-email 2.17.1 Subject: [spp] [PATCH] bin: add memif to vdevs of primary X-BeenThere: spp@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Soft Patch Panel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: spp-bounces@dpdk.org Sender: "spp" This update is to add memif vdev to spp_primary. The set of IDs of memif is defined in `bin/config.sh` as following. PRI_MEMIF_VDEVS=(0 1) # IDs of `net_memif` This memif is attached as master role, and socket file is shared among all vdevs. As same as vhost socks, it must be deleted before re-launching, or failed to launch because of socket is already exists. $ sudo spp_primary ... \ --vdev net_memif0,id=0,role=master,socket=/tmp/spp-memif.sock \ --vdev net_memif1,id=1,role=master,socket=/tmp/spp-memif.sock \ ... For client app, it should refer the memif vdev as slave role. It means simply no need to add `role=master`. $ sudo some-dpdk-client-app ... \ --vdev net_memif0,id=0,socket=/tmp/spp-memif.sock \ --vdev net_memif1,id=1,socket=/tmp/spp-memif.sock \ ... As a note, sock file of memif is created as `/run/memif.sock` as default if it is not given explicitly. To avoid the implicity, create SPP's sock file and delete it before re-launch in startup scripts. Signed-off-by: Yasufumi Ogawa --- bin/sample/config.sh | 5 +++-- bin/spp_pri.sh | 20 +++++++++++++++++--- bin/start.sh | 1 + 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/bin/sample/config.sh b/bin/sample/config.sh index e797956..ec4d4b8 100644 --- a/bin/sample/config.sh +++ b/bin/sample/config.sh @@ -15,13 +15,14 @@ NUM_RINGS=8 PRI_PORTMASK=0x03 # total num of ports of spp_primary. # Vdevs of spp_primary +#PRI_MEMIF_VDEVS=(0 1) # IDs of `net_memif` #PRI_VHOST_VDEVS=(11 12) # IDs of `eth_vhost` #PRI_RING_VDEVS=(1 2) # IDs of `net_ring` #PRI_TAP_VDEVS=(1 2) # IDs of `net_tap` # You can give whole of vdev options here. #PRI_VDEVS=( -#eth_vhost11,iface=/tmp/sock13,queues=1 -#eth_vhost12,iface=/tmp/sock14,queues=1 +#net_memif0,socket=/tmp/memif.sock,id=0,role=master +#net_memif1,socket=/tmp/memif.sock,id=1,role=master #) # You do not need to change usually. diff --git a/bin/spp_pri.sh b/bin/spp_pri.sh index 5e21572..c0b0e1e 100644 --- a/bin/spp_pri.sh +++ b/bin/spp_pri.sh @@ -7,19 +7,23 @@ SPP_PRI_VHOST="" SPP_PRI_RING="" SPP_PRI_TAP="" +SPP_PRI_MEMIF="" SPP_PRI_VDEVS="" +SOCK_VHOST="/tmp/sock" +SOCK_MEMIF="/tmp/spp-memif.sock" + function clean_sock_files() { # clean /tmp/sock* - sudo rm -f /tmp/sock* + sudo rm -f ${SOCK_VHOST}* + sudo rm -f ${SOCK_MEMIF} } # Add vhost vdevs named as such as `eth_vhost0`. function setup_vhost_vdevs() { if [ ${PRI_VHOST_VDEVS} ]; then for id in ${PRI_VHOST_VDEVS[@]}; do - SPP_SOCK="/tmp/sock${id}" - SPP_PRI_VHOST="${SPP_PRI_VHOST} --vdev eth_vhost${id},iface=${SPP_SOCK}" + SPP_PRI_VHOST="${SPP_PRI_VHOST} --vdev eth_vhost${id},iface=${SOCK_VHOST}${id}" done fi } @@ -42,6 +46,15 @@ function setup_tap_vdevs() { fi } +# Add memif vdevs named as such as `net_memif`. +function setup_memif_vdevs() { + if [ ${PRI_MEMIF_VDEVS} ]; then + for id in ${PRI_MEMIF_VDEVS[@]}; do + SPP_PRI_MEMIF="${SPP_PRI_MEMIF} --vdev net_memif${id},id=${id},role=master,socket=${SOCK_MEMIF}" + done + fi +} + # Add any of vdevs. function setup_vdevs() { if [ ${PRI_VDEVS} ]; then @@ -71,6 +84,7 @@ function spp_pri() { ${SPP_PRI_VHOST} \ ${SPP_PRI_RING} \ ${SPP_PRI_TAP} \ + ${SPP_PRI_MEMIF} \ ${SPP_PRI_VDEVS} \ -- \ -p ${PRI_PORTMASK} \ diff --git a/bin/start.sh b/bin/start.sh index ce3ce26..eecb2ed 100755 --- a/bin/start.sh +++ b/bin/start.sh @@ -43,6 +43,7 @@ function start_spp_pri() { setup_vhost_vdevs # setup vdevs of eth_vhost setup_ring_vdevs # setup vdevs of net_ring setup_tap_vdevs # setup vdevs of net_tap + setup_memif_vdevs # setup vdevs of net_memif setup_vdevs # setup any of vdevs spp_pri # launch spp_primary } -- 2.17.1