1 #ifndef _NETPACKET_PACKET_H
2 #define _NETPACKET_PACKET_H
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 struct sockaddr_ll {
9 	unsigned short sll_family, sll_protocol;
10 	int sll_ifindex;
11 	unsigned short sll_hatype;
12 	unsigned char sll_pkttype, sll_halen;
13 	unsigned char sll_addr[8];
14 };
15 
16 struct packet_mreq {
17 	int mr_ifindex;
18 	unsigned short int mr_type,  mr_alen;
19 	unsigned char mr_address[8];
20 };
21 
22 #define PACKET_HOST		0
23 #define PACKET_BROADCAST	1
24 #define PACKET_MULTICAST	2
25 #define PACKET_OTHERHOST	3
26 #define PACKET_OUTGOING		4
27 #define PACKET_LOOPBACK		5
28 #define PACKET_FASTROUTE	6
29 
30 #define PACKET_ADD_MEMBERSHIP		1
31 #define PACKET_DROP_MEMBERSHIP		2
32 #define	PACKET_RECV_OUTPUT		3
33 #define	PACKET_RX_RING			5
34 #define	PACKET_STATISTICS		6
35 #define PACKET_COPY_THRESH		7
36 #define PACKET_AUXDATA			8
37 #define PACKET_ORIGDEV			9
38 #define PACKET_VERSION			10
39 #define PACKET_HDRLEN			11
40 #define PACKET_RESERVE			12
41 #define PACKET_TX_RING			13
42 #define PACKET_LOSS			14
43 #define PACKET_VNET_HDR			15
44 #define PACKET_TX_TIMESTAMP		16
45 #define PACKET_TIMESTAMP		17
46 #define PACKET_FANOUT			18
47 #define PACKET_TX_HAS_OFF		19
48 #define PACKET_QDISC_BYPASS		20
49 #define PACKET_ROLLOVER_STATS		21
50 #define PACKET_FANOUT_DATA		22
51 #define PACKET_IGNORE_OUTGOING		23
52 
53 #define PACKET_MR_MULTICAST	0
54 #define PACKET_MR_PROMISC	1
55 #define PACKET_MR_ALLMULTI	2
56 #define PACKET_MR_UNICAST	3
57 
58 #ifdef __cplusplus
59 }
60 #endif
61 
62 #endif
63