xref: /dpdk/app/test/test_security_inline_macsec_vectors.h (revision 2a3a153e38c71fd80b5f7f0ee8a3f6b3d974ef42)
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