Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
0002 #ifndef __UAPI_PSAMPLE_H
0003 #define __UAPI_PSAMPLE_H
0004 
0005 enum {
0006     PSAMPLE_ATTR_IIFINDEX,
0007     PSAMPLE_ATTR_OIFINDEX,
0008     PSAMPLE_ATTR_ORIGSIZE,
0009     PSAMPLE_ATTR_SAMPLE_GROUP,
0010     PSAMPLE_ATTR_GROUP_SEQ,
0011     PSAMPLE_ATTR_SAMPLE_RATE,
0012     PSAMPLE_ATTR_DATA,
0013     PSAMPLE_ATTR_GROUP_REFCOUNT,
0014     PSAMPLE_ATTR_TUNNEL,
0015 
0016     PSAMPLE_ATTR_PAD,
0017     PSAMPLE_ATTR_OUT_TC,        /* u16 */
0018     PSAMPLE_ATTR_OUT_TC_OCC,    /* u64, bytes */
0019     PSAMPLE_ATTR_LATENCY,       /* u64, nanoseconds */
0020     PSAMPLE_ATTR_TIMESTAMP,     /* u64, nanoseconds */
0021     PSAMPLE_ATTR_PROTO,     /* u16 */
0022 
0023     __PSAMPLE_ATTR_MAX
0024 };
0025 
0026 enum psample_command {
0027     PSAMPLE_CMD_SAMPLE,
0028     PSAMPLE_CMD_GET_GROUP,
0029     PSAMPLE_CMD_NEW_GROUP,
0030     PSAMPLE_CMD_DEL_GROUP,
0031 };
0032 
0033 enum psample_tunnel_key_attr {
0034     PSAMPLE_TUNNEL_KEY_ATTR_ID,                 /* be64 Tunnel ID */
0035     PSAMPLE_TUNNEL_KEY_ATTR_IPV4_SRC,           /* be32 src IP address. */
0036     PSAMPLE_TUNNEL_KEY_ATTR_IPV4_DST,           /* be32 dst IP address. */
0037     PSAMPLE_TUNNEL_KEY_ATTR_TOS,                /* u8 Tunnel IP ToS. */
0038     PSAMPLE_TUNNEL_KEY_ATTR_TTL,                /* u8 Tunnel IP TTL. */
0039     PSAMPLE_TUNNEL_KEY_ATTR_DONT_FRAGMENT,      /* No argument, set DF. */
0040     PSAMPLE_TUNNEL_KEY_ATTR_CSUM,               /* No argument. CSUM packet. */
0041     PSAMPLE_TUNNEL_KEY_ATTR_OAM,                /* No argument. OAM frame.  */
0042     PSAMPLE_TUNNEL_KEY_ATTR_GENEVE_OPTS,        /* Array of Geneve options. */
0043     PSAMPLE_TUNNEL_KEY_ATTR_TP_SRC,             /* be16 src Transport Port. */
0044     PSAMPLE_TUNNEL_KEY_ATTR_TP_DST,         /* be16 dst Transport Port. */
0045     PSAMPLE_TUNNEL_KEY_ATTR_VXLAN_OPTS,     /* Nested VXLAN opts* */
0046     PSAMPLE_TUNNEL_KEY_ATTR_IPV6_SRC,           /* struct in6_addr src IPv6 address. */
0047     PSAMPLE_TUNNEL_KEY_ATTR_IPV6_DST,           /* struct in6_addr dst IPv6 address. */
0048     PSAMPLE_TUNNEL_KEY_ATTR_PAD,
0049     PSAMPLE_TUNNEL_KEY_ATTR_ERSPAN_OPTS,        /* struct erspan_metadata */
0050     PSAMPLE_TUNNEL_KEY_ATTR_IPV4_INFO_BRIDGE,   /* No argument. IPV4_INFO_BRIDGE mode.*/
0051     __PSAMPLE_TUNNEL_KEY_ATTR_MAX
0052 };
0053 
0054 /* Can be overridden at runtime by module option */
0055 #define PSAMPLE_ATTR_MAX (__PSAMPLE_ATTR_MAX - 1)
0056 
0057 #define PSAMPLE_NL_MCGRP_CONFIG_NAME "config"
0058 #define PSAMPLE_NL_MCGRP_SAMPLE_NAME "packets"
0059 #define PSAMPLE_GENL_NAME "psample"
0060 #define PSAMPLE_GENL_VERSION 1
0061 
0062 #endif