1/****************************************************************************
2 ****************************************************************************
3 ***
4 ***   This header was automatically generated from a Linux kernel header
5 ***   of the same name, to make information necessary for userspace to
6 ***   call into the kernel available to libc.  It contains only constants,
7 ***   structures, and macros generated from the original header, and thus,
8 ***   contains no copyrightable information.
9 ***
10 ***   To edit the content of this header, modify the corresponding
11 ***   source file (e.g. under external/kernel-headers/original/) then
12 ***   run bionic/libc/kernel/tools/update_all.py
13 ***
14 ***   Any manual change here will be lost the next time this script will
15 ***   be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef _UAPI_MACSEC_H
20#define _UAPI_MACSEC_H
21#include <linux/types.h>
22#define MACSEC_GENL_NAME "macsec"
23#define MACSEC_GENL_VERSION 1
24#define MACSEC_MAX_KEY_LEN 128
25#define MACSEC_KEYID_LEN 16
26#define MACSEC_DEFAULT_CIPHER_ID 0x0080020001000001ULL
27#define MACSEC_DEFAULT_CIPHER_ALT 0x0080C20001000001ULL
28#define MACSEC_MIN_ICV_LEN 8
29#define MACSEC_MAX_ICV_LEN 32
30#define MACSEC_STD_ICV_LEN 16
31enum macsec_attrs {
32  MACSEC_ATTR_UNSPEC,
33  MACSEC_ATTR_IFINDEX,
34  MACSEC_ATTR_RXSC_CONFIG,
35  MACSEC_ATTR_SA_CONFIG,
36  MACSEC_ATTR_SECY,
37  MACSEC_ATTR_TXSA_LIST,
38  MACSEC_ATTR_RXSC_LIST,
39  MACSEC_ATTR_TXSC_STATS,
40  MACSEC_ATTR_SECY_STATS,
41  __MACSEC_ATTR_END,
42  NUM_MACSEC_ATTR = __MACSEC_ATTR_END,
43  MACSEC_ATTR_MAX = __MACSEC_ATTR_END - 1,
44};
45enum macsec_secy_attrs {
46  MACSEC_SECY_ATTR_UNSPEC,
47  MACSEC_SECY_ATTR_SCI,
48  MACSEC_SECY_ATTR_ENCODING_SA,
49  MACSEC_SECY_ATTR_WINDOW,
50  MACSEC_SECY_ATTR_CIPHER_SUITE,
51  MACSEC_SECY_ATTR_ICV_LEN,
52  MACSEC_SECY_ATTR_PROTECT,
53  MACSEC_SECY_ATTR_REPLAY,
54  MACSEC_SECY_ATTR_OPER,
55  MACSEC_SECY_ATTR_VALIDATE,
56  MACSEC_SECY_ATTR_ENCRYPT,
57  MACSEC_SECY_ATTR_INC_SCI,
58  MACSEC_SECY_ATTR_ES,
59  MACSEC_SECY_ATTR_SCB,
60  MACSEC_SECY_ATTR_PAD,
61  __MACSEC_SECY_ATTR_END,
62  NUM_MACSEC_SECY_ATTR = __MACSEC_SECY_ATTR_END,
63  MACSEC_SECY_ATTR_MAX = __MACSEC_SECY_ATTR_END - 1,
64};
65enum macsec_rxsc_attrs {
66  MACSEC_RXSC_ATTR_UNSPEC,
67  MACSEC_RXSC_ATTR_SCI,
68  MACSEC_RXSC_ATTR_ACTIVE,
69  MACSEC_RXSC_ATTR_SA_LIST,
70  MACSEC_RXSC_ATTR_STATS,
71  MACSEC_RXSC_ATTR_PAD,
72  __MACSEC_RXSC_ATTR_END,
73  NUM_MACSEC_RXSC_ATTR = __MACSEC_RXSC_ATTR_END,
74  MACSEC_RXSC_ATTR_MAX = __MACSEC_RXSC_ATTR_END - 1,
75};
76enum macsec_sa_attrs {
77  MACSEC_SA_ATTR_UNSPEC,
78  MACSEC_SA_ATTR_AN,
79  MACSEC_SA_ATTR_ACTIVE,
80  MACSEC_SA_ATTR_PN,
81  MACSEC_SA_ATTR_KEY,
82  MACSEC_SA_ATTR_KEYID,
83  MACSEC_SA_ATTR_STATS,
84  MACSEC_SA_ATTR_PAD,
85  __MACSEC_SA_ATTR_END,
86  NUM_MACSEC_SA_ATTR = __MACSEC_SA_ATTR_END,
87  MACSEC_SA_ATTR_MAX = __MACSEC_SA_ATTR_END - 1,
88};
89enum macsec_nl_commands {
90  MACSEC_CMD_GET_TXSC,
91  MACSEC_CMD_ADD_RXSC,
92  MACSEC_CMD_DEL_RXSC,
93  MACSEC_CMD_UPD_RXSC,
94  MACSEC_CMD_ADD_TXSA,
95  MACSEC_CMD_DEL_TXSA,
96  MACSEC_CMD_UPD_TXSA,
97  MACSEC_CMD_ADD_RXSA,
98  MACSEC_CMD_DEL_RXSA,
99  MACSEC_CMD_UPD_RXSA,
100};
101enum macsec_rxsc_stats_attr {
102  MACSEC_RXSC_STATS_ATTR_UNSPEC,
103  MACSEC_RXSC_STATS_ATTR_IN_OCTETS_VALIDATED,
104  MACSEC_RXSC_STATS_ATTR_IN_OCTETS_DECRYPTED,
105  MACSEC_RXSC_STATS_ATTR_IN_PKTS_UNCHECKED,
106  MACSEC_RXSC_STATS_ATTR_IN_PKTS_DELAYED,
107  MACSEC_RXSC_STATS_ATTR_IN_PKTS_OK,
108  MACSEC_RXSC_STATS_ATTR_IN_PKTS_INVALID,
109  MACSEC_RXSC_STATS_ATTR_IN_PKTS_LATE,
110  MACSEC_RXSC_STATS_ATTR_IN_PKTS_NOT_VALID,
111  MACSEC_RXSC_STATS_ATTR_IN_PKTS_NOT_USING_SA,
112  MACSEC_RXSC_STATS_ATTR_IN_PKTS_UNUSED_SA,
113  MACSEC_RXSC_STATS_ATTR_PAD,
114  __MACSEC_RXSC_STATS_ATTR_END,
115  NUM_MACSEC_RXSC_STATS_ATTR = __MACSEC_RXSC_STATS_ATTR_END,
116  MACSEC_RXSC_STATS_ATTR_MAX = __MACSEC_RXSC_STATS_ATTR_END - 1,
117};
118enum macsec_sa_stats_attr {
119  MACSEC_SA_STATS_ATTR_UNSPEC,
120  MACSEC_SA_STATS_ATTR_IN_PKTS_OK,
121  MACSEC_SA_STATS_ATTR_IN_PKTS_INVALID,
122  MACSEC_SA_STATS_ATTR_IN_PKTS_NOT_VALID,
123  MACSEC_SA_STATS_ATTR_IN_PKTS_NOT_USING_SA,
124  MACSEC_SA_STATS_ATTR_IN_PKTS_UNUSED_SA,
125  MACSEC_SA_STATS_ATTR_OUT_PKTS_PROTECTED,
126  MACSEC_SA_STATS_ATTR_OUT_PKTS_ENCRYPTED,
127  __MACSEC_SA_STATS_ATTR_END,
128  NUM_MACSEC_SA_STATS_ATTR = __MACSEC_SA_STATS_ATTR_END,
129  MACSEC_SA_STATS_ATTR_MAX = __MACSEC_SA_STATS_ATTR_END - 1,
130};
131enum macsec_txsc_stats_attr {
132  MACSEC_TXSC_STATS_ATTR_UNSPEC,
133  MACSEC_TXSC_STATS_ATTR_OUT_PKTS_PROTECTED,
134  MACSEC_TXSC_STATS_ATTR_OUT_PKTS_ENCRYPTED,
135  MACSEC_TXSC_STATS_ATTR_OUT_OCTETS_PROTECTED,
136  MACSEC_TXSC_STATS_ATTR_OUT_OCTETS_ENCRYPTED,
137  MACSEC_TXSC_STATS_ATTR_PAD,
138  __MACSEC_TXSC_STATS_ATTR_END,
139  NUM_MACSEC_TXSC_STATS_ATTR = __MACSEC_TXSC_STATS_ATTR_END,
140  MACSEC_TXSC_STATS_ATTR_MAX = __MACSEC_TXSC_STATS_ATTR_END - 1,
141};
142enum macsec_secy_stats_attr {
143  MACSEC_SECY_STATS_ATTR_UNSPEC,
144  MACSEC_SECY_STATS_ATTR_OUT_PKTS_UNTAGGED,
145  MACSEC_SECY_STATS_ATTR_IN_PKTS_UNTAGGED,
146  MACSEC_SECY_STATS_ATTR_OUT_PKTS_TOO_LONG,
147  MACSEC_SECY_STATS_ATTR_IN_PKTS_NO_TAG,
148  MACSEC_SECY_STATS_ATTR_IN_PKTS_BAD_TAG,
149  MACSEC_SECY_STATS_ATTR_IN_PKTS_UNKNOWN_SCI,
150  MACSEC_SECY_STATS_ATTR_IN_PKTS_NO_SCI,
151  MACSEC_SECY_STATS_ATTR_IN_PKTS_OVERRUN,
152  MACSEC_SECY_STATS_ATTR_PAD,
153  __MACSEC_SECY_STATS_ATTR_END,
154  NUM_MACSEC_SECY_STATS_ATTR = __MACSEC_SECY_STATS_ATTR_END,
155  MACSEC_SECY_STATS_ATTR_MAX = __MACSEC_SECY_STATS_ATTR_END - 1,
156};
157#endif
158