From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 137D61B03F for ; Tue, 16 Jan 2018 14:05:58 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Jan 2018 05:05:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,368,1511856000"; d="scan'208";a="20207434" Received: from dpdk-xiao-1.sh.intel.com ([10.67.110.153]) by FMSMGA003.fm.intel.com with ESMTP; 16 Jan 2018 05:05:56 -0800 From: Xiao Wang To: yliu@fridaylinux.org, olivier.matz@6wind.com Cc: dev@dpdk.org, thomas@monjalon.net, tiwei.bie@intel.com, stephen@networkplumber.org, maxime.coquelin@redhat.com, Xiao Wang Date: Wed, 17 Jan 2018 05:40:58 +0800 Message-Id: <20180116214103.67803-1-xiao.w.wang@intel.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180110012356.57456-4-xiao.w.wang@intel.com> References: <20180110012356.57456-4-xiao.w.wang@intel.com> Subject: [dpdk-dev] [PATCH v11 0/5] net/virtio: support GUEST ANNOUNCE X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Jan 2018 13:05:59 -0000 When live migration is finished, the backup VM needs to proactively announce its new location. DPDK vhost has implemented VHOST_USER_PROTOCOL_F_RARP to generate a RARP packet to switch in dequeue path. Another method is to let the guest proactively send out RARP packet using VIRTIO_NET_F_GUEST_ANNOUNCE feature. This patch set enables this feature in virtio pmd, to support VM running virtio pmd be migrated without vhost supporting RARP generation. v11: - Add check for parameter and tailroom in rte_net_make_rarp_packet. - Allocate mbuf in rte_net_make_rarp_packet. v10: - Add a bold doxygen comment for the experimental function. v9: - Introduce function with the experimental state. v8: - Add a helper in lib/librte_net to make rarp packet, it's used by both vhost and virtio. v7: - Improve comment for state_lock. - Rename spinlock variable 'sl' to 'lock'. v6: - Use rte_pktmbuf_alloc() instead of rte_mbuf_raw_alloc(). - Remove the 'len' parameter in calling virtio_send_command(). - Remove extra space between typo and var. - Improve comment and alignment. - Remove the unnecessary header file. - A better usage of 'unlikely' indication. v5: - Remove txvq parameter in virtio_inject_pkts. - Zero hw->special_buf after using it. - Return the retval of tx_pkt_burst(). - Allocate a mbuf pointer on stack directly. v4: - Move spinlock lock/unlock into dev_pause/resume. - Separate out a patch for packet injection. v3: - Remove Tx function code duplication, use a special pointer for rarp injection. - Rename function generate_rarp to virtio_notify_peers, replace 'virtnet_' with 'virtio_'. - Add comment for state_lock. - Typo fix and comment improvement. v2: - Use spaces instead of tabs between the code and comments. - Remove unnecessary parentheses. - Use rte_pktmbuf_mtod directly to get eth_hdr addr. - Fix virtio_dev_pause return value check. Xiao Wang (5): net/virtio: make control queue thread-safe net/virtio: add packet injection method net: add a helper for making RARP packet vhost: use lib API to make RARP packet net/virtio: support GUEST ANNOUNCE drivers/net/virtio/virtio_ethdev.c | 113 +++++++++++++++++++++++++++++++- drivers/net/virtio/virtio_ethdev.h | 6 ++ drivers/net/virtio/virtio_pci.h | 7 ++ drivers/net/virtio/virtio_rxtx.c | 3 +- drivers/net/virtio/virtio_rxtx.h | 1 + drivers/net/virtio/virtio_rxtx_simple.c | 2 +- drivers/net/virtio/virtqueue.h | 11 ++++ lib/Makefile | 3 +- lib/librte_net/Makefile | 1 + lib/librte_net/rte_arp.c | 50 ++++++++++++++ lib/librte_net/rte_arp.h | 18 +++++ lib/librte_net/rte_net_version.map | 6 ++ lib/librte_vhost/Makefile | 2 +- lib/librte_vhost/virtio_net.c | 51 +------------- 14 files changed, 219 insertions(+), 55 deletions(-) create mode 100644 lib/librte_net/rte_arp.c -- 2.15.1