search for: virtio_vsock_skb_cb

Displaying 3 results from an estimated 3 matches for "virtio_vsock_skb_cb".

2023 Feb 16
0
[RFC PATCH v1 04/12] vhost/vsock: non-linear skb handling support
...ov_iter, >+ size_t len) >+{ >+ size_t rest_len = len; >+ >+ while (rest_len && virtio_vsock_skb_has_frags(skb)) { >+ struct bio_vec *curr_vec; >+ size_t curr_vec_end; >+ size_t to_copy; >+ int curr_frag; >+ int curr_offs; >+ >+ curr_frag = VIRTIO_VSOCK_SKB_CB(skb)->curr_frag; >+ curr_offs = VIRTIO_VSOCK_SKB_CB(skb)->frag_off; >+ curr_vec = &skb_shinfo(skb)->frags[curr_frag]; >+ >+ curr_vec_end = curr_vec->bv_offset + curr_vec->bv_len; >+ to_copy = min(rest_len, (size_t)(curr_vec_end - curr_offs)); >+ >+ if (c...
2023 Feb 16
0
[RFC PATCH v1 06/12] vsock/virtio: non-linear skb handling for TAP dev
...void *dst, >+ size_t len) >+{ >+ size_t rest_len = len; >+ >+ while (rest_len && virtio_vsock_skb_has_frags(skb)) { >+ struct bio_vec *curr_vec; >+ size_t curr_vec_end; >+ size_t to_copy; >+ int curr_frag; >+ int curr_offs; >+ >+ curr_frag = VIRTIO_VSOCK_SKB_CB(skb)->curr_frag; >+ curr_offs = VIRTIO_VSOCK_SKB_CB(skb)->frag_off; >+ curr_vec = &skb_shinfo(skb)->frags[curr_frag]; >+ >+ curr_vec_end = curr_vec->bv_offset + curr_vec->bv_len; >+ to_copy = min(rest_len, (size_t)(curr_vec_end - curr_offs)); >+ >+ memcp...
2023 Feb 16
0
[RFC PATCH v1 07/12] vsock/virtio: MGS_ZEROCOPY flag support
...tio_transport_fill_nonlinear_skb(struct sk_buff *skb, >+ struct vsock_sock *vsk, >+ struct virtio_vsock_pkt_info *info) >+{ >+ struct iov_iter *iter; >+ int frag_idx; >+ int seg_idx; >+ >+ iter = &info->msg->msg_iter; >+ frag_idx = 0; >+ VIRTIO_VSOCK_SKB_CB(skb)->curr_frag = 0; >+ VIRTIO_VSOCK_SKB_CB(skb)->frag_off = 0; >+ >+ /* At this moment: >+ * 1) 'iov_offset' is zero. >+ * 2) Every 'iov_base' and 'iov_len' are also page aligned >+ * (except length of the last element). >+ * 3) Number of p...