Home | History | Annotate | Download | only in linux
      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_NONE, standard nl API requires this attribute!  */
     33 	PACKET_DIAG_INFO,
     34 	PACKET_DIAG_MCLIST,
     35 	PACKET_DIAG_RX_RING,
     36 	PACKET_DIAG_TX_RING,
     37 	PACKET_DIAG_FANOUT,
     38 	PACKET_DIAG_UID,
     39 	PACKET_DIAG_MEMINFO,
     40 	PACKET_DIAG_FILTER,
     41 
     42 	__PACKET_DIAG_MAX,
     43 };
     44 
     45 #define PACKET_DIAG_MAX (__PACKET_DIAG_MAX - 1)
     46 
     47 struct packet_diag_info {
     48 	__u32	pdi_index;
     49 	__u32	pdi_version;
     50 	__u32	pdi_reserve;
     51 	__u32	pdi_copy_thresh;
     52 	__u32	pdi_tstamp;
     53 	__u32	pdi_flags;
     54 
     55 #define PDI_RUNNING	0x1
     56 #define PDI_AUXDATA	0x2
     57 #define PDI_ORIGDEV	0x4
     58 #define PDI_VNETHDR	0x8
     59 #define PDI_LOSS	0x10
     60 };
     61 
     62 struct packet_diag_mclist {
     63 	__u32	pdmc_index;
     64 	__u32	pdmc_count;
     65 	__u16	pdmc_type;
     66 	__u16	pdmc_alen;
     67 	__u8	pdmc_addr[MAX_ADDR_LEN];
     68 };
     69 
     70 struct packet_diag_ring {
     71 	__u32	pdr_block_size;
     72 	__u32	pdr_block_nr;
     73 	__u32	pdr_frame_size;
     74 	__u32	pdr_frame_nr;
     75 	__u32	pdr_retire_tmo;
     76 	__u32	pdr_sizeof_priv;
     77 	__u32	pdr_features;
     78 };
     79 
     80 #endif
     81