From patchwork Tue Aug 11 08:01:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Durrant X-Patchwork-Id: 11708843 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 68E75109A for ; Tue, 11 Aug 2020 08:03:04 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4397020656 for ; Tue, 11 Aug 2020 08:03:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=xen.org header.i=@xen.org header.b="3zpUIDAn" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4397020656 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEY-0003tk-C1; Tue, 11 Aug 2020 08:02:10 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEX-0003tc-7o for xen-devel@lists.xenproject.org; Tue, 11 Aug 2020 08:02:09 +0000 X-Inumbo-ID: 24a6a5c4-9476-4a0d-bc69-354df03b0b8f Received: from mail.xenproject.org (unknown [104.130.215.37]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 24a6a5c4-9476-4a0d-bc69-354df03b0b8f; Tue, 11 Aug 2020 08:02:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=zLawH4FvOFWl21OKR3+ucyTpJY4mEJwrzwh5lh6ZTTM=; b=3zpUIDAnftjjPCSyjPccOSSNuY N7FS8KaWcFTUtzNJGrDqUyyZsCNVcP+qON9Ez4E01DcQMgcpZp+V8Adk75AkUFSG9y1gPmjRhPkzx ysZj/AHAueajNN/YwscPZxvGDbfYMbqVvip5iPfnGDQI9UKza8vfjcVymSLfvQhXUQEo=; Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEV-0003uZ-Cm; Tue, 11 Aug 2020 08:02:07 +0000 Received: from host86-143-223-30.range86-143.btcentralplus.com ([86.143.223.30] helo=u2f063a87eabd5f.home) by xenbits.xenproject.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k5PEV-0000k5-4z; Tue, 11 Aug 2020 08:02:07 +0000 From: Paul Durrant To: xen-devel@lists.xenproject.org Subject: [PATCH v3 1/8] public/io/netif: specify MTU override node Date: Tue, 11 Aug 2020 09:01:55 +0100 Message-Id: <20200811080202.31163-2-paul@xen.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200811080202.31163-1-paul@xen.org> References: <20200811080202.31163-1-paul@xen.org> MIME-Version: 1.0 X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Stefano Stabellini , Julien Grall , Wei Liu , Andrew Cooper , Paul Durrant , Ian Jackson , George Dunlap , Jan Beulich Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" From: Paul Durrant There is currently no documentation to state what MTU a frontend should adertise to its network stack. It has however long been assumed that the default value of 1500 is correct. This patch specifies a mechanism to allow the tools to set the MTU via a xenstore node in the frontend area and states that the absence of that node means the frontend should assume an MTU of 1500 octets. NOTE: The Windows PV frontend has used an MTU sampled from the xenstore node specified in this patch. Signed-off-by: Paul Durrant Reviewed-by: Juergen Gross Reviewed-by: Ian Jackson Acked-by: Wei Liu --- Cc: Andrew Cooper Cc: George Dunlap Cc: Jan Beulich Cc: Julien Grall Cc: Stefano Stabellini Cc: Wei Liu v2: - Add a note in xenstore-paths highlighting the new xenstore node --- docs/misc/xenstore-paths.pandoc | 3 +++ xen/include/public/io/netif.h | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/docs/misc/xenstore-paths.pandoc b/docs/misc/xenstore-paths.pandoc index 766e8008dc..5cd5c8a3b9 100644 --- a/docs/misc/xenstore-paths.pandoc +++ b/docs/misc/xenstore-paths.pandoc @@ -298,6 +298,9 @@ A virtual keyboard device frontend. Described by A virtual network device frontend. Described by [xen/include/public/io/netif.h][NETIF] +NOTE: ~/device/vif/$DEVID/mtu can be used to inform the frontend of an + increased MTU. (The default MTU is 1500 octets). + #### ~/device/vscsi/$DEVID/* [] A virtual scsi device frontend. Described by diff --git a/xen/include/public/io/netif.h b/xen/include/public/io/netif.h index 9fcf91a2fe..00dd258712 100644 --- a/xen/include/public/io/netif.h +++ b/xen/include/public/io/netif.h @@ -204,6 +204,18 @@ * present). */ +/* + * MTU + * === + * + * The toolstack may set a value of MTU for the frontend by setting the + * /local/domain//device/vif//mtu node with the MTU value in + * octets. If this node is absent the frontend should assume an MTU value + * of 1500 octets. A frontend is also at liberty to ignore this value so + * it is only suitable for informing the frontend that a packet payload + * >1500 octets is permitted. + */ + /* * Hash types * ========== From patchwork Tue Aug 11 08:01:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Durrant X-Patchwork-Id: 11708849 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 444EB913 for ; Tue, 11 Aug 2020 08:03:20 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2007620656 for ; Tue, 11 Aug 2020 08:03:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=xen.org header.i=@xen.org header.b="SnQBnfDb" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2007620656 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEb-0003u7-Kr; Tue, 11 Aug 2020 08:02:13 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEa-0003tU-GL for xen-devel@lists.xenproject.org; Tue, 11 Aug 2020 08:02:12 +0000 X-Inumbo-ID: 6418cc07-9d07-4265-8172-d0cc86b34d7d Received: from mail.xenproject.org (unknown [104.130.215.37]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 6418cc07-9d07-4265-8172-d0cc86b34d7d; Tue, 11 Aug 2020 08:02:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=dBwj4wik0LPt/hwNL21RAdLL6al/lz/Xx5lYUZ+jc9M=; b=SnQBnfDbIVzQJeMl9esibza4Tb 2zXxpNeILmFRRXctbbGuVsUA1122jmLVnNpPhHI1wFHOH70yfLetzl9llb0QIeuzpnipXWosh5KB1 lZBBydwF8s1uqxxXQ1QPVbyFZkztDSz+D/Y7A+Q5b44NyTIHhZrIRPa6iTfcSQh3F4dA=; Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEW-0003ud-9F; Tue, 11 Aug 2020 08:02:08 +0000 Received: from host86-143-223-30.range86-143.btcentralplus.com ([86.143.223.30] helo=u2f063a87eabd5f.home) by xenbits.xenproject.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k5PEW-0000k5-1k; Tue, 11 Aug 2020 08:02:08 +0000 From: Paul Durrant To: xen-devel@lists.xenproject.org Subject: [PATCH v3 2/8] tools/hotplug/Linux: re-factor add_to_bridge() in xen-network-common.sh Date: Tue, 11 Aug 2020 09:01:56 +0100 Message-Id: <20200811080202.31163-3-paul@xen.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200811080202.31163-1-paul@xen.org> References: <20200811080202.31163-1-paul@xen.org> MIME-Version: 1.0 X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Paul Durrant , Ian Jackson , Wei Liu Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" From: Paul Durrant Remove duplication of 'ip link set dev'. It is perfectly fine to call it even if the device has already been added to the bridge. NOTE: This patch also adds code to write a debug log entry if the device was already on the bridge. Signed-off-by: Paul Durrant --- Cc: Ian Jackson Cc: Wei Liu v3: - Re-factored from "tools/hotplug: add remove_from_bridge() and improve debug output" in v2 --- tools/hotplug/Linux/xen-network-common.sh | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/tools/hotplug/Linux/xen-network-common.sh b/tools/hotplug/Linux/xen-network-common.sh index 8dd3a62068..ec3bd4ec4a 100644 --- a/tools/hotplug/Linux/xen-network-common.sh +++ b/tools/hotplug/Linux/xen-network-common.sh @@ -126,16 +126,18 @@ add_to_bridge () { local bridge=$1 local dev=$2 - # Don't add $dev to $bridge if it's already on a bridge. - if [ -e "/sys/class/net/${bridge}/brif/${dev}" ]; then - ip link set dev ${dev} up || true - return - fi - if which brctl >&/dev/null; then - brctl addif ${bridge} ${dev} + # Don't add $dev to $bridge if it's already on the bridge. + if [ ! -e "/sys/class/net/${bridge}/brif/${dev}" ]; then + log debug "adding $dev to bridge $bridge" + if which brctl >&/dev/null; then + brctl addif ${bridge} ${dev} + else + ip link set ${dev} master ${bridge} + fi else - ip link set ${dev} master ${bridge} + log debug "$dev already on bridge $bridge" fi + ip link set dev ${dev} up } From patchwork Tue Aug 11 08:01:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Durrant X-Patchwork-Id: 11708847 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A9E4D109A for ; Tue, 11 Aug 2020 08:03:12 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 85C7820656 for ; Tue, 11 Aug 2020 08:03:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=xen.org header.i=@xen.org header.b="S5x8KVbr" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 85C7820656 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEd-0003v7-US; Tue, 11 Aug 2020 08:02:15 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEc-0003tc-5m for xen-devel@lists.xenproject.org; Tue, 11 Aug 2020 08:02:14 +0000 X-Inumbo-ID: 53e06020-7d57-44ed-b070-05e1453e4c9f Received: from mail.xenproject.org (unknown [104.130.215.37]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 53e06020-7d57-44ed-b070-05e1453e4c9f; Tue, 11 Aug 2020 08:02:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=eSmprS1bsesB0cQvNRI38Z139gI/ZjEmaiUVzzjZXv4=; b=S5x8KVbrxbU9txM7PfsxBvEg8M DtAJMTFQUnLErPOfvE3R48IX7bhErJxl2xNZGUF1cHx86gsUajNc91q7eoxOkfKJxD4LvRXD0zK9W DCitwEVJzOreK/ov6feZIwaKrt6nbBH51/ag+nF66bJEEny1RUMCC596PW+GCRBi/Rts=; Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEX-0003un-6K; Tue, 11 Aug 2020 08:02:09 +0000 Received: from host86-143-223-30.range86-143.btcentralplus.com ([86.143.223.30] helo=u2f063a87eabd5f.home) by xenbits.xenproject.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k5PEW-0000k5-Ul; Tue, 11 Aug 2020 08:02:09 +0000 From: Paul Durrant To: xen-devel@lists.xenproject.org Subject: [PATCH v3 3/8] tools/hotplug/Linux: add remove_from_bridge() Date: Tue, 11 Aug 2020 09:01:57 +0100 Message-Id: <20200811080202.31163-4-paul@xen.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200811080202.31163-1-paul@xen.org> References: <20200811080202.31163-1-paul@xen.org> MIME-Version: 1.0 X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Paul Durrant , Ian Jackson , Wei Liu Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" From: Paul Durrant This patch adds a remove_from_bridge() function into xen-network-common.sh to partner with the existing add_to_bridge() function. The vif-bridge script is then modified to use it. Signed-off-by: Paul Durrant --- Cc: Ian Jackson Cc: Wei Liu v3: - Re-factored from "tools/hotplug: add remove_from_bridge() and improve debug output" and "tools/hotplug: combine add/online and remove/offline in vif-bridge..." in v2 --- tools/hotplug/Linux/vif-bridge | 7 +------ tools/hotplug/Linux/xen-network-common.sh | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/tools/hotplug/Linux/vif-bridge b/tools/hotplug/Linux/vif-bridge index e722090ca8..c3e409926d 100644 --- a/tools/hotplug/Linux/vif-bridge +++ b/tools/hotplug/Linux/vif-bridge @@ -84,12 +84,7 @@ case "$command" in ;; offline) - if which brctl >&/dev/null; then - do_without_error brctl delif "$bridge" "$dev" - else - do_without_error ip link set "$dev" nomaster - fi - do_without_error ifconfig "$dev" down + remove_from_bridge "$bridge" "$dev" ;; add) diff --git a/tools/hotplug/Linux/xen-network-common.sh b/tools/hotplug/Linux/xen-network-common.sh index ec3bd4ec4a..6a0904361f 100644 --- a/tools/hotplug/Linux/xen-network-common.sh +++ b/tools/hotplug/Linux/xen-network-common.sh @@ -141,6 +141,25 @@ add_to_bridge () { ip link set dev ${dev} up } +remove_from_bridge () { + local bridge=$1 + local dev=$2 + + do_without_error ip link set dev ${dev} down + + # Don't remove $dev from $bridge if it's not on the bridge. + if [ -e "/sys/class/net/${bridge}/brif/${dev}" ]; then + log debug "removing $dev from bridge $bridge" + if which brctl >&/dev/null; then + do_without_error brctl delif ${bridge} ${dev} + else + do_without_error ip link set ${dev} nomaster + fi + else + log debug "$dev not on bridge $bridge" + fi +} + # Usage: set_mtu bridge dev set_mtu () { local bridge=$1 From patchwork Tue Aug 11 08:01:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Durrant X-Patchwork-Id: 11708857 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 95791913 for ; Tue, 11 Aug 2020 08:03:35 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 71B2220656 for ; Tue, 11 Aug 2020 08:03:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=xen.org header.i=@xen.org header.b="gOto8wyh" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 71B2220656 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEh-0003wN-8T; Tue, 11 Aug 2020 08:02:19 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEf-0003tU-GT for xen-devel@lists.xenproject.org; Tue, 11 Aug 2020 08:02:17 +0000 X-Inumbo-ID: 6a799ae5-b692-48b2-8791-240e05f53c63 Received: from mail.xenproject.org (unknown [104.130.215.37]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 6a799ae5-b692-48b2-8791-240e05f53c63; Tue, 11 Aug 2020 08:02:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=aHjZE/ipDyZpIQn2BBAjOYE1vFoNpiNeV+OmHeWemBA=; b=gOto8wyhSFIt+KkuFzEr1CEguq hexDYyKMppmfnbBmJ6NEW007SqlYPp1CV5QQkqQ2FOdjCWToC8EH17EM7EO2D/fFDnAXgHUqydWBT yvpFwCA07dGpA7RwQY7mFWLvuScZAu4Pldj+Pt8dPOBTNNOUn021M8YqPEMveegpH974=; Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEY-0003vL-2m; Tue, 11 Aug 2020 08:02:10 +0000 Received: from host86-143-223-30.range86-143.btcentralplus.com ([86.143.223.30] helo=u2f063a87eabd5f.home) by xenbits.xenproject.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k5PEX-0000k5-RY; Tue, 11 Aug 2020 08:02:10 +0000 From: Paul Durrant To: xen-devel@lists.xenproject.org Subject: [PATCH v3 4/8] tools/hotplug/Linux: remove code duplication in vif-bridge Date: Tue, 11 Aug 2020 09:01:58 +0100 Message-Id: <20200811080202.31163-5-paul@xen.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200811080202.31163-1-paul@xen.org> References: <20200811080202.31163-1-paul@xen.org> MIME-Version: 1.0 X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Paul Durrant , Ian Jackson , Wei Liu Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" From: Paul Durrant The 'add' and 'online' cases do exactly the same thing so have 'add' simply fall through to 'online'. NOTE: This patch also adds in the missing 'remove' case, which falls though to 'offline'. (The former is passed for 'tap' devices, the latter for 'vif' devices). Signed-off-by: Paul Durrant --- Cc: Ian Jackson Cc: Wei Liu v3: - Re-factored from "tools/hotplug: combine add/online and remove/offline in vif-bridge..." in v2 --- tools/hotplug/Linux/vif-bridge | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/tools/hotplug/Linux/vif-bridge b/tools/hotplug/Linux/vif-bridge index c3e409926d..e1d7c49788 100644 --- a/tools/hotplug/Linux/vif-bridge +++ b/tools/hotplug/Linux/vif-bridge @@ -77,21 +77,18 @@ then fi case "$command" in + add) + ;& online) setup_virtual_bridge_port "$dev" set_mtu "$bridge" "$dev" add_to_bridge "$bridge" "$dev" ;; - + remove) + ;& offline) remove_from_bridge "$bridge" "$dev" ;; - - add) - setup_virtual_bridge_port "$dev" - set_mtu "$bridge" "$dev" - add_to_bridge "$bridge" "$dev" - ;; esac handle_iptable From patchwork Tue Aug 11 08:01:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Durrant X-Patchwork-Id: 11708853 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6B313109A for ; Tue, 11 Aug 2020 08:03:23 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 47A5220656 for ; Tue, 11 Aug 2020 08:03:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=xen.org header.i=@xen.org header.b="2cn19lo+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 47A5220656 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEh-0003wd-Jz; Tue, 11 Aug 2020 08:02:19 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEh-0003tc-5u for xen-devel@lists.xenproject.org; Tue, 11 Aug 2020 08:02:19 +0000 X-Inumbo-ID: 279b2850-dbf8-4292-a5a9-cbb1fd60efac Received: from mail.xenproject.org (unknown [104.130.215.37]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 279b2850-dbf8-4292-a5a9-cbb1fd60efac; Tue, 11 Aug 2020 08:02:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=Nc+eSdOT6VBsLMIDsh/OIxsUOynady1C/hs/XmoSJsg=; b=2cn19lo+wmOmZDpc4P0MKJGxov bONXxTcc9LuTfH49j8h0a5q+86wboVKstcJWhcboTMY8M+v27UMiogjDlgmMs04eczkO9ACY0a+fd zDknOW29XkrHlrGikVLMIdXB8q2Slt7n9R0B80AtDnH4Wo9VliR9glieboA5wuGCILsI=; Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEZ-0003vT-3O; Tue, 11 Aug 2020 08:02:11 +0000 Received: from host86-143-223-30.range86-143.btcentralplus.com ([86.143.223.30] helo=u2f063a87eabd5f.home) by xenbits.xenproject.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k5PEY-0000k5-RX; Tue, 11 Aug 2020 08:02:11 +0000 From: Paul Durrant To: xen-devel@lists.xenproject.org Subject: [PATCH v3 5/8] libxl: wire the libxl_device_nic 'mtu' value into xenstore Date: Tue, 11 Aug 2020 09:01:59 +0100 Message-Id: <20200811080202.31163-6-paul@xen.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200811080202.31163-1-paul@xen.org> References: <20200811080202.31163-1-paul@xen.org> MIME-Version: 1.0 X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Anthony PERARD , Paul Durrant , Ian Jackson , Wei Liu Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" From: Paul Durrant Currently the 'mtu' field of libxl_device_nic objects is effectively ignored: It is set by libxl__device_nic_setdefault() to a slightly odd default value of 1492 but otherwise ignored. This patch changes the default value to a more conventional 1500 and modifies libxl__set_xenstore_nic() to write the value into an 'mtu' node in the xenstore backend area (if it is a non-default value), as well as a read-only node of the same name in the frontend area. The backend node is used to set the value of 'mtu' in libxl__nic_from_xenstore(), when retrieving the configuration. NOTE: There is currently no way to set a non-default value of 'mtu', hence the backend node is never written. This, however, will be addressed by a subsequent patch. Signed-off-by: Paul Durrant --- Cc: Ian Jackson Cc: Wei Liu Cc: Anthony PERARD v3: - New in v3 --- tools/libxl/libxl_nic.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/tools/libxl/libxl_nic.c b/tools/libxl/libxl_nic.c index 07880b39e1..0e5d120ae9 100644 --- a/tools/libxl/libxl_nic.c +++ b/tools/libxl/libxl_nic.c @@ -53,13 +53,15 @@ int libxl_mac_to_device_nic(libxl_ctx *ctx, uint32_t domid, return rc; } +#define LIBXL_DEVICE_NIC_MTU_DEFAULT 1500 + static int libxl__device_nic_setdefault(libxl__gc *gc, uint32_t domid, libxl_device_nic *nic, bool hotplug) { int rc; if (!nic->mtu) - nic->mtu = 1492; + nic->mtu = LIBXL_DEVICE_NIC_MTU_DEFAULT; if (!nic->model) { nic->model = strdup("rtl8139"); if (!nic->model) return ERROR_NOMEM; @@ -223,6 +225,11 @@ static int libxl__set_xenstore_nic(libxl__gc *gc, uint32_t domid, nic->rate_interval_usecs)); } + if (nic->mtu != LIBXL_DEVICE_NIC_MTU_DEFAULT) { + flexarray_append(back, "mtu"); + flexarray_append(back, GCSPRINTF("%u", nic->mtu)); + } + flexarray_append(back, "bridge"); flexarray_append(back, libxl__strdup(gc, nic->bridge)); flexarray_append(back, "handle"); @@ -237,6 +244,9 @@ static int libxl__set_xenstore_nic(libxl__gc *gc, uint32_t domid, flexarray_append(front, GCSPRINTF( LIBXL_MAC_FMT, LIBXL_MAC_BYTES(nic->mac))); + flexarray_append(ro_front, "mtu"); + flexarray_append(ro_front, GCSPRINTF("%u", nic->mtu)); + return 0; } @@ -275,7 +285,20 @@ static int libxl__nic_from_xenstore(libxl__gc *gc, const char *libxl_path, rc = libxl__backendpath_parse_domid(gc, tmp, &nic->backend_domid); if (rc) goto out; - /* nic->mtu = */ + rc = libxl__xs_read_checked(gc, XBT_NULL, + GCSPRINTF("%s/mtu", libxl_path), &tmp); + if (rc) goto out; + if (tmp) { + char *endptr; + + nic->mtu = strtol(tmp, &endptr, 10); + if (*endptr != '\0') { + rc = ERROR_INVAL; + goto out; + } + } else { + nic->mtu = LIBXL_DEVICE_NIC_MTU_DEFAULT; + } rc = libxl__xs_read_checked(gc, XBT_NULL, GCSPRINTF("%s/mac", libxl_path), &tmp); From patchwork Tue Aug 11 08:02:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Durrant X-Patchwork-Id: 11708859 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A26C7109A for ; Tue, 11 Aug 2020 08:03:55 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7D13920656 for ; Tue, 11 Aug 2020 08:03:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=xen.org header.i=@xen.org header.b="IHHTk0PS" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7D13920656 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEl-0003z2-Tf; Tue, 11 Aug 2020 08:02:23 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEk-0003tU-GV for xen-devel@lists.xenproject.org; Tue, 11 Aug 2020 08:02:22 +0000 X-Inumbo-ID: 7bbe9025-e812-45b0-b51a-67c5798dabd1 Received: from mail.xenproject.org (unknown [104.130.215.37]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 7bbe9025-e812-45b0-b51a-67c5798dabd1; Tue, 11 Aug 2020 08:02:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=eU2vamnIGUwArjo4gv27KRnIl7mjwar3lCX+4HlpkTs=; b=IHHTk0PSAlI3aK6j7O/v1M0f7T Qrd8nAFXETWG5HZmCtUN9iHr1iZM4lF/1rHhcxdLcl47BKekJzk2PuqfBEVDrDVhnTsKrj63QfQec Oqu3ZcrRVXjDHZl3Jd6UXxq9ySUtQOf0gwRis6Q3onGZKr+T5lmlj/f1Ys45ZwN2w0fI=; Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEa-0003vY-0Z; Tue, 11 Aug 2020 08:02:12 +0000 Received: from host86-143-223-30.range86-143.btcentralplus.com ([86.143.223.30] helo=u2f063a87eabd5f.home) by xenbits.xenproject.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k5PEZ-0000k5-OL; Tue, 11 Aug 2020 08:02:11 +0000 From: Paul Durrant To: xen-devel@lists.xenproject.org Subject: [PATCH v3 6/8] tools/hotplug/Linux: modify set_mtu() to optionally use a configured value... Date: Tue, 11 Aug 2020 09:02:00 +0100 Message-Id: <20200811080202.31163-7-paul@xen.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200811080202.31163-1-paul@xen.org> References: <20200811080202.31163-1-paul@xen.org> MIME-Version: 1.0 X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Paul Durrant , Ian Jackson , Wei Liu Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" From: Paul Durrant ...and also inform the frontend. The set_mtu() function in xen-network-common.sh currently sets the backend vif MTU to match that of the bridge. A prior patch added code into libxl such that a tools-configured 'mtu' value may be present in the xenstore backend area. If the node is present in xenstore then it should be authoritative. Hence set_mtu() is modified to only read the MTU of the bridge if it is not present. The function is also modified to write whatever value it applies to the backend vif into the xenstore frontend area where is may then be used to configure the frontend network stack. NOTE: There is also a small modification replacing '$mtu' with '${mtu}' for style consistency. Signed-off-by: Paul Durrant --- Cc: Ian Jackson Cc: Wei Liu v3: - Re-factored from "tools/hotplug: modify set_mtu() to inform the frontend via xenstore" in v2 --- tools/hotplug/Linux/vif-bridge | 2 +- tools/hotplug/Linux/xen-network-common.sh | 28 +++++++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/tools/hotplug/Linux/vif-bridge b/tools/hotplug/Linux/vif-bridge index e1d7c49788..b99cc82a21 100644 --- a/tools/hotplug/Linux/vif-bridge +++ b/tools/hotplug/Linux/vif-bridge @@ -81,7 +81,7 @@ case "$command" in ;& online) setup_virtual_bridge_port "$dev" - set_mtu "$bridge" "$dev" + set_mtu "$bridge" "$dev" "$type_if" add_to_bridge "$bridge" "$dev" ;; remove) diff --git a/tools/hotplug/Linux/xen-network-common.sh b/tools/hotplug/Linux/xen-network-common.sh index 6a0904361f..82ee70aab4 100644 --- a/tools/hotplug/Linux/xen-network-common.sh +++ b/tools/hotplug/Linux/xen-network-common.sh @@ -164,9 +164,33 @@ remove_from_bridge () { set_mtu () { local bridge=$1 local dev=$2 - mtu="`ip link show dev ${bridge}| awk '/mtu/ { print $5 }'`" + local type_if=$3 + + XENBUS_PATH="${XENBUS_PATH:?}" + + local mtu=$(xenstore_read_default "$XENBUS_PATH/mtu" "") + if [ -z "$mtu" ] + then + mtu="`ip link show dev ${bridge}| awk '/mtu/ { print $5 }'`" + if [ -n "$mtu" ] + then + log debug "$bridge MTU is $mtu" + fi + fi if [ -n "$mtu" ] && [ "$mtu" -gt 0 ] then - ip link set dev ${dev} mtu $mtu || : + log debug "setting $dev MTU to $mtu" + ip link set dev ${dev} mtu ${mtu} || : + + if [ ${type_if} = vif ] + then + local dev_=${dev#vif} + local domid=${dev_%.*} + local devid=${dev_#*.} + + local FRONTEND_PATH="/local/domain/$domid/device/vif/$devid" + + xenstore_write "$FRONTEND_PATH/mtu" ${mtu} + fi fi } From patchwork Tue Aug 11 08:02:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Durrant X-Patchwork-Id: 11708851 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8434E913 for ; Tue, 11 Aug 2020 08:03:21 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6085B206B5 for ; Tue, 11 Aug 2020 08:03:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=xen.org header.i=@xen.org header.b="JZGxjTOi" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6085B206B5 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEr-00042i-B0; Tue, 11 Aug 2020 08:02:29 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEp-0003tU-Ge for xen-devel@lists.xenproject.org; Tue, 11 Aug 2020 08:02:27 +0000 X-Inumbo-ID: 764ba1c8-d299-41f0-8d8c-eee0084d7b95 Received: from mail.xenproject.org (unknown [104.130.215.37]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 764ba1c8-d299-41f0-8d8c-eee0084d7b95; Tue, 11 Aug 2020 08:02:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=CMw0RcWu/LXhzXxdRQOMwsBd24sui0EzlfPHLuiHcFQ=; b=JZGxjTOiGRxLxYjyguj/5ZR1+5 kviMy5oF4IkRlmX/4+uf5IQTay4PNOlAmiZIOuyCGXn1FxCkZTKwBbfwLEYnWl0Qfa4f2NGzqrCn+ XsP/G3/4GtMWcn6httDpaOgdoWqxQ6qvtchnbwlxEf+Zwe7xCGhBF1h/+HBgz5h1pIqM=; Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5PEa-0003vg-Vd; Tue, 11 Aug 2020 08:02:12 +0000 Received: from host86-143-223-30.range86-143.btcentralplus.com ([86.143.223.30] helo=u2f063a87eabd5f.home) by xenbits.xenproject.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k5PEa-0000k5-OI; Tue, 11 Aug 2020 08:02:12 +0000 From: Paul Durrant To: xen-devel@lists.xenproject.org Subject: [PATCH v3 7/8] xl: add 'mtu' option to network configuration Date: Tue, 11 Aug 2020 09:02:01 +0100 Message-Id: <20200811080202.31163-8-paul@xen.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200811080202.31163-1-paul@xen.org> References: <20200811080202.31163-1-paul@xen.org> MIME-Version: 1.0 X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Anthony PERARD , Paul Durrant , Ian Jackson , Wei Liu Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" From: Paul Durrant This patch adds code to parse a value for MTU from the network configuration if it is present. The documentation in xl-network-configuration.5.pod is also modified accordingly. Signed-off-by: Paul Durrant --- Cc: Ian Jackson Cc: Wei Liu Cc: Anthony PERARD v3: - New in v3 --- docs/man/xl-network-configuration.5.pod | 6 ++++++ tools/xl/xl_cmdtable.c | 2 +- tools/xl/xl_parse.c | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/man/xl-network-configuration.5.pod b/docs/man/xl-network-configuration.5.pod index 0ac24c4a18..af058d4d3c 100644 --- a/docs/man/xl-network-configuration.5.pod +++ b/docs/man/xl-network-configuration.5.pod @@ -249,3 +249,9 @@ on the underlying netback implementation. Specifies the devid manually instead of letting xl choose the lowest index available. NOTE: This should not be set unless you have a reason to. + +=head2 mtu + +Specifies the MTU (i.e. the maximum size of an IP payload, exclusing headers). The +default value is 1500 but, if the VIF is attached to a bridge, it will be set to match +unless overridden by this parameter. diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c index 08335394e5..2b8e1b321a 100644 --- a/tools/xl/xl_cmdtable.c +++ b/tools/xl/xl_cmdtable.c @@ -338,7 +338,7 @@ struct cmd_spec cmd_table[] = { "Create a new virtual network device", " [type=] [mac=] [bridge=] " "[ip=] [script=