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