From: Yuanhan Liu <yuanhan.liu@linux.intel.com>
To: Jianfeng Tan <jianfeng.tan@intel.com>
Cc: dev@dpdk.org, ferruh.yigit@intel.com, cunming.liang@intel.com
Subject: Re: [PATCH v2 6/7] net/virtio_user: enable offloading
Date: Mon, 26 Dec 2016 15:53:46 +0800 [thread overview]
Message-ID: <20161226075346.GE19288@yliu-dev.sh.intel.com> (raw)
In-Reply-To: <1482477266-39199-7-git-send-email-jianfeng.tan@intel.com>
On Fri, Dec 23, 2016 at 07:14:25AM +0000, Jianfeng Tan wrote:
> When used with vhost kernel backend, we can offload at both directions.
> - From vhost kernel to virtio_user, the offload is enabled so that
> DPDK app can trust the flow is checksum-correct; and if DPDK app
> sends it through another port, the checksum needs to be
> recalculated or offloaded. It also applies to TSO.
> - From virtio_user to vhost_kernel, the offload is enabled so that
> kernel can trust the flow is L4-checksum-correct, no need to verify
> it; if kernel will consume it, DPDK app should make sure the
> l3-checksum is correctly set.
>
> Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
> ---
> drivers/net/virtio/virtio_user/vhost_kernel.c | 61 ++++++++++++++++++++++++++-
> 1 file changed, 59 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/virtio/virtio_user/vhost_kernel.c b/drivers/net/virtio/virtio_user/vhost_kernel.c
> index 8984c5c..fb3c454 100644
> --- a/drivers/net/virtio/virtio_user/vhost_kernel.c
> +++ b/drivers/net/virtio/virtio_user/vhost_kernel.c
> @@ -91,6 +91,13 @@ struct vhost_memory_kernel {
> #define IFF_ATTACH_QUEUE 0x0200
> #define IFF_DETACH_QUEUE 0x0400
>
> +/* Features for GSO (TUNSETOFFLOAD). */
> +#define TUN_F_CSUM 0x01 /* You can hand me unchecksummed packets. */
> +#define TUN_F_TSO4 0x02 /* I can handle TSO for IPv4 packets */
> +#define TUN_F_TSO6 0x04 /* I can handle TSO for IPv6 packets */
> +#define TUN_F_TSO_ECN 0x08 /* I can handle TSO with ECN bits. */
> +#define TUN_F_UFO 0x10 /* I can handle UFO packets */
> +
> /* Constants */
> #define TUN_DEF_SNDBUF (1ull << 20)
> #define PATH_NET_TUN "/dev/net/tun"
> @@ -173,6 +180,28 @@ prepare_vhost_memory_kernel(void)
> return vm;
> }
>
> +/* with below features, vhost kernel does not need to do the checksum and TSO,
> + * these info will be passed to virtio_user through virtio net header.
> + */
> +static const uint64_t guest_offloads_mask =
The typical way is to define it as macro?
> + (1ULL << VIRTIO_NET_F_GUEST_CSUM) |
> + (1ULL << VIRTIO_NET_F_GUEST_TSO4) |
> + (1ULL << VIRTIO_NET_F_GUEST_TSO6) |
> + (1ULL << VIRTIO_NET_F_GUEST_ECN) |
> + (1ULL << VIRTIO_NET_F_GUEST_UFO);
> +
> @@ -271,6 +314,12 @@ vhost_kernel_enable_queue_pair(struct virtio_user_dev *dev,
> int hdr_size;
> int vhostfd;
> int tapfd;
> + unsigned int offload =
> + TUN_F_CSUM |
> + TUN_F_TSO4 |
> + TUN_F_TSO6 |
> + TUN_F_TSO_ECN |
> + TUN_F_UFO;
Same here?
--yliu
next prev parent reply other threads:[~2016-12-26 7:52 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-02 14:31 [PATCH 0/3] virtio_user as an alternative exception path Jianfeng Tan
2016-12-02 14:31 ` [PATCH 1/3] net/virtio_user: add vhost layer Jianfeng Tan
2016-12-08 7:21 ` Yuanhan Liu
2016-12-02 14:31 ` [PATCH 2/3] net/virtio_user: add vhost kernel support Jianfeng Tan
2016-12-02 14:31 ` [PATCH 3/3] net/virtio_user: fix wrongly set features Jianfeng Tan
2016-12-08 8:32 ` Yuanhan Liu
2016-12-02 14:44 ` [PATCH 0/3] virtio_user as an alternative exception path Thomas Monjalon
2016-12-23 7:14 ` [PATCH v2 0/7] " Jianfeng Tan
2016-12-23 7:14 ` [PATCH v2 1/7] net/virtio_user: fix wrongly set features Jianfeng Tan
2016-12-23 7:14 ` [PATCH v2 2/7] net/virtio_user: postpone DRIVER OK notification Jianfeng Tan
2016-12-26 6:27 ` Yuanhan Liu
2016-12-26 6:55 ` Tan, Jianfeng
2016-12-26 8:02 ` Yuanhan Liu
2016-12-26 8:26 ` Tan, Jianfeng
2016-12-23 7:14 ` [PATCH v2 3/7] net/virtio_user: move vhost user specific code Jianfeng Tan
2016-12-26 6:28 ` Yuanhan Liu
2016-12-26 6:58 ` Tan, Jianfeng
2016-12-26 7:57 ` Yuanhan Liu
2016-12-29 9:40 ` Tan, Jianfeng
2016-12-23 7:14 ` [PATCH v2 4/7] net/virtio_user: abstract virtio user backend ops Jianfeng Tan
2016-12-26 6:41 ` Yuanhan Liu
2016-12-23 7:14 ` [PATCH v2 5/7] net/virtio_user: add vhost kernel support Jianfeng Tan
2016-12-26 7:44 ` Yuanhan Liu
2017-01-04 7:22 ` Tan, Jianfeng
2017-01-04 7:46 ` Yuanhan Liu
2017-01-09 4:51 ` Jason Wang
2017-01-09 4:39 ` Jason Wang
2017-01-10 6:11 ` Tan, Jianfeng
2017-01-10 8:46 ` Thomas Monjalon
2017-01-10 9:11 ` Tan, Jianfeng
2017-01-11 2:42 ` Jason Wang
2017-01-11 3:13 ` Tan, Jianfeng
2017-01-11 3:23 ` Jason Wang
2017-01-12 9:40 ` Tan, Jianfeng
2017-01-13 2:27 ` Jason Wang
2017-01-11 2:30 ` Tan, Jianfeng
2017-01-11 2:45 ` Jason Wang
2016-12-23 7:14 ` [PATCH v2 6/7] net/virtio_user: enable offloading Jianfeng Tan
2016-12-26 7:53 ` Yuanhan Liu [this message]
2016-12-23 7:14 ` [PATCH v2 7/7] net/virtio_user: enable multiqueue with vhost kernel Jianfeng Tan
2017-01-04 3:59 ` [PATCH v3 0/7] virtio_user as an alternative exception path Jianfeng Tan
2017-01-04 3:59 ` [PATCH v3 1/7] net/virtio_user: fix wrongly set features Jianfeng Tan
2017-01-04 3:59 ` [PATCH v3 2/7] net/virtio_user: fix not properly reset device Jianfeng Tan
2017-01-04 5:46 ` Yuanhan Liu
2017-01-04 3:59 ` [PATCH v3 3/7] net/virtio_user: move vhost user specific code Jianfeng Tan
2017-01-04 6:02 ` Yuanhan Liu
2017-01-04 6:46 ` Tan, Jianfeng
2017-01-04 7:08 ` Yuanhan Liu
2017-01-04 3:59 ` [PATCH v3 4/7] net/virtio_user: abstract virtio user backend ops Jianfeng Tan
2017-01-04 6:11 ` Yuanhan Liu
2017-01-04 3:59 ` [PATCH v3 5/7] net/virtio_user: add vhost kernel support Jianfeng Tan
2017-01-04 6:13 ` Yuanhan Liu
2017-01-04 3:59 ` [PATCH v3 6/7] net/virtio_user: enable offloading Jianfeng Tan
2017-01-04 3:59 ` [PATCH v3 7/7] net/virtio_user: enable multiqueue with vhost kernel Jianfeng Tan
2017-01-09 14:06 ` [PATCH v3 0/7] virtio_user as an alternative exception path Bruce Richardson
2017-01-10 8:46 ` Tan, Jianfeng
2017-01-13 12:18 ` [PATCH v4 0/8] " Jianfeng Tan
2017-01-13 12:18 ` [PATCH v4 1/8] net/virtio_user: fix wrongly get/set features Jianfeng Tan
2017-01-13 12:18 ` [PATCH v4 2/8] net/virtio_user: fix not properly reset device Jianfeng Tan
2017-01-13 12:18 ` [PATCH v4 3/8] net/virtio_user: move vhost user specific code Jianfeng Tan
2017-01-13 12:18 ` [PATCH v4 4/8] net/virtio_user: abstract virtio user backend ops Jianfeng Tan
2017-01-13 12:18 ` [PATCH v4 5/8] net/virtio_user: add vhost kernel support Jianfeng Tan
2017-01-13 12:18 ` [PATCH v4 6/8] net/virtio_user: enable offloading Jianfeng Tan
2017-01-13 12:18 ` [PATCH v4 7/8] net/virtio_user: enable multiqueue with vhost kernel Jianfeng Tan
2017-01-13 12:18 ` [PATCH v4 8/8] doc: add guide to use virtio_user as exceptional path Jianfeng Tan
2017-01-16 6:00 ` Yuanhan Liu
2017-01-16 6:04 ` Yuanhan Liu
2017-01-16 9:44 ` Thomas Monjalon
2017-01-16 9:49 ` Yuanhan Liu
2017-01-16 14:45 ` Thomas Monjalon
2017-01-22 0:46 ` Aws Ismail
2017-01-22 7:16 ` Tan, Jianfeng
2017-01-16 15:05 ` [PATCH v4 0/8] virtio_user as an alternative exception path Yuanhan Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161226075346.GE19288@yliu-dev.sh.intel.com \
--to=yuanhan.liu@linux.intel.com \
--cc=cunming.liang@intel.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=jianfeng.tan@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.