1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(C) 2023 Marvell. 3 */ 4 5 #ifndef TEST_INLINE_MACSEC_VECTORS_H 6 #define TEST_INLINE_MACSEC_VECTORS_H 7 8 #define MCS_MAX_DATA_SZ 256 9 #define MCS_MAX_KEY_LEN 32 10 #define MCS_IV_LEN 12 11 #define MCS_SALT_LEN 12 12 13 enum mcs_op { 14 MCS_NO_OP, 15 MCS_ENCAP, 16 MCS_DECAP, 17 MCS_ENCAP_DECAP, 18 MCS_AUTH_ONLY, 19 MCS_VERIFY_ONLY, 20 MCS_AUTH_VERIFY, 21 }; 22 23 struct mcs_test_vector { 24 uint32_t test_idx; 25 enum rte_security_macsec_alg alg; 26 uint32_t ssci; 27 uint32_t xpn; 28 uint8_t salt[MCS_SALT_LEN]; 29 struct { 30 uint8_t data[MCS_MAX_KEY_LEN]; 31 uint16_t len; 32 } sa_key; 33 struct { 34 uint8_t data[MCS_MAX_DATA_SZ]; 35 uint16_t len; 36 } plain_pkt; 37 struct { 38 uint8_t data[MCS_MAX_DATA_SZ]; 39 uint16_t len; 40 } secure_pkt; 41 }; 42 43 struct mcs_err_vector { 44 const struct mcs_test_vector *td; 45 const struct mcs_test_vector *rekey_td; 46 enum rte_eth_event_macsec_type event; 47 enum rte_eth_event_macsec_subtype event_subtype; 48 bool notify_event; 49 }; 50 51 static const struct mcs_test_vector list_mcs_cipher_vectors[] = { 52 /* gcm_128_64B_cipher */ 53 { 54 .test_idx = 0, 55 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 56 .ssci = 0x0, 57 .salt = {0}, 58 .sa_key = { 59 .data = { 60 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 61 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 62 }, 63 .len = 16, 64 }, 65 .plain_pkt = { 66 .data = {/* MAC DA */ 67 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 68 /* MAC SA */ 69 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 70 /* User Data */ 71 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 72 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 73 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 74 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 75 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 76 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 77 0x43, 0x44, 0x45, 0x46, 78 }, 79 .len = 64, 80 }, 81 .secure_pkt = { 82 .data = {/* MAC DA */ 83 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 84 /* MAC SA */ 85 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 86 /* MACsec EtherType */ 87 0x88, 0xE5, 88 /* TCI and AN */ 89 0x2C, 90 /* SL */ 91 0x0, 92 /* PN */ 93 0x0, 0x0, 0x0, 0x2, 94 /* SCI */ 95 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 96 /* Secure Data */ 97 0x39, 0x38, 0x97, 0x44, 0xA2, 0x6D, 0x71, 0x3D, 98 0x14, 0x27, 0xC7, 0x3E, 0x02, 0x96, 0x81, 0xAD, 99 0x47, 0x82, 0x2A, 0xCF, 0x19, 0x79, 0x12, 0x49, 100 0x0F, 0x93, 0x5A, 0x32, 0x43, 0x79, 0xEF, 0x9D, 101 0x70, 0xF8, 0xA9, 0xBE, 0x3D, 0x00, 0x5D, 0x22, 102 0xDA, 0x87, 0x3D, 0xC1, 0xBE, 0x1B, 0x13, 0xD9, 103 0x99, 0xDB, 0xF1, 0xC8, 104 /* ICV */ 105 0x4B, 0xC4, 0xF8, 0xC6, 0x09, 0x78, 0xB9, 0xBB, 106 0x5D, 0xC0, 0x04, 0xF3, 0x20, 0x7D, 0x14, 0x87, 107 }, 108 .len = 96, 109 }, 110 }, 111 /* gcm_128_54B_cipher */ 112 { 113 .test_idx = 1, 114 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 115 .ssci = 0x0, 116 .xpn = 0, 117 .salt = {0}, 118 .sa_key = { 119 .data = { 120 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 121 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82, 122 }, 123 .len = 16, 124 }, 125 .plain_pkt = { 126 .data = {/* MAC DA */ 127 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 128 /* MAC SA */ 129 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 130 /* User Data */ 131 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 132 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 133 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 134 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 135 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 136 0x00, 0x04, 137 }, 138 .len = 54, 139 }, 140 141 .secure_pkt = { 142 .data = {/* MAC DA */ 143 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 144 /* MAC SA */ 145 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 146 /* MACsec EtherType */ 147 0x88, 0xE5, 148 /* TCI and AN */ 149 0x4C, 150 /* SL */ 151 0x2A, 152 /* PN */ 153 0x76, 0xD4, 0x57, 0xED, 154 /* Secure Data */ 155 0x13, 0xB4, 0xC7, 0x2B, 0x38, 0x9D, 0xC5, 0x01, 156 0x8E, 0x72, 0xA1, 0x71, 0xDD, 0x85, 0xA5, 0xD3, 157 0x75, 0x22, 0x74, 0xD3, 0xA0, 0x19, 0xFB, 0xCA, 158 0xED, 0x09, 0xA4, 0x25, 0xCD, 0x9B, 0x2E, 0x1C, 159 0x9B, 0x72, 0xEE, 0xE7, 0xC9, 0xDE, 0x7D, 0x52, 160 0xB3, 0xF3, 161 /* ICV */ 162 0xD6, 0xA5, 0x28, 0x4F, 0x4A, 0x6D, 0x3F, 0xE2, 163 0x2A, 0x5D, 0x6C, 0x2B, 0x96, 0x04, 0x94, 0xC3, 164 }, 165 .len = 78, 166 }, 167 }, 168 /* gcm_256_54B_cipher */ 169 { 170 .test_idx = 2, 171 .alg = RTE_SECURITY_MACSEC_ALG_GCM_256, 172 .ssci = 0x0, 173 .xpn = 0, 174 .salt = {0}, 175 .sa_key = { 176 .data = { 177 0x69, 0x1D, 0x3E, 0xE9, 0x09, 0xD7, 0xF5, 0x41, 178 0x67, 0xFD, 0x1C, 0xA0, 0xB5, 0xD7, 0x69, 0x08, 179 0x1F, 0x2B, 0xDE, 0x1A, 0xEE, 0x65, 0x5F, 0xDB, 180 0xAB, 0x80, 0xBD, 0x52, 0x95, 0xAE, 0x6B, 0xE7, 181 }, 182 .len = 32, 183 }, 184 .plain_pkt = { 185 .data = {/* MAC DA */ 186 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 187 /* MAC SA */ 188 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 189 /* User Data */ 190 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 191 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 192 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 193 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 194 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 195 0x00, 0x04, 196 }, 197 .len = 54, 198 }, 199 .secure_pkt = { 200 .data = {/* MAC DA */ 201 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 202 /* MAC SA */ 203 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 204 /* MACsec EtherType */ 205 0x88, 0xE5, 206 /* TCI and AN */ 207 0x4C, 208 /* SL */ 209 0x2A, 210 /* PN */ 211 0x76, 0xD4, 0x57, 0xED, 212 /* Secure Data */ 213 0xC1, 0x62, 0x3F, 0x55, 0x73, 0x0C, 0x93, 0x53, 214 0x30, 0x97, 0xAD, 0xDA, 0xD2, 0x56, 0x64, 0x96, 215 0x61, 0x25, 0x35, 0x2B, 0x43, 0xAD, 0xAC, 0xBD, 216 0x61, 0xC5, 0xEF, 0x3A, 0xC9, 0x0B, 0x5B, 0xEE, 217 0x92, 0x9C, 0xE4, 0x63, 0x0E, 0xA7, 0x9F, 0x6C, 218 0xE5, 0x19, 219 /* ICV */ 220 0x12, 0xAF, 0x39, 0xC2, 0xD1, 0xFD, 0xC2, 0x05, 221 0x1F, 0x8B, 0x7B, 0x3C, 0x9D, 0x39, 0x7E, 0xF2, 222 }, 223 .len = 78, 224 }, 225 }, 226 /* gcm_128_xpn_54B_cipher */ 227 { 228 .test_idx = 3, 229 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_128, 230 .ssci = 0x7A30C118, 231 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 232 .salt = { 233 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 234 0x86, 0xA2, 0x1C, 0x66, 0xFA, 0x6D, 235 }, 236 .sa_key = { 237 .data = { 238 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 239 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82, 240 }, 241 .len = 16, 242 }, 243 .plain_pkt = { 244 .data = {/* MAC DA */ 245 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 246 /* MAC SA */ 247 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 248 /* User Data */ 249 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 250 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 251 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 252 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 253 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 254 0x00, 0x04, 255 }, 256 .len = 54, 257 }, 258 .secure_pkt = { 259 .data = {/* MAC DA */ 260 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 261 /* MAC SA */ 262 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 263 /* MACsec EtherType */ 264 0x88, 0xE5, 265 /* TCI and AN */ 266 0x4C, 267 /* SL */ 268 0x2A, 269 /* PN */ 270 0x76, 0xD4, 0x57, 0xED, 271 /* Secure Data */ 272 0x9C, 0xA4, 0x69, 0x84, 0x43, 0x02, 0x03, 0xED, 273 0x41, 0x6E, 0xBD, 0xC2, 0xFE, 0x26, 0x22, 0xBA, 274 0x3E, 0x5E, 0xAB, 0x69, 0x61, 0xC3, 0x63, 0x83, 275 0x00, 0x9E, 0x18, 0x7E, 0x9B, 0x0C, 0x88, 0x56, 276 0x46, 0x53, 0xB9, 0xAB, 0xD2, 0x16, 0x44, 0x1C, 277 0x6A, 0xB6, 278 /* ICV */ 279 0xF0, 0xA2, 0x32, 0xE9, 0xE4, 0x4C, 0x97, 0x8C, 280 0xF7, 0xCD, 0x84, 0xD4, 0x34, 0x84, 0xD1, 0x01, 281 }, 282 .len = 78, 283 }, 284 }, 285 /* gcm_256_xpn_54B_cipher */ 286 { 287 .test_idx = 4, 288 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_256, 289 .ssci = 0x7A30C118, 290 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 291 .salt = { 292 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 293 0x86, 0xA2, 0x1C, 0x66, 0xFA, 0x6D, 294 }, 295 .sa_key = { 296 .data = { 297 0x69, 0x1D, 0x3E, 0xE9, 0x09, 0xD7, 0xF5, 0x41, 298 0x67, 0xFD, 0x1C, 0xA0, 0xB5, 0xD7, 0x69, 0x08, 299 0x1F, 0x2B, 0xDE, 0x1A, 0xEE, 0x65, 0x5F, 0xDB, 300 0xAB, 0x80, 0xBD, 0x52, 0x95, 0xAE, 0x6B, 0xE7, 301 }, 302 .len = 32, 303 }, 304 .plain_pkt = { 305 .data = {/* MAC DA */ 306 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 307 /* MAC SA */ 308 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 309 /* User Data */ 310 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 311 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 312 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 313 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 314 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 315 0x00, 0x04, 316 }, 317 .len = 54, 318 }, 319 .secure_pkt = { 320 .data = {/* MAC DA */ 321 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 322 /* MAC SA */ 323 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 324 /* MACsec EtherType */ 325 0x88, 0xE5, 326 /* TCI and AN */ 327 0x4C, 328 /* SL */ 329 0x2A, 330 /* PN */ 331 0x76, 0xD4, 0x57, 0xED, 332 /* Secure Data */ 333 0x88, 0xD9, 0xF7, 0xD1, 0xF1, 0x57, 0x8E, 0xE3, 334 0x4B, 0xA7, 0xB1, 0xAB, 0xC8, 0x98, 0x93, 0xEF, 335 0x1D, 0x33, 0x98, 0xC9, 0xF1, 0xDD, 0x3E, 0x47, 336 0xFB, 0xD8, 0x55, 0x3E, 0x0F, 0xF7, 0x86, 0xEF, 337 0x56, 0x99, 0xEB, 0x01, 0xEA, 0x10, 0x42, 0x0D, 338 0x0E, 0xBD, 339 /* ICV */ 340 0x39, 0xA0, 0xE2, 0x73, 0xC4, 0xC7, 0xF9, 0x5E, 341 0xD8, 0x43, 0x20, 0x7D, 0x7A, 0x49, 0x7D, 0xFA, 342 }, 343 .len = 78, 344 }, 345 }, 346 /* gcm_128_60B_cipher */ 347 { 348 .test_idx = 5, 349 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 350 .ssci = 0x0, 351 .xpn = 0x0, /* Most significant 32 bits */ 352 .salt = {0}, 353 .sa_key = { 354 .data = { 355 0xAD, 0x7A, 0x2B, 0xD0, 0x3E, 0xAC, 0x83, 0x5A, 356 0x6F, 0x62, 0x0F, 0xDC, 0xB5, 0x06, 0xB3, 0x45, 357 }, 358 .len = 16, 359 }, 360 .plain_pkt = { 361 .data = {/* MAC DA */ 362 0xD6, 0x09, 0xB1, 0xF0, 0x56, 0x63, 363 /* MAC SA */ 364 0x7A, 0x0D, 0x46, 0xDF, 0x99, 0x8D, 365 /* User Data */ 366 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 367 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 368 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 369 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 370 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 371 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x00, 0x02, 372 }, 373 .len = 60, 374 }, 375 .secure_pkt = { 376 .data = {/* MAC DA */ 377 0xD6, 0x09, 0xB1, 0xF0, 0x56, 0x63, 378 /* MAC SA */ 379 0x7A, 0x0D, 0x46, 0xDF, 0x99, 0x8D, 380 /* MACsec EtherType */ 381 0x88, 0xE5, 382 /* TCI and AN */ 383 0x2E, 384 /* SL */ 385 0x00, 386 /* PN */ 387 0xB2, 0xC2, 0x84, 0x65, 388 /* SCI */ 389 0x12, 0x15, 0x35, 0x24, 0xC0, 0x89, 0x5E, 0x81, 390 /* Secure Data */ 391 0x70, 0x1A, 0xFA, 0x1C, 0xC0, 0x39, 0xC0, 0xD7, 392 0x65, 0x12, 0x8A, 0x66, 0x5D, 0xAB, 0x69, 0x24, 393 0x38, 0x99, 0xBF, 0x73, 0x18, 0xCC, 0xDC, 0x81, 394 0xC9, 0x93, 0x1D, 0xA1, 0x7F, 0xBE, 0x8E, 0xDD, 395 0x7D, 0x17, 0xCB, 0x8B, 0x4C, 0x26, 0xFC, 0x81, 396 0xE3, 0x28, 0x4F, 0x2B, 0x7F, 0xBA, 0x71, 0x3D, 397 /* ICV */ 398 0x4F, 0x8D, 0x55, 0xE7, 0xD3, 0xF0, 0x6F, 0xD5, 399 0xA1, 0x3C, 0x0C, 0x29, 0xB9, 0xD5, 0xB8, 0x80, 400 }, 401 .len = 92, 402 }, 403 }, 404 /* gcm_256_60B_cipher */ 405 { 406 .test_idx = 6, 407 .alg = RTE_SECURITY_MACSEC_ALG_GCM_256, 408 .ssci = 0x0, 409 .xpn = 0x0, /* Most significant 32 bits */ 410 .salt = {0}, 411 .sa_key = { 412 .data = { 413 0xE3, 0xC0, 0x8A, 0x8F, 0x06, 0xC6, 0xE3, 0xAD, 414 0x95, 0xA7, 0x05, 0x57, 0xB2, 0x3F, 0x75, 0x48, 415 0x3C, 0xE3, 0x30, 0x21, 0xA9, 0xC7, 0x2B, 0x70, 416 0x25, 0x66, 0x62, 0x04, 0xC6, 0x9C, 0x0B, 0x72, 417 }, 418 .len = 32, 419 }, 420 .plain_pkt = { 421 .data = {/* MAC DA */ 422 0xD6, 0x09, 0xB1, 0xF0, 0x56, 0x63, 423 /* MAC SA */ 424 0x7A, 0x0D, 0x46, 0xDF, 0x99, 0x8D, 425 /* User Data */ 426 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 427 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 428 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 429 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 430 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 431 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x00, 0x02, 432 }, 433 .len = 60, 434 }, 435 .secure_pkt = { 436 .data = {/* MAC DA */ 437 0xD6, 0x09, 0xB1, 0xF0, 0x56, 0x63, 438 /* MAC SA */ 439 0x7A, 0x0D, 0x46, 0xDF, 0x99, 0x8D, 440 /* MACsec EtherType */ 441 0x88, 0xE5, 442 /* TCI and AN */ 443 0x2E, 444 /* SL */ 445 0x00, 446 /* PN */ 447 0xB2, 0xC2, 0x84, 0x65, 448 /* SCI */ 449 0x12, 0x15, 0x35, 0x24, 0xC0, 0x89, 0x5E, 0x81, 450 /* Secure Data */ 451 0xE2, 0x00, 0x6E, 0xB4, 0x2F, 0x52, 0x77, 0x02, 452 0x2D, 0x9B, 0x19, 0x92, 0x5B, 0xC4, 0x19, 0xD7, 453 0xA5, 0x92, 0x66, 0x6C, 0x92, 0x5F, 0xE2, 0xEF, 454 0x71, 0x8E, 0xB4, 0xE3, 0x08, 0xEF, 0xEA, 0xA7, 455 0xC5, 0x27, 0x3B, 0x39, 0x41, 0x18, 0x86, 0x0A, 456 0x5B, 0xE2, 0xA9, 0x7F, 0x56, 0xAB, 0x78, 0x36, 457 /* ICV */ 458 0x5C, 0xA5, 0x97, 0xCD, 0xBB, 0x3E, 0xDB, 0x8D, 459 0x1A, 0x11, 0x51, 0xEA, 0x0A, 0xF7, 0xB4, 0x36, 460 }, 461 .len = 92, 462 }, 463 }, 464 /* gcm_128_xpn_60B_cipher */ 465 { 466 .test_idx = 7, 467 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_128, 468 .ssci = 0x7A30C118, 469 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 470 .salt = { 471 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 472 0x86, 0xA2, 0x1C, 0x66, 0xFA, 0x6D, 473 }, 474 .sa_key = { 475 .data = { 476 0xAD, 0x7A, 0x2B, 0xD0, 0x3E, 0xAC, 0x83, 0x5A, 477 0x6F, 0x62, 0x0F, 0xDC, 0xB5, 0x06, 0xB3, 0x45, 478 }, 479 .len = 16, 480 }, 481 .plain_pkt = { 482 .data = {/* MAC DA */ 483 0xD6, 0x09, 0xB1, 0xF0, 0x56, 0x63, 484 /* MAC SA */ 485 0x7A, 0x0D, 0x46, 0xDF, 0x99, 0x8D, 486 /* User Data */ 487 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 488 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 489 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 490 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 491 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 492 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x00, 0x02, 493 }, 494 .len = 60, 495 }, 496 .secure_pkt = { 497 .data = {/* MAC DA */ 498 0xD6, 0x09, 0xB1, 0xF0, 0x56, 0x63, 499 /* MAC SA */ 500 0x7A, 0x0D, 0x46, 0xDF, 0x99, 0x8D, 501 /* MACsec EtherType */ 502 0x88, 0xE5, 503 /* TCI and AN */ 504 0x2E, 505 /* SL */ 506 0x00, 507 /* PN */ 508 0xB2, 0xC2, 0x84, 0x65, 509 /* SCI */ 510 0x12, 0x15, 0x35, 0x24, 0xC0, 0x89, 0x5E, 0x81, 511 /* Secure Data */ 512 0x07, 0x12, 0xD9, 0x80, 0xCA, 0x50, 0xBB, 0xED, 513 0x35, 0xA0, 0xFA, 0x56, 0x63, 0x38, 0x72, 0x9F, 514 0xFA, 0x16, 0xD1, 0x9F, 0xFC, 0xF0, 0x7B, 0x3A, 515 0x1E, 0x79, 0x19, 0xB3, 0x77, 0x6A, 0xAC, 0xEC, 516 0x8A, 0x59, 0x37, 0x20, 0x8B, 0x48, 0x3A, 0x76, 517 0x91, 0x98, 0x4D, 0x38, 0x07, 0x92, 0xE0, 0x7F, 518 /* ICV */ 519 0xC2, 0xC3, 0xC7, 0x9F, 0x26, 0x3F, 0xA6, 0xBF, 520 0xF8, 0xE7, 0x58, 0x1E, 0x2C, 0xE4, 0x5A, 0xF8, 521 }, 522 .len = 92, 523 }, 524 }, 525 /* gcm_256_xpn_60B_cipher */ 526 { 527 .test_idx = 8, 528 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_256, 529 .ssci = 0x7A30C118, 530 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 531 .salt = { 532 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 533 0x86, 0xA2, 0x1C, 0x66, 0xFA, 0x6D, 534 }, 535 .sa_key = { 536 .data = { 537 0xE3, 0xC0, 0x8A, 0x8F, 0x06, 0xC6, 0xE3, 0xAD, 538 0x95, 0xA7, 0x05, 0x57, 0xB2, 0x3F, 0x75, 0x48, 539 0x3C, 0xE3, 0x30, 0x21, 0xA9, 0xC7, 0x2B, 0x70, 540 0x25, 0x66, 0x62, 0x04, 0xC6, 0x9C, 0x0B, 0x72, 541 }, 542 .len = 32, 543 }, 544 .plain_pkt = { 545 .data = {/* MAC DA */ 546 0xD6, 0x09, 0xB1, 0xF0, 0x56, 0x63, 547 /* MAC SA */ 548 0x7A, 0x0D, 0x46, 0xDF, 0x99, 0x8D, 549 /* User Data */ 550 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 551 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 552 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 553 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 554 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 555 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x00, 0x02, 556 }, 557 .len = 60, 558 }, 559 .secure_pkt = { 560 .data = {/* MAC DA */ 561 0xD6, 0x09, 0xB1, 0xF0, 0x56, 0x63, 562 /* MAC SA */ 563 0x7A, 0x0D, 0x46, 0xDF, 0x99, 0x8D, 564 /* MACsec EtherType */ 565 0x88, 0xE5, 566 /* TCI and AN */ 567 0x2E, 568 /* SL */ 569 0x00, 570 /* PN */ 571 0xB2, 0xC2, 0x84, 0x65, 572 /* SCI */ 573 0x12, 0x15, 0x35, 0x24, 0xC0, 0x89, 0x5E, 0x81, 574 /* Secure Data */ 575 0x3E, 0xB0, 0x4A, 0x4B, 0xBF, 0x54, 0xC6, 0xEB, 576 0x12, 0x22, 0xA9, 0xAE, 0xA0, 0x0C, 0x38, 0x68, 577 0x7F, 0x6C, 0x35, 0x20, 0xD9, 0x76, 0xA3, 0xB6, 578 0x94, 0x80, 0x06, 0x50, 0xCE, 0x65, 0x85, 0xE6, 579 0x20, 0xA4, 0x19, 0x19, 0x17, 0xD2, 0xA6, 0x05, 580 0xD8, 0x70, 0xC7, 0x8D, 0x27, 0x52, 0xCE, 0x49, 581 /* ICV */ 582 0x3B, 0x44, 0x2A, 0xC0, 0xC8, 0x16, 0xD7, 0xAB, 583 0xD7, 0x0A, 0xD6, 0x5C, 0x25, 0xD4, 0x64, 0x13, 584 }, 585 .len = 92, 586 }, 587 }, 588 /* gcm_128_61B_cipher */ 589 { 590 .test_idx = 9, 591 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 592 .ssci = 0x0, 593 .xpn = 0x0, /* Most significant 32 bits */ 594 .salt = {0}, 595 .sa_key = { 596 .data = { 597 0x01, 0x3F, 0xE0, 0x0B, 0x5F, 0x11, 0xBE, 0x7F, 598 0x86, 0x6D, 0x0C, 0xBB, 0xC5, 0x5A, 0x7A, 0x90, 599 }, 600 .len = 16, 601 }, 602 .plain_pkt = { 603 .data = {/* MAC DA */ 604 0x84, 0xC5, 0xD5, 0x13, 0xD2, 0xAA, 605 /* MAC SA */ 606 0xF6, 0xE5, 0xBB, 0xD2, 0x72, 0x77, 607 /* User Data */ 608 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 609 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 610 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 611 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 612 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 613 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x00, 614 0x06, 615 }, 616 .len = 61, 617 }, 618 .secure_pkt = { 619 .data = {/* MAC DA */ 620 0x84, 0xC5, 0xD5, 0x13, 0xD2, 0xAA, 621 /* MAC SA */ 622 0xF6, 0xE5, 0xBB, 0xD2, 0x72, 0x77, 623 /* MACsec EtherType */ 624 0x88, 0xE5, 625 /* TCI and AN */ 626 0x2F, 627 /* SL */ 628 0x00, 629 /* PN */ 630 0x89, 0x32, 0xD6, 0x12, 631 /* SCI */ 632 0x7C, 0xFD, 0xE9, 0xF9, 0xE3, 0x37, 0x24, 0xC6, 633 /* Secure Data */ 634 0x3A, 0x4D, 0xE6, 0xFA, 0x32, 0x19, 0x10, 0x14, 635 0xDB, 0xB3, 0x03, 0xD9, 0x2E, 0xE3, 0xA9, 0xE8, 636 0xA1, 0xB5, 0x99, 0xC1, 0x4D, 0x22, 0xFB, 0x08, 637 0x00, 0x96, 0xE1, 0x38, 0x11, 0x81, 0x6A, 0x3C, 638 0x9C, 0x9B, 0xCF, 0x7C, 0x1B, 0x9B, 0x96, 0xDA, 639 0x80, 0x92, 0x04, 0xE2, 0x9D, 0x0E, 0x2A, 0x76, 640 0x42, 641 /* ICV */ 642 0xBF, 0xD3, 0x10, 0xA4, 0x83, 0x7C, 0x81, 0x6C, 643 0xCF, 0xA5, 0xAC, 0x23, 0xAB, 0x00, 0x39, 0x88, 644 }, 645 .len = 93, 646 }, 647 }, 648 /* gcm_256_61B_cipher */ 649 { 650 .test_idx = 10, 651 .alg = RTE_SECURITY_MACSEC_ALG_GCM_256, 652 .ssci = 0x0, 653 .xpn = 0x0, /* Most significant 32 bits */ 654 .salt = {0}, 655 .sa_key = { 656 .data = { 657 0x83, 0xC0, 0x93, 0xB5, 0x8D, 0xE7, 0xFF, 0xE1, 658 0xC0, 0xDA, 0x92, 0x6A, 0xC4, 0x3F, 0xB3, 0x60, 659 0x9A, 0xC1, 0xC8, 0x0F, 0xEE, 0x1B, 0x62, 0x44, 660 0x97, 0xEF, 0x94, 0x2E, 0x2F, 0x79, 0xA8, 0x23, 661 }, 662 .len = 32, 663 }, 664 .plain_pkt = { 665 .data = {/* MAC DA */ 666 0x84, 0xC5, 0xD5, 0x13, 0xD2, 0xAA, 667 /* MAC SA */ 668 0xF6, 0xE5, 0xBB, 0xD2, 0x72, 0x77, 669 /* User Data */ 670 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 671 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 672 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 673 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 674 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 675 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x00, 676 0x06, 677 }, 678 .len = 61, 679 }, 680 .secure_pkt = { 681 .data = {/* MAC DA */ 682 0x84, 0xC5, 0xD5, 0x13, 0xD2, 0xAA, 683 /* MAC SA */ 684 0xF6, 0xE5, 0xBB, 0xD2, 0x72, 0x77, 685 /* MACsec EtherType */ 686 0x88, 0xE5, 687 /* TCI and AN */ 688 0x2F, 689 /* SL */ 690 0x00, 691 /* PN */ 692 0x89, 0x32, 0xD6, 0x12, 693 /* SCI */ 694 0x7C, 0xFD, 0xE9, 0xF9, 0xE3, 0x37, 0x24, 0xC6, 695 /* Secure Data */ 696 0x11, 0x02, 0x22, 0xFF, 0x80, 0x50, 0xCB, 0xEC, 697 0xE6, 0x6A, 0x81, 0x3A, 0xD0, 0x9A, 0x73, 0xED, 698 0x7A, 0x9A, 0x08, 0x9C, 0x10, 0x6B, 0x95, 0x93, 699 0x89, 0x16, 0x8E, 0xD6, 0xE8, 0x69, 0x8E, 0xA9, 700 0x02, 0xEB, 0x12, 0x77, 0xDB, 0xEC, 0x2E, 0x68, 701 0xE4, 0x73, 0x15, 0x5A, 0x15, 0xA7, 0xDA, 0xEE, 702 0xD4, 703 /* ICV */ 704 0xA1, 0x0F, 0x4E, 0x05, 0x13, 0x9C, 0x23, 0xDF, 705 0x00, 0xB3, 0xAA, 0xDC, 0x71, 0xF0, 0x59, 0x6A, 706 }, 707 .len = 93, 708 }, 709 }, 710 /* gcm_128_xpn_61B_cipher */ 711 { 712 .test_idx = 11, 713 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_128, 714 .ssci = 0x7A30C118, 715 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 716 .salt = { 717 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 718 0x86, 0xA2, 0x1C, 0x66, 0xFA, 0x6D, 719 }, 720 .sa_key = { 721 .data = { 722 0x01, 0x3F, 0xE0, 0x0B, 0x5F, 0x11, 0xBE, 0x7F, 723 0x86, 0x6D, 0x0C, 0xBB, 0xC5, 0x5A, 0x7A, 0x90, 724 }, 725 .len = 16, 726 }, 727 .plain_pkt = { 728 .data = {/* MAC DA */ 729 0x84, 0xC5, 0xD5, 0x13, 0xD2, 0xAA, 730 /* MAC SA */ 731 0xF6, 0xE5, 0xBB, 0xD2, 0x72, 0x77, 732 /* User Data */ 733 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 734 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 735 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 736 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 737 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 738 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x00, 739 0x06, 740 }, 741 .len = 61, 742 }, 743 .secure_pkt = { 744 .data = {/* MAC DA */ 745 0x84, 0xC5, 0xD5, 0x13, 0xD2, 0xAA, 746 /* MAC SA */ 747 0xF6, 0xE5, 0xBB, 0xD2, 0x72, 0x77, 748 /* MACsec EtherType */ 749 0x88, 0xE5, 750 /* TCI and AN */ 751 0x2F, 752 /* SL */ 753 0x00, 754 /* PN */ 755 0x89, 0x32, 0xD6, 0x12, 756 /* SCI */ 757 0x7C, 0xFD, 0xE9, 0xF9, 0xE3, 0x37, 0x24, 0xC6, 758 /* Secure Data */ 759 0x14, 0xC1, 0x76, 0x93, 0xBC, 0x82, 0x97, 0xEE, 760 0x6C, 0x47, 0xC5, 0x65, 0xCB, 0xE0, 0x67, 0x9E, 761 0x80, 0xF0, 0x0F, 0xCA, 0xF5, 0x92, 0xC9, 0xAA, 762 0x04, 0x73, 0x92, 0x8E, 0x7F, 0x2F, 0x21, 0x6F, 763 0xF5, 0xA0, 0x33, 0xDE, 0xC7, 0x51, 0x3F, 0x45, 764 0xD3, 0x4C, 0xBB, 0x98, 0x1C, 0x5B, 0xD6, 0x4E, 765 0x8B, 766 /* ICV */ 767 0xD8, 0x4B, 0x8E, 0x2A, 0x78, 0xE7, 0x4D, 0xAF, 768 0xEA, 0xA0, 0x38, 0x46, 0xFE, 0x93, 0x0C, 0x0E, 769 }, 770 .len = 93, 771 }, 772 }, 773 /* gcm_256_xpn_61B_cipher */ 774 { 775 .test_idx = 12, 776 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_256, 777 .ssci = 0x7A30C118, 778 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 779 .salt = { 780 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 781 0x86, 0xA2, 0x1C, 0x66, 0xFA, 0x6D, 782 }, 783 .sa_key = { 784 .data = { 785 0x83, 0xC0, 0x93, 0xB5, 0x8D, 0xE7, 0xFF, 0xE1, 786 0xC0, 0xDA, 0x92, 0x6A, 0xC4, 0x3F, 0xB3, 0x60, 787 0x9A, 0xC1, 0xC8, 0x0F, 0xEE, 0x1B, 0x62, 0x44, 788 0x97, 0xEF, 0x94, 0x2E, 0x2F, 0x79, 0xA8, 0x23, 789 }, 790 .len = 32, 791 }, 792 .plain_pkt = { 793 .data = {/* MAC DA */ 794 0x84, 0xC5, 0xD5, 0x13, 0xD2, 0xAA, 795 /* MAC SA */ 796 0xF6, 0xE5, 0xBB, 0xD2, 0x72, 0x77, 797 /* User Data */ 798 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 799 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 800 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 801 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 802 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 803 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x00, 804 0x06, 805 }, 806 .len = 61, 807 }, 808 .secure_pkt = { 809 .data = {/* MAC DA */ 810 0x84, 0xC5, 0xD5, 0x13, 0xD2, 0xAA, 811 /* MAC SA */ 812 0xF6, 0xE5, 0xBB, 0xD2, 0x72, 0x77, 813 /* MACsec EtherType */ 814 0x88, 0xE5, 815 /* TCI and AN */ 816 0x2F, 817 /* SL */ 818 0x00, 819 /* PN */ 820 0x89, 0x32, 0xD6, 0x12, 821 /* SCI */ 822 0x7C, 0xFD, 0xE9, 0xF9, 0xE3, 0x37, 0x24, 0xC6, 823 /* Secure Data */ 824 0x09, 0x96, 0xE0, 0xC9, 0xA5, 0x57, 0x74, 0xE0, 825 0xA7, 0x92, 0x30, 0x4E, 0x7D, 0xC1, 0x50, 0xBD, 826 0x67, 0xFD, 0x74, 0x7D, 0xD1, 0xB9, 0x41, 0x95, 827 0x94, 0xBF, 0x37, 0x3D, 0x4A, 0xCE, 0x8F, 0x87, 828 0xF5, 0xC1, 0x34, 0x9A, 0xFA, 0xC4, 0x91, 0xAA, 829 0x0A, 0x40, 0xD3, 0x19, 0x90, 0x87, 0xB2, 0x9F, 830 0xDF, 831 /* ICV */ 832 0x80, 0x2F, 0x05, 0x0E, 0x69, 0x1F, 0x11, 0xA2, 833 0xD9, 0xB3, 0x58, 0xF6, 0x99, 0x41, 0x84, 0xF5, 834 }, 835 .len = 93, 836 }, 837 }, 838 /* gcm_128_75B_cipher */ 839 { 840 .test_idx = 13, 841 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 842 .ssci = 0, 843 .xpn = 0, /* Most significant 32 bits */ 844 .salt = {0}, 845 .sa_key = { 846 .data = { 847 0x88, 0xEE, 0x08, 0x7F, 0xD9, 0x5D, 0xA9, 0xFB, 848 0xF6, 0x72, 0x5A, 0xA9, 0xD7, 0x57, 0xB0, 0xCD, 849 }, 850 .len = 16, 851 }, 852 .plain_pkt = { 853 .data = {/* MAC DA */ 854 0x68, 0xF2, 0xE7, 0x76, 0x96, 0xCE, 855 /* MAC SA */ 856 0x7A, 0xE8, 0xE2, 0xCA, 0x4E, 0xC5, 857 /* User Data */ 858 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 859 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 860 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 861 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 862 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 863 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 864 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 865 0x45, 0x46, 0x47, 0x48, 0x49, 0x00, 0x08, 866 }, 867 .len = 75, 868 }, 869 .secure_pkt = { 870 .data = {/* MAC DA */ 871 0x68, 0xF2, 0xE7, 0x76, 0x96, 0xCE, 872 /* MAC SA */ 873 0x7A, 0xE8, 0xE2, 0xCA, 0x4E, 0xC5, 874 /* MACsec EtherType */ 875 0x88, 0xE5, 876 /* TCI and AN */ 877 0x4D, 878 /* SL */ 879 0x00, 880 /* PN */ 881 0x2E, 0x58, 0x49, 0x5C, 882 /* SCI */ 883 /* Secure Data */ 884 0xC3, 0x1F, 0x53, 0xD9, 0x9E, 0x56, 0x87, 0xF7, 885 0x36, 0x51, 0x19, 0xB8, 0x32, 0xD2, 0xAA, 0xE7, 886 0x07, 0x41, 0xD5, 0x93, 0xF1, 0xF9, 0xE2, 0xAB, 887 0x34, 0x55, 0x77, 0x9B, 0x07, 0x8E, 0xB8, 0xFE, 888 0xAC, 0xDF, 0xEC, 0x1F, 0x8E, 0x3E, 0x52, 0x77, 889 0xF8, 0x18, 0x0B, 0x43, 0x36, 0x1F, 0x65, 0x12, 890 0xAD, 0xB1, 0x6D, 0x2E, 0x38, 0x54, 0x8A, 0x2C, 891 0x71, 0x9D, 0xBA, 0x72, 0x28, 0xD8, 0x40, 892 /* ICV */ 893 0x88, 0xF8, 0x75, 0x7A, 0xDB, 0x8A, 0xA7, 0x88, 894 0xD8, 0xF6, 0x5A, 0xD6, 0x68, 0xBE, 0x70, 0xE7, 895 }, 896 .len = 99, 897 }, 898 }, 899 /* gcm_256_75B_cipher */ 900 { 901 .test_idx = 14, 902 .alg = RTE_SECURITY_MACSEC_ALG_GCM_256, 903 .ssci = 0, 904 .xpn = 0, /* Most significant 32 bits */ 905 .salt = {0}, 906 .sa_key = { 907 .data = { 908 0x4C, 0x97, 0x3D, 0xBC, 0x73, 0x64, 0x62, 0x16, 909 0x74, 0xF8, 0xB5, 0xB8, 0x9E, 0x5C, 0x15, 0x51, 910 0x1F, 0xCE, 0xD9, 0x21, 0x64, 0x90, 0xFB, 0x1C, 911 0x1A, 0x2C, 0xAA, 0x0F, 0xFE, 0x04, 0x07, 0xE5, 912 }, 913 .len = 32, 914 }, 915 .plain_pkt = { 916 .data = {/* MAC DA */ 917 0x68, 0xF2, 0xE7, 0x76, 0x96, 0xCE, 918 /* MAC SA */ 919 0x7A, 0xE8, 0xE2, 0xCA, 0x4E, 0xC5, 920 /* User Data */ 921 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 922 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 923 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 924 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 925 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 926 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 927 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 928 0x45, 0x46, 0x47, 0x48, 0x49, 0x00, 0x08, 929 }, 930 .len = 75, 931 }, 932 .secure_pkt = { 933 .data = {/* MAC DA */ 934 0x68, 0xF2, 0xE7, 0x76, 0x96, 0xCE, 935 /* MAC SA */ 936 0x7A, 0xE8, 0xE2, 0xCA, 0x4E, 0xC5, 937 /* MACsec EtherType */ 938 0x88, 0xE5, 939 /* TCI and AN */ 940 0x4D, 941 /* SL */ 942 0x00, 943 /* PN */ 944 0x2E, 0x58, 0x49, 0x5C, 945 /* SCI */ 946 /* Secure Data */ 947 0xBA, 0x8A, 0xE3, 0x1B, 0xC5, 0x06, 0x48, 0x6D, 948 0x68, 0x73, 0xE4, 0xFC, 0xE4, 0x60, 0xE7, 0xDC, 949 0x57, 0x59, 0x1F, 0xF0, 0x06, 0x11, 0xF3, 0x1C, 950 0x38, 0x34, 0xFE, 0x1C, 0x04, 0xAD, 0x80, 0xB6, 951 0x68, 0x03, 0xAF, 0xCF, 0x5B, 0x27, 0xE6, 0x33, 952 0x3F, 0xA6, 0x7C, 0x99, 0xDA, 0x47, 0xC2, 0xF0, 953 0xCE, 0xD6, 0x8D, 0x53, 0x1B, 0xD7, 0x41, 0xA9, 954 0x43, 0xCF, 0xF7, 0xA6, 0x71, 0x3B, 0xD0, 955 /* ICV */ 956 0x26, 0x11, 0xCD, 0x7D, 0xAA, 0x01, 0xD6, 0x1C, 957 0x5C, 0x88, 0x6D, 0xC1, 0xA8, 0x17, 0x01, 0x07, 958 }, 959 .len = 99, 960 }, 961 }, 962 /* gcm_128_xpn_75B_cipher */ 963 { 964 .test_idx = 15, 965 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_128, 966 .ssci = 0x7A30C118, 967 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 968 .salt = { 969 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 0x86, 0xA2, 970 0x1C, 0x66, 0xFA, 0x6D, 971 }, 972 .sa_key = { 973 .data = { 974 0x88, 0xEE, 0x08, 0x7F, 0xD9, 0x5D, 0xA9, 0xFB, 975 0xF6, 0x72, 0x5A, 0xA9, 0xD7, 0x57, 0xB0, 0xCD, 976 }, 977 .len = 16, 978 }, 979 .plain_pkt = { 980 .data = {/* MAC DA */ 981 0x68, 0xF2, 0xE7, 0x76, 0x96, 0xCE, 982 /* MAC SA */ 983 0x7A, 0xE8, 0xE2, 0xCA, 0x4E, 0xC5, 984 /* User Data */ 985 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 986 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 987 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 988 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 989 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 990 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 991 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 992 0x45, 0x46, 0x47, 0x48, 0x49, 0x00, 0x08, 993 }, 994 .len = 75, 995 }, 996 .secure_pkt = { 997 .data = {/* MAC DA */ 998 0x68, 0xF2, 0xE7, 0x76, 0x96, 0xCE, 999 /* MAC SA */ 1000 0x7A, 0xE8, 0xE2, 0xCA, 0x4E, 0xC5, 1001 /* MACsec EtherType */ 1002 0x88, 0xE5, 1003 /* TCI and AN */ 1004 0x4D, 1005 /* SL */ 1006 0x00, 1007 /* PN */ 1008 0x2E, 0x58, 0x49, 0x5C, 1009 /* SCI */ 1010 /* Secure Data */ 1011 0xEA, 0xEC, 0xC6, 0xAF, 0x65, 0x12, 0xFC, 0x8B, 1012 0x6C, 0x8C, 0x43, 0xBC, 0x55, 0xB1, 0x90, 0xB2, 1013 0x62, 0x6D, 0x07, 0xD3, 0xD2, 0x18, 0xFA, 0xF5, 1014 0xDA, 0xA7, 0xD8, 0xF8, 0x00, 0xA5, 0x73, 0x31, 1015 0xEB, 0x43, 0xB5, 0xA1, 0x7A, 0x37, 0xE5, 0xB1, 1016 0xD6, 0x0D, 0x27, 0x5C, 0xCA, 0xF7, 0xAC, 0xD7, 1017 0x04, 0xCC, 0x9A, 0xCE, 0x2B, 0xF8, 0xBC, 0x8B, 1018 0x9B, 0x23, 0xB9, 0xAD, 0xF0, 0x2F, 0x87, 1019 /* ICV */ 1020 0x34, 0x6B, 0x96, 0xD1, 0x13, 0x6A, 0x75, 0x4D, 1021 0xF0, 0xA6, 0xCD, 0xE1, 0x26, 0xC1, 0x07, 0xF8, 1022 }, 1023 .len = 99, 1024 }, 1025 }, 1026 /* gcm_256_xpn_75B_cipher */ 1027 { 1028 .test_idx = 16, 1029 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_256, 1030 .ssci = 0x7A30C118, 1031 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 1032 .salt = { 1033 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 0x86, 0xA2, 1034 0x1C, 0x66, 0xFA, 0x6D, 1035 }, 1036 .sa_key = { 1037 .data = { 1038 0x4C, 0x97, 0x3D, 0xBC, 0x73, 0x64, 0x62, 0x16, 1039 0x74, 0xF8, 0xB5, 0xB8, 0x9E, 0x5C, 0x15, 0x51, 1040 0x1F, 0xCE, 0xD9, 0x21, 0x64, 0x90, 0xFB, 0x1C, 1041 0x1A, 0x2C, 0xAA, 0x0F, 0xFE, 0x04, 0x07, 0xE5, 1042 }, 1043 .len = 32, 1044 }, 1045 .plain_pkt = { 1046 .data = {/* MAC DA */ 1047 0x68, 0xF2, 0xE7, 0x76, 0x96, 0xCE, 1048 /* MAC SA */ 1049 0x7A, 0xE8, 0xE2, 0xCA, 0x4E, 0xC5, 1050 /* User Data */ 1051 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1052 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1053 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1054 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1055 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1056 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 1057 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 1058 0x45, 0x46, 0x47, 0x48, 0x49, 0x00, 0x08, 1059 }, 1060 .len = 75, 1061 }, 1062 .secure_pkt = { 1063 .data = {/* MAC DA */ 1064 0x68, 0xF2, 0xE7, 0x76, 0x96, 0xCE, 1065 /* MAC SA */ 1066 0x7A, 0xE8, 0xE2, 0xCA, 0x4E, 0xC5, 1067 /* MACsec EtherType */ 1068 0x88, 0xE5, 1069 /* TCI and AN */ 1070 0x4D, 1071 /* SL */ 1072 0x00, 1073 /* PN */ 1074 0x2E, 0x58, 0x49, 0x5C, 1075 /* SCI */ 1076 /* Secure Data */ 1077 0xB0, 0xFE, 0xA3, 0x63, 0x18, 0xB9, 0xB3, 0x64, 1078 0x66, 0xC4, 0x6E, 0x9E, 0x1B, 0xDA, 0x1A, 0x26, 1079 0x68, 0x58, 0x19, 0x6E, 0x7E, 0x70, 0xD8, 0x82, 1080 0xAE, 0x70, 0x47, 0x56, 0x68, 0xCD, 0xE4, 0xEC, 1081 0x88, 0x3F, 0x6A, 0xC2, 0x36, 0x9F, 0x28, 0x4B, 1082 0xED, 0x1F, 0xE3, 0x2F, 0x42, 0x09, 0x2F, 0xDF, 1083 0xF5, 0x86, 0x8A, 0x3C, 0x64, 0xE5, 0x61, 0x51, 1084 0x92, 0xA7, 0xA3, 0x76, 0x0B, 0x34, 0xBC, 1085 /* ICV */ 1086 0x85, 0x69, 0x2C, 0xD8, 0x15, 0xB6, 0x64, 0x71, 1087 0x1A, 0xEF, 0x91, 0x1D, 0xF7, 0x8D, 0x7F, 0x46, 1088 }, 1089 .len = 99, 1090 }, 1091 }, 1092 }; 1093 1094 static const struct mcs_test_vector list_mcs_integrity_vectors[] = { 1095 /* gcm_128_54B_integrity */ 1096 { 1097 .test_idx = 1, 1098 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 1099 .ssci = 0, 1100 .xpn = 0, /* Most significant 32 bits */ 1101 .salt = {0}, 1102 .sa_key = { 1103 .data = { 1104 0xAD, 0x7A, 0x2B, 0xD0, 0x3E, 0xAC, 0x83, 0x5A, 1105 0x6F, 0x62, 0x0F, 0xDC, 0xB5, 0x06, 0xB3, 0x45, 1106 }, 1107 .len = 16, 1108 }, 1109 .plain_pkt = { 1110 .data = {/* MAC DA */ 1111 0xD6, 0x09, 0xB1, 0xF0, 0x56, 0x63, 1112 /* MAC SA */ 1113 0x7A, 0x0D, 0x46, 0xDF, 0x99, 0x8D, 1114 /* User Data */ 1115 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1116 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1117 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1118 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1119 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1120 0x00, 0x01, 1121 }, 1122 .len = 54, 1123 }, 1124 .secure_pkt = { 1125 .data = {/* MAC DA */ 1126 0xD6, 0x09, 0xB1, 0xF0, 0x56, 0x63, 1127 /* MAC SA */ 1128 0x7A, 0x0D, 0x46, 0xDF, 0x99, 0x8D, 1129 /* MACsec EtherType */ 1130 0x88, 0xE5, 1131 /* TCI and AN */ 1132 0x22, 1133 /* SL */ 1134 0x2A, 1135 /* PN */ 1136 0xB2, 0xC2, 0x84, 0x65, 1137 /* SCI */ 1138 0x12, 0x15, 0x35, 0x24, 0xC0, 0x89, 0x5E, 0x81, 1139 /* Secure Data */ 1140 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1141 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1142 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1143 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1144 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1145 0x00, 0x01, 1146 /* ICV */ 1147 0xF0, 0x94, 0x78, 0xA9, 0xB0, 0x90, 0x07, 0xD0, 1148 0x6F, 0x46, 0xE9, 0xB6, 0xA1, 0xDA, 0x25, 0xDD, 1149 }, 1150 .len = 86, 1151 }, 1152 }, 1153 /* gcm_256_54B_integrity */ 1154 { 1155 .test_idx = 2, 1156 .alg = RTE_SECURITY_MACSEC_ALG_GCM_256, 1157 .ssci = 0, 1158 .xpn = 0, /* Most significant 32 bits */ 1159 .salt = {0}, 1160 .sa_key = { 1161 .data = { 1162 0xE3, 0xC0, 0x8A, 0x8F, 0x06, 0xC6, 0xE3, 0xAD, 1163 0x95, 0xA7, 0x05, 0x57, 0xB2, 0x3F, 0x75, 0x48, 1164 0x3C, 0xE3, 0x30, 0x21, 0xA9, 0xC7, 0x2B, 0x70, 1165 0x25, 0x66, 0x62, 0x04, 0xC6, 0x9C, 0x0B, 0x72, 1166 }, 1167 .len = 32, 1168 }, 1169 .plain_pkt = { 1170 .data = {/* MAC DA */ 1171 0xD6, 0x09, 0xB1, 0xF0, 0x56, 0x63, 1172 /* MAC SA */ 1173 0x7A, 0x0D, 0x46, 0xDF, 0x99, 0x8D, 1174 /* User Data */ 1175 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1176 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1177 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1178 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1179 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1180 0x00, 0x01, 1181 }, 1182 .len = 54, 1183 }, 1184 .secure_pkt = { 1185 .data = {/* MAC DA */ 1186 0xD6, 0x09, 0xB1, 0xF0, 0x56, 0x63, 1187 /* MAC SA */ 1188 0x7A, 0x0D, 0x46, 0xDF, 0x99, 0x8D, 1189 /* MACsec EtherType */ 1190 0x88, 0xE5, 1191 /* TCI and AN */ 1192 0x22, 1193 /* SL */ 1194 0x2A, 1195 /* PN */ 1196 0xB2, 0xC2, 0x84, 0x65, 1197 /* SCI */ 1198 0x12, 0x15, 0x35, 0x24, 0xC0, 0x89, 0x5E, 0x81, 1199 /* Secure Data */ 1200 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1201 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1202 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1203 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1204 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1205 0x00, 0x01, 1206 /* ICV */ 1207 0x2F, 0x0B, 0xC5, 0xAF, 0x40, 0x9E, 0x06, 0xD6, 1208 0x09, 0xEA, 0x8B, 0x7D, 0x0F, 0xA5, 0xEA, 0x50, 1209 }, 1210 .len = 86, 1211 }, 1212 }, 1213 /* gcm_128_xpn_54B_integrity */ 1214 { 1215 .test_idx = 3, 1216 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_128, 1217 .ssci = 0x7A30C118, 1218 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 1219 .salt = { 1220 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 0x86, 0xA2, 1221 0x1C, 0x66, 0xFA, 0x6D, 1222 }, 1223 .sa_key = { 1224 .data = { 1225 0xAD, 0x7A, 0x2B, 0xD0, 0x3E, 0xAC, 0x83, 0x5A, 1226 0x6F, 0x62, 0x0F, 0xDC, 0xB5, 0x06, 0xB3, 0x45, 1227 }, 1228 .len = 16, 1229 }, 1230 .plain_pkt = { 1231 .data = {/* MAC DA */ 1232 0xD6, 0x09, 0xB1, 0xF0, 0x56, 0x63, 1233 /* MAC SA */ 1234 0x7A, 0x0D, 0x46, 0xDF, 0x99, 0x8D, 1235 /* User Data */ 1236 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1237 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1238 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1239 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1240 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1241 0x00, 0x01, 1242 }, 1243 .len = 54, 1244 }, 1245 .secure_pkt = { 1246 .data = {/* MAC DA */ 1247 0xD6, 0x09, 0xB1, 0xF0, 0x56, 0x63, 1248 /* MAC SA */ 1249 0x7A, 0x0D, 0x46, 0xDF, 0x99, 0x8D, 1250 /* MACsec EtherType */ 1251 0x88, 0xE5, 1252 /* TCI and AN */ 1253 0x22, 1254 /* SL */ 1255 0x2A, 1256 /* PN */ 1257 0xB2, 0xC2, 0x84, 0x65, 1258 /* SCI */ 1259 0x12, 0x15, 0x35, 0x24, 0xC0, 0x89, 0x5E, 0x81, 1260 /* Secure Data */ 1261 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1262 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1263 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1264 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1265 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1266 0x00, 0x01, 1267 /* ICV */ 1268 0x17, 0xFE, 0x19, 0x81, 0xEB, 0xDD, 0x4A, 0xFC, 1269 0x50, 0x62, 0x69, 0x7E, 0x8B, 0xAA, 0x0C, 0x23, 1270 }, 1271 .len = 86, 1272 }, 1273 }, 1274 /* gcm_256_xpn_54B_integrity */ 1275 { 1276 .test_idx = 4, 1277 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_256, 1278 .ssci = 0x7A30C118, 1279 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 1280 .salt = { 1281 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 0x86, 0xA2, 1282 0x1C, 0x66, 0xFA, 0x6D, 1283 }, 1284 .sa_key = { 1285 .data = { 1286 0xE3, 0xC0, 0x8A, 0x8F, 0x06, 0xC6, 0xE3, 0xAD, 1287 0x95, 0xA7, 0x05, 0x57, 0xB2, 0x3F, 0x75, 0x48, 1288 0x3C, 0xE3, 0x30, 0x21, 0xA9, 0xC7, 0x2B, 0x70, 1289 0x25, 0x66, 0x62, 0x04, 0xC6, 0x9C, 0x0B, 0x72, 1290 }, 1291 .len = 32, 1292 }, 1293 .plain_pkt = { 1294 .data = {/* MAC DA */ 1295 0xD6, 0x09, 0xB1, 0xF0, 0x56, 0x63, 1296 /* MAC SA */ 1297 0x7A, 0x0D, 0x46, 0xDF, 0x99, 0x8D, 1298 /* User Data */ 1299 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1300 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1301 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1302 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1303 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1304 0x00, 0x01, 1305 }, 1306 .len = 54, 1307 }, 1308 .secure_pkt = { 1309 .data = {/* MAC DA */ 1310 0xD6, 0x09, 0xB1, 0xF0, 0x56, 0x63, 1311 /* MAC SA */ 1312 0x7A, 0x0D, 0x46, 0xDF, 0x99, 0x8D, 1313 /* MACsec EtherType */ 1314 0x88, 0xE5, 1315 /* TCI and AN */ 1316 0x22, 1317 /* SL */ 1318 0x2A, 1319 /* PN */ 1320 0xB2, 0xC2, 0x84, 0x65, 1321 /* SCI */ 1322 0x12, 0x15, 0x35, 0x24, 0xC0, 0x89, 0x5E, 0x81, 1323 /* Secure Data */ 1324 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1325 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1326 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1327 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1328 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1329 0x00, 0x01, 1330 /* ICV */ 1331 0x4D, 0xBD, 0x2F, 0x6A, 0x75, 0x4A, 0x6C, 0xF7, 1332 0x28, 0xCC, 0x12, 0x9B, 0xA6, 0x93, 0x15, 0x77, 1333 }, 1334 .len = 86, 1335 }, 1336 }, 1337 /* gcm_128_60B_integrity */ 1338 { 1339 .test_idx = 5, 1340 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 1341 .ssci = 0, 1342 .xpn = 0, /* Most significant 32 bits */ 1343 .salt = {0}, 1344 .sa_key = { 1345 .data = { 1346 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 1347 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82, 1348 }, 1349 .len = 16, 1350 }, 1351 .plain_pkt = { 1352 .data = {/* MAC DA */ 1353 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 1354 /* MAC SA */ 1355 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 1356 /* User Data */ 1357 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1358 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1359 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1360 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1361 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1362 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x00, 0x03, 1363 }, 1364 .len = 60, 1365 }, 1366 .secure_pkt = { 1367 .data = {/* MAC DA */ 1368 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 1369 /* MAC SA */ 1370 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 1371 /* MACsec EtherType */ 1372 0x88, 0xE5, 1373 /* TCI and AN */ 1374 0x40, 1375 /* SL */ 1376 0x00, 1377 /* PN */ 1378 0x76, 0xD4, 0x57, 0xED, 1379 /* SCI */ 1380 /* Secure Data */ 1381 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1382 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1383 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1384 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1385 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1386 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x00, 0x03, 1387 /* ICV */ 1388 0x0C, 0x01, 0x7B, 0xC7, 0x3B, 0x22, 0x7D, 0xFC, 1389 0xC9, 0xBA, 0xFA, 0x1C, 0x41, 0xAC, 0xC3, 0x53, 1390 }, 1391 .len = 84, 1392 }, 1393 }, 1394 /* gcm_256_60B_integrity */ 1395 { 1396 .test_idx = 6, 1397 .alg = RTE_SECURITY_MACSEC_ALG_GCM_256, 1398 .ssci = 0, 1399 .xpn = 0, /* Most significant 32 bits */ 1400 .salt = {0}, 1401 .sa_key = { 1402 .data = { 1403 0x69, 0x1D, 0x3E, 0xE9, 0x09, 0xD7, 0xF5, 0x41, 1404 0x67, 0xFD, 0x1C, 0xA0, 0xB5, 0xD7, 0x69, 0x08, 1405 0x1F, 0x2B, 0xDE, 0x1A, 0xEE, 0x65, 0x5F, 0xDB, 1406 0xAB, 0x80, 0xBD, 0x52, 0x95, 0xAE, 0x6B, 0xE7, 1407 }, 1408 .len = 32, 1409 }, 1410 .plain_pkt = { 1411 .data = {/* MAC DA */ 1412 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 1413 /* MAC SA */ 1414 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 1415 /* User Data */ 1416 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1417 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1418 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1419 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1420 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1421 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x00, 0x03, 1422 }, 1423 .len = 60, 1424 }, 1425 .secure_pkt = { 1426 .data = {/* MAC DA */ 1427 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 1428 /* MAC SA */ 1429 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 1430 /* MACsec EtherType */ 1431 0x88, 0xE5, 1432 /* TCI and AN */ 1433 0x40, 1434 /* SL */ 1435 0x00, 1436 /* PN */ 1437 0x76, 0xD4, 0x57, 0xED, 1438 /* SCI */ 1439 /* Secure Data */ 1440 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1441 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1442 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1443 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1444 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1445 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x00, 0x03, 1446 /* ICV */ 1447 0x35, 0x21, 0x7C, 0x77, 0x4B, 0xBC, 0x31, 0xB6, 1448 0x31, 0x66, 0xBC, 0xF9, 0xD4, 0xAB, 0xED, 0x07, 1449 }, 1450 .len = 84, 1451 }, 1452 }, 1453 /* gcm_128_xpn_60B_integrity */ 1454 { 1455 .test_idx = 7, 1456 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_128, 1457 .ssci = 0x7A30C118, 1458 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 1459 .salt = { 1460 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 0x86, 0xA2, 1461 0x1C, 0x66, 0xFA, 0x6D, 1462 }, 1463 .sa_key = { 1464 .data = { 1465 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 1466 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82, 1467 }, 1468 .len = 16, 1469 }, 1470 .plain_pkt = { 1471 .data = {/* MAC DA */ 1472 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 1473 /* MAC SA */ 1474 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 1475 /* User Data */ 1476 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1477 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1478 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1479 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1480 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1481 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x00, 0x03, 1482 }, 1483 .len = 60, 1484 }, 1485 .secure_pkt = { 1486 .data = {/* MAC DA */ 1487 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 1488 /* MAC SA */ 1489 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 1490 /* MACsec EtherType */ 1491 0x88, 0xE5, 1492 /* TCI and AN */ 1493 0x40, 1494 /* SL */ 1495 0x00, 1496 /* PN */ 1497 0x76, 0xD4, 0x57, 0xED, 1498 /* SCI */ 1499 /* Secure Data */ 1500 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1501 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1502 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1503 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1504 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1505 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x00, 0x03, 1506 /* ICV */ 1507 0xAB, 0xC4, 0x06, 0x85, 0xA3, 0xCF, 0x91, 0x1D, 1508 0x37, 0x87, 0xE4, 0x9D, 0xB6, 0xA7, 0x26, 0x5E, 1509 }, 1510 .len = 84, 1511 }, 1512 }, 1513 /* gcm_256_xpn_60B_integrity */ 1514 { 1515 .test_idx = 8, 1516 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_256, 1517 .ssci = 0x7A30C118, 1518 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 1519 .salt = { 1520 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 0x86, 0xA2, 1521 0x1C, 0x66, 0xFA, 0x6D, 1522 }, 1523 .sa_key = { 1524 .data = { 1525 0x69, 0x1D, 0x3E, 0xE9, 0x09, 0xD7, 0xF5, 0x41, 1526 0x67, 0xFD, 0x1C, 0xA0, 0xB5, 0xD7, 0x69, 0x08, 1527 0x1F, 0x2B, 0xDE, 0x1A, 0xEE, 0x65, 0x5F, 0xDB, 1528 0xAB, 0x80, 0xBD, 0x52, 0x95, 0xAE, 0x6B, 0xE7, 1529 }, 1530 .len = 32, 1531 }, 1532 .plain_pkt = { 1533 .data = {/* MAC DA */ 1534 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 1535 /* MAC SA */ 1536 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 1537 /* User Data */ 1538 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1539 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1540 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1541 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1542 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1543 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x00, 0x03, 1544 }, 1545 .len = 60, 1546 }, 1547 .secure_pkt = { 1548 .data = {/* MAC DA */ 1549 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 1550 /* MAC SA */ 1551 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 1552 /* MACsec EtherType */ 1553 0x88, 0xE5, 1554 /* TCI and AN */ 1555 0x40, 1556 /* SL */ 1557 0x00, 1558 /* PN */ 1559 0x76, 0xD4, 0x57, 0xED, 1560 /* SCI */ 1561 /* Secure Data */ 1562 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1563 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1564 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1565 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1566 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1567 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x00, 0x03, 1568 /* ICV */ 1569 0xAC, 0x21, 0x95, 0x7B, 0x83, 0x12, 0xAB, 0x3C, 1570 0x99, 0xAB, 0x46, 0x84, 0x98, 0x79, 0xC3, 0xF3, 1571 }, 1572 .len = 84, 1573 }, 1574 }, 1575 /* gcm_128_65B_integrity */ 1576 { 1577 .test_idx = 9, 1578 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 1579 .ssci = 0, 1580 .xpn = 0, /* Most significant 32 bits */ 1581 .salt = {0}, 1582 .sa_key = { 1583 .data = { 1584 0x01, 0x3F, 0xE0, 0x0B, 0x5F, 0x11, 0xBE, 0x7F, 1585 0x86, 0x6D, 0x0C, 0xBB, 0xC5, 0x5A, 0x7A, 0x90, 1586 }, 1587 .len = 16, 1588 }, 1589 .plain_pkt = { 1590 .data = {/* MAC DA */ 1591 0x84, 0xC5, 0xD5, 0x13, 0xD2, 0xAA, 1592 /* MAC SA */ 1593 0xF6, 0xE5, 0xBB, 0xD2, 0x72, 0x77, 1594 /* User Data */ 1595 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1596 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1597 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1598 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1599 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1600 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 1601 0x3D, 0x3E, 0x3F, 0x00, 0x05, 1602 }, 1603 .len = 65, 1604 }, 1605 .secure_pkt = { 1606 .data = {/* MAC DA */ 1607 0x84, 0xC5, 0xD5, 0x13, 0xD2, 0xAA, 1608 /* MAC SA */ 1609 0xF6, 0xE5, 0xBB, 0xD2, 0x72, 0x77, 1610 /* MACsec EtherType */ 1611 0x88, 0xE5, 1612 /* TCI and AN */ 1613 0x23, 1614 /* SL */ 1615 0x00, 1616 /* PN */ 1617 0x89, 0x32, 0xD6, 0x12, 1618 /* SCI */ 1619 0x7C, 0xFD, 0xE9, 0xF9, 0xE3, 0x37, 0x24, 0xC6, 1620 /* Secure Data */ 1621 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1622 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1623 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1624 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1625 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1626 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 1627 0x3D, 0x3E, 0x3F, 0x00, 0x05, 1628 /* ICV */ 1629 0x21, 0x78, 0x67, 0xE5, 0x0C, 0x2D, 0xAD, 0x74, 1630 0xC2, 0x8C, 0x3B, 0x50, 0xAB, 0xDF, 0x69, 0x5A, 1631 }, 1632 .len = 97, 1633 }, 1634 }, 1635 /* gcm_256_65B_integrity */ 1636 { 1637 .test_idx = 10, 1638 .alg = RTE_SECURITY_MACSEC_ALG_GCM_256, 1639 .ssci = 0, 1640 .xpn = 0, /* Most significant 32 bits */ 1641 .salt = {0}, 1642 .sa_key = { 1643 .data = { 1644 0x83, 0xC0, 0x93, 0xB5, 0x8D, 0xE7, 0xFF, 0xE1, 1645 0xC0, 0xDA, 0x92, 0x6A, 0xC4, 0x3F, 0xB3, 0x60, 1646 0x9A, 0xC1, 0xC8, 0x0F, 0xEE, 0x1B, 0x62, 0x44, 1647 0x97, 0xEF, 0x94, 0x2E, 0x2F, 0x79, 0xA8, 0x23, 1648 }, 1649 .len = 32, 1650 }, 1651 .plain_pkt = { 1652 .data = {/* MAC DA */ 1653 0x84, 0xC5, 0xD5, 0x13, 0xD2, 0xAA, 1654 /* MAC SA */ 1655 0xF6, 0xE5, 0xBB, 0xD2, 0x72, 0x77, 1656 /* User Data */ 1657 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1658 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1659 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1660 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1661 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1662 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 1663 0x3D, 0x3E, 0x3F, 0x00, 0x05, 1664 }, 1665 .len = 65, 1666 }, 1667 .secure_pkt = { 1668 .data = {/* MAC DA */ 1669 0x84, 0xC5, 0xD5, 0x13, 0xD2, 0xAA, 1670 /* MAC SA */ 1671 0xF6, 0xE5, 0xBB, 0xD2, 0x72, 0x77, 1672 /* MACsec EtherType */ 1673 0x88, 0xE5, 1674 /* TCI and AN */ 1675 0x23, 1676 /* SL */ 1677 0x00, 1678 /* PN */ 1679 0x89, 0x32, 0xD6, 0x12, 1680 /* SCI */ 1681 0x7C, 0xFD, 0xE9, 0xF9, 0xE3, 0x37, 0x24, 0xC6, 1682 /* Secure Data */ 1683 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1684 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1685 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1686 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1687 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1688 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 1689 0x3D, 0x3E, 0x3F, 0x00, 0x05, 1690 /* ICV */ 1691 0x6E, 0xE1, 0x60, 0xE8, 0xFA, 0xEC, 0xA4, 0xB3, 1692 0x6C, 0x86, 0xB2, 0x34, 0x92, 0x0C, 0xA9, 0x75, 1693 }, 1694 .len = 97, 1695 }, 1696 }, 1697 /* gcm_128_xpn_65B_integrity */ 1698 { 1699 .test_idx = 11, 1700 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_128, 1701 .ssci = 0x7A30C118, 1702 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 1703 .salt = { 1704 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 0x86, 0xA2, 1705 0x1C, 0x66, 0xFA, 0x6D, 1706 }, 1707 .sa_key = { 1708 .data = { 1709 0x01, 0x3F, 0xE0, 0x0B, 0x5F, 0x11, 0xBE, 0x7F, 1710 0x86, 0x6D, 0x0C, 0xBB, 0xC5, 0x5A, 0x7A, 0x90, 1711 }, 1712 .len = 16, 1713 }, 1714 .plain_pkt = { 1715 .data = {/* MAC DA */ 1716 0x84, 0xC5, 0xD5, 0x13, 0xD2, 0xAA, 1717 /* MAC SA */ 1718 0xF6, 0xE5, 0xBB, 0xD2, 0x72, 0x77, 1719 /* User Data */ 1720 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1721 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1722 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1723 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1724 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1725 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 1726 0x3D, 0x3E, 0x3F, 0x00, 0x05, 1727 }, 1728 .len = 65, 1729 }, 1730 .secure_pkt = { 1731 .data = {/* MAC DA */ 1732 0x84, 0xC5, 0xD5, 0x13, 0xD2, 0xAA, 1733 /* MAC SA */ 1734 0xF6, 0xE5, 0xBB, 0xD2, 0x72, 0x77, 1735 /* MACsec EtherType */ 1736 0x88, 0xE5, 1737 /* TCI and AN */ 1738 0x23, 1739 /* SL */ 1740 0x00, 1741 /* PN */ 1742 0x89, 0x32, 0xD6, 0x12, 1743 /* SCI */ 1744 0x7C, 0xFD, 0xE9, 0xF9, 0xE3, 0x37, 0x24, 0xC6, 1745 /* Secure Data */ 1746 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1747 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1748 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1749 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1750 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1751 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 1752 0x3D, 0x3E, 0x3F, 0x00, 0x05, 1753 /* ICV */ 1754 0x67, 0x85, 0x59, 0xB7, 0xE5, 0x2D, 0xB0, 0x06, 1755 0x82, 0xE3, 0xB8, 0x30, 0x34, 0xCE, 0xBE, 0x59, 1756 }, 1757 .len = 97, 1758 }, 1759 }, 1760 /* gcm_256_xpn_65B_integrity */ 1761 { 1762 .test_idx = 12, 1763 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_256, 1764 .ssci = 0x7A30C118, 1765 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 1766 .salt = { 1767 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 0x86, 0xA2, 1768 0x1C, 0x66, 0xFA, 0x6D, 1769 }, 1770 .sa_key = { 1771 .data = { 1772 0x83, 0xC0, 0x93, 0xB5, 0x8D, 0xE7, 0xFF, 0xE1, 1773 0xC0, 0xDA, 0x92, 0x6A, 0xC4, 0x3F, 0xB3, 0x60, 1774 0x9A, 0xC1, 0xC8, 0x0F, 0xEE, 0x1B, 0x62, 0x44, 1775 0x97, 0xEF, 0x94, 0x2E, 0x2F, 0x79, 0xA8, 0x23, 1776 }, 1777 .len = 32, 1778 }, 1779 .plain_pkt = { 1780 .data = {/* MAC DA */ 1781 0x84, 0xC5, 0xD5, 0x13, 0xD2, 0xAA, 1782 /* MAC SA */ 1783 0xF6, 0xE5, 0xBB, 0xD2, 0x72, 0x77, 1784 /* User Data */ 1785 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1786 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1787 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1788 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1789 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1790 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 1791 0x3D, 0x3E, 0x3F, 0x00, 0x05, 1792 }, 1793 .len = 65, 1794 }, 1795 .secure_pkt = { 1796 .data = {/* MAC DA */ 1797 0x84, 0xC5, 0xD5, 0x13, 0xD2, 0xAA, 1798 /* MAC SA */ 1799 0xF6, 0xE5, 0xBB, 0xD2, 0x72, 0x77, 1800 /* MACsec EtherType */ 1801 0x88, 0xE5, 1802 /* TCI and AN */ 1803 0x23, 1804 /* SL */ 1805 0x00, 1806 /* PN */ 1807 0x89, 0x32, 0xD6, 0x12, 1808 /* SCI */ 1809 0x7C, 0xFD, 0xE9, 0xF9, 0xE3, 0x37, 0x24, 0xC6, 1810 /* Secure Data */ 1811 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1812 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1813 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1814 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1815 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1816 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 1817 0x3D, 0x3E, 0x3F, 0x00, 0x05, 1818 /* ICV */ 1819 0x84, 0xBA, 0xC8, 0xE5, 0x3D, 0x1E, 0xA3, 0x55, 1820 0xA5, 0xC7, 0xD3, 0x34, 0x84, 0x0A, 0xE9, 0x62, 1821 }, 1822 .len = 97, 1823 }, 1824 }, 1825 /* gcm_128_79B_integrity */ 1826 { 1827 .test_idx = 13, 1828 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 1829 .ssci = 0, 1830 .xpn = 0, /* Most significant 32 bits */ 1831 .salt = {0}, 1832 .sa_key = { 1833 .data = { 1834 0x88, 0xEE, 0x08, 0x7F, 0xD9, 0x5D, 0xA9, 0xFB, 1835 0xF6, 0x72, 0x5A, 0xA9, 0xD7, 0x57, 0xB0, 0xCD, 1836 }, 1837 .len = 16, 1838 }, 1839 .plain_pkt = { 1840 .data = {/* MAC DA */ 1841 0x68, 0xF2, 0xE7, 0x76, 0x96, 0xCE, 1842 /* MAC SA */ 1843 0x7A, 0xE8, 0xE2, 0xCA, 0x4E, 0xC5, 1844 /* User Data */ 1845 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1846 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1847 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1848 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1849 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1850 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 1851 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 1852 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 1853 0x4D, 0x00, 0x07, 1854 }, 1855 .len = 79, 1856 }, 1857 .secure_pkt = { 1858 .data = {/* MAC DA */ 1859 0x68, 0xF2, 0xE7, 0x76, 0x96, 0xCE, 1860 /* MAC SA */ 1861 0x7A, 0xE8, 0xE2, 0xCA, 0x4E, 0xC5, 1862 /* MACsec EtherType */ 1863 0x88, 0xE5, 1864 /* TCI and AN */ 1865 0x41, 1866 /* SL */ 1867 0x00, 1868 /* PN */ 1869 0x2E, 0x58, 0x49, 0x5C, 1870 /* SCI */ 1871 /* Secure Data */ 1872 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1873 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1874 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1875 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1876 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1877 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 1878 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 1879 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 1880 0x4D, 0x00, 0x07, 1881 /* ICV */ 1882 0x07, 0x92, 0x2B, 0x8E, 0xBC, 0xF1, 0x0B, 0xB2, 1883 0x29, 0x75, 0x88, 0xCA, 0x4C, 0x61, 0x45, 0x23, 1884 }, 1885 .len = 103, 1886 }, 1887 }, 1888 /* gcm_256_79B_integrity */ 1889 { 1890 .test_idx = 14, 1891 .alg = RTE_SECURITY_MACSEC_ALG_GCM_256, 1892 .ssci = 0, 1893 .xpn = 0, /* Most significant 32 bits */ 1894 .salt = {0}, 1895 .sa_key = { 1896 .data = { 1897 0x4C, 0x97, 0x3D, 0xBC, 0x73, 0x64, 0x62, 0x16, 1898 0x74, 0xF8, 0xB5, 0xB8, 0x9E, 0x5C, 0x15, 0x51, 1899 0x1F, 0xCE, 0xD9, 0x21, 0x64, 0x90, 0xFB, 0x1C, 1900 0x1A, 0x2C, 0xAA, 0x0F, 0xFE, 0x04, 0x07, 0xE5, 1901 }, 1902 .len = 32, 1903 }, 1904 .plain_pkt = { 1905 .data = {/* MAC DA */ 1906 0x68, 0xF2, 0xE7, 0x76, 0x96, 0xCE, 1907 /* MAC SA */ 1908 0x7A, 0xE8, 0xE2, 0xCA, 0x4E, 0xC5, 1909 /* User Data */ 1910 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1911 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1912 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1913 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1914 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1915 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 1916 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 1917 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 1918 0x4D, 0x00, 0x07, 1919 }, 1920 .len = 79, 1921 }, 1922 .secure_pkt = { 1923 .data = {/* MAC DA */ 1924 0x68, 0xF2, 0xE7, 0x76, 0x96, 0xCE, 1925 /* MAC SA */ 1926 0x7A, 0xE8, 0xE2, 0xCA, 0x4E, 0xC5, 1927 /* MACsec EtherType */ 1928 0x88, 0xE5, 1929 /* TCI and AN */ 1930 0x41, 1931 /* SL */ 1932 0x00, 1933 /* PN */ 1934 0x2E, 0x58, 0x49, 0x5C, 1935 /* SCI */ 1936 /* Secure Data */ 1937 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1938 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1939 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1940 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1941 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1942 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 1943 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 1944 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 1945 0x4D, 0x00, 0x07, 1946 /* ICV */ 1947 0x00, 0xBD, 0xA1, 0xB7, 0xE8, 0x76, 0x08, 0xBC, 1948 0xBF, 0x47, 0x0F, 0x12, 0x15, 0x7F, 0x4C, 0x07, 1949 }, 1950 .len = 103, 1951 }, 1952 }, 1953 /* gcm_128_xpn_79B_integrity */ 1954 { 1955 .test_idx = 15, 1956 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_128, 1957 .ssci = 0x7A30C118, 1958 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 1959 .salt = { 1960 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 0x86, 0xA2, 1961 0x1C, 0x66, 0xFA, 0x6D, 1962 }, 1963 .sa_key = { 1964 .data = { 1965 0x88, 0xEE, 0x08, 0x7F, 0xD9, 0x5D, 0xA9, 0xFB, 1966 0xF6, 0x72, 0x5A, 0xA9, 0xD7, 0x57, 0xB0, 0xCD, 1967 }, 1968 .len = 16, 1969 }, 1970 .plain_pkt = { 1971 .data = {/* MAC DA */ 1972 0x68, 0xF2, 0xE7, 0x76, 0x96, 0xCE, 1973 /* MAC SA */ 1974 0x7A, 0xE8, 0xE2, 0xCA, 0x4E, 0xC5, 1975 /* User Data */ 1976 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 1977 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 1978 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 1979 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 1980 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 1981 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 1982 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 1983 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 1984 0x4D, 0x00, 0x07, 1985 }, 1986 .len = 79, 1987 }, 1988 .secure_pkt = { 1989 .data = {/* MAC DA */ 1990 0x68, 0xF2, 0xE7, 0x76, 0x96, 0xCE, 1991 /* MAC SA */ 1992 0x7A, 0xE8, 0xE2, 0xCA, 0x4E, 0xC5, 1993 /* MACsec EtherType */ 1994 0x88, 0xE5, 1995 /* TCI and AN */ 1996 0x41, 1997 /* SL */ 1998 0x00, 1999 /* PN */ 2000 0x2E, 0x58, 0x49, 0x5C, 2001 /* SCI */ 2002 /* Secure Data */ 2003 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 2004 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 2005 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 2006 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 2007 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 2008 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 2009 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 2010 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 2011 0x4D, 0x00, 0x07, 2012 /* ICV */ 2013 0xD0, 0xDC, 0x89, 0x6D, 0xC8, 0x37, 0x98, 0xA7, 2014 0x9F, 0x3C, 0x5A, 0x95, 0xBA, 0x3C, 0xDF, 0x9A, 2015 }, 2016 .len = 103, 2017 }, 2018 }, 2019 /* gcm_256_xpn_79B_integrity */ 2020 { 2021 .test_idx = 16, 2022 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_256, 2023 .ssci = 0x7A30C118, 2024 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 2025 .salt = { 2026 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 0x86, 0xA2, 2027 0x1C, 0x66, 0xFA, 0x6D, 2028 }, 2029 .sa_key = { 2030 .data = { 2031 0x4C, 0x97, 0x3D, 0xBC, 0x73, 0x64, 0x62, 0x16, 2032 0x74, 0xF8, 0xB5, 0xB8, 0x9E, 0x5C, 0x15, 0x51, 2033 0x1F, 0xCE, 0xD9, 0x21, 0x64, 0x90, 0xFB, 0x1C, 2034 0x1A, 0x2C, 0xAA, 0x0F, 0xFE, 0x04, 0x07, 0xE5, 2035 }, 2036 .len = 32, 2037 }, 2038 .plain_pkt = { 2039 .data = {/* MAC DA */ 2040 0x68, 0xF2, 0xE7, 0x76, 0x96, 0xCE, 2041 /* MAC SA */ 2042 0x7A, 0xE8, 0xE2, 0xCA, 0x4E, 0xC5, 2043 /* User Data */ 2044 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 2045 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 2046 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 2047 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 2048 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 2049 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 2050 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 2051 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 2052 0x4D, 0x00, 0x07, 2053 }, 2054 .len = 79, 2055 }, 2056 .secure_pkt = { 2057 .data = {/* MAC DA */ 2058 0x68, 0xF2, 0xE7, 0x76, 0x96, 0xCE, 2059 /* MAC SA */ 2060 0x7A, 0xE8, 0xE2, 0xCA, 0x4E, 0xC5, 2061 /* MACsec EtherType */ 2062 0x88, 0xE5, 2063 /* TCI and AN */ 2064 0x41, 2065 /* SL */ 2066 0x00, 2067 /* PN */ 2068 0x2E, 0x58, 0x49, 0x5C, 2069 /* SCI */ 2070 /* Secure Data */ 2071 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 2072 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 2073 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 2074 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 2075 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 2076 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 2077 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 2078 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 2079 0x4D, 0x00, 0x07, 2080 /* ICV */ 2081 0x04, 0x24, 0x9A, 0x20, 0x8A, 0x65, 0xB9, 0x6B, 2082 0x3F, 0x32, 0x63, 0x00, 0x4C, 0xFD, 0x86, 0x7D, 2083 }, 2084 .len = 103, 2085 }, 2086 }, 2087 }; 2088 2089 static const struct mcs_test_vector list_mcs_err_cipher_vectors[] = { 2090 /* gcm_128_64B_cipher */ 2091 { 2092 .test_idx = 0, 2093 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 2094 .ssci = 0x0, 2095 .salt = {0}, 2096 .sa_key = { 2097 .data = { 2098 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 2099 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 2100 }, 2101 .len = 16, 2102 }, 2103 .plain_pkt = { 2104 .data = {/* MAC DA */ 2105 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2106 /* MAC SA */ 2107 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2108 /* User Data */ 2109 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 2110 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 2111 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 2112 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 2113 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 2114 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 2115 0x43, 0x44, 0x45, 0x46, 2116 }, 2117 .len = 64, 2118 }, 2119 .secure_pkt = { 2120 .data = {/* MAC DA */ 2121 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2122 /* MAC SA */ 2123 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2124 /* MACsec EtherType */ 2125 0x88, 0xE5, 2126 /* TCI and AN */ 2127 0x2C, 2128 /* SL */ 2129 0x0, 2130 /* PN */ 2131 0x0, 0x0, 0x0, 0x2, 2132 /* SCI */ 2133 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 2134 /* Secure Data */ 2135 0x38, 0x38, 0x97, 0x44, 0xA2, 0x6D, 0x71, 0x3D, 2136 0x14, 0x27, 0xC7, 0x3E, 0x02, 0x96, 0x81, 0xAD, 2137 0x47, 0x82, 0x2A, 0xCF, 0x19, 0x79, 0x12, 0x49, 2138 0x0F, 0x93, 0x5A, 0x32, 0x43, 0x79, 0xEF, 0x9D, 2139 0x70, 0xF8, 0xA9, 0xBE, 0x3D, 0x00, 0x5D, 0x22, 2140 0xDA, 0x87, 0x3D, 0xC1, 0xBE, 0x1B, 0x13, 0xD9, 2141 0x99, 0xDB, 0xF1, 0xC8, 2142 /* ICV */ 2143 0x4B, 0xC4, 0xF8, 0xC6, 0x09, 0x78, 0xB9, 0xBB, 2144 0x5D, 0xC0, 0x04, 0xF3, 0x20, 0x7D, 0x14, 0x87, 2145 }, 2146 .len = 96, 2147 } 2148 } 2149 }; 2150 2151 static const struct mcs_test_vector list_mcs_untagged_cipher_vectors[] = { 2152 { 2153 .test_idx = 0, 2154 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 2155 .ssci = 0x0, 2156 .salt = {0}, 2157 .sa_key = { 2158 .data = { 2159 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 2160 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 2161 }, 2162 .len = 16, 2163 }, 2164 .plain_pkt = { 2165 .data = {/* MAC DA */ 2166 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2167 /* MAC SA */ 2168 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2169 /* User Data */ 2170 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 2171 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 2172 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 2173 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 2174 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 2175 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 2176 0x43, 0x44, 0x45, 0x46, 2177 }, 2178 .len = 64, 2179 }, 2180 .secure_pkt = { 2181 .data = {/* MAC DA */ 2182 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2183 /* MAC SA */ 2184 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2185 /* Wrong MACsec EtherType */ 2186 0x88, 0xD7, 2187 /* TCI and AN */ 2188 0x2C, 2189 /* SL */ 2190 0x0, 2191 /* PN */ 2192 0x0, 0x0, 0x0, 0x2, 2193 /* SCI */ 2194 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 2195 /* Secure Data */ 2196 0x39, 0x38, 0x97, 0x44, 0xA2, 0x6D, 0x71, 0x3D, 2197 0x14, 0x27, 0xC7, 0x3E, 0x02, 0x96, 0x81, 0xAD, 2198 0x47, 0x82, 0x2A, 0xCF, 0x19, 0x79, 0x12, 0x49, 2199 0x0F, 0x93, 0x5A, 0x32, 0x43, 0x79, 0xEF, 0x9D, 2200 0x70, 0xF8, 0xA9, 0xBE, 0x3D, 0x00, 0x5D, 0x22, 2201 0xDA, 0x87, 0x3D, 0xC1, 0xBE, 0x1B, 0x13, 0xD9, 2202 0x99, 0xDB, 0xF1, 0xC8, 2203 /* ICV */ 2204 0x4B, 0xC4, 0xF8, 0xC6, 0x09, 0x78, 0xB9, 0xBB, 2205 0x5D, 0xC0, 0x04, 0xF3, 0x20, 0x7D, 0x14, 0x87, 2206 }, 2207 .len = 96, 2208 }, 2209 }, 2210 }; 2211 2212 static const struct mcs_test_vector list_mcs_bad_tag_vectors[] = { 2213 { 2214 .test_idx = 0, 2215 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 2216 .ssci = 0x0, 2217 .salt = {0}, 2218 .sa_key = { 2219 .data = { 2220 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 2221 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 2222 }, 2223 .len = 16, 2224 }, 2225 .plain_pkt = { 2226 .data = {/* MAC DA */ 2227 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2228 /* MAC SA */ 2229 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2230 /* User Data */ 2231 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 2232 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 2233 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 2234 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 2235 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 2236 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 2237 0x43, 0x44, 0x45, 0x46, 2238 }, 2239 .len = 64, 2240 }, 2241 .secure_pkt = { 2242 .data = {/* MAC DA */ 2243 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2244 /* MAC SA */ 2245 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2246 /* MACsec EtherType */ 2247 0x88, 0xE5, 2248 /* TCI{V = 1} and AN */ 2249 0xAC, 2250 /* SL */ 2251 0x0, 2252 /* PN */ 2253 0x0, 0x0, 0x0, 0x2, 2254 /* SCI */ 2255 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 2256 /* Secure Data */ 2257 0x39, 0x38, 0x97, 0x44, 0xA2, 0x6D, 0x71, 0x3D, 2258 0x14, 0x27, 0xC7, 0x3E, 0x02, 0x96, 0x81, 0xAD, 2259 0x47, 0x82, 0x2A, 0xCF, 0x19, 0x79, 0x12, 0x49, 2260 0x0F, 0x93, 0x5A, 0x32, 0x43, 0x79, 0xEF, 0x9D, 2261 0x70, 0xF8, 0xA9, 0xBE, 0x3D, 0x00, 0x5D, 0x22, 2262 0xDA, 0x87, 0x3D, 0xC1, 0xBE, 0x1B, 0x13, 0xD9, 2263 0x99, 0xDB, 0xF1, 0xC8, 2264 /* ICV */ 2265 0x4B, 0xC4, 0xF8, 0xC6, 0x09, 0x78, 0xB9, 0xBB, 2266 0x5D, 0xC0, 0x04, 0xF3, 0x20, 0x7D, 0x14, 0x87, 2267 }, 2268 .len = 96, 2269 }, 2270 }, 2271 { 2272 .test_idx = 1, 2273 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 2274 .ssci = 0x0, 2275 .salt = {0}, 2276 .sa_key = { 2277 .data = { 2278 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 2279 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 2280 }, 2281 .len = 16, 2282 }, 2283 .plain_pkt = { 2284 .data = {/* MAC DA */ 2285 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2286 /* MAC SA */ 2287 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2288 /* User Data */ 2289 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 2290 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 2291 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 2292 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 2293 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 2294 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 2295 0x43, 0x44, 0x45, 0x46, 2296 }, 2297 .len = 64, 2298 }, 2299 .secure_pkt = { 2300 .data = {/* MAC DA */ 2301 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2302 /* MAC SA */ 2303 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2304 /* MACsec EtherType */ 2305 0x88, 0xE5, 2306 /* TCI{E,C = 2'b01} and AN */ 2307 0x24, 2308 /* SL */ 2309 0x0, 2310 /* PN */ 2311 0x0, 0x0, 0x0, 0x2, 2312 /* SCI */ 2313 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 2314 /* Secure Data */ 2315 0x39, 0x38, 0x97, 0x44, 0xA2, 0x6D, 0x71, 0x3D, 2316 0x14, 0x27, 0xC7, 0x3E, 0x02, 0x96, 0x81, 0xAD, 2317 0x47, 0x82, 0x2A, 0xCF, 0x19, 0x79, 0x12, 0x49, 2318 0x0F, 0x93, 0x5A, 0x32, 0x43, 0x79, 0xEF, 0x9D, 2319 0x70, 0xF8, 0xA9, 0xBE, 0x3D, 0x00, 0x5D, 0x22, 2320 0xDA, 0x87, 0x3D, 0xC1, 0xBE, 0x1B, 0x13, 0xD9, 2321 0x99, 0xDB, 0xF1, 0xC8, 2322 /* ICV */ 2323 0x4B, 0xC4, 0xF8, 0xC6, 0x09, 0x78, 0xB9, 0xBB, 2324 0x5D, 0xC0, 0x04, 0xF3, 0x20, 0x7D, 0x14, 0x87, 2325 }, 2326 .len = 96, 2327 }, 2328 }, 2329 { 2330 .test_idx = 2, 2331 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 2332 .ssci = 0x0, 2333 .salt = {0}, 2334 .sa_key = { 2335 .data = { 2336 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 2337 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 2338 }, 2339 .len = 16, 2340 }, 2341 .plain_pkt = { 2342 .data = {/* MAC DA */ 2343 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2344 /* MAC SA */ 2345 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2346 /* User Data */ 2347 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 2348 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 2349 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 2350 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 2351 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 2352 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 2353 0x43, 0x44, 0x45, 0x46, 2354 }, 2355 .len = 64, 2356 }, 2357 .secure_pkt = { 2358 .data = {/* MAC DA */ 2359 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2360 /* MAC SA */ 2361 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2362 /* MACsec EtherType */ 2363 0x88, 0xE5, 2364 /* TCI{ES = 1 && SC = 1} and AN */ 2365 0x6C, 2366 /* SL */ 2367 0x0, 2368 /* PN */ 2369 0x0, 0x0, 0x0, 0x2, 2370 /* SCI */ 2371 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 2372 /* Secure Data */ 2373 0x39, 0x38, 0x97, 0x44, 0xA2, 0x6D, 0x71, 0x3D, 2374 0x14, 0x27, 0xC7, 0x3E, 0x02, 0x96, 0x81, 0xAD, 2375 0x47, 0x82, 0x2A, 0xCF, 0x19, 0x79, 0x12, 0x49, 2376 0x0F, 0x93, 0x5A, 0x32, 0x43, 0x79, 0xEF, 0x9D, 2377 0x70, 0xF8, 0xA9, 0xBE, 0x3D, 0x00, 0x5D, 0x22, 2378 0xDA, 0x87, 0x3D, 0xC1, 0xBE, 0x1B, 0x13, 0xD9, 2379 0x99, 0xDB, 0xF1, 0xC8, 2380 /* ICV */ 2381 0x4B, 0xC4, 0xF8, 0xC6, 0x09, 0x78, 0xB9, 0xBB, 2382 0x5D, 0xC0, 0x04, 0xF3, 0x20, 0x7D, 0x14, 0x87, 2383 }, 2384 .len = 96, 2385 }, 2386 }, 2387 { 2388 .test_idx = 3, 2389 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 2390 .ssci = 0x0, 2391 .salt = {0}, 2392 .sa_key = { 2393 .data = { 2394 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 2395 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 2396 }, 2397 .len = 16, 2398 }, 2399 .plain_pkt = { 2400 .data = {/* MAC DA */ 2401 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2402 /* MAC SA */ 2403 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2404 /* User Data */ 2405 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 2406 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 2407 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 2408 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 2409 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 2410 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 2411 0x43, 0x44, 0x45, 0x46, 2412 }, 2413 .len = 64, 2414 }, 2415 .secure_pkt = { 2416 .data = {/* MAC DA */ 2417 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2418 /* MAC SA */ 2419 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2420 /* MACsec EtherType */ 2421 0x88, 0xE5, 2422 /* TCI{SCB = 1 && SC = 1} and AN */ 2423 0x3C, 2424 /* SL */ 2425 0x0, 2426 /* PN */ 2427 0x0, 0x0, 0x0, 0x2, 2428 /* SCI */ 2429 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 2430 /* Secure Data */ 2431 0x39, 0x38, 0x97, 0x44, 0xA2, 0x6D, 0x71, 0x3D, 2432 0x14, 0x27, 0xC7, 0x3E, 0x02, 0x96, 0x81, 0xAD, 2433 0x47, 0x82, 0x2A, 0xCF, 0x19, 0x79, 0x12, 0x49, 2434 0x0F, 0x93, 0x5A, 0x32, 0x43, 0x79, 0xEF, 0x9D, 2435 0x70, 0xF8, 0xA9, 0xBE, 0x3D, 0x00, 0x5D, 0x22, 2436 0xDA, 0x87, 0x3D, 0xC1, 0xBE, 0x1B, 0x13, 0xD9, 2437 0x99, 0xDB, 0xF1, 0xC8, 2438 /* ICV */ 2439 0x4B, 0xC4, 0xF8, 0xC6, 0x09, 0x78, 0xB9, 0xBB, 2440 0x5D, 0xC0, 0x04, 0xF3, 0x20, 0x7D, 0x14, 0x87, 2441 }, 2442 .len = 96, 2443 }, 2444 }, 2445 { 2446 .test_idx = 4, 2447 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 2448 .xpn = 0x0, /* Most significant 32 bits */ 2449 .ssci = 0x0, 2450 .salt = {0}, 2451 .sa_key = { 2452 .data = { 2453 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 2454 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 2455 }, 2456 .len = 16, 2457 }, 2458 .plain_pkt = { 2459 .data = {/* MAC DA */ 2460 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2461 /* MAC SA */ 2462 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2463 /* User Data */ 2464 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 2465 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 2466 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 2467 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 2468 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 2469 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 2470 0x43, 0x44, 0x45, 0x46, 2471 }, 2472 .len = 64, 2473 }, 2474 .secure_pkt = { 2475 .data = {/* MAC DA */ 2476 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2477 /* MAC SA */ 2478 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2479 /* MACsec EtherType */ 2480 0x88, 0xE5, 2481 /* TCI and AN */ 2482 0x2C, 2483 /* SL */ 2484 0x0, 2485 /* PN = 0 */ 2486 0x0, 0x0, 0x0, 0x0, 2487 /* SCI */ 2488 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 2489 /* Secure Data */ 2490 0x39, 0x38, 0x97, 0x44, 0xA2, 0x6D, 0x71, 0x3D, 2491 0x14, 0x27, 0xC7, 0x3E, 0x02, 0x96, 0x81, 0xAD, 2492 0x47, 0x82, 0x2A, 0xCF, 0x19, 0x79, 0x12, 0x49, 2493 0x0F, 0x93, 0x5A, 0x32, 0x43, 0x79, 0xEF, 0x9D, 2494 0x70, 0xF8, 0xA9, 0xBE, 0x3D, 0x00, 0x5D, 0x22, 2495 0xDA, 0x87, 0x3D, 0xC1, 0xBE, 0x1B, 0x13, 0xD9, 2496 0x99, 0xDB, 0xF1, 0xC8, 2497 /* ICV */ 2498 0x4B, 0xC4, 0xF8, 0xC6, 0x09, 0x78, 0xB9, 0xBB, 2499 0x5D, 0xC0, 0x04, 0xF3, 0x20, 0x7D, 0x14, 0x87, 2500 }, 2501 .len = 96, 2502 }, 2503 }, 2504 { 2505 .test_idx = 5, 2506 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 2507 .ssci = 0x0, 2508 .salt = {0}, 2509 .sa_key = { 2510 .data = { 2511 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 2512 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 2513 }, 2514 .len = 16, 2515 }, 2516 .plain_pkt = { 2517 .data = {/* MAC DA */ 2518 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2519 /* MAC SA */ 2520 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2521 /* User Data */ 2522 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 2523 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 2524 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 2525 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 2526 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 2527 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 2528 0x43, 0x44, 0x45, 0x46, 2529 }, 2530 .len = 64, 2531 }, 2532 .secure_pkt = { 2533 .data = {/* MAC DA */ 2534 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2535 /* MAC SA */ 2536 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2537 /* MACsec EtherType */ 2538 0x88, 0xE5, 2539 /* TCI and AN */ 2540 0x2C, 2541 /* SL */ 2542 0x80, 2543 /* PN = 0 */ 2544 0x0, 0x0, 0x0, 0x2, 2545 /* SCI */ 2546 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 2547 /* Secure Data */ 2548 0x39, 0x38, 0x97, 0x44, 0xA2, 0x6D, 0x71, 0x3D, 2549 0x14, 0x27, 0xC7, 0x3E, 0x02, 0x96, 0x81, 0xAD, 2550 0x47, 0x82, 0x2A, 0xCF, 0x19, 0x79, 0x12, 0x49, 2551 0x0F, 0x93, 0x5A, 0x32, 0x43, 0x79, 0xEF, 0x9D, 2552 0x70, 0xF8, 0xA9, 0xBE, 0x3D, 0x00, 0x5D, 0x22, 2553 0xDA, 0x87, 0x3D, 0xC1, 0xBE, 0x1B, 0x13, 0xD9, 2554 0x99, 0xDB, 0xF1, 0xC8, 2555 /* ICV */ 2556 0x4B, 0xC4, 0xF8, 0xC6, 0x09, 0x78, 0xB9, 0xBB, 2557 0x5D, 0xC0, 0x04, 0xF3, 0x20, 0x7D, 0x14, 0x87, 2558 }, 2559 .len = 96, 2560 }, 2561 }, 2562 }; 2563 2564 #define MCS_MULTI_FLOW_TD_KEY_SZ 16 2565 #define MCS_MULTI_FLOW_TD_PLAIN_DATA_SZ 42 2566 #define MCS_MULTI_FLOW_TD_SECURE_DATA_SZ 66 2567 #define MCS_MULTI_FLOW_TD_KEY_SZ 16 2568 #define MCS_MAX_FLOWS 63 2569 2570 uint8_t sa_key[MCS_MULTI_FLOW_TD_KEY_SZ] = { 2571 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 2572 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82, 2573 }; 2574 2575 uint8_t eth_addrs[MCS_MAX_FLOWS][2 * RTE_ETHER_ADDR_LEN] = { 2576 {0xE2, 0x00, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2577 {0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2578 {0xE2, 0x02, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2579 {0xE2, 0x03, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2580 {0xE2, 0x04, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2581 {0xE2, 0x05, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2582 {0xE2, 0x06, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2583 {0xE2, 0x07, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2584 {0xE2, 0x08, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2585 {0xE2, 0x09, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2586 {0xE2, 0x0A, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2587 {0xE2, 0x0B, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2588 {0xE2, 0x0C, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2589 {0xE2, 0x0D, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2590 {0xE2, 0x0E, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2591 {0xE2, 0x0F, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2592 {0xE2, 0x10, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2593 {0xE2, 0x11, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2594 {0xE2, 0x12, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2595 {0xE2, 0x13, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2596 {0xE2, 0x14, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2597 {0xE2, 0x15, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2598 {0xE2, 0x16, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2599 {0xE2, 0x17, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2600 {0xE2, 0x18, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2601 {0xE2, 0x19, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2602 {0xE2, 0x1A, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2603 {0xE2, 0x1B, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2604 {0xE2, 0x1C, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2605 {0xE2, 0x1D, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2606 {0xE2, 0x1E, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2607 {0xE2, 0x1F, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2608 {0xE2, 0x20, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2609 {0xE2, 0x21, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2610 {0xE2, 0x22, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2611 {0xE2, 0x23, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2612 {0xE2, 0x24, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2613 {0xE2, 0x25, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2614 {0xE2, 0x26, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2615 {0xE2, 0x27, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2616 {0xE2, 0x28, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2617 {0xE2, 0x29, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2618 {0xE2, 0x2A, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2619 {0xE2, 0x2B, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2620 {0xE2, 0x2C, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2621 {0xE2, 0x2D, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2622 {0xE2, 0x2E, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2623 {0xE2, 0x2F, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2624 {0xE2, 0x30, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2625 {0xE2, 0x31, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2626 {0xE2, 0x32, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2627 {0xE2, 0x33, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2628 {0xE2, 0x34, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2629 {0xE2, 0x35, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2630 {0xE2, 0x36, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2631 {0xE2, 0x37, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2632 {0xE2, 0x38, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2633 {0xE2, 0x39, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2634 {0xE2, 0x3A, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2635 {0xE2, 0x3B, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2636 {0xE2, 0x3C, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2637 {0xE2, 0x3D, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2638 {0xE2, 0x3E, 0x06, 0xD7, 0xCD, 0x0D, 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D,}, 2639 }; 2640 2641 uint8_t plain_user_data[MCS_MULTI_FLOW_TD_PLAIN_DATA_SZ] = { 2642 /* User Data with Ethertype */ 2643 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 2644 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 2645 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 2646 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 2647 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 2648 0x00, 0x04, 2649 }; 2650 2651 uint8_t secure_user_data[MCS_MULTI_FLOW_TD_SECURE_DATA_SZ] = { 2652 /* MACsec EtherType */ 2653 0x88, 0xE5, 2654 /* TCI and AN */ 2655 0x4C, 2656 /* SL */ 2657 0x2A, 2658 /* PN */ 2659 0x76, 0xD4, 0x57, 0xED, 2660 /* Secure Data */ 2661 0x13, 0xB4, 0xC7, 0x2B, 0x38, 0x9D, 0xC5, 0x01, 2662 0x8E, 0x72, 0xA1, 0x71, 0xDD, 0x85, 0xA5, 0xD3, 2663 0x75, 0x22, 0x74, 0xD3, 0xA0, 0x19, 0xFB, 0xCA, 2664 0xED, 0x09, 0xA4, 0x25, 0xCD, 0x9B, 0x2E, 0x1C, 2665 0x9B, 0x72, 0xEE, 0xE7, 0xC9, 0xDE, 0x7D, 0x52, 2666 0xB3, 0xF3, 2667 /* ICV */ 2668 0xD6, 0xA5, 0x28, 0x4F, 0x4A, 0x6D, 0x3F, 0xE2, 2669 0x2A, 0x5D, 0x6C, 0x2B, 0x96, 0x04, 0x94, 0xC3, 2670 }; 2671 2672 static const struct mcs_test_vector list_mcs_vlan_vectors[] = { 2673 /* No clear tag, VLAN after macsec header */ 2674 { 2675 .test_idx = 1, 2676 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 2677 .ssci = 0, 2678 .xpn = 0, /* Most significant 32 bits */ 2679 .salt = {0}, 2680 .sa_key = { 2681 .data = { 2682 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 2683 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 2684 }, 2685 .len = 16, 2686 }, 2687 .plain_pkt = { 2688 .data = {/* MAC DA */ 2689 0xCA, 0xCB, 0xCD, 0x41, 0x42, 0x43, 2690 /* MAC SA */ 2691 0xCA, 0xCB, 0xCD, 0x21, 0x22, 0x23, 2692 /* User Data with VLAN Tag */ 2693 0x81, 0x00, 0x00, 0x02, 0x08, 0x00, 0x45, 0x00, 2694 0x00, 0x54, 0xF2, 0xFA, 0x40, 0x00, 0x40, 0x01, 2695 0xF7, 0x83, 0x14, 0x14, 0x14, 0x02, 0x14, 0x14, 2696 0x14, 0x01, 0x08, 0x00, 0xE9, 0xC5, 0x02, 0xAF, 2697 0x00, 0x01, 0xCB, 0x51, 0x6D, 0x38, 0x00, 0x00, 2698 0x00, 0x00, 0x13, 0x2D, 0x01, 0x00, 0x00, 0x00, 2699 0x00, 0x00, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 2700 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 2701 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 2702 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 2703 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 2704 0x36, 0x37, 2705 }, 2706 .len = 102, 2707 }, 2708 .secure_pkt = { 2709 .data = {/* MAC DA */ 2710 0xCA, 0xCB, 0xCD, 0x41, 0x42, 0x43, 2711 /* MAC SA */ 2712 0xCA, 0xCB, 0xCD, 0x21, 0x22, 0x23, 2713 /* MACsec EtherType */ 2714 0x88, 0xE5, 2715 /* TCI and AN */ 2716 0x20, 2717 /* SL */ 2718 0x00, 2719 /* PN */ 2720 0x00, 0x00, 0x00, 0x06, 2721 /* SCI */ 2722 0xCA, 0xCB, 0xCD, 0x21, 0x22, 0x23, 0x00, 0x01, 2723 /* Secure Data */ 2724 0x81, 0x00, 0x00, 0x02, 0x08, 0x00, 0x45, 0x00, 2725 0x00, 0x54, 0xF2, 0xFA, 0x40, 0x00, 0x40, 0x01, 2726 0xF7, 0x83, 0x14, 0x14, 0x14, 0x02, 0x14, 0x14, 2727 0x14, 0x01, 0x08, 0x00, 0xE9, 0xC5, 0x02, 0xAF, 2728 0x00, 0x01, 0xCB, 0x51, 0x6D, 0x38, 0x00, 0x00, 2729 0x00, 0x00, 0x13, 0x2D, 0x01, 0x00, 0x00, 0x00, 2730 0x00, 0x00, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 2731 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 2732 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 2733 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 2734 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 2735 0x36, 0x37, 2736 /* ICV */ 2737 0x21, 0x68, 0xF1, 0x21, 0x19, 0xB7, 0xDF, 0x73, 2738 0x6F, 0x2A, 0x11, 0xEA, 0x8A, 0xBC, 0x8A, 0x79, 2739 }, 2740 .len = 134, 2741 }, 2742 }, 2743 /* 1 vlan tag followed by MACsec */ 2744 { 2745 .test_idx = 2, 2746 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 2747 .ssci = 0, 2748 .xpn = 0, /* Most significant 32 bits */ 2749 .salt = {0}, 2750 .sa_key = { 2751 .data = { 2752 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 2753 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 2754 }, 2755 .len = 16, 2756 }, 2757 .plain_pkt = { 2758 .data = {/* MAC DA */ 2759 0xCA, 0xCB, 0xCD, 0x41, 0x42, 0x43, 2760 /* MAC SA */ 2761 0xCA, 0xCB, 0xCD, 0x21, 0x22, 0x23, 2762 /* User Data */ 2763 0x81, 0x00, 0x00, 0x02, 2764 0x08, 0x00, 0x45, 0x00, 0x00, 0x54, 0x88, 0x71, 2765 0x40, 0x00, 0x40, 0x01, 0x62, 0x0D, 0x14, 0x14, 2766 0x14, 0x02, 0x14, 0x14, 0x14, 0x01, 0x08, 0x00, 2767 0x77, 0xA6, 0x02, 0xB3, 0x00, 0x01, 0xBE, 0x52, 2768 0x6D, 0x38, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x47, 2769 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x11, 2770 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 2771 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 2772 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 2773 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 2774 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2775 }, 2776 .len = 102, 2777 }, 2778 .secure_pkt = { 2779 .data = {/* MAC DA */ 2780 0xCA, 0xCB, 0xCD, 0x41, 0x42, 0x43, 2781 /* MAC SA */ 2782 0xCA, 0xCB, 0xCD, 0x21, 0x22, 0x23, 2783 /* VLAN Tag before MACsec */ 2784 0x81, 0x00, 0x00, 0x02, 2785 /* MACsec EtherType */ 2786 0x88, 0xE5, 2787 /* TCI and AN */ 2788 0x20, 2789 /* SL */ 2790 0x00, 2791 /* PN */ 2792 0x00, 0x00, 0x00, 0x07, 2793 /* SCI */ 2794 0xCA, 0xCB, 0xCD, 0x21, 0x22, 0x23, 0x00, 0x01, 2795 /* Secure Data */ 2796 0x08, 0x00, 0x45, 0x00, 0x00, 0x54, 0x88, 0x71, 2797 0x40, 0x00, 0x40, 0x01, 0x62, 0x0D, 0x14, 0x14, 2798 0x14, 0x02, 0x14, 0x14, 0x14, 0x01, 0x08, 0x00, 2799 0x77, 0xA6, 0x02, 0xB3, 0x00, 0x01, 0xBE, 0x52, 2800 0x6D, 0x38, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x47, 2801 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x11, 2802 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 2803 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 2804 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 2805 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 2806 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2807 /* ICV */ 2808 0xF1, 0xC0, 0xA2, 0x6E, 0x99, 0xE5, 0xAB, 0x97, 2809 0x78, 0x79, 0x7D, 0x13, 0x35, 0x5E, 0x39, 0x4F, 2810 }, 2811 .len = 134, 2812 }, 2813 }, 2814 /* 2 vlan tag followed by MACsec */ 2815 { 2816 .test_idx = 3, 2817 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 2818 .ssci = 0, 2819 .xpn = 0, /* Most significant 32 bits */ 2820 .salt = {0}, 2821 .sa_key = { 2822 .data = { 2823 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 2824 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 2825 }, 2826 .len = 16, 2827 }, 2828 .plain_pkt = { 2829 .data = {/* MAC DA */ 2830 0xCA, 0xCB, 0xCD, 0x41, 0x42, 0x43, 2831 /* MAC SA */ 2832 0xCA, 0xCB, 0xCD, 0x21, 0x22, 0x23, 2833 /* User Data */ 2834 0x88, 0xA8, 0x00, 0x04, 0x81, 0x00, 0x00, 0x02, 2835 0x08, 0x00, 0x45, 0x00, 0x00, 0x54, 0x70, 0x5B, 2836 0x40, 0x00, 0x40, 0x01, 0x29, 0xF9, 0x28, 0x28, 2837 0x28, 0x04, 0x28, 0x28, 0x28, 0x01, 0x08, 0x00, 2838 0x08, 0x02, 0x02, 0xE2, 0x00, 0x01, 0x60, 0x58, 2839 0x6D, 0x38, 0x00, 0x00, 0x00, 0x00, 0x5C, 0xB7, 2840 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x11, 2841 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 2842 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 2843 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 2844 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 2845 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2846 }, 2847 .len = 106, 2848 }, 2849 .secure_pkt = { 2850 .data = {/* MAC DA */ 2851 0xCA, 0xCB, 0xCD, 0x41, 0x42, 0x43, 2852 /* MAC SA */ 2853 0xCA, 0xCB, 0xCD, 0x21, 0x22, 0x23, 2854 /* VLAN Tags before MACsec */ 2855 0x88, 0xA8, 0x00, 0x04, 2856 0x81, 0x00, 0x00, 0x02, 2857 /* MACsec EtherType */ 2858 0x88, 0xE5, 2859 /* TCI and AN */ 2860 0x20, 2861 /* SL */ 2862 0x00, 2863 /* PN */ 2864 0x00, 0x00, 0x00, 0x0E, 2865 /* SCI */ 2866 0xCA, 0xCB, 0xCD, 0x21, 0x22, 0x23, 0x00, 0x01, 2867 /* Secure Data */ 2868 0x08, 0x00, 0x45, 0x00, 0x00, 0x54, 0x70, 0x5B, 2869 0x40, 0x00, 0x40, 0x01, 0x29, 0xF9, 0x28, 0x28, 2870 0x28, 0x04, 0x28, 0x28, 0x28, 0x01, 0x08, 0x00, 2871 0x08, 0x02, 0x02, 0xE2, 0x00, 0x01, 0x60, 0x58, 2872 0x6D, 0x38, 0x00, 0x00, 0x00, 0x00, 0x5C, 0xB7, 2873 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x11, 2874 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 2875 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 2876 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 2877 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 2878 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2879 /* ICV */ 2880 0xCC, 0x38, 0x21, 0x3A, 0xEE, 0x5F, 0xE3, 0x7F, 2881 0xA1, 0xBA, 0xBD, 0xBD, 0x65, 0x5B, 0xB3, 0xE5, 2882 }, 2883 .len = 138, 2884 }, 2885 }, 2886 }; 2887 2888 static const struct mcs_test_vector list_mcs_intr_test_vectors[] = { 2889 /* gcm_128_64B_cipher */ 2890 /* SECTAG_V_EQ1 */ 2891 { 2892 .test_idx = 0, 2893 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 2894 .ssci = 0x0, 2895 .salt = {0}, 2896 .sa_key = { 2897 .data = { 2898 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 2899 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 2900 }, 2901 .len = 16, 2902 }, 2903 .plain_pkt = { 2904 .data = {/* MAC DA */ 2905 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2906 /* MAC SA */ 2907 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2908 /* User Data */ 2909 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 2910 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 2911 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 2912 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 2913 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 2914 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 2915 0x43, 0x44, 0x45, 0x46, 2916 }, 2917 .len = 64, 2918 }, 2919 .secure_pkt = { 2920 .data = {/* MAC DA */ 2921 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2922 /* MAC SA */ 2923 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2924 /* MACsec EtherType */ 2925 0x88, 0xE5, 2926 /* TCI and AN */ 2927 0xAC, 2928 /* SL */ 2929 0x0, 2930 /* PN */ 2931 0x0, 0x0, 0x0, 0x2, 2932 /* SCI */ 2933 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 2934 /* Secure Data */ 2935 0x39, 0x38, 0x97, 0x44, 0xA2, 0x6D, 0x71, 0x3D, 2936 0x14, 0x27, 0xC7, 0x3E, 0x02, 0x96, 0x81, 0xAD, 2937 0x47, 0x82, 0x2A, 0xCF, 0x19, 0x79, 0x12, 0x49, 2938 0x0F, 0x93, 0x5A, 0x32, 0x43, 0x79, 0xEF, 0x9D, 2939 0x70, 0xF8, 0xA9, 0xBE, 0x3D, 0x00, 0x5D, 0x22, 2940 0xDA, 0x87, 0x3D, 0xC1, 0xBE, 0x1B, 0x13, 0xD9, 2941 0x99, 0xDB, 0xF1, 0xC8, 2942 /* ICV */ 2943 0x4B, 0xC4, 0xF8, 0xC6, 0x09, 0x78, 0xB9, 0xBB, 2944 0x5D, 0xC0, 0x04, 0xF3, 0x20, 0x7D, 0x14, 0x87, 2945 }, 2946 .len = 96, 2947 }, 2948 }, 2949 /* SECTAG_E_EQ0_C_EQ1 */ 2950 { 2951 .test_idx = 1, 2952 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 2953 .ssci = 0x0, 2954 .salt = {0}, 2955 .sa_key = { 2956 .data = { 2957 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 2958 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 2959 }, 2960 .len = 16, 2961 }, 2962 .plain_pkt = { 2963 .data = {/* MAC DA */ 2964 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2965 /* MAC SA */ 2966 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2967 /* User Data */ 2968 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 2969 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 2970 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 2971 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 2972 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 2973 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 2974 0x43, 0x44, 0x45, 0x46, 2975 }, 2976 .len = 64, 2977 }, 2978 .secure_pkt = { 2979 .data = {/* MAC DA */ 2980 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 2981 /* MAC SA */ 2982 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 2983 /* MACsec EtherType */ 2984 0x88, 0xE5, 2985 /* TCI and AN */ 2986 0x24, 2987 /* SL */ 2988 0x0, 2989 /* PN */ 2990 0x0, 0x0, 0x0, 0x2, 2991 /* SCI */ 2992 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 2993 /* Secure Data */ 2994 0x39, 0x38, 0x97, 0x44, 0xA2, 0x6D, 0x71, 0x3D, 2995 0x14, 0x27, 0xC7, 0x3E, 0x02, 0x96, 0x81, 0xAD, 2996 0x47, 0x82, 0x2A, 0xCF, 0x19, 0x79, 0x12, 0x49, 2997 0x0F, 0x93, 0x5A, 0x32, 0x43, 0x79, 0xEF, 0x9D, 2998 0x70, 0xF8, 0xA9, 0xBE, 0x3D, 0x00, 0x5D, 0x22, 2999 0xDA, 0x87, 0x3D, 0xC1, 0xBE, 0x1B, 0x13, 0xD9, 3000 0x99, 0xDB, 0xF1, 0xC8, 3001 /* ICV */ 3002 0x4B, 0xC4, 0xF8, 0xC6, 0x09, 0x78, 0xB9, 0xBB, 3003 0x5D, 0xC0, 0x04, 0xF3, 0x20, 0x7D, 0x14, 0x87, 3004 }, 3005 .len = 96, 3006 }, 3007 }, 3008 /* SECTAG_SL_GTE48 */ 3009 { 3010 .test_idx = 2, 3011 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 3012 .ssci = 0x0, 3013 .salt = {0}, 3014 .sa_key = { 3015 .data = { 3016 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 3017 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 3018 }, 3019 .len = 16, 3020 }, 3021 .plain_pkt = { 3022 .data = {/* MAC DA */ 3023 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3024 /* MAC SA */ 3025 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3026 /* User Data */ 3027 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 3028 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 3029 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 3030 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 3031 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 3032 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 3033 0x43, 0x44, 0x45, 0x46, 3034 }, 3035 .len = 64, 3036 }, 3037 .secure_pkt = { 3038 .data = {/* MAC DA */ 3039 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3040 /* MAC SA */ 3041 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3042 /* MACsec EtherType */ 3043 0x88, 0xE5, 3044 /* TCI and AN */ 3045 0x2C, 3046 /* SL */ 3047 0x31, 3048 /* PN */ 3049 0x0, 0x0, 0x0, 0x2, 3050 /* SCI */ 3051 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 3052 /* Secure Data */ 3053 0x39, 0x38, 0x97, 0x44, 0xA2, 0x6D, 0x71, 0x3D, 3054 0x14, 0x27, 0xC7, 0x3E, 0x02, 0x96, 0x81, 0xAD, 3055 0x47, 0x82, 0x2A, 0xCF, 0x19, 0x79, 0x12, 0x49, 3056 0x0F, 0x93, 0x5A, 0x32, 0x43, 0x79, 0xEF, 0x9D, 3057 0x70, 0xF8, 0xA9, 0xBE, 0x3D, 0x00, 0x5D, 0x22, 3058 0xDA, 0x87, 0x3D, 0xC1, 0xBE, 0x1B, 0x13, 0xD9, 3059 0x99, 0xDB, 0xF1, 0xC8, 3060 /* ICV */ 3061 0x4B, 0xC4, 0xF8, 0xC6, 0x09, 0x78, 0xB9, 0xBB, 3062 0x5D, 0xC0, 0x04, 0xF3, 0x20, 0x7D, 0x14, 0x87, 3063 }, 3064 .len = 96, 3065 }, 3066 }, 3067 /* SECTAG_ES_EQ1_SC_EQ1 */ 3068 { 3069 .test_idx = 3, 3070 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 3071 .ssci = 0x0, 3072 .salt = {0}, 3073 .sa_key = { 3074 .data = { 3075 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 3076 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 3077 }, 3078 .len = 16, 3079 }, 3080 .plain_pkt = { 3081 .data = {/* MAC DA */ 3082 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3083 /* MAC SA */ 3084 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3085 /* User Data */ 3086 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 3087 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 3088 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 3089 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 3090 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 3091 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 3092 0x43, 0x44, 0x45, 0x46, 3093 }, 3094 .len = 64, 3095 }, 3096 .secure_pkt = { 3097 .data = {/* MAC DA */ 3098 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3099 /* MAC SA */ 3100 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3101 /* MACsec EtherType */ 3102 0x88, 0xE5, 3103 /* TCI and AN */ 3104 0x6C, 3105 /* SL */ 3106 0x0, 3107 /* PN */ 3108 0x0, 0x0, 0x0, 0x2, 3109 /* SCI */ 3110 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 3111 /* Secure Data */ 3112 0x39, 0x38, 0x97, 0x44, 0xA2, 0x6D, 0x71, 0x3D, 3113 0x14, 0x27, 0xC7, 0x3E, 0x02, 0x96, 0x81, 0xAD, 3114 0x47, 0x82, 0x2A, 0xCF, 0x19, 0x79, 0x12, 0x49, 3115 0x0F, 0x93, 0x5A, 0x32, 0x43, 0x79, 0xEF, 0x9D, 3116 0x70, 0xF8, 0xA9, 0xBE, 0x3D, 0x00, 0x5D, 0x22, 3117 0xDA, 0x87, 0x3D, 0xC1, 0xBE, 0x1B, 0x13, 0xD9, 3118 0x99, 0xDB, 0xF1, 0xC8, 3119 /* ICV */ 3120 0x4B, 0xC4, 0xF8, 0xC6, 0x09, 0x78, 0xB9, 0xBB, 3121 0x5D, 0xC0, 0x04, 0xF3, 0x20, 0x7D, 0x14, 0x87, 3122 }, 3123 .len = 96, 3124 }, 3125 }, 3126 /* SECTAG_SC_EQ1_SCB_EQ1 */ 3127 { 3128 .test_idx = 4, 3129 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 3130 .ssci = 0x0, 3131 .salt = {0}, 3132 .sa_key = { 3133 .data = { 3134 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 3135 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 3136 }, 3137 .len = 16, 3138 }, 3139 .plain_pkt = { 3140 .data = {/* MAC DA */ 3141 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3142 /* MAC SA */ 3143 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3144 /* User Data */ 3145 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 3146 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 3147 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 3148 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 3149 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 3150 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 3151 0x43, 0x44, 0x45, 0x46, 3152 }, 3153 .len = 64, 3154 }, 3155 .secure_pkt = { 3156 .data = {/* MAC DA */ 3157 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3158 /* MAC SA */ 3159 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3160 /* MACsec EtherType */ 3161 0x88, 0xE5, 3162 /* TCI and AN */ 3163 0x3C, 3164 /* SL */ 3165 0x0, 3166 /* PN */ 3167 0x0, 0x0, 0x0, 0x2, 3168 /* SCI */ 3169 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 3170 /* Secure Data */ 3171 0x39, 0x38, 0x97, 0x44, 0xA2, 0x6D, 0x71, 0x3D, 3172 0x14, 0x27, 0xC7, 0x3E, 0x02, 0x96, 0x81, 0xAD, 3173 0x47, 0x82, 0x2A, 0xCF, 0x19, 0x79, 0x12, 0x49, 3174 0x0F, 0x93, 0x5A, 0x32, 0x43, 0x79, 0xEF, 0x9D, 3175 0x70, 0xF8, 0xA9, 0xBE, 0x3D, 0x00, 0x5D, 0x22, 3176 0xDA, 0x87, 0x3D, 0xC1, 0xBE, 0x1B, 0x13, 0xD9, 3177 0x99, 0xDB, 0xF1, 0xC8, 3178 /* ICV */ 3179 0x4B, 0xC4, 0xF8, 0xC6, 0x09, 0x78, 0xB9, 0xBB, 3180 0x5D, 0xC0, 0x04, 0xF3, 0x20, 0x7D, 0x14, 0x87, 3181 }, 3182 .len = 96, 3183 }, 3184 }, 3185 }; 3186 3187 static const struct mcs_test_vector list_mcs_rekey_vectors[] = { 3188 /* Initial SA, AN = 0 and PN = 2 */ 3189 { 3190 .test_idx = 0, 3191 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 3192 .ssci = 0x0, 3193 .salt = {0}, 3194 .sa_key = { 3195 .data = { 3196 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 3197 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 3198 }, 3199 .len = 16, 3200 }, 3201 .plain_pkt = { 3202 .data = {/* MAC DA */ 3203 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3204 /* MAC SA */ 3205 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3206 /* User Data */ 3207 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 3208 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 3209 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 3210 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 3211 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 3212 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 3213 0x43, 0x44, 0x45, 0x46, 3214 }, 3215 .len = 64, 3216 }, 3217 .secure_pkt = { 3218 .data = {/* MAC DA */ 3219 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3220 /* MAC SA */ 3221 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3222 /* MACsec EtherType */ 3223 0x88, 0xE5, 3224 /* TCI and AN */ 3225 0x2C, 3226 /* SL */ 3227 0x0, 3228 /* PN */ 3229 0x0, 0x0, 0x0, 0x2, 3230 /* SCI */ 3231 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 3232 /* Secure Data */ 3233 0x39, 0x38, 0x97, 0x44, 0xA2, 0x6D, 0x71, 0x3D, 3234 0x14, 0x27, 0xC7, 0x3E, 0x02, 0x96, 0x81, 0xAD, 3235 0x47, 0x82, 0x2A, 0xCF, 0x19, 0x79, 0x12, 0x49, 3236 0x0F, 0x93, 0x5A, 0x32, 0x43, 0x79, 0xEF, 0x9D, 3237 0x70, 0xF8, 0xA9, 0xBE, 0x3D, 0x00, 0x5D, 0x22, 3238 0xDA, 0x87, 0x3D, 0xC1, 0xBE, 0x1B, 0x13, 0xD9, 3239 0x99, 0xDB, 0xF1, 0xC8, 3240 /* ICV */ 3241 0x4B, 0xC4, 0xF8, 0xC6, 0x09, 0x78, 0xB9, 0xBB, 3242 0x5D, 0xC0, 0x04, 0xF3, 0x20, 0x7D, 0x14, 0x87, 3243 }, 3244 .len = 96, 3245 }, 3246 }, 3247 /* Rekeyed SA. sa_key is different from the initial sa. 3248 * Also, AN = 1 and PN = 1. 3249 */ 3250 { 3251 .test_idx = 1, 3252 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 3253 .ssci = 0x0, 3254 .salt = {0}, 3255 .sa_key = { 3256 .data = { 3257 0xAD, 0x7A, 0x2B, 0xD0, 0x3E, 0xAC, 0x83, 0x5A, 3258 0x6F, 0x62, 0x0F, 0xDC, 0xB5, 0x06, 0xB3, 0x45, 3259 }, 3260 .len = 16, 3261 }, 3262 .plain_pkt = { 3263 .data = {/* MAC DA */ 3264 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3265 /* MAC SA */ 3266 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3267 /* User Data */ 3268 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 3269 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 3270 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 3271 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 3272 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 3273 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 3274 0x43, 0x44, 0x45, 0x46, 3275 }, 3276 .len = 64, 3277 }, 3278 .secure_pkt = { 3279 .data = {/* MAC DA */ 3280 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3281 /* MAC SA */ 3282 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3283 /* MACsec EtherType */ 3284 0x88, 0xE5, 3285 /* TCI and AN */ 3286 0x2D, 3287 /* SL */ 3288 0x00, 3289 /* PN */ 3290 0x00, 0x00, 0x00, 0x01, 3291 /* SCI */ 3292 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 3293 /* Secure Data */ 3294 0x17, 0x66, 0xEF, 0xD9, 0x06, 0xDC, 0x15, 0xAF, 3295 0xE9, 0x06, 0xB1, 0xE6, 0x26, 0x22, 0xC8, 0x78, 3296 0x27, 0xE1, 0xED, 0x76, 0xF5, 0xC8, 0x16, 0xA1, 3297 0x6B, 0x0D, 0xA0, 0x8E, 0x24, 0x2A, 0x9D, 0x34, 3298 0xD0, 0xE0, 0x5F, 0xBA, 0x08, 0xF0, 0xE3, 0x7D, 3299 0x17, 0xC0, 0x2C, 0xCD, 0x8A, 0x44, 0xC9, 0xB9, 3300 0x28, 0xC0, 0xE8, 0x22, 3301 /* ICV */ 3302 0x1B, 0x16, 0x68, 0x5F, 0x14, 0x8A, 0x51, 0x29, 3303 0xB5, 0x3D, 0x61, 0x0E, 0x49, 0x20, 0x60, 0x09, 3304 }, 3305 .len = 96, 3306 }, 3307 }, 3308 { 3309 .test_idx = 2, 3310 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_128, 3311 .ssci = 0x7A30C118, 3312 .xpn = 0xB0DF459C, /* Most significant 32 bits */ 3313 .salt = { 3314 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 3315 0x86, 0xA2, 0x1C, 0x66, 0xFA, 0x6D, 3316 }, 3317 .sa_key = { 3318 .data = { 3319 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 3320 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82, 3321 }, 3322 .len = 16, 3323 }, 3324 .plain_pkt = { 3325 .data = {/* MAC DA */ 3326 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3327 /* MAC SA */ 3328 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3329 /* User Data */ 3330 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 3331 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 3332 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 3333 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 3334 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 3335 0x00, 0x04, 3336 }, 3337 .len = 54, 3338 }, 3339 .secure_pkt = { 3340 .data = {/* MAC DA */ 3341 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3342 /* MAC SA */ 3343 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3344 /* MACsec EtherType */ 3345 0x88, 0xE5, 3346 /* TCI and AN */ 3347 0x4C, 3348 /* SL */ 3349 0x2A, 3350 /* PN */ 3351 0x76, 0xD4, 0x57, 0xED, 3352 /* Secure Data */ 3353 0x9C, 0xA4, 0x69, 0x84, 0x43, 0x02, 0x03, 0xED, 3354 0x41, 0x6E, 0xBD, 0xC2, 0xFE, 0x26, 0x22, 0xBA, 3355 0x3E, 0x5E, 0xAB, 0x69, 0x61, 0xC3, 0x63, 0x83, 3356 0x00, 0x9E, 0x18, 0x7E, 0x9B, 0x0C, 0x88, 0x56, 3357 0x46, 0x53, 0xB9, 0xAB, 0xD2, 0x16, 0x44, 0x1C, 3358 0x6A, 0xB6, 3359 /* ICV */ 3360 0xF0, 0xA2, 0x32, 0xE9, 0xE4, 0x4C, 0x97, 0x8C, 3361 0xF7, 0xCD, 0x84, 0xD4, 0x34, 0x84, 0xD1, 0x01, 3362 }, 3363 .len = 78, 3364 }, 3365 }, 3366 /* Rekeyed SA. sa_key is different from the initial sa. 3367 * Also, AN = 1, XPN = 0 and PN = 1. 3368 */ 3369 { 3370 .test_idx = 3, 3371 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_128, 3372 .ssci = 0x7A30C118, 3373 .xpn = 0x0, /* Most significant 32 bits */ 3374 .salt = { 3375 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 3376 0x86, 0xA2, 0x1C, 0x66, 0xFA, 0x6D, 3377 }, 3378 .sa_key = { 3379 .data = { 3380 0xAD, 0x7A, 0x2B, 0xD0, 0x3E, 0xAC, 0x83, 0x5A, 3381 0x6F, 0x62, 0x0F, 0xDC, 0xB5, 0x06, 0xB3, 0x45, 3382 }, 3383 .len = 16, 3384 }, 3385 .plain_pkt = { 3386 .data = {/* MAC DA */ 3387 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3388 /* MAC SA */ 3389 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3390 /* User Data */ 3391 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 3392 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 3393 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 3394 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 3395 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 3396 0x00, 0x04, 3397 }, 3398 .len = 54, 3399 }, 3400 .secure_pkt = { 3401 .data = {/* MAC DA */ 3402 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3403 /* MAC SA */ 3404 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3405 /* MACsec EtherType */ 3406 0x88, 0xE5, 3407 /* TCI and AN */ 3408 0x4D, 3409 /* SL */ 3410 0x2A, 3411 /* PN */ 3412 0x0, 0x0, 0x0, 0x1, 3413 /* Secure Data */ 3414 0x91, 0x00, 0xC0, 0xE4, 0xB9, 0x4E, 0x2C, 0x1C, 3415 0x86, 0xDF, 0xE1, 0x8F, 0xDD, 0xB6, 0xE6, 0x79, 3416 0x65, 0x87, 0x80, 0xE7, 0x9C, 0x5D, 0x8A, 0xB7, 3417 0x68, 0xFD, 0xE1, 0x6E, 0x3F, 0xF1, 0xDE, 0x20, 3418 0x4A, 0xF6, 0xBA, 0xE6, 0x14, 0xDB, 0x6A, 0x05, 3419 0xE9, 0xB6, 3420 /* ICV */ 3421 0x2D, 0xDF, 0x59, 0x27, 0x25, 0x41, 0x68, 0x1D, 3422 0x74, 0x1A, 0xAA, 0xC4, 0x18, 0x49, 0xB4, 0x22, 3423 }, 3424 .len = 78, 3425 }, 3426 }, 3427 }; 3428 3429 static const struct mcs_test_vector list_mcs_anti_replay_vectors[] = { 3430 { 3431 .test_idx = 0, 3432 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 3433 .ssci = 0x0, 3434 .salt = {0}, 3435 .sa_key = { 3436 .data = { 3437 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 3438 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 3439 }, 3440 .len = 16, 3441 }, 3442 .plain_pkt = { 3443 .data = {/* MAC DA */ 3444 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3445 /* MAC SA */ 3446 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3447 /* User Data */ 3448 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 3449 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 3450 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 3451 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 3452 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 3453 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 3454 0x43, 0x44, 0x45, 0x46, 3455 }, 3456 .len = 64, 3457 }, 3458 .secure_pkt = { 3459 .data = {/* MAC DA */ 3460 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3461 /* MAC SA */ 3462 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3463 /* MACsec EtherType */ 3464 0x88, 0xE5, 3465 /* TCI and AN */ 3466 0x2C, 3467 /* SL */ 3468 0x0, 3469 /* PN */ 3470 0x0, 0x0, 0x0, 0x2, 3471 /* SCI */ 3472 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 3473 /* Secure Data */ 3474 0x39, 0x38, 0x97, 0x44, 0xA2, 0x6D, 0x71, 0x3D, 3475 0x14, 0x27, 0xC7, 0x3E, 0x02, 0x96, 0x81, 0xAD, 3476 0x47, 0x82, 0x2A, 0xCF, 0x19, 0x79, 0x12, 0x49, 3477 0x0F, 0x93, 0x5A, 0x32, 0x43, 0x79, 0xEF, 0x9D, 3478 0x70, 0xF8, 0xA9, 0xBE, 0x3D, 0x00, 0x5D, 0x22, 3479 0xDA, 0x87, 0x3D, 0xC1, 0xBE, 0x1B, 0x13, 0xD9, 3480 0x99, 0xDB, 0xF1, 0xC8, 3481 /* ICV */ 3482 0x4B, 0xC4, 0xF8, 0xC6, 0x09, 0x78, 0xB9, 0xBB, 3483 0x5D, 0xC0, 0x04, 0xF3, 0x20, 0x7D, 0x14, 0x87, 3484 }, 3485 .len = 96, 3486 }, 3487 }, 3488 { 3489 .test_idx = 1, 3490 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 3491 .ssci = 0x0, 3492 .salt = {0}, 3493 .sa_key = { 3494 .data = { 3495 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 3496 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 3497 }, 3498 .len = 16, 3499 }, 3500 .plain_pkt = { 3501 .data = {/* MAC DA */ 3502 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3503 /* MAC SA */ 3504 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3505 /* User Data */ 3506 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 3507 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 3508 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 3509 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 3510 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 3511 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 3512 0x43, 0x44, 0x45, 0x46, 3513 }, 3514 .len = 64, 3515 }, 3516 .secure_pkt = { 3517 .data = {/* MAC DA */ 3518 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3519 /* MAC SA */ 3520 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3521 /* MACsec EtherType */ 3522 0x88, 0xE5, 3523 /* TCI and AN */ 3524 0x2C, 3525 /* SL */ 3526 0x0, 3527 /* PN */ 3528 0x0, 0x0, 0x0, 0x4B, 3529 /* SCI */ 3530 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 3531 /* Secure Data */ 3532 0x51, 0xC9, 0xBB, 0xF3, 0x24, 0x38, 0xF9, 0x06, 3533 0x76, 0x9E, 0x61, 0xCE, 0xB8, 0x65, 0xA7, 0xE4, 3534 0x1F, 0x16, 0x5D, 0x59, 0xB8, 0x44, 0x0F, 0x94, 3535 0x50, 0xF0, 0x4C, 0x35, 0x7D, 0x91, 0x53, 0xC6, 3536 0x28, 0x4D, 0xA8, 0xAB, 0x13, 0x3B, 0xC0, 0x2D, 3537 0x11, 0x8E, 0xCC, 0x75, 0xC9, 0xD8, 0x8F, 0x60, 3538 0x67, 0xE1, 0x03, 0x2C, 3539 /* ICV */ 3540 0xA5, 0xF1, 0x2C, 0x85, 0x10, 0xEE, 0x67, 0x7E, 3541 0xDB, 0x4E, 0xF6, 0x0A, 0xA1, 0x0F, 0x15, 0x69, 3542 }, 3543 .len = 96, 3544 }, 3545 }, 3546 { 3547 .test_idx = 2, 3548 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 3549 .ssci = 0x0, 3550 .salt = {0}, 3551 .sa_key = { 3552 .data = { 3553 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 3554 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 3555 }, 3556 .len = 16, 3557 }, 3558 .plain_pkt = { 3559 .data = {/* MAC DA */ 3560 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3561 /* MAC SA */ 3562 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3563 /* User Data */ 3564 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 3565 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 3566 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 3567 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 3568 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 3569 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 3570 0x43, 0x44, 0x45, 0x46, 3571 }, 3572 .len = 64, 3573 }, 3574 .secure_pkt = { 3575 .data = {/* MAC DA */ 3576 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3577 /* MAC SA */ 3578 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3579 /* MACsec EtherType */ 3580 0x88, 0xE5, 3581 /* TCI and AN */ 3582 0x2C, 3583 /* SL */ 3584 0x0, 3585 /* PN */ 3586 0x0, 0x0, 0x0, 0x32, 3587 /* SCI */ 3588 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 3589 /* Secure Data */ 3590 0x6F, 0xB6, 0xF8, 0x54, 0x67, 0x23, 0x3C, 0xE8, 3591 0x67, 0x54, 0x8B, 0xAD, 0x31, 0xC3, 0x2B, 0xAA, 3592 0x70, 0x1A, 0xC8, 0x0D, 0x3C, 0x31, 0x54, 0x0F, 3593 0xDD, 0x8F, 0x23, 0x0F, 0x86, 0xF3, 0x80, 0x31, 3594 0x8B, 0x30, 0xD9, 0x15, 0xF9, 0x3B, 0xD6, 0x00, 3595 0x95, 0xBD, 0xF3, 0x7F, 0xD2, 0x41, 0x28, 0xFC, 3596 0x52, 0x27, 0xB5, 0x88, 3597 /* ICV */ 3598 0x64, 0x3C, 0x67, 0xD7, 0xB8, 0xC1, 0xAF, 0x15, 3599 0x82, 0x5F, 0x06, 0x4F, 0x5A, 0xED, 0x47, 0xC1, 3600 }, 3601 .len = 96, 3602 }, 3603 }, 3604 { 3605 .test_idx = 3, 3606 .alg = RTE_SECURITY_MACSEC_ALG_GCM_128, 3607 .ssci = 0x0, 3608 .salt = {0}, 3609 .sa_key = { 3610 .data = { 3611 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 3612 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82 3613 }, 3614 .len = 16, 3615 }, 3616 .plain_pkt = { 3617 .data = {/* MAC DA */ 3618 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3619 /* MAC SA */ 3620 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3621 /* User Data */ 3622 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 3623 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 3624 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 3625 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 3626 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 3627 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 3628 0x43, 0x44, 0x45, 0x46, 3629 }, 3630 .len = 64, 3631 }, 3632 .secure_pkt = { 3633 .data = {/* MAC DA */ 3634 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3635 /* MAC SA */ 3636 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3637 /* MACsec EtherType */ 3638 0x88, 0xE5, 3639 /* TCI and AN */ 3640 0x2C, 3641 /* SL */ 3642 0x0, 3643 /* PN */ 3644 0x0, 0x0, 0x0, 0x3, 3645 /* SCI */ 3646 0xFE, 0x2F, 0xCD, 0x14, 0x24, 0x1B, 0x88, 0x2C, 3647 /* Secure Data */ 3648 0x16, 0x6E, 0x74, 0xE5, 0xF7, 0x49, 0xCC, 0x42, 3649 0x06, 0x30, 0x99, 0x60, 0x10, 0xAA, 0xB3, 0xEC, 3650 0x3C, 0xEF, 0x6C, 0x7D, 0x72, 0x93, 0x61, 0x28, 3651 0x39, 0x8E, 0x6B, 0x5C, 0x6C, 0x9E, 0xCA, 0x86, 3652 0x70, 0x5A, 0x95, 0x98, 0x0F, 0xB2, 0xC8, 0x05, 3653 0xD6, 0xC9, 0xBA, 0x9A, 0xCF, 0x7B, 0x5F, 0xD0, 3654 0xAE, 0x50, 0x66, 0x7D, 3655 /* ICV */ 3656 0xC8, 0xF1, 0x4A, 0x10, 0x8A, 0xFF, 0x64, 0x6C, 3657 0xC7, 0x18, 0xC2, 0x7A, 0x16, 0x1A, 0x0D, 0xCA, 3658 }, 3659 .len = 96, 3660 }, 3661 }, 3662 { 3663 .test_idx = 4, 3664 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_128, 3665 .ssci = 0x7A30C118, 3666 .xpn = 0x0, /* Most significant 32 bits */ 3667 .salt = { 3668 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 3669 0x86, 0xA2, 0x1C, 0x66, 0xFA, 0x6D, 3670 }, 3671 .sa_key = { 3672 .data = { 3673 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 3674 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82, 3675 }, 3676 .len = 16, 3677 }, 3678 .plain_pkt = { 3679 .data = {/* MAC DA */ 3680 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3681 /* MAC SA */ 3682 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3683 /* User Data */ 3684 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 3685 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 3686 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 3687 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 3688 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 3689 0x00, 0x04, 3690 }, 3691 .len = 54, 3692 }, 3693 .secure_pkt = { 3694 .data = {/* MAC DA */ 3695 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3696 /* MAC SA */ 3697 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3698 /* MACsec EtherType */ 3699 0x88, 0xE5, 3700 /* TCI and AN */ 3701 0x4C, 3702 /* SL */ 3703 0x2A, 3704 /* PN */ 3705 0xFF, 0xFF, 0xFF, 0xFE, 3706 /* Secure Data */ 3707 0xA4, 0x80, 0xA4, 0x24, 0xD3, 0xCB, 0x3B, 0x05, 3708 0xD5, 0x5B, 0x48, 0xE0, 0x23, 0xEA, 0x8C, 0x11, 3709 0xE2, 0xB6, 0xE9, 0x69, 0x39, 0x40, 0xA6, 0xEA, 3710 0xC9, 0xCD, 0xF9, 0xD8, 0x85, 0x8C, 0xD6, 0xFA, 3711 0xB6, 0x9A, 0xE2, 0x37, 0xAA, 0x0C, 0x02, 0x2C, 3712 0xB8, 0xC1, 3713 /* ICV */ 3714 0xE3, 0x36, 0x34, 0x7A, 0x7C, 0x00, 0x71, 0x1F, 3715 0xAC, 0x04, 0x48, 0x82, 0x64, 0xD2, 0xDF, 0x58, 3716 }, 3717 .len = 78, 3718 }, 3719 }, 3720 { 3721 .test_idx = 5, 3722 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_128, 3723 .ssci = 0x7A30C118, 3724 .xpn = 0x1, /* Most significant 32 bits */ 3725 .salt = { 3726 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 3727 0x86, 0xA2, 0x1C, 0x66, 0xFA, 0x6D, 3728 }, 3729 .sa_key = { 3730 .data = { 3731 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 3732 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82, 3733 }, 3734 .len = 16, 3735 }, 3736 .plain_pkt = { 3737 .data = {/* MAC DA */ 3738 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3739 /* MAC SA */ 3740 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3741 /* User Data */ 3742 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 3743 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 3744 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 3745 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 3746 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 3747 0x00, 0x04, 3748 }, 3749 .len = 54, 3750 }, 3751 .secure_pkt = { 3752 .data = {/* MAC DA */ 3753 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3754 /* MAC SA */ 3755 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3756 /* MACsec EtherType */ 3757 0x88, 0xE5, 3758 /* TCI and AN */ 3759 0x4C, 3760 /* SL */ 3761 0x2A, 3762 /* PN */ 3763 0x00, 0x00, 0x00, 0x62, 3764 /* Secure Data */ 3765 0x62, 0x62, 0x9E, 0x43, 0x59, 0x0C, 0xC6, 0x33, 3766 0x26, 0x3C, 0xBF, 0x93, 0x5D, 0xE2, 0x8A, 0x7F, 3767 0x96, 0xB4, 0xF7, 0x08, 0xEA, 0x9A, 0xA8, 0x88, 3768 0xB4, 0xE8, 0xBE, 0x8D, 0x28, 0x84, 0xE0, 0x16, 3769 0x08, 0x92, 0xB0, 0xAB, 0x76, 0x60, 0xEA, 0x05, 3770 0x74, 0x79, 3771 /* ICV */ 3772 0x8E, 0x5D, 0x81, 0xA6, 0x3F, 0xDF, 0x39, 0xB8, 3773 0x19, 0x33, 0x73, 0x09, 0xCE, 0xC1, 0xAF, 0x85, 3774 }, 3775 .len = 78, 3776 }, 3777 }, 3778 { 3779 .test_idx = 6, 3780 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_128, 3781 .ssci = 0x7A30C118, 3782 .xpn = 0x1, /* Most significant 32 bits */ 3783 .salt = { 3784 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 3785 0x86, 0xA2, 0x1C, 0x66, 0xFA, 0x6D, 3786 }, 3787 .sa_key = { 3788 .data = { 3789 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 3790 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82, 3791 }, 3792 .len = 16, 3793 }, 3794 .plain_pkt = { 3795 .data = {/* MAC DA */ 3796 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3797 /* MAC SA */ 3798 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3799 /* User Data */ 3800 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 3801 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 3802 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 3803 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 3804 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 3805 0x00, 0x04, 3806 }, 3807 .len = 54, 3808 }, 3809 .secure_pkt = { 3810 .data = {/* MAC DA */ 3811 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3812 /* MAC SA */ 3813 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3814 /* MACsec EtherType */ 3815 0x88, 0xE5, 3816 /* TCI and AN */ 3817 0x4C, 3818 /* SL */ 3819 0x2A, 3820 /* PN */ 3821 0x00, 0x00, 0x00, 0x58, 3822 /* Secure Data */ 3823 0xC7, 0xDC, 0xF4, 0xC9, 0x8C, 0x59, 0x6E, 0x96, 3824 0x3D, 0x4B, 0x89, 0xB3, 0xF3, 0x8D, 0x5D, 0x99, 3825 0x4E, 0xDF, 0x48, 0x74, 0x02, 0x25, 0x93, 0xB4, 3826 0x12, 0xFB, 0x0F, 0x28, 0xA5, 0x02, 0x78, 0xAC, 3827 0x0B, 0x14, 0xF1, 0xAC, 0x1C, 0x0C, 0x80, 0x37, 3828 0x6B, 0x44, 3829 /* ICV */ 3830 0x47, 0x5A, 0xEE, 0x37, 0xFC, 0x6E, 0xDE, 0xB9, 3831 0x14, 0x0E, 0xBD, 0x22, 0x05, 0x12, 0x00, 0x52, 3832 }, 3833 .len = 78, 3834 }, 3835 }, 3836 { 3837 .test_idx = 7, 3838 .alg = RTE_SECURITY_MACSEC_ALG_GCM_XPN_128, 3839 .ssci = 0x7A30C118, 3840 .xpn = 0x1, /* Most significant 32 bits */ 3841 .salt = { 3842 0xE6, 0x30, 0xE8, 0x1A, 0x48, 0xDE, 3843 0x86, 0xA2, 0x1C, 0x66, 0xFA, 0x6D, 3844 }, 3845 .sa_key = { 3846 .data = { 3847 0x07, 0x1B, 0x11, 0x3B, 0x0C, 0xA7, 0x43, 0xFE, 3848 0xCC, 0xCF, 0x3D, 0x05, 0x1F, 0x73, 0x73, 0x82, 3849 }, 3850 .len = 16, 3851 }, 3852 .plain_pkt = { 3853 .data = {/* MAC DA */ 3854 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3855 /* MAC SA */ 3856 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3857 /* User Data */ 3858 0x08, 0x00, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 3859 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 3860 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 3861 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 3862 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 3863 0x00, 0x04, 3864 }, 3865 .len = 54, 3866 }, 3867 .secure_pkt = { 3868 .data = {/* MAC DA */ 3869 0xE2, 0x01, 0x06, 0xD7, 0xCD, 0x0D, 3870 /* MAC SA */ 3871 0xF0, 0x76, 0x1E, 0x8D, 0xCD, 0x3D, 3872 /* MACsec EtherType */ 3873 0x88, 0xE5, 3874 /* TCI and AN */ 3875 0x4C, 3876 /* SL */ 3877 0x2A, 3878 /* PN */ 3879 0x00, 0x00, 0x00, 0x02, 3880 /* Secure Data */ 3881 0xDD, 0x86, 0x37, 0x48, 0x11, 0xF3, 0xA8, 0x96, 3882 0x25, 0x3A, 0xD9, 0xBE, 0x7C, 0x62, 0x72, 0xD6, 3883 0x43, 0x70, 0xB6, 0x92, 0x04, 0x25, 0x46, 0xC1, 3884 0x17, 0xBC, 0x14, 0xE1, 0x09, 0x4C, 0x04, 0x94, 3885 0x51, 0x1F, 0x6E, 0x89, 0x32, 0x13, 0x4B, 0xAC, 3886 0x2A, 0x60, 3887 /* ICV */ 3888 0x96, 0xC0, 0xB4, 0xA4, 0xC7, 0xEC, 0xF5, 0xEF, 3889 0x5E, 0x51, 0x22, 0x14, 0xF8, 0x70, 0xA0, 0x22, 3890 }, 3891 .len = 78, 3892 }, 3893 }, 3894 }; 3895 3896 #endif /* TEST_INLINE_MACSEC_VECTORS_H */ 3897