linux-headers (unknown)

(root)/
include/
linux/
packet_diag.h
       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