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_CIPHER_ID_GCM_AES_128 0x0080C20001000001ULL
27#define MACSEC_CIPHER_ID_GCM_AES_256 0x0080C20001000002ULL
28#define MACSEC_CIPHER_ID_GCM_AES_XPN_128 0x0080C20001000003ULL
29#define MACSEC_CIPHER_ID_GCM_AES_XPN_256 0x0080C20001000004ULL
30#define MACSEC_DEFAULT_CIPHER_ID 0x0080020001000001ULL
31#define MACSEC_DEFAULT_CIPHER_ALT MACSEC_CIPHER_ID_GCM_AES_128
32#define MACSEC_MIN_ICV_LEN 8
33#define MACSEC_MAX_ICV_LEN 32
34#define MACSEC_STD_ICV_LEN 16
35enum macsec_attrs {
36  MACSEC_ATTR_UNSPEC,
37  MACSEC_ATTR_IFINDEX,
38  MACSEC_ATTR_RXSC_CONFIG,
39  MACSEC_ATTR_SA_CONFIG,
40  MACSEC_ATTR_SECY,
41  MACSEC_ATTR_TXSA_LIST,
42  MACSEC_ATTR_RXSC_LIST,
43  MACSEC_ATTR_TXSC_STATS,
44  MACSEC_ATTR_SECY_STATS,
45  MACSEC_ATTR_OFFLOAD,
46  __MACSEC_ATTR_END,
47  NUM_MACSEC_ATTR = __MACSEC_ATTR_END,
48  MACSEC_ATTR_MAX = __MACSEC_ATTR_END - 1,
49};
50enum macsec_secy_attrs {
51  MACSEC_SECY_ATTR_UNSPEC,
52  MACSEC_SECY_ATTR_SCI,
53  MACSEC_SECY_ATTR_ENCODING_SA,
54  MACSEC_SECY_ATTR_WINDOW,
55  MACSEC_SECY_ATTR_CIPHER_SUITE,
56  MACSEC_SECY_ATTR_ICV_LEN,
57  MACSEC_SECY_ATTR_PROTECT,
58  MACSEC_SECY_ATTR_REPLAY,
59  MACSEC_SECY_ATTR_OPER,
60  MACSEC_SECY_ATTR_VALIDATE,
61  MACSEC_SECY_ATTR_ENCRYPT,
62  MACSEC_SECY_ATTR_INC_SCI,
63  MACSEC_SECY_ATTR_ES,
64  MACSEC_SECY_ATTR_SCB,
65  MACSEC_SECY_ATTR_PAD,
66  __MACSEC_SECY_ATTR_END,
67  NUM_MACSEC_SECY_ATTR = __MACSEC_SECY_ATTR_END,
68  MACSEC_SECY_ATTR_MAX = __MACSEC_SECY_ATTR_END - 1,
69};
70enum macsec_rxsc_attrs {
71  MACSEC_RXSC_ATTR_UNSPEC,
72  MACSEC_RXSC_ATTR_SCI,
73  MACSEC_RXSC_ATTR_ACTIVE,
74  MACSEC_RXSC_ATTR_SA_LIST,
75  MACSEC_RXSC_ATTR_STATS,
76  MACSEC_RXSC_ATTR_PAD,
77  __MACSEC_RXSC_ATTR_END,
78  NUM_MACSEC_RXSC_ATTR = __MACSEC_RXSC_ATTR_END,
79  MACSEC_RXSC_ATTR_MAX = __MACSEC_RXSC_ATTR_END - 1,
80};
81enum macsec_sa_attrs {
82  MACSEC_SA_ATTR_UNSPEC,
83  MACSEC_SA_ATTR_AN,
84  MACSEC_SA_ATTR_ACTIVE,
85  MACSEC_SA_ATTR_PN,
86  MACSEC_SA_ATTR_KEY,
87  MACSEC_SA_ATTR_KEYID,
88  MACSEC_SA_ATTR_STATS,
89  MACSEC_SA_ATTR_PAD,
90  MACSEC_SA_ATTR_SSCI,
91  MACSEC_SA_ATTR_SALT,
92  __MACSEC_SA_ATTR_END,
93  NUM_MACSEC_SA_ATTR = __MACSEC_SA_ATTR_END,
94  MACSEC_SA_ATTR_MAX = __MACSEC_SA_ATTR_END - 1,
95};
96enum macsec_offload_attrs {
97  MACSEC_OFFLOAD_ATTR_UNSPEC,
98  MACSEC_OFFLOAD_ATTR_TYPE,
99  MACSEC_OFFLOAD_ATTR_PAD,
100  __MACSEC_OFFLOAD_ATTR_END,
101  NUM_MACSEC_OFFLOAD_ATTR = __MACSEC_OFFLOAD_ATTR_END,
102  MACSEC_OFFLOAD_ATTR_MAX = __MACSEC_OFFLOAD_ATTR_END - 1,
103};
104enum macsec_nl_commands {
105  MACSEC_CMD_GET_TXSC,
106  MACSEC_CMD_ADD_RXSC,
107  MACSEC_CMD_DEL_RXSC,
108  MACSEC_CMD_UPD_RXSC,
109  MACSEC_CMD_ADD_TXSA,
110  MACSEC_CMD_DEL_TXSA,
111  MACSEC_CMD_UPD_TXSA,
112  MACSEC_CMD_ADD_RXSA,
113  MACSEC_CMD_DEL_RXSA,
114  MACSEC_CMD_UPD_RXSA,
115  MACSEC_CMD_UPD_OFFLOAD,
116};
117enum macsec_rxsc_stats_attr {
118  MACSEC_RXSC_STATS_ATTR_UNSPEC,
119  MACSEC_RXSC_STATS_ATTR_IN_OCTETS_VALIDATED,
120  MACSEC_RXSC_STATS_ATTR_IN_OCTETS_DECRYPTED,
121  MACSEC_RXSC_STATS_ATTR_IN_PKTS_UNCHECKED,
122  MACSEC_RXSC_STATS_ATTR_IN_PKTS_DELAYED,
123  MACSEC_RXSC_STATS_ATTR_IN_PKTS_OK,
124  MACSEC_RXSC_STATS_ATTR_IN_PKTS_INVALID,
125  MACSEC_RXSC_STATS_ATTR_IN_PKTS_LATE,
126  MACSEC_RXSC_STATS_ATTR_IN_PKTS_NOT_VALID,
127  MACSEC_RXSC_STATS_ATTR_IN_PKTS_NOT_USING_SA,
128  MACSEC_RXSC_STATS_ATTR_IN_PKTS_UNUSED_SA,
129  MACSEC_RXSC_STATS_ATTR_PAD,
130  __MACSEC_RXSC_STATS_ATTR_END,
131  NUM_MACSEC_RXSC_STATS_ATTR = __MACSEC_RXSC_STATS_ATTR_END,
132  MACSEC_RXSC_STATS_ATTR_MAX = __MACSEC_RXSC_STATS_ATTR_END - 1,
133};
134enum macsec_sa_stats_attr {
135  MACSEC_SA_STATS_ATTR_UNSPEC,
136  MACSEC_SA_STATS_ATTR_IN_PKTS_OK,
137  MACSEC_SA_STATS_ATTR_IN_PKTS_INVALID,
138  MACSEC_SA_STATS_ATTR_IN_PKTS_NOT_VALID,
139  MACSEC_SA_STATS_ATTR_IN_PKTS_NOT_USING_SA,
140  MACSEC_SA_STATS_ATTR_IN_PKTS_UNUSED_SA,
141  MACSEC_SA_STATS_ATTR_OUT_PKTS_PROTECTED,
142  MACSEC_SA_STATS_ATTR_OUT_PKTS_ENCRYPTED,
143  __MACSEC_SA_STATS_ATTR_END,
144  NUM_MACSEC_SA_STATS_ATTR = __MACSEC_SA_STATS_ATTR_END,
145  MACSEC_SA_STATS_ATTR_MAX = __MACSEC_SA_STATS_ATTR_END - 1,
146};
147enum macsec_txsc_stats_attr {
148  MACSEC_TXSC_STATS_ATTR_UNSPEC,
149  MACSEC_TXSC_STATS_ATTR_OUT_PKTS_PROTECTED,
150  MACSEC_TXSC_STATS_ATTR_OUT_PKTS_ENCRYPTED,
151  MACSEC_TXSC_STATS_ATTR_OUT_OCTETS_PROTECTED,
152  MACSEC_TXSC_STATS_ATTR_OUT_OCTETS_ENCRYPTED,
153  MACSEC_TXSC_STATS_ATTR_PAD,
154  __MACSEC_TXSC_STATS_ATTR_END,
155  NUM_MACSEC_TXSC_STATS_ATTR = __MACSEC_TXSC_STATS_ATTR_END,
156  MACSEC_TXSC_STATS_ATTR_MAX = __MACSEC_TXSC_STATS_ATTR_END - 1,
157};
158enum macsec_secy_stats_attr {
159  MACSEC_SECY_STATS_ATTR_UNSPEC,
160  MACSEC_SECY_STATS_ATTR_OUT_PKTS_UNTAGGED,
161  MACSEC_SECY_STATS_ATTR_IN_PKTS_UNTAGGED,
162  MACSEC_SECY_STATS_ATTR_OUT_PKTS_TOO_LONG,
163  MACSEC_SECY_STATS_ATTR_IN_PKTS_NO_TAG,
164  MACSEC_SECY_STATS_ATTR_IN_PKTS_BAD_TAG,
165  MACSEC_SECY_STATS_ATTR_IN_PKTS_UNKNOWN_SCI,
166  MACSEC_SECY_STATS_ATTR_IN_PKTS_NO_SCI,
167  MACSEC_SECY_STATS_ATTR_IN_PKTS_OVERRUN,
168  MACSEC_SECY_STATS_ATTR_PAD,
169  __MACSEC_SECY_STATS_ATTR_END,
170  NUM_MACSEC_SECY_STATS_ATTR = __MACSEC_SECY_STATS_ATTR_END,
171  MACSEC_SECY_STATS_ATTR_MAX = __MACSEC_SECY_STATS_ATTR_END - 1,
172};
173#endif
174