On Wed, Jun 22, 2016 at 06:11:02PM +0200, [email protected] wrote: > + hdr = (struct af_vsockmon_hdr *) skb_push(skb, sizeof(*hdr)); > + > + hdr->src_cid = pkt->hdr.src_cid; > + hdr->src_port = pkt->hdr.src_port; > + hdr->dst_cid = pkt->hdr.dst_cid; > + hdr->dst_port = pkt->hdr.dst_port; > + hdr->t = AF_VSOCK_T_VIRTIO; > + > + switch(pkt->hdr.op) { > + case VIRTIO_VSOCK_OP_REQUEST: > + case VIRTIO_VSOCK_OP_RESPONSE: > + hdr->op = AF_VSOCK_OP_CONNECT; > + break; > + case VIRTIO_VSOCK_OP_RST: > + case VIRTIO_VSOCK_OP_SHUTDOWN: > + hdr->op = AF_VSOCK_OP_DISCONNECT; > + break; > + case VIRTIO_VSOCK_OP_RW: > + hdr->op = AF_VSOCK_OP_PAYLOAD; > + break; > + case VIRTIO_VSOCK_OP_CREDIT_UPDATE: > + case VIRTIO_VSOCK_OP_CREDIT_REQUEST: > + hdr->op = AF_VSOCK_OP_CONTROL; > + break; > + default: > + hdr->op = AF_VSOCK_OP_UNKNOWN; > + break; > + }
hdr->t and hdr->op need cpu_to_le*() to ensure little-endianness.
signature.asc
Description: PGP signature
