Blame view
include/linux/if_packet.h
3.44 KB
1da177e4c Linux-2.6.12-rc2 |
1 2 |
#ifndef __LINUX_IF_PACKET_H #define __LINUX_IF_PACKET_H |
0e11c91e1 [AF_PACKET]: anno... |
3 |
#include <linux/types.h> |
d94d9fee9 net: cleanup incl... |
4 |
struct sockaddr_pkt { |
1da177e4c Linux-2.6.12-rc2 |
5 6 |
unsigned short spkt_family; unsigned char spkt_device[14]; |
0e11c91e1 [AF_PACKET]: anno... |
7 |
__be16 spkt_protocol; |
1da177e4c Linux-2.6.12-rc2 |
8 |
}; |
d94d9fee9 net: cleanup incl... |
9 |
struct sockaddr_ll { |
1da177e4c Linux-2.6.12-rc2 |
10 |
unsigned short sll_family; |
0e11c91e1 [AF_PACKET]: anno... |
11 |
__be16 sll_protocol; |
1da177e4c Linux-2.6.12-rc2 |
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
int sll_ifindex; unsigned short sll_hatype; unsigned char sll_pkttype; unsigned char sll_halen; unsigned char sll_addr[8]; }; /* Packet types */ #define PACKET_HOST 0 /* To us */ #define PACKET_BROADCAST 1 /* To all */ #define PACKET_MULTICAST 2 /* To group */ #define PACKET_OTHERHOST 3 /* To someone else */ #define PACKET_OUTGOING 4 /* Outgoing of any type */ /* These ones are invisible by user level */ #define PACKET_LOOPBACK 5 /* MC/BRD frame looped back */ #define PACKET_FASTROUTE 6 /* Fastrouted frame */ /* Packet socket options */ #define PACKET_ADD_MEMBERSHIP 1 #define PACKET_DROP_MEMBERSHIP 2 #define PACKET_RECV_OUTPUT 3 /* Value 4 is still used by obsolete turbo-packet. */ #define PACKET_RX_RING 5 #define PACKET_STATISTICS 6 #define PACKET_COPY_THRESH 7 |
8dc419447 [PACKET]: Add opt... |
39 |
#define PACKET_AUXDATA 8 |
80feaacb8 [AF_PACKET]: Add ... |
40 |
#define PACKET_ORIGDEV 9 |
bbd6ef87c packet: support e... |
41 42 |
#define PACKET_VERSION 10 #define PACKET_HDRLEN 11 |
8913336a7 packet: add PACKE... |
43 |
#define PACKET_RESERVE 12 |
69e3c75f4 net: TX_RING and ... |
44 45 |
#define PACKET_TX_RING 13 #define PACKET_LOSS 14 |
bfd5f4a3d packet: Add GSO/c... |
46 |
#define PACKET_VNET_HDR 15 |
ed85b565b packet: support f... |
47 |
#define PACKET_TX_TIMESTAMP 16 |
614f60fa9 packet_mmap: expo... |
48 |
#define PACKET_TIMESTAMP 17 |
1da177e4c Linux-2.6.12-rc2 |
49 |
|
d94d9fee9 net: cleanup incl... |
50 |
struct tpacket_stats { |
1da177e4c Linux-2.6.12-rc2 |
51 52 53 |
unsigned int tp_packets; unsigned int tp_drops; }; |
d94d9fee9 net: cleanup incl... |
54 |
struct tpacket_auxdata { |
8dc419447 [PACKET]: Add opt... |
55 56 57 58 59 |
__u32 tp_status; __u32 tp_len; __u32 tp_snaplen; __u16 tp_mac; __u16 tp_net; |
393e52e33 packet: deliver V... |
60 |
__u16 tp_vlan_tci; |
8dc419447 [PACKET]: Add opt... |
61 |
}; |
69e3c75f4 net: TX_RING and ... |
62 63 64 65 66 67 68 69 70 71 72 73 |
/* Rx ring - header status */ #define TP_STATUS_KERNEL 0x0 #define TP_STATUS_USER 0x1 #define TP_STATUS_COPY 0x2 #define TP_STATUS_LOSING 0x4 #define TP_STATUS_CSUMNOTREADY 0x8 /* Tx ring - header status */ #define TP_STATUS_AVAILABLE 0x0 #define TP_STATUS_SEND_REQUEST 0x1 #define TP_STATUS_SENDING 0x2 #define TP_STATUS_WRONG_FORMAT 0x4 |
d94d9fee9 net: cleanup incl... |
74 |
struct tpacket_hdr { |
1da177e4c Linux-2.6.12-rc2 |
75 |
unsigned long tp_status; |
1da177e4c Linux-2.6.12-rc2 |
76 77 78 79 80 81 82 83 84 85 86 |
unsigned int tp_len; unsigned int tp_snaplen; unsigned short tp_mac; unsigned short tp_net; unsigned int tp_sec; unsigned int tp_usec; }; #define TPACKET_ALIGNMENT 16 #define TPACKET_ALIGN(x) (((x)+TPACKET_ALIGNMENT-1)&~(TPACKET_ALIGNMENT-1)) #define TPACKET_HDRLEN (TPACKET_ALIGN(sizeof(struct tpacket_hdr)) + sizeof(struct sockaddr_ll)) |
d94d9fee9 net: cleanup incl... |
87 |
struct tpacket2_hdr { |
bbd6ef87c packet: support e... |
88 89 90 91 92 93 94 |
__u32 tp_status; __u32 tp_len; __u32 tp_snaplen; __u16 tp_mac; __u16 tp_net; __u32 tp_sec; __u32 tp_nsec; |
393e52e33 packet: deliver V... |
95 |
__u16 tp_vlan_tci; |
bbd6ef87c packet: support e... |
96 97 98 |
}; #define TPACKET2_HDRLEN (TPACKET_ALIGN(sizeof(struct tpacket2_hdr)) + sizeof(struct sockaddr_ll)) |
d94d9fee9 net: cleanup incl... |
99 |
enum tpacket_versions { |
bbd6ef87c packet: support e... |
100 101 102 |
TPACKET_V1, TPACKET_V2, }; |
1da177e4c Linux-2.6.12-rc2 |
103 104 105 106 107 108 109 110 111 112 113 114 |
/* Frame structure: - Start. Frame must be aligned to TPACKET_ALIGNMENT=16 - struct tpacket_hdr - pad to TPACKET_ALIGNMENT=16 - struct sockaddr_ll - Gap, chosen so that packet data (Start+tp_net) alignes to TPACKET_ALIGNMENT=16 - Start+tp_mac: [ Optional MAC header ] - Start+tp_net: Packet data, aligned to TPACKET_ALIGNMENT=16. - Pad to align to TPACKET_ALIGNMENT=16 */ |
d94d9fee9 net: cleanup incl... |
115 |
struct tpacket_req { |
1da177e4c Linux-2.6.12-rc2 |
116 117 118 119 120 |
unsigned int tp_block_size; /* Minimal size of contiguous block */ unsigned int tp_block_nr; /* Number of blocks */ unsigned int tp_frame_size; /* Size of frame */ unsigned int tp_frame_nr; /* Total number of frames */ }; |
d94d9fee9 net: cleanup incl... |
121 |
struct packet_mreq { |
1da177e4c Linux-2.6.12-rc2 |
122 123 124 125 126 127 128 129 130 |
int mr_ifindex; unsigned short mr_type; unsigned short mr_alen; unsigned char mr_address[8]; }; #define PACKET_MR_MULTICAST 0 #define PACKET_MR_PROMISC 1 #define PACKET_MR_ALLMULTI 2 |
d95ed9275 af_packet: Teach ... |
131 |
#define PACKET_MR_UNICAST 3 |
1da177e4c Linux-2.6.12-rc2 |
132 133 |
#endif |