cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

psample.h (2271B)


      1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
      2#ifndef __UAPI_PSAMPLE_H
      3#define __UAPI_PSAMPLE_H
      4
      5enum {
      6	PSAMPLE_ATTR_IIFINDEX,
      7	PSAMPLE_ATTR_OIFINDEX,
      8	PSAMPLE_ATTR_ORIGSIZE,
      9	PSAMPLE_ATTR_SAMPLE_GROUP,
     10	PSAMPLE_ATTR_GROUP_SEQ,
     11	PSAMPLE_ATTR_SAMPLE_RATE,
     12	PSAMPLE_ATTR_DATA,
     13	PSAMPLE_ATTR_GROUP_REFCOUNT,
     14	PSAMPLE_ATTR_TUNNEL,
     15
     16	PSAMPLE_ATTR_PAD,
     17	PSAMPLE_ATTR_OUT_TC,		/* u16 */
     18	PSAMPLE_ATTR_OUT_TC_OCC,	/* u64, bytes */
     19	PSAMPLE_ATTR_LATENCY,		/* u64, nanoseconds */
     20	PSAMPLE_ATTR_TIMESTAMP,		/* u64, nanoseconds */
     21	PSAMPLE_ATTR_PROTO,		/* u16 */
     22
     23	__PSAMPLE_ATTR_MAX
     24};
     25
     26enum psample_command {
     27	PSAMPLE_CMD_SAMPLE,
     28	PSAMPLE_CMD_GET_GROUP,
     29	PSAMPLE_CMD_NEW_GROUP,
     30	PSAMPLE_CMD_DEL_GROUP,
     31};
     32
     33enum psample_tunnel_key_attr {
     34	PSAMPLE_TUNNEL_KEY_ATTR_ID,                 /* be64 Tunnel ID */
     35	PSAMPLE_TUNNEL_KEY_ATTR_IPV4_SRC,           /* be32 src IP address. */
     36	PSAMPLE_TUNNEL_KEY_ATTR_IPV4_DST,           /* be32 dst IP address. */
     37	PSAMPLE_TUNNEL_KEY_ATTR_TOS,                /* u8 Tunnel IP ToS. */
     38	PSAMPLE_TUNNEL_KEY_ATTR_TTL,                /* u8 Tunnel IP TTL. */
     39	PSAMPLE_TUNNEL_KEY_ATTR_DONT_FRAGMENT,      /* No argument, set DF. */
     40	PSAMPLE_TUNNEL_KEY_ATTR_CSUM,               /* No argument. CSUM packet. */
     41	PSAMPLE_TUNNEL_KEY_ATTR_OAM,                /* No argument. OAM frame.  */
     42	PSAMPLE_TUNNEL_KEY_ATTR_GENEVE_OPTS,        /* Array of Geneve options. */
     43	PSAMPLE_TUNNEL_KEY_ATTR_TP_SRC,	            /* be16 src Transport Port. */
     44	PSAMPLE_TUNNEL_KEY_ATTR_TP_DST,		    /* be16 dst Transport Port. */
     45	PSAMPLE_TUNNEL_KEY_ATTR_VXLAN_OPTS,	    /* Nested VXLAN opts* */
     46	PSAMPLE_TUNNEL_KEY_ATTR_IPV6_SRC,           /* struct in6_addr src IPv6 address. */
     47	PSAMPLE_TUNNEL_KEY_ATTR_IPV6_DST,           /* struct in6_addr dst IPv6 address. */
     48	PSAMPLE_TUNNEL_KEY_ATTR_PAD,
     49	PSAMPLE_TUNNEL_KEY_ATTR_ERSPAN_OPTS,        /* struct erspan_metadata */
     50	PSAMPLE_TUNNEL_KEY_ATTR_IPV4_INFO_BRIDGE,   /* No argument. IPV4_INFO_BRIDGE mode.*/
     51	__PSAMPLE_TUNNEL_KEY_ATTR_MAX
     52};
     53
     54/* Can be overridden at runtime by module option */
     55#define PSAMPLE_ATTR_MAX (__PSAMPLE_ATTR_MAX - 1)
     56
     57#define PSAMPLE_NL_MCGRP_CONFIG_NAME "config"
     58#define PSAMPLE_NL_MCGRP_SAMPLE_NAME "packets"
     59#define PSAMPLE_GENL_NAME "psample"
     60#define PSAMPLE_GENL_VERSION 1
     61
     62#endif