diff options
Diffstat (limited to 'include/uapi/linux')
| -rw-r--r-- | include/uapi/linux/Kbuild | 1 | ||||
| -rw-r--r-- | include/uapi/linux/if_ether.h | 1 | ||||
| -rw-r--r-- | include/uapi/linux/if_link.h | 29 | ||||
| -rw-r--r-- | include/uapi/linux/if_macsec.h | 161 |
4 files changed, 192 insertions, 0 deletions
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild index ebd10e624598..e25ebcfbcb48 100644 --- a/include/uapi/linux/Kbuild +++ b/include/uapi/linux/Kbuild | |||
| @@ -173,6 +173,7 @@ header-y += if_hippi.h | |||
| 173 | header-y += if_infiniband.h | 173 | header-y += if_infiniband.h |
| 174 | header-y += if_link.h | 174 | header-y += if_link.h |
| 175 | header-y += if_ltalk.h | 175 | header-y += if_ltalk.h |
| 176 | header-y += if_macsec.h | ||
| 176 | header-y += if_packet.h | 177 | header-y += if_packet.h |
| 177 | header-y += if_phonet.h | 178 | header-y += if_phonet.h |
| 178 | header-y += if_plip.h | 179 | header-y += if_plip.h |
diff --git a/include/uapi/linux/if_ether.h b/include/uapi/linux/if_ether.h index ea9221b0331a..4a93051c578c 100644 --- a/include/uapi/linux/if_ether.h +++ b/include/uapi/linux/if_ether.h | |||
| @@ -83,6 +83,7 @@ | |||
| 83 | #define ETH_P_8021AD 0x88A8 /* 802.1ad Service VLAN */ | 83 | #define ETH_P_8021AD 0x88A8 /* 802.1ad Service VLAN */ |
| 84 | #define ETH_P_802_EX1 0x88B5 /* 802.1 Local Experimental 1. */ | 84 | #define ETH_P_802_EX1 0x88B5 /* 802.1 Local Experimental 1. */ |
| 85 | #define ETH_P_TIPC 0x88CA /* TIPC */ | 85 | #define ETH_P_TIPC 0x88CA /* TIPC */ |
| 86 | #define ETH_P_MACSEC 0x88E5 /* 802.1ae MACsec */ | ||
| 86 | #define ETH_P_8021AH 0x88E7 /* 802.1ah Backbone Service Tag */ | 87 | #define ETH_P_8021AH 0x88E7 /* 802.1ah Backbone Service Tag */ |
| 87 | #define ETH_P_MVRP 0x88F5 /* 802.1Q MVRP */ | 88 | #define ETH_P_MVRP 0x88F5 /* 802.1Q MVRP */ |
| 88 | #define ETH_P_1588 0x88F7 /* IEEE 1588 Timesync */ | 89 | #define ETH_P_1588 0x88F7 /* IEEE 1588 Timesync */ |
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h index 249eef9a21bd..8e3f88fa5b59 100644 --- a/include/uapi/linux/if_link.h +++ b/include/uapi/linux/if_link.h | |||
| @@ -413,6 +413,35 @@ enum { | |||
| 413 | 413 | ||
| 414 | #define IFLA_VRF_PORT_MAX (__IFLA_VRF_PORT_MAX - 1) | 414 | #define IFLA_VRF_PORT_MAX (__IFLA_VRF_PORT_MAX - 1) |
| 415 | 415 | ||
| 416 | /* MACSEC section */ | ||
| 417 | enum { | ||
| 418 | IFLA_MACSEC_UNSPEC, | ||
| 419 | IFLA_MACSEC_SCI, | ||
| 420 | IFLA_MACSEC_PORT, | ||
| 421 | IFLA_MACSEC_ICV_LEN, | ||
| 422 | IFLA_MACSEC_CIPHER_SUITE, | ||
| 423 | IFLA_MACSEC_WINDOW, | ||
| 424 | IFLA_MACSEC_ENCODING_SA, | ||
| 425 | IFLA_MACSEC_ENCRYPT, | ||
| 426 | IFLA_MACSEC_PROTECT, | ||
| 427 | IFLA_MACSEC_INC_SCI, | ||
| 428 | IFLA_MACSEC_ES, | ||
| 429 | IFLA_MACSEC_SCB, | ||
| 430 | IFLA_MACSEC_REPLAY_PROTECT, | ||
| 431 | IFLA_MACSEC_VALIDATION, | ||
| 432 | __IFLA_MACSEC_MAX, | ||
| 433 | }; | ||
| 434 | |||
| 435 | #define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1) | ||
| 436 | |||
| 437 | enum macsec_validation_type { | ||
| 438 | MACSEC_VALIDATE_DISABLED = 0, | ||
| 439 | MACSEC_VALIDATE_CHECK = 1, | ||
| 440 | MACSEC_VALIDATE_STRICT = 2, | ||
| 441 | __MACSEC_VALIDATE_END, | ||
| 442 | MACSEC_VALIDATE_MAX = __MACSEC_VALIDATE_END - 1, | ||
| 443 | }; | ||
| 444 | |||
| 416 | /* IPVLAN section */ | 445 | /* IPVLAN section */ |
| 417 | enum { | 446 | enum { |
| 418 | IFLA_IPVLAN_UNSPEC, | 447 | IFLA_IPVLAN_UNSPEC, |
diff --git a/include/uapi/linux/if_macsec.h b/include/uapi/linux/if_macsec.h new file mode 100644 index 000000000000..26b0d1e3e3e7 --- /dev/null +++ b/include/uapi/linux/if_macsec.h | |||
| @@ -0,0 +1,161 @@ | |||
| 1 | /* | ||
| 2 | * include/uapi/linux/if_macsec.h - MACsec device | ||
| 3 | * | ||
| 4 | * Copyright (c) 2015 Sabrina Dubroca <sd@queasysnail.net> | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License as published by | ||
| 8 | * the Free Software Foundation; either version 2 of the License, or | ||
| 9 | * (at your option) any later version. | ||
| 10 | */ | ||
| 11 | |||
| 12 | #ifndef _UAPI_MACSEC_H | ||
| 13 | #define _UAPI_MACSEC_H | ||
| 14 | |||
| 15 | #include <linux/types.h> | ||
| 16 | |||
| 17 | #define MACSEC_GENL_NAME "macsec" | ||
| 18 | #define MACSEC_GENL_VERSION 1 | ||
| 19 | |||
| 20 | #define MACSEC_MAX_KEY_LEN 128 | ||
| 21 | |||
| 22 | #define DEFAULT_CIPHER_ID 0x0080020001000001ULL | ||
| 23 | #define DEFAULT_CIPHER_ALT 0x0080C20001000001ULL | ||
| 24 | |||
| 25 | #define MACSEC_MIN_ICV_LEN 8 | ||
| 26 | #define MACSEC_MAX_ICV_LEN 32 | ||
| 27 | |||
| 28 | enum macsec_attrs { | ||
| 29 | MACSEC_ATTR_UNSPEC, | ||
| 30 | MACSEC_ATTR_IFINDEX, /* u32, ifindex of the MACsec netdevice */ | ||
| 31 | MACSEC_ATTR_RXSC_CONFIG, /* config, nested macsec_rxsc_attrs */ | ||
| 32 | MACSEC_ATTR_SA_CONFIG, /* config, nested macsec_sa_attrs */ | ||
| 33 | MACSEC_ATTR_SECY, /* dump, nested macsec_secy_attrs */ | ||
| 34 | MACSEC_ATTR_TXSA_LIST, /* dump, nested, macsec_sa_attrs for each TXSA */ | ||
| 35 | MACSEC_ATTR_RXSC_LIST, /* dump, nested, macsec_rxsc_attrs for each RXSC */ | ||
| 36 | MACSEC_ATTR_TXSC_STATS, /* dump, nested, macsec_txsc_stats_attr */ | ||
| 37 | MACSEC_ATTR_SECY_STATS, /* dump, nested, macsec_secy_stats_attr */ | ||
| 38 | __MACSEC_ATTR_END, | ||
| 39 | NUM_MACSEC_ATTR = __MACSEC_ATTR_END, | ||
| 40 | MACSEC_ATTR_MAX = __MACSEC_ATTR_END - 1, | ||
| 41 | }; | ||
| 42 | |||
| 43 | enum macsec_secy_attrs { | ||
| 44 | MACSEC_SECY_ATTR_UNSPEC, | ||
| 45 | MACSEC_SECY_ATTR_SCI, | ||
| 46 | MACSEC_SECY_ATTR_ENCODING_SA, | ||
| 47 | MACSEC_SECY_ATTR_WINDOW, | ||
| 48 | MACSEC_SECY_ATTR_CIPHER_SUITE, | ||
| 49 | MACSEC_SECY_ATTR_ICV_LEN, | ||
| 50 | MACSEC_SECY_ATTR_PROTECT, | ||
| 51 | MACSEC_SECY_ATTR_REPLAY, | ||
| 52 | MACSEC_SECY_ATTR_OPER, | ||
| 53 | MACSEC_SECY_ATTR_VALIDATE, | ||
| 54 | MACSEC_SECY_ATTR_ENCRYPT, | ||
| 55 | MACSEC_SECY_ATTR_INC_SCI, | ||
| 56 | MACSEC_SECY_ATTR_ES, | ||
| 57 | MACSEC_SECY_ATTR_SCB, | ||
| 58 | __MACSEC_SECY_ATTR_END, | ||
| 59 | NUM_MACSEC_SECY_ATTR = __MACSEC_SECY_ATTR_END, | ||
| 60 | MACSEC_SECY_ATTR_MAX = __MACSEC_SECY_ATTR_END - 1, | ||
| 61 | }; | ||
| 62 | |||
| 63 | enum macsec_rxsc_attrs { | ||
| 64 | MACSEC_RXSC_ATTR_UNSPEC, | ||
| 65 | MACSEC_RXSC_ATTR_SCI, /* config/dump, u64 */ | ||
| 66 | MACSEC_RXSC_ATTR_ACTIVE, /* config/dump, u8 0..1 */ | ||
| 67 | MACSEC_RXSC_ATTR_SA_LIST, /* dump, nested */ | ||
| 68 | MACSEC_RXSC_ATTR_STATS, /* dump, nested, macsec_rxsc_stats_attr */ | ||
| 69 | __MACSEC_RXSC_ATTR_END, | ||
| 70 | NUM_MACSEC_RXSC_ATTR = __MACSEC_RXSC_ATTR_END, | ||
| 71 | MACSEC_RXSC_ATTR_MAX = __MACSEC_RXSC_ATTR_END - 1, | ||
| 72 | }; | ||
| 73 | |||
| 74 | enum macsec_sa_attrs { | ||
| 75 | MACSEC_SA_ATTR_UNSPEC, | ||
| 76 | MACSEC_SA_ATTR_AN, /* config/dump, u8 0..3 */ | ||
| 77 | MACSEC_SA_ATTR_ACTIVE, /* config/dump, u8 0..1 */ | ||
| 78 | MACSEC_SA_ATTR_PN, /* config/dump, u32 */ | ||
| 79 | MACSEC_SA_ATTR_KEY, /* config, data */ | ||
| 80 | MACSEC_SA_ATTR_KEYID, /* config/dump, u64 */ | ||
| 81 | MACSEC_SA_ATTR_STATS, /* dump, nested, macsec_sa_stats_attr */ | ||
| 82 | __MACSEC_SA_ATTR_END, | ||
| 83 | NUM_MACSEC_SA_ATTR = __MACSEC_SA_ATTR_END, | ||
| 84 | MACSEC_SA_ATTR_MAX = __MACSEC_SA_ATTR_END - 1, | ||
| 85 | }; | ||
| 86 | |||
| 87 | enum macsec_nl_commands { | ||
| 88 | MACSEC_CMD_GET_TXSC, | ||
| 89 | MACSEC_CMD_ADD_RXSC, | ||
| 90 | MACSEC_CMD_DEL_RXSC, | ||
| 91 | MACSEC_CMD_UPD_RXSC, | ||
| 92 | MACSEC_CMD_ADD_TXSA, | ||
| 93 | MACSEC_CMD_DEL_TXSA, | ||
| 94 | MACSEC_CMD_UPD_TXSA, | ||
| 95 | MACSEC_CMD_ADD_RXSA, | ||
| 96 | MACSEC_CMD_DEL_RXSA, | ||
| 97 | MACSEC_CMD_UPD_RXSA, | ||
| 98 | }; | ||
| 99 | |||
| 100 | /* u64 per-RXSC stats */ | ||
| 101 | enum 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_END, | ||
| 114 | NUM_MACSEC_RXSC_STATS_ATTR = __MACSEC_RXSC_STATS_ATTR_END, | ||
| 115 | MACSEC_RXSC_STATS_ATTR_MAX = __MACSEC_RXSC_STATS_ATTR_END - 1, | ||
| 116 | }; | ||
| 117 | |||
| 118 | /* u32 per-{RX,TX}SA stats */ | ||
| 119 | enum macsec_sa_stats_attr { | ||
| 120 | MACSEC_SA_STATS_ATTR_UNSPEC, | ||
| 121 | MACSEC_SA_STATS_ATTR_IN_PKTS_OK, | ||
| 122 | MACSEC_SA_STATS_ATTR_IN_PKTS_INVALID, | ||
| 123 | MACSEC_SA_STATS_ATTR_IN_PKTS_NOT_VALID, | ||
| 124 | MACSEC_SA_STATS_ATTR_IN_PKTS_NOT_USING_SA, | ||
| 125 | MACSEC_SA_STATS_ATTR_IN_PKTS_UNUSED_SA, | ||
| 126 | MACSEC_SA_STATS_ATTR_OUT_PKTS_PROTECTED, | ||
| 127 | MACSEC_SA_STATS_ATTR_OUT_PKTS_ENCRYPTED, | ||
| 128 | __MACSEC_SA_STATS_ATTR_END, | ||
| 129 | NUM_MACSEC_SA_STATS_ATTR = __MACSEC_SA_STATS_ATTR_END, | ||
| 130 | MACSEC_SA_STATS_ATTR_MAX = __MACSEC_SA_STATS_ATTR_END - 1, | ||
| 131 | }; | ||
| 132 | |||
| 133 | /* u64 per-TXSC stats */ | ||
| 134 | enum macsec_txsc_stats_attr { | ||
| 135 | MACSEC_TXSC_STATS_ATTR_UNSPEC, | ||
| 136 | MACSEC_TXSC_STATS_ATTR_OUT_PKTS_PROTECTED, | ||
| 137 | MACSEC_TXSC_STATS_ATTR_OUT_PKTS_ENCRYPTED, | ||
| 138 | MACSEC_TXSC_STATS_ATTR_OUT_OCTETS_PROTECTED, | ||
| 139 | MACSEC_TXSC_STATS_ATTR_OUT_OCTETS_ENCRYPTED, | ||
| 140 | __MACSEC_TXSC_STATS_ATTR_END, | ||
| 141 | NUM_MACSEC_TXSC_STATS_ATTR = __MACSEC_TXSC_STATS_ATTR_END, | ||
| 142 | MACSEC_TXSC_STATS_ATTR_MAX = __MACSEC_TXSC_STATS_ATTR_END - 1, | ||
| 143 | }; | ||
| 144 | |||
| 145 | /* u64 per-SecY stats */ | ||
| 146 | enum macsec_secy_stats_attr { | ||
| 147 | MACSEC_SECY_STATS_ATTR_UNSPEC, | ||
| 148 | MACSEC_SECY_STATS_ATTR_OUT_PKTS_UNTAGGED, | ||
| 149 | MACSEC_SECY_STATS_ATTR_IN_PKTS_UNTAGGED, | ||
| 150 | MACSEC_SECY_STATS_ATTR_OUT_PKTS_TOO_LONG, | ||
| 151 | MACSEC_SECY_STATS_ATTR_IN_PKTS_NO_TAG, | ||
| 152 | MACSEC_SECY_STATS_ATTR_IN_PKTS_BAD_TAG, | ||
| 153 | MACSEC_SECY_STATS_ATTR_IN_PKTS_UNKNOWN_SCI, | ||
| 154 | MACSEC_SECY_STATS_ATTR_IN_PKTS_NO_SCI, | ||
| 155 | MACSEC_SECY_STATS_ATTR_IN_PKTS_OVERRUN, | ||
| 156 | __MACSEC_SECY_STATS_ATTR_END, | ||
| 157 | NUM_MACSEC_SECY_STATS_ATTR = __MACSEC_SECY_STATS_ATTR_END, | ||
| 158 | MACSEC_SECY_STATS_ATTR_MAX = __MACSEC_SECY_STATS_ATTR_END - 1, | ||
| 159 | }; | ||
| 160 | |||
| 161 | #endif /* _UAPI_MACSEC_H */ | ||
