Lines Matching refs:vnet_hdr

625 				     struct virtio_net_hdr *vnet_hdr)  in macvtap_skb_from_vnet_hdr()  argument
628 if (vnet_hdr->gso_type != VIRTIO_NET_HDR_GSO_NONE) { in macvtap_skb_from_vnet_hdr()
629 switch (vnet_hdr->gso_type & ~VIRTIO_NET_HDR_GSO_ECN) { in macvtap_skb_from_vnet_hdr()
643 if (vnet_hdr->gso_type & VIRTIO_NET_HDR_GSO_ECN) in macvtap_skb_from_vnet_hdr()
646 if (vnet_hdr->gso_size == 0) in macvtap_skb_from_vnet_hdr()
650 if (vnet_hdr->flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) { in macvtap_skb_from_vnet_hdr()
651 if (!skb_partial_csum_set(skb, macvtap16_to_cpu(q, vnet_hdr->csum_start), in macvtap_skb_from_vnet_hdr()
652 macvtap16_to_cpu(q, vnet_hdr->csum_offset))) in macvtap_skb_from_vnet_hdr()
656 if (vnet_hdr->gso_type != VIRTIO_NET_HDR_GSO_NONE) { in macvtap_skb_from_vnet_hdr()
657 skb_shinfo(skb)->gso_size = macvtap16_to_cpu(q, vnet_hdr->gso_size); in macvtap_skb_from_vnet_hdr()
669 struct virtio_net_hdr *vnet_hdr) in macvtap_skb_to_vnet_hdr() argument
671 memset(vnet_hdr, 0, sizeof(*vnet_hdr)); in macvtap_skb_to_vnet_hdr()
677 vnet_hdr->hdr_len = cpu_to_macvtap16(q, skb_headlen(skb)); in macvtap_skb_to_vnet_hdr()
678 vnet_hdr->gso_size = cpu_to_macvtap16(q, sinfo->gso_size); in macvtap_skb_to_vnet_hdr()
680 vnet_hdr->gso_type = VIRTIO_NET_HDR_GSO_TCPV4; in macvtap_skb_to_vnet_hdr()
682 vnet_hdr->gso_type = VIRTIO_NET_HDR_GSO_TCPV6; in macvtap_skb_to_vnet_hdr()
684 vnet_hdr->gso_type = VIRTIO_NET_HDR_GSO_UDP; in macvtap_skb_to_vnet_hdr()
688 vnet_hdr->gso_type |= VIRTIO_NET_HDR_GSO_ECN; in macvtap_skb_to_vnet_hdr()
690 vnet_hdr->gso_type = VIRTIO_NET_HDR_GSO_NONE; in macvtap_skb_to_vnet_hdr()
693 vnet_hdr->flags = VIRTIO_NET_HDR_F_NEEDS_CSUM; in macvtap_skb_to_vnet_hdr()
695 vnet_hdr->csum_start = cpu_to_macvtap16(q, in macvtap_skb_to_vnet_hdr()
698 vnet_hdr->csum_start = cpu_to_macvtap16(q, in macvtap_skb_to_vnet_hdr()
700 vnet_hdr->csum_offset = cpu_to_macvtap16(q, skb->csum_offset); in macvtap_skb_to_vnet_hdr()
702 vnet_hdr->flags = VIRTIO_NET_HDR_F_DATA_VALID; in macvtap_skb_to_vnet_hdr()
719 struct virtio_net_hdr vnet_hdr = { 0 }; in macvtap_get_user() local
736 n = copy_from_iter(&vnet_hdr, sizeof(vnet_hdr), from); in macvtap_get_user()
737 if (n != sizeof(vnet_hdr)) in macvtap_get_user()
739 iov_iter_advance(from, vnet_hdr_len - sizeof(vnet_hdr)); in macvtap_get_user()
740 if ((vnet_hdr.flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) && in macvtap_get_user()
741 macvtap16_to_cpu(q, vnet_hdr.csum_start) + in macvtap_get_user()
742 macvtap16_to_cpu(q, vnet_hdr.csum_offset) + 2 > in macvtap_get_user()
743 macvtap16_to_cpu(q, vnet_hdr.hdr_len)) in macvtap_get_user()
744 vnet_hdr.hdr_len = cpu_to_macvtap16(q, in macvtap_get_user()
745 macvtap16_to_cpu(q, vnet_hdr.csum_start) + in macvtap_get_user()
746 macvtap16_to_cpu(q, vnet_hdr.csum_offset) + 2); in macvtap_get_user()
748 if (macvtap16_to_cpu(q, vnet_hdr.hdr_len) > len) in macvtap_get_user()
759 copylen = vnet_hdr.hdr_len ? in macvtap_get_user()
760 macvtap16_to_cpu(q, vnet_hdr.hdr_len) : GOODCOPY_LEN; in macvtap_get_user()
774 linear = macvtap16_to_cpu(q, vnet_hdr.hdr_len); in macvtap_get_user()
804 err = macvtap_skb_from_vnet_hdr(q, skb, &vnet_hdr); in macvtap_get_user()
867 struct virtio_net_hdr vnet_hdr; in macvtap_put_user() local
872 macvtap_skb_to_vnet_hdr(q, skb, &vnet_hdr); in macvtap_put_user()
874 if (copy_to_iter(&vnet_hdr, sizeof(vnet_hdr), iter) != in macvtap_put_user()
875 sizeof(vnet_hdr)) in macvtap_put_user()
878 iov_iter_advance(iter, vnet_hdr_len - sizeof(vnet_hdr)); in macvtap_put_user()