On 08/10/2016 01:51 PM, Stefan Hajnoczi wrote:
On Mon, Aug 08, 2016 at 06:14:41PM +0200, [email protected] wrote:diff --git a/include/uapi/linux/vsockmon.h b/include/uapi/linux/vsockmon.h new file mode 100644 index 0000000..739b4bf --- /dev/null +++ b/include/uapi/linux/vsockmon.h @@ -0,0 +1,35 @@ +#ifndef _UAPI_VSOCKMON_H +#define _UAPI_VSOCKMON_H + +#include <linux/virtio_vsock.h> + +/* Structure of packets received trought the vsockmon device. */ + +struct af_vsockmon_hdr { + __le64 src_cid; + __le64 dst_cid; + __le32 src_port; + __le32 dst_port; + __le16 op; /* enum af_vsockmon_op */ + __le16 t; /* enum af_vosckmon_t */ + __le16 len; /* sizeof(t_hdr) */ + union { + struct virtio_vsock_hdr virtio_hdr; + } t_hdr; +} __attribute__((packed));This struct will change in size if/when VMCI transport support is added. Existing binaries that were complied against the old header file would use an incorrect size. It would be cleaner to drop t_hdr from the struct and force users to explicitly use af_vsockmon_hdr.len to handle the size of the headers.
Ok, I'll remove the t_hdr union and put a comment explaining that after the vsockmon header there are len bytes of the transport header.
