• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef __PACKET_DIAG_H__
2 #define __PACKET_DIAG_H__
3 
4 #include <linux/types.h>
5 
6 struct packet_diag_req {
7 	__u8	sdiag_family;
8 	__u8	sdiag_protocol;
9 	__u16	pad;
10 	__u32	pdiag_ino;
11 	__u32	pdiag_show;
12 	__u32	pdiag_cookie[2];
13 };
14 
15 #define PACKET_SHOW_INFO	0x00000001 /* Basic packet_sk information */
16 #define PACKET_SHOW_MCLIST	0x00000002 /* A set of packet_diag_mclist-s */
17 #define PACKET_SHOW_RING_CFG	0x00000004 /* Rings configuration parameters */
18 #define PACKET_SHOW_FANOUT	0x00000008
19 #define PACKET_SHOW_MEMINFO	0x00000010
20 #define PACKET_SHOW_FILTER	0x00000020
21 
22 struct packet_diag_msg {
23 	__u8	pdiag_family;
24 	__u8	pdiag_type;
25 	__u16	pdiag_num;
26 
27 	__u32	pdiag_ino;
28 	__u32	pdiag_cookie[2];
29 };
30 
31 enum {
32 	PACKET_DIAG_INFO,
33 	PACKET_DIAG_MCLIST,
34 	PACKET_DIAG_RX_RING,
35 	PACKET_DIAG_TX_RING,
36 	PACKET_DIAG_FANOUT,
37 	PACKET_DIAG_UID,
38 	PACKET_DIAG_MEMINFO,
39 	PACKET_DIAG_FILTER,
40 
41 	__PACKET_DIAG_MAX,
42 };
43 
44 #define PACKET_DIAG_MAX (__PACKET_DIAG_MAX - 1)
45 
46 struct packet_diag_info {
47 	__u32	pdi_index;
48 	__u32	pdi_version;
49 	__u32	pdi_reserve;
50 	__u32	pdi_copy_thresh;
51 	__u32	pdi_tstamp;
52 	__u32	pdi_flags;
53 
54 #define PDI_RUNNING	0x1
55 #define PDI_AUXDATA	0x2
56 #define PDI_ORIGDEV	0x4
57 #define PDI_VNETHDR	0x8
58 #define PDI_LOSS	0x10
59 };
60 
61 struct packet_diag_mclist {
62 	__u32	pdmc_index;
63 	__u32	pdmc_count;
64 	__u16	pdmc_type;
65 	__u16	pdmc_alen;
66 	__u8	pdmc_addr[MAX_ADDR_LEN];
67 };
68 
69 struct packet_diag_ring {
70 	__u32	pdr_block_size;
71 	__u32	pdr_block_nr;
72 	__u32	pdr_frame_size;
73 	__u32	pdr_frame_nr;
74 	__u32	pdr_retire_tmo;
75 	__u32	pdr_sizeof_priv;
76 	__u32	pdr_features;
77 };
78 
79 #endif
80