]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - include/linux/if_packet.h
packet: support extensible, 64 bit clean mmaped ring structure
[net-next-2.6.git] / include / linux / if_packet.h
index ad09609227ffa28dad825e27266fc41e0edded7d..d4d3c82448f57a95c01babcd5d29f6acb85dcf5c 100644 (file)
@@ -43,6 +43,8 @@ struct sockaddr_ll
 #define PACKET_COPY_THRESH             7
 #define PACKET_AUXDATA                 8
 #define PACKET_ORIGDEV                 9
+#define PACKET_VERSION                 10
+#define PACKET_HDRLEN                  11
 
 struct tpacket_stats
 {
@@ -79,6 +81,25 @@ struct tpacket_hdr
 #define TPACKET_ALIGN(x)       (((x)+TPACKET_ALIGNMENT-1)&~(TPACKET_ALIGNMENT-1))
 #define TPACKET_HDRLEN         (TPACKET_ALIGN(sizeof(struct tpacket_hdr)) + sizeof(struct sockaddr_ll))
 
+struct tpacket2_hdr
+{
+       __u32           tp_status;
+       __u32           tp_len;
+       __u32           tp_snaplen;
+       __u16           tp_mac;
+       __u16           tp_net;
+       __u32           tp_sec;
+       __u32           tp_nsec;
+};
+
+#define TPACKET2_HDRLEN                (TPACKET_ALIGN(sizeof(struct tpacket2_hdr)) + sizeof(struct sockaddr_ll))
+
+enum tpacket_versions
+{
+       TPACKET_V1,
+       TPACKET_V2,
+};
+
 /*
    Frame structure: