Lines Matching refs:vnet_hdr

576 				     struct virtio_net_hdr *vnet_hdr)  in macvtap_skb_from_vnet_hdr()  argument
579 if (vnet_hdr->gso_type != VIRTIO_NET_HDR_GSO_NONE) { in macvtap_skb_from_vnet_hdr()
580 switch (vnet_hdr->gso_type & ~VIRTIO_NET_HDR_GSO_ECN) { in macvtap_skb_from_vnet_hdr()
594 if (vnet_hdr->gso_type & VIRTIO_NET_HDR_GSO_ECN) in macvtap_skb_from_vnet_hdr()
597 if (vnet_hdr->gso_size == 0) in macvtap_skb_from_vnet_hdr()
601 if (vnet_hdr->flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) { in macvtap_skb_from_vnet_hdr()
602 if (!skb_partial_csum_set(skb, macvtap16_to_cpu(q, vnet_hdr->csum_start), in macvtap_skb_from_vnet_hdr()
603 macvtap16_to_cpu(q, vnet_hdr->csum_offset))) in macvtap_skb_from_vnet_hdr()
607 if (vnet_hdr->gso_type != VIRTIO_NET_HDR_GSO_NONE) { in macvtap_skb_from_vnet_hdr()
608 skb_shinfo(skb)->gso_size = macvtap16_to_cpu(q, vnet_hdr->gso_size); in macvtap_skb_from_vnet_hdr()
620 struct virtio_net_hdr *vnet_hdr) in macvtap_skb_to_vnet_hdr() argument
622 memset(vnet_hdr, 0, sizeof(*vnet_hdr)); in macvtap_skb_to_vnet_hdr()
628 vnet_hdr->hdr_len = cpu_to_macvtap16(q, skb_headlen(skb)); in macvtap_skb_to_vnet_hdr()
629 vnet_hdr->gso_size = cpu_to_macvtap16(q, sinfo->gso_size); in macvtap_skb_to_vnet_hdr()
631 vnet_hdr->gso_type = VIRTIO_NET_HDR_GSO_TCPV4; in macvtap_skb_to_vnet_hdr()
633 vnet_hdr->gso_type = VIRTIO_NET_HDR_GSO_TCPV6; in macvtap_skb_to_vnet_hdr()
635 vnet_hdr->gso_type = VIRTIO_NET_HDR_GSO_UDP; in macvtap_skb_to_vnet_hdr()
639 vnet_hdr->gso_type |= VIRTIO_NET_HDR_GSO_ECN; in macvtap_skb_to_vnet_hdr()
641 vnet_hdr->gso_type = VIRTIO_NET_HDR_GSO_NONE; in macvtap_skb_to_vnet_hdr()
644 vnet_hdr->flags = VIRTIO_NET_HDR_F_NEEDS_CSUM; in macvtap_skb_to_vnet_hdr()
646 vnet_hdr->csum_start = cpu_to_macvtap16(q, in macvtap_skb_to_vnet_hdr()
649 vnet_hdr->csum_start = cpu_to_macvtap16(q, in macvtap_skb_to_vnet_hdr()
651 vnet_hdr->csum_offset = cpu_to_macvtap16(q, skb->csum_offset); in macvtap_skb_to_vnet_hdr()
653 vnet_hdr->flags = VIRTIO_NET_HDR_F_DATA_VALID; in macvtap_skb_to_vnet_hdr()
670 struct virtio_net_hdr vnet_hdr = { 0 }; in macvtap_get_user() local
686 n = copy_from_iter(&vnet_hdr, sizeof(vnet_hdr), from); in macvtap_get_user()
687 if (n != sizeof(vnet_hdr)) in macvtap_get_user()
689 iov_iter_advance(from, vnet_hdr_len - sizeof(vnet_hdr)); in macvtap_get_user()
690 if ((vnet_hdr.flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) && in macvtap_get_user()
691 macvtap16_to_cpu(q, vnet_hdr.csum_start) + in macvtap_get_user()
692 macvtap16_to_cpu(q, vnet_hdr.csum_offset) + 2 > in macvtap_get_user()
693 macvtap16_to_cpu(q, vnet_hdr.hdr_len)) in macvtap_get_user()
694 vnet_hdr.hdr_len = cpu_to_macvtap16(q, in macvtap_get_user()
695 macvtap16_to_cpu(q, vnet_hdr.csum_start) + in macvtap_get_user()
696 macvtap16_to_cpu(q, vnet_hdr.csum_offset) + 2); in macvtap_get_user()
698 if (macvtap16_to_cpu(q, vnet_hdr.hdr_len) > len) in macvtap_get_user()
709 copylen = vnet_hdr.hdr_len ? in macvtap_get_user()
710 macvtap16_to_cpu(q, vnet_hdr.hdr_len) : GOODCOPY_LEN; in macvtap_get_user()
722 if (macvtap16_to_cpu(q, vnet_hdr.hdr_len) > good_linear) in macvtap_get_user()
725 linear = macvtap16_to_cpu(q, vnet_hdr.hdr_len); in macvtap_get_user()
751 err = macvtap_skb_from_vnet_hdr(q, skb, &vnet_hdr); in macvtap_get_user()
808 struct virtio_net_hdr vnet_hdr; in macvtap_put_user() local
813 macvtap_skb_to_vnet_hdr(q, skb, &vnet_hdr); in macvtap_put_user()
815 if (copy_to_iter(&vnet_hdr, sizeof(vnet_hdr), iter) != in macvtap_put_user()
816 sizeof(vnet_hdr)) in macvtap_put_user()
819 iov_iter_advance(iter, vnet_hdr_len - sizeof(vnet_hdr)); in macvtap_put_user()