blob: 2d75388fb737914b50915b81329dddb780263666 [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Ben Cheng655a7c02013-10-16 16:09:24 -07007#ifndef __NET_DROPMON_H
8#define __NET_DROPMON_H
9#include <linux/types.h>
10#include <linux/netlink.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070011struct net_dm_drop_point {
Tao Baod7db5942015-01-28 10:07:51 -080012 __u8 pc[8];
13 __u32 count;
Ben Cheng655a7c02013-10-16 16:09:24 -070014};
Tao Baod7db5942015-01-28 10:07:51 -080015#define is_drop_point_hw(x) do { int ____i, ____j; for(____i = 0; ____i < 8; i ____i ++) ____j |= x[____i]; ____j; \
16} while(0)
Ben Cheng655a7c02013-10-16 16:09:24 -070017#define NET_DM_CFG_VERSION 0
18#define NET_DM_CFG_ALERT_COUNT 1
19#define NET_DM_CFG_ALERT_DELAY 2
Ben Cheng655a7c02013-10-16 16:09:24 -070020#define NET_DM_CFG_MAX 3
21struct net_dm_config_entry {
Tao Baod7db5942015-01-28 10:07:51 -080022 __u32 type;
23 __u64 data __attribute__((aligned(8)));
Ben Cheng655a7c02013-10-16 16:09:24 -070024};
25struct net_dm_config_msg {
Tao Baod7db5942015-01-28 10:07:51 -080026 __u32 entries;
Christopher Ferris7447a1c2022-10-04 18:24:44 -070027 struct net_dm_config_entry options[];
Ben Cheng655a7c02013-10-16 16:09:24 -070028};
29struct net_dm_alert_msg {
Tao Baod7db5942015-01-28 10:07:51 -080030 __u32 entries;
Christopher Ferris7447a1c2022-10-04 18:24:44 -070031 struct net_dm_drop_point points[];
Ben Cheng655a7c02013-10-16 16:09:24 -070032};
33struct net_dm_user_msg {
Tao Baod7db5942015-01-28 10:07:51 -080034 union {
35 struct net_dm_config_msg user;
Tao Baod7db5942015-01-28 10:07:51 -080036 struct net_dm_alert_msg alert;
37 } u;
Ben Cheng655a7c02013-10-16 16:09:24 -070038};
39enum {
Tao Baod7db5942015-01-28 10:07:51 -080040 NET_DM_CMD_UNSPEC = 0,
41 NET_DM_CMD_ALERT,
42 NET_DM_CMD_CONFIG,
43 NET_DM_CMD_START,
Tao Baod7db5942015-01-28 10:07:51 -080044 NET_DM_CMD_STOP,
Christopher Ferris9584fa42019-12-09 15:36:13 -080045 NET_DM_CMD_PACKET_ALERT,
46 NET_DM_CMD_CONFIG_GET,
47 NET_DM_CMD_CONFIG_NEW,
48 NET_DM_CMD_STATS_GET,
49 NET_DM_CMD_STATS_NEW,
Tao Baod7db5942015-01-28 10:07:51 -080050 _NET_DM_CMD_MAX,
Ben Cheng655a7c02013-10-16 16:09:24 -070051};
52#define NET_DM_CMD_MAX (_NET_DM_CMD_MAX - 1)
Ben Cheng655a7c02013-10-16 16:09:24 -070053#define NET_DM_GRP_ALERT 1
Christopher Ferris9584fa42019-12-09 15:36:13 -080054enum net_dm_attr {
55 NET_DM_ATTR_UNSPEC,
56 NET_DM_ATTR_ALERT_MODE,
57 NET_DM_ATTR_PC,
58 NET_DM_ATTR_SYMBOL,
59 NET_DM_ATTR_IN_PORT,
60 NET_DM_ATTR_TIMESTAMP,
61 NET_DM_ATTR_PROTO,
62 NET_DM_ATTR_PAYLOAD,
63 NET_DM_ATTR_PAD,
64 NET_DM_ATTR_TRUNC_LEN,
65 NET_DM_ATTR_ORIG_LEN,
66 NET_DM_ATTR_QUEUE_LEN,
67 NET_DM_ATTR_STATS,
68 NET_DM_ATTR_HW_STATS,
69 NET_DM_ATTR_ORIGIN,
70 NET_DM_ATTR_HW_TRAP_GROUP_NAME,
71 NET_DM_ATTR_HW_TRAP_NAME,
72 NET_DM_ATTR_HW_ENTRIES,
73 NET_DM_ATTR_HW_ENTRY,
74 NET_DM_ATTR_HW_TRAP_COUNT,
75 NET_DM_ATTR_SW_DROPS,
76 NET_DM_ATTR_HW_DROPS,
Christopher Ferrisaf09c702020-06-01 20:29:29 -070077 NET_DM_ATTR_FLOW_ACTION_COOKIE,
Christopher Ferris10a76e62022-06-08 13:31:52 -070078 NET_DM_ATTR_REASON,
Christopher Ferris9584fa42019-12-09 15:36:13 -080079 __NET_DM_ATTR_MAX,
80 NET_DM_ATTR_MAX = __NET_DM_ATTR_MAX - 1
81};
82enum net_dm_alert_mode {
83 NET_DM_ALERT_MODE_SUMMARY,
84 NET_DM_ALERT_MODE_PACKET,
85};
86enum {
87 NET_DM_ATTR_PORT_NETDEV_IFINDEX,
88 NET_DM_ATTR_PORT_NETDEV_NAME,
89 __NET_DM_ATTR_PORT_MAX,
90 NET_DM_ATTR_PORT_MAX = __NET_DM_ATTR_PORT_MAX - 1
91};
92enum {
93 NET_DM_ATTR_STATS_DROPPED,
94 __NET_DM_ATTR_STATS_MAX,
95 NET_DM_ATTR_STATS_MAX = __NET_DM_ATTR_STATS_MAX - 1
96};
97enum net_dm_origin {
98 NET_DM_ORIGIN_SW,
99 NET_DM_ORIGIN_HW,
100};
Ben Cheng655a7c02013-10-16 16:09:24 -0700101#endif