On 08/10/2016 01:51 PM, Stefan Hajnoczi wrote:
On Mon, Aug 08, 2016 at 06:14:41PM +0200, ggar...@abra.uab.cat 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.