From: Andrew Melnychenko <andrew@daynix.com>
To: davem@davemloft.net, kuba@kernel.org, mst@redhat.com,
jasowang@redhat.com, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org,
virtualization@lists.linux-foundation.org
Cc: yan@daynix.com, yuri.benditovich@daynix.com
Subject: [RFC PATCH 4/5] linux/virtio_net.h: Added Support for GSO_UDP_L4 offload.
Date: Tue, 25 Jan 2022 10:47:01 +0200 [thread overview]
Message-ID: <20220125084702.3636253-5-andrew@daynix.com> (raw)
In-Reply-To: <20220125084702.3636253-1-andrew@daynix.com>
Now, it's possible to convert vnet packets from/to skb.
Signed-off-by: Andrew Melnychenko <andrew@daynix.com>
---
include/linux/virtio_net.h | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h
index a960de68ac69..9311d41d0a81 100644
--- a/include/linux/virtio_net.h
+++ b/include/linux/virtio_net.h
@@ -17,6 +17,9 @@ static inline bool virtio_net_hdr_match_proto(__be16 protocol, __u8 gso_type)
case VIRTIO_NET_HDR_GSO_UDP:
return protocol == cpu_to_be16(ETH_P_IP) ||
protocol == cpu_to_be16(ETH_P_IPV6);
+ case VIRTIO_NET_HDR_GSO_UDP_L4:
+ return protocol == cpu_to_be16(ETH_P_IP) ||
+ protocol == cpu_to_be16(ETH_P_IPV6);
default:
return false;
}
@@ -31,6 +34,7 @@ static inline int virtio_net_hdr_set_proto(struct sk_buff *skb,
switch (hdr->gso_type & ~VIRTIO_NET_HDR_GSO_ECN) {
case VIRTIO_NET_HDR_GSO_TCPV4:
case VIRTIO_NET_HDR_GSO_UDP:
+ case VIRTIO_NET_HDR_GSO_UDP_L4:
skb->protocol = cpu_to_be16(ETH_P_IP);
break;
case VIRTIO_NET_HDR_GSO_TCPV6:
@@ -69,6 +73,11 @@ static inline int virtio_net_hdr_to_skb(struct sk_buff *skb,
ip_proto = IPPROTO_UDP;
thlen = sizeof(struct udphdr);
break;
+ case VIRTIO_NET_HDR_GSO_UDP_L4:
+ gso_type = SKB_GSO_UDP_L4;
+ ip_proto = IPPROTO_UDP;
+ thlen = sizeof(struct udphdr);
+ break;
default:
return -EINVAL;
}
@@ -182,6 +191,8 @@ static inline int virtio_net_hdr_from_skb(const struct sk_buff *skb,
hdr->gso_type = VIRTIO_NET_HDR_GSO_TCPV4;
else if (sinfo->gso_type & SKB_GSO_TCPV6)
hdr->gso_type = VIRTIO_NET_HDR_GSO_TCPV6;
+ else if (sinfo->gso_type & SKB_GSO_UDP_L4)
+ hdr->gso_type = VIRTIO_NET_HDR_GSO_UDP_L4;
else
return -EINVAL;
if (sinfo->gso_type & SKB_GSO_TCP_ECN)
--
2.34.1
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
next prev parent reply other threads:[~2022-01-25 8:47 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-25 8:46 [RFC PATCH 0/5] TUN/VirtioNet USO features support Andrew Melnychenko
2022-01-25 8:46 ` [RFC PATCH 1/5] uapi/linux/if_tun.h: Added new ioctl for tun/tap Andrew Melnychenko
2022-02-09 4:25 ` Jason Wang
2022-02-22 13:28 ` Andrew Melnichenko
2022-02-23 3:53 ` Jason Wang
2022-02-23 13:31 ` Yuri Benditovich
2022-02-24 3:33 ` Jason Wang
2022-01-25 8:46 ` [RFC PATCH 2/5] driver/net/tun: Added features for USO Andrew Melnychenko
2022-01-25 13:42 ` kernel test robot
2022-01-25 13:42 ` kernel test robot
2022-01-25 15:14 ` kernel test robot
2022-02-09 4:39 ` Jason Wang
2022-02-22 13:22 ` Andrew Melnichenko
2022-01-25 8:47 ` [RFC PATCH 3/5] uapi/linux/virtio_net.h: Added USO types Andrew Melnychenko
2022-02-09 4:41 ` Jason Wang
2022-02-22 13:14 ` Andrew Melnichenko
2022-01-25 8:47 ` Andrew Melnychenko [this message]
2022-02-09 4:42 ` [RFC PATCH 4/5] linux/virtio_net.h: Added Support for GSO_UDP_L4 offload Jason Wang
2022-01-25 8:47 ` [RFC PATCH 5/5] drivers/net/virtio_net.c: Added USO support Andrew Melnychenko
2022-02-09 4:44 ` Jason Wang
2022-01-26 7:52 ` [RFC PATCH 0/5] TUN/VirtioNet USO features support Xuan Zhuo
2022-01-26 8:32 ` Yuri Benditovich
2022-02-08 13:09 ` Andrew Melnichenko
2022-02-09 5:41 ` Jason Wang
2022-02-22 13:05 ` Andrew Melnichenko
-- strict thread matches above, loose matches on Subject: below --
2022-01-26 23:48 [RFC PATCH 2/5] driver/net/tun: Added features for USO kernel test robot
2022-01-27 7:21 ` Dan Carpenter
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=20220125084702.3636253-5-andrew@daynix.com \
--to=andrew@daynix.com \
--cc=davem@davemloft.net \
--cc=jasowang@redhat.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=virtualization@lists.linux-foundation.org \
--cc=yan@daynix.com \
--cc=yuri.benditovich@daynix.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.