1 /*
2 * Copyright 2008-2015 Freescale Semiconductor Inc.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 * * Redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer.
8 * * Redistributions in binary form must reproduce the above copyright
9 * notice, this list of conditions and the following disclaimer in the
10 * documentation and/or other materials provided with the distribution.
11 * * Neither the name of Freescale Semiconductor nor the
12 * names of its contributors may be used to endorse or promote products
13 * derived from this software without specific prior written permission.
14 *
15 *
16 * ALTERNATIVELY, this software may be distributed under the terms of the
17 * GNU General Public License ("GPL") as published by the Free Software
18 * Foundation, either version 2 of that License or (at your option) any
19 * later version.
20 *
21 * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
22 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24 * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
25 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
28 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33 /**************************************************************************//**
34 @File fm_macsec_ext.h
35
36 @Description FM MACSEC ...
37 *//***************************************************************************/
38 #ifndef __FM_MACSEC_EXT_H
39 #define __FM_MACSEC_EXT_H
40
41 #include "std_ext.h"
42
43
44 /**************************************************************************//**
45 @Group FM_grp Frame Manager API
46
47 @Description FM API functions, definitions and enums
48
49 @{
50 *//***************************************************************************/
51
52 /**************************************************************************//**
53 @Group FM_MACSEC_grp FM MACSEC
54
55 @Description FM MACSEC API functions, definitions and enums
56
57 @{
58 *//***************************************************************************/
59
60 /**************************************************************************//**
61 @Description MACSEC Exceptions
62 *//***************************************************************************/
63 typedef enum e_FmMacsecExceptions {
64 e_FM_MACSEC_EX_SINGLE_BIT_ECC, /**< Single bit ECC error */
65 e_FM_MACSEC_EX_MULTI_BIT_ECC /**< Multi bit ECC error */
66 } e_FmMacsecExceptions;
67
68
69 /**************************************************************************//**
70 @Group FM_MACSEC_init_grp FM-MACSEC Initialization Unit
71
72 @Description FM MACSEC Initialization Unit
73
74 @{
75 *//***************************************************************************/
76
77 /**************************************************************************//**
78 @Function t_FmMacsecExceptionsCallback
79
80 @Description Exceptions user callback routine, will be called upon an
81 exception passing the exception identification.
82
83 @Param[in] h_App A handle to an application layer object; This handle
84 will be passed by the driver upon calling this callback.
85 @Param[in] exception The exception.
86 *//***************************************************************************/
87 typedef void (t_FmMacsecExceptionsCallback) ( t_Handle h_App,
88 e_FmMacsecExceptions exception);
89
90
91 /**************************************************************************//**
92 @Description FM MACSEC config input
93 *//***************************************************************************/
94 typedef struct t_FmMacsecParams {
95 t_Handle h_Fm; /**< A handle to the FM object related to */
96 bool guestMode; /**< Partition-id */
97 union {
98 struct {
99 uint8_t fmMacId; /**< FM MAC id */
100 } guestParams;
101
102 struct {
103 uintptr_t baseAddr; /**< Base of memory mapped FM MACSEC registers */
104 t_Handle h_FmMac; /**< A handle to the FM MAC object related to */
105 t_FmMacsecExceptionsCallback *f_Exception; /**< Exception Callback Routine */
106 t_Handle h_App; /**< A handle to an application layer object; This handle will
107 be passed by the driver upon calling the above callbacks */
108 } nonGuestParams;
109 };
110 } t_FmMacsecParams;
111
112 /**************************************************************************//**
113 @Function FM_MACSEC_Config
114
115 @Description Creates descriptor for the FM MACSEC module;
116
117 The routine returns a handle (descriptor) to the FM MACSEC object;
118 This descriptor must be passed as first parameter to all other
119 FM MACSEC function calls;
120
121 No actual initialization or configuration of FM MACSEC hardware is
122 done by this routine.
123
124 @Param[in] p_FmMacsecParam Pointer to data structure of parameters.
125
126 @Retval Handle to FM MACSEC object, or NULL for Failure.
127 *//***************************************************************************/
128 t_Handle FM_MACSEC_Config(t_FmMacsecParams *p_FmMacsecParam);
129
130 /**************************************************************************//**
131 @Function FM_MACSEC_Init
132
133 @Description Initializes the FM MACSEC module.
134
135 @Param[in] h_FmMacsec FM MACSEC module descriptor.
136
137 @Return E_OK on success; Error code otherwise.
138 *//***************************************************************************/
139 t_Error FM_MACSEC_Init(t_Handle h_FmMacsec);
140
141 /**************************************************************************//**
142 @Function FM_MACSEC_Free
143
144 @Description Frees all resources that were assigned to FM MACSEC module;
145
146 Calling this routine invalidates the descriptor.
147
148 @Param[in] h_FmMacsec FM MACSEC module descriptor.
149
150 @Return E_OK on success; Error code otherwise.
151 *//***************************************************************************/
152 t_Error FM_MACSEC_Free(t_Handle h_FmMacsec);
153
154
155 /**************************************************************************//**
156 @Group FM_MACSEC_advanced_init_grp FM-MACSEC Advanced Configuration Unit
157
158 @Description Configuration functions used to change default values.
159
160 @{
161 *//***************************************************************************/
162
163 /**************************************************************************//**
164 @Description enum for unknown sci frame treatment
165 *//***************************************************************************/
166 typedef enum e_FmMacsecUnknownSciFrameTreatment {
167 e_FM_MACSEC_UNKNOWN_SCI_FRAME_TREATMENT_DISCARD_BOTH = 0, /**< Controlled port - Strict mode */
168 e_FM_MACSEC_UNKNOWN_SCI_FRAME_TREATMENT_DISCARD_UNCONTROLLED_DELIVER_OR_DISCARD_CONTROLLED, /**< If C bit clear deliver on controlled port, else discard
169 Controlled port - Check or Disable mode */
170 e_FM_MACSEC_UNKNOWN_SCI_FRAME_TREATMENT_DELIVER_UNCONTROLLED_DISCARD_CONTROLLED, /**< Controlled port - Strict mode */
171 e_FM_MACSEC_UNKNOWN_SCI_FRAME_TREATMENT_DELIVER_OR_DISCARD_UNCONTROLLED_DELIVER_OR_DISCARD_CONTROLLED /**< If C bit set deliver on uncontrolled port and discard on controlled port,
172 else discard on uncontrolled port and deliver on controlled port
173 Controlled port - Check or Disable mode */
174 } e_FmMacsecUnknownSciFrameTreatment;
175
176 /**************************************************************************//**
177 @Description enum for untag frame treatment
178 *//***************************************************************************/
179 typedef enum e_FmMacsecUntagFrameTreatment {
180 e_FM_MACSEC_UNTAG_FRAME_TREATMENT_DELIVER_UNCONTROLLED_DISCARD_CONTROLLED = 0, /**< Controlled port - Strict mode */
181 e_FM_MACSEC_UNTAG_FRAME_TREATMENT_DISCARD_BOTH, /**< Controlled port - Strict mode */
182 e_FM_MACSEC_UNTAG_FRAME_TREATMENT_DISCARD_UNCONTROLLED_DELIVER_CONTROLLED_UNMODIFIED /**< Controlled port - Strict mode */
183 } e_FmMacsecUntagFrameTreatment;
184
185 /**************************************************************************//**
186 @Function FM_MACSEC_ConfigUnknownSciFrameTreatment
187
188 @Description Change the treatment for received frames with unknown sci from its default
189 configuration [DEFAULT_unknownSciFrameTreatment].
190
191 @Param[in] h_FmMacsec FM MACSEC module descriptor.
192 @Param[in] treatMode The selected mode.
193
194 @Return E_OK on success; Error code otherwise.
195
196 @Cautions Allowed only following FM_MACSEC_Config() and before FM_MACSEC_Init().
197 *//***************************************************************************/
198 t_Error FM_MACSEC_ConfigUnknownSciFrameTreatment(t_Handle h_FmMacsec, e_FmMacsecUnknownSciFrameTreatment treatMode);
199
200 /**************************************************************************//**
201 @Function FM_MACSEC_ConfigInvalidTagsFrameTreatment
202
203 @Description Change the treatment for received frames with invalid tags or
204 a zero value PN or an invalid ICV from its default configuration
205 [DEFAULT_invalidTagsFrameTreatment].
206
207 @Param[in] h_FmMacsec FM MACSEC module descriptor.
208 @Param[in] deliverUncontrolled If True deliver on the uncontrolled port, else discard;
209 In both cases discard on the controlled port;
210 this provide Strict, Check or Disable mode.
211
212 @Return E_OK on success; Error code otherwise.
213
214 @Cautions Allowed only following FM_MACSEC_Config() and before FM_MACSEC_Init().
215 *//***************************************************************************/
216 t_Error FM_MACSEC_ConfigInvalidTagsFrameTreatment(t_Handle h_FmMacsec, bool deliverUncontrolled);
217
218 /**************************************************************************//**
219 @Function FM_MACSEC_ConfigEncryptWithNoChangedTextFrameTreatment
220
221 @Description Change the treatment for received frames with the Encryption bit
222 set and the Changed Text bit clear from its default configuration
223 [DEFAULT_encryptWithNoChangedTextFrameTreatment].
224
225 @Param[in] h_FmMacsec FM MACSEC module descriptor.
226 @Param[in] discardUncontrolled If True discard on the uncontrolled port, else deliver;
227 In both cases discard on the controlled port;
228 this provide Strict, Check or Disable mode.
229
230 @Return E_OK on success; Error code otherwise.
231
232 @Cautions Allowed only following FM_MACSEC_Config() and before FM_MACSEC_Init().
233 *//***************************************************************************/
234 t_Error FM_MACSEC_ConfigEncryptWithNoChangedTextFrameTreatment(t_Handle h_FmMacsec, bool discardUncontrolled);
235
236 /**************************************************************************//**
237 @Function FM_MACSEC_ConfigChangedTextWithNoEncryptFrameTreatment
238
239 @Description Change the treatment for received frames with the Encryption bit
240 clear and the Changed Text bit set from its default configuration
241 [DEFAULT_changedTextWithNoEncryptFrameTreatment].
242
243 @Param[in] h_FmMacsec FM MACSEC module descriptor.
244 @Param[in] deliverUncontrolled If True deliver on the uncontrolled port, else discard;
245 In both cases discard on the controlled port;
246 this provide Strict, Check or Disable mode.
247
248 @Return E_OK on success; Error code otherwise.
249
250 @Cautions Allowed only following FM_MACSEC_Config() and before FM_MACSEC_Init().
251 *//***************************************************************************/
252 t_Error FM_MACSEC_ConfigChangedTextWithNoEncryptFrameTreatment(t_Handle h_FmMacsec, bool deliverUncontrolled);
253
254 /**************************************************************************//**
255 @Function FM_MACSEC_ConfigUntagFrameTreatment
256
257 @Description Change the treatment for received frames without the MAC security tag (SecTAG)
258 from its default configuration [DEFAULT_untagFrameTreatment].
259
260 @Param[in] h_FmMacsec FM MACSEC module descriptor.
261 @Param[in] treatMode The selected mode.
262
263 @Return E_OK on success; Error code otherwise.
264
265 @Cautions Allowed only following FM_MACSEC_Config() and before FM_MACSEC_Init().
266 *//***************************************************************************/
267 t_Error FM_MACSEC_ConfigUntagFrameTreatment(t_Handle h_FmMacsec, e_FmMacsecUntagFrameTreatment treatMode);
268
269 /**************************************************************************//**
270 @Function FM_MACSEC_ConfigOnlyScbIsSetFrameTreatment
271
272 @Description Change the treatment for received frames with only SCB bit set
273 from its default configuration [DEFAULT_onlyScbIsSetFrameTreatment].
274
275 @Param[in] h_FmMacsec FM MACSEC module descriptor.
276 @Param[in] deliverUncontrolled If True deliver on the uncontrolled port, else discard;
277 In both cases discard on the controlled port;
278 this provide Strict, Check or Disable mode.
279
280 @Return E_OK on success; Error code otherwise.
281
282 @Cautions Allowed only following FM_MACSEC_Config() and before FM_MACSEC_Init().
283 *//***************************************************************************/
284 t_Error FM_MACSEC_ConfigOnlyScbIsSetFrameTreatment(t_Handle h_FmMacsec, bool deliverUncontrolled);
285
286 /**************************************************************************//**
287 @Function FM_MACSEC_ConfigPnExhaustionThreshold
288
289 @Description It's provide the ability to configure a PN exhaustion threshold;
290 When the NextPn crosses this value an interrupt event
291 is asserted to warn that the active SA should re-key.
292
293 @Param[in] h_FmMacsec FM MACSEC module descriptor.
294 @Param[in] pnExhThr If the threshold is reached, an interrupt event
295 is asserted to re-key.
296
297 @Return E_OK on success; Error code otherwise.
298
299 @Cautions Allowed only following FM_MACSEC_Config() and before FM_MACSEC_Init().
300 *//***************************************************************************/
301 t_Error FM_MACSEC_ConfigPnExhaustionThreshold(t_Handle h_FmMacsec, uint32_t pnExhThr);
302
303 /**************************************************************************//**
304 @Function FM_MACSEC_ConfigKeysUnreadable
305
306 @Description Turn on privacy mode; All the keys and their hash values can't be read any more;
307 Can not be cleared unless hard reset.
308
309 @Param[in] h_FmMacsec FM MACSEC module descriptor.
310
311 @Return E_OK on success; Error code otherwise.
312
313 @Cautions Allowed only following FM_MACSEC_Config() and before FM_MACSEC_Init().
314 *//***************************************************************************/
315 t_Error FM_MACSEC_ConfigKeysUnreadable(t_Handle h_FmMacsec);
316
317 /**************************************************************************//**
318 @Function FM_MACSEC_ConfigSectagWithoutSCI
319
320 @Description Promise that all generated Sectag will be without SCI included.
321
322 @Param[in] h_FmMacsec FM MACSEC module descriptor.
323
324 @Return E_OK on success; Error code otherwise.
325
326 @Cautions Allowed only following FM_MACSEC_Config() and before FM_MACSEC_Init().
327 *//***************************************************************************/
328 t_Error FM_MACSEC_ConfigSectagWithoutSCI(t_Handle h_FmMacsec);
329
330 /**************************************************************************//**
331 @Function FM_MACSEC_ConfigException
332
333 @Description Calling this routine changes the internal driver data base
334 from its default selection of exceptions enablement;
335 By default all exceptions are enabled.
336
337 @Param[in] h_FmMacsec FM MACSEC module descriptor.
338 @Param[in] exception The exception to be selected.
339 @Param[in] enable TRUE to enable interrupt, FALSE to mask it.
340
341 @Return E_OK on success; Error code otherwise.
342
343 @Cautions Allowed only following FM_MACSEC_Config() and before FM_MACSEC_Init().
344 *//***************************************************************************/
345 t_Error FM_MACSEC_ConfigException(t_Handle h_FmMacsec, e_FmMacsecExceptions exception, bool enable);
346
347 /** @} */ /* end of FM_MACSEC_advanced_init_grp group */
348 /** @} */ /* end of FM_MACSEC_init_grp group */
349
350
351 /**************************************************************************//**
352 @Group FM_MACSEC_runtime_control_grp FM-MACSEC Runtime Control Data Unit
353
354 @Description FM MACSEC runtime control data unit API functions, definitions and enums.
355
356 @{
357 *//***************************************************************************/
358
359 /**************************************************************************//**
360 @Function FM_MACSEC_GetRevision
361
362 @Description Return MACSEC HW chip revision
363
364 @Param[in] h_FmMacsec FM MACSEC module descriptor.
365 @Param[out] p_MacsecRevision MACSEC revision as defined by the chip.
366
367 @Return E_OK on success; Error code otherwise.
368
369 @Cautions Allowed only after FM_MACSEC_Init().
370 *//***************************************************************************/
371 t_Error FM_MACSEC_GetRevision(t_Handle h_FmMacsec, uint32_t *p_MacsecRevision);
372
373 /**************************************************************************//**
374 @Function FM_MACSEC_Enable
375
376 @Description This routine should be called after MACSEC is initialized for enabling all
377 MACSEC engines according to their existing configuration.
378
379 @Param[in] h_FmMacsec FM MACSEC module descriptor.
380
381 @Return E_OK on success; Error code otherwise.
382
383 @Cautions Allowed only following FM_MACSEC_Init() and when MACSEC is disabled.
384 *//***************************************************************************/
385 t_Error FM_MACSEC_Enable(t_Handle h_FmMacsec);
386
387 /**************************************************************************//**
388 @Function FM_MACSEC_Disable
389
390 @Description This routine may be called when MACSEC is enabled in order to
391 disable all MACSEC engines; The MACSEC is working in bypass mode.
392
393 @Param[in] h_FmMacsec FM MACSEC module descriptor.
394
395 @Return E_OK on success; Error code otherwise.
396
397 @Cautions Allowed only following FM_MACSEC_Init() and when MACSEC is enabled.
398 *//***************************************************************************/
399 t_Error FM_MACSEC_Disable(t_Handle h_FmMacsec);
400
401 /**************************************************************************//**
402 @Function FM_MACSEC_SetException
403
404 @Description Calling this routine enables/disables the specified exception.
405
406 @Param[in] h_FmMacsec FM MACSEC module descriptor.
407 @Param[in] exception The exception to be selected.
408 @Param[in] enable TRUE to enable interrupt, FALSE to mask it.
409
410 @Return E_OK on success; Error code otherwise.
411
412 @Cautions Allowed only following FM_MACSEC_Init().
413 *//***************************************************************************/
414 t_Error FM_MACSEC_SetException(t_Handle h_FmMacsec, e_FmMacsecExceptions exception, bool enable);
415
416 #if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
417 /**************************************************************************//**
418 @Function FM_MACSEC_DumpRegs
419
420 @Description Dump internal registers.
421
422 @Param[in] h_FmMacsec - FM MACSEC module descriptor.
423
424 @Return E_OK on success; Error code otherwise.
425
426 @Cautions Allowed only after FM_MACSEC_Init().
427 *//***************************************************************************/
428 t_Error FM_MACSEC_DumpRegs(t_Handle h_FmMacsec);
429 #endif /* (defined(DEBUG_ERRORS) && ... */
430
431 #ifdef VERIFICATION_SUPPORT
432 /********************* VERIFICATION ONLY ********************************/
433 /**************************************************************************//**
434 @Function FM_MACSEC_BackdoorSet
435
436 @Description Set register of the MACSEC memory map
437
438 @Param[in] h_FmMacsec FM MACSEC module descriptor.
439 @Param[out] offset Register offset.
440 @Param[out] value Value to write.
441
442
443 @Return None
444
445 @Cautions Allowed only following FM_MACSEC_Init().
446 *//***************************************************************************/
447 t_Error FM_MACSEC_BackdoorSet(t_Handle h_FmMacsec, uint32_t offset, uint32_t value);
448
449 /**************************************************************************//**
450 @Function FM_MACSEC_BackdoorGet
451
452 @Description Read from register of the MACSEC memory map.
453
454 @Param[in] h_FmMacsec FM MACSEC module descriptor.
455 @Param[out] offset Register offset.
456
457 @Return Value read
458
459 @Cautions Allowed only following FM_MACSEC_Init().
460 *//***************************************************************************/
461 uint32_t FM_MACSEC_BackdoorGet(t_Handle h_FmMacsec, uint32_t offset);
462 #endif /* VERIFICATION_SUPPORT */
463
464 /** @} */ /* end of FM_MACSEC_runtime_control_grp group */
465
466
467 /**************************************************************************//**
468 @Group FM_MACSEC_SECY_grp FM-MACSEC SecY
469
470 @Description FM-MACSEC SecY API functions, definitions and enums
471
472 @{
473 *//***************************************************************************/
474
475 typedef uint8_t macsecSAKey_t[32];
476 typedef uint64_t macsecSCI_t;
477 typedef uint8_t macsecAN_t;
478
479 /**************************************************************************//**
480 @Description MACSEC SECY Cipher Suite
481 *//***************************************************************************/
482 typedef enum e_FmMacsecSecYCipherSuite {
483 e_FM_MACSEC_SECY_GCM_AES_128 = 0, /**< GCM-AES-128 */
484 #if (DPAA_VERSION >= 11)
485 e_FM_MACSEC_SECY_GCM_AES_256 /**< GCM-AES-256 */
486 #endif /* (DPAA_VERSION >= 11) */
487 } e_FmMacsecSecYCipherSuite;
488
489 /**************************************************************************//**
490 @Description MACSEC SECY Exceptions
491 *//***************************************************************************/
492 typedef enum e_FmMacsecSecYExceptions {
493 e_FM_MACSEC_SECY_EX_FRAME_DISCARDED /**< Frame Discarded */
494 } e_FmMacsecSecYExceptions;
495
496 /**************************************************************************//**
497 @Description MACSEC SECY Events
498 *//***************************************************************************/
499 typedef enum e_FmMacsecSecYEvents {
500 e_FM_MACSEC_SECY_EV_NEXT_PN /**< Next Packet Number exhaustion threshold reached */
501 } e_FmMacsecSecYEvents;
502
503 /**************************************************************************//**
504 @Collection MACSEC SECY Frame Discarded Descriptor error
505 *//***************************************************************************/
506 typedef uint8_t macsecTxScFrameDiscardedErrSelect_t; /**< typedef for defining Frame Discarded Descriptor errors */
507
508 #define FM_MACSEC_SECY_TX_SC_FRM_DISCAR_ERR_NEXT_PN_ZERO 0x8000 /**< NextPn == 0 */
509 #define FM_MACSEC_SECY_TX_SC_FRM_DISCAR_ERR_SC_DISBALE 0x4000 /**< SC is disable */
510 /* @} */
511
512 /**************************************************************************//**
513 @Function t_FmMacsecSecYExceptionsCallback
514
515 @Description Exceptions user callback routine, will be called upon an
516 exception passing the exception identification.
517
518 @Param[in] h_App A handle to an application layer object; This handle
519 will be passed by the driver upon calling this callback.
520 @Param[in] exception The exception.
521 *//***************************************************************************/
522 typedef void (t_FmMacsecSecYExceptionsCallback) ( t_Handle h_App,
523 e_FmMacsecSecYExceptions exception);
524
525 /**************************************************************************//**
526 @Function t_FmMacsecSecYEventsCallback
527
528 @Description Events user callback routine, will be called upon an
529 event passing the event identification.
530
531 @Param[in] h_App A handle to an application layer object; This handle
532 will be passed by the driver upon calling this callback.
533 @Param[in] event The event.
534 *//***************************************************************************/
535 typedef void (t_FmMacsecSecYEventsCallback) ( t_Handle h_App,
536 e_FmMacsecSecYEvents event);
537
538 /**************************************************************************//**
539 @Description RFC2863 MIB
540 *//***************************************************************************/
541 typedef struct t_MIBStatistics {
542 uint64_t ifInOctets; /**< Total number of byte received */
543 uint64_t ifInPkts; /**< Total number of packets received */
544 uint64_t ifInMcastPkts; /**< Total number of multicast frame received */
545 uint64_t ifInBcastPkts; /**< Total number of broadcast frame received */
546 uint64_t ifInDiscards; /**< Frames received, but discarded due to problems within the MAC RX :
547 - InPktsNoTag,
548 - InPktsLate,
549 - InPktsOverrun */
550 uint64_t ifInErrors; /**< Number of frames received with error:
551 - InPktsBadTag,
552 - InPktsNoSCI,
553 - InPktsNotUsingSA
554 - InPktsNotValid */
555 uint64_t ifOutOctets; /**< Total number of byte sent */
556 uint64_t ifOutPkts; /**< Total number of packets sent */
557 uint64_t ifOutMcastPkts; /**< Total number of multicast frame sent */
558 uint64_t ifOutBcastPkts; /**< Total number of multicast frame sent */
559 uint64_t ifOutDiscards; /**< Frames received, but discarded due to problems within the MAC TX N/A! */
560 uint64_t ifOutErrors; /**< Number of frames transmitted with error:
561 - FIFO Overflow Error
562 - FIFO Underflow Error
563 - Other */
564 } t_MIBStatistics;
565
566 /**************************************************************************//**
567 @Description MACSEC SecY Rx SA Statistics
568 *//***************************************************************************/
569 typedef struct t_FmMacsecSecYRxSaStatistics {
570 uint32_t inPktsOK; /**< The number of frames with resolved SCI, have passed all
571 frame validation frame validation with the validateFrame not set to disable */
572 uint32_t inPktsInvalid; /**< The number of frames with resolved SCI, that have failed frame
573 validation with the validateFrame set to check */
574 uint32_t inPktsNotValid; /**< The number of frames with resolved SCI, discarded on the controlled port,
575 that have failed frame validation with the validateFrame set to strict or the c bit is set */
576 uint32_t inPktsNotUsingSA; /**< The number of frames received with resolved SCI and discarded on disabled or
577 not provisioned SA with validateFrame in the strict mode or the C bit is set */
578 uint32_t inPktsUnusedSA; /**< The number of frames received with resolved SCI on disabled or not provisioned SA
579 with validateFrame not in the strict mode and the C bit is cleared */
580 } t_FmMacsecSecYRxSaStatistics;
581
582 /**************************************************************************//**
583 @Description MACSEC SecY Tx SA Statistics
584 *//***************************************************************************/
585 typedef struct t_FmMacsecSecYTxSaStatistics {
586 uint64_t outPktsProtected; /**< The number of frames, that the user of the controlled port requested to
587 be transmitted, which were integrity protected */
588 uint64_t outPktsEncrypted; /**< The number of frames, that the user of the controlled port requested to
589 be transmitted, which were confidentiality protected */
590 } t_FmMacsecSecYTxSaStatistics;
591
592 /**************************************************************************//**
593 @Description MACSEC SecY Rx SC Statistics
594 *//***************************************************************************/
595 typedef struct t_FmMacsecSecYRxScStatistics {
596 uint64_t inPktsUnchecked; /**< The number of frames with resolved SCI, delivered to the user of a controlled port,
597 that are not validated with the validateFrame set to disable */
598 uint64_t inPktsDelayed; /**< The number of frames with resolved SCI, delivered to the user of a controlled port,
599 that have their PN smaller than the lowest_PN with the validateFrame set to
600 disable or replayProtect disabled */
601 uint64_t inPktsLate; /**< The number of frames with resolved SCI, discarded on the controlled port,
602 that have their PN smaller than the lowest_PN with the validateFrame set to
603 Check or Strict and replayProtect enabled */
604 uint64_t inPktsOK; /**< The number of frames with resolved SCI, have passed all
605 frame validation frame validation with the validateFrame not set to disable */
606 uint64_t inPktsInvalid; /**< The number of frames with resolved SCI, that have failed frame
607 validation with the validateFrame set to check */
608 uint64_t inPktsNotValid; /**< The number of frames with resolved SCI, discarded on the controlled port,
609 that have failed frame validation with the validateFrame set to strict or the c bit is set */
610 uint64_t inPktsNotUsingSA; /**< The number of frames received with resolved SCI and discarded on disabled or
611 not provisioned SA with validateFrame in the strict mode or the C bit is set */
612 uint64_t inPktsUnusedSA; /**< The number of frames received with resolved SCI on disabled or not provisioned SA
613 with validateFrame not in the strict mode and the C bit is cleared */
614 } t_FmMacsecSecYRxScStatistics;
615
616 /**************************************************************************//**
617 @Description MACSEC SecY Tx SC Statistics
618 *//***************************************************************************/
619 typedef struct t_FmMacsecSecYTxScStatistics {
620 uint64_t outPktsProtected; /**< The number of frames, that the user of the controlled port requested to
621 be transmitted, which were integrity protected */
622 uint64_t outPktsEncrypted; /**< The number of frames, that the user of the controlled port requested to
623 be transmitted, which were confidentiality protected */
624 } t_FmMacsecSecYTxScStatistics;
625
626 /**************************************************************************//**
627 @Description MACSEC SecY Statistics
628 *//***************************************************************************/
629 typedef struct t_FmMacsecSecYStatistics {
630 t_MIBStatistics mibCtrlStatistics; /**< Controlled port MIB statistics */
631 t_MIBStatistics mibNonCtrlStatistics; /**< Uncontrolled port MIB statistics */
632 /* Frame verification statistics */
633 uint64_t inPktsUntagged; /**< The number of received packets without the MAC security tag
634 (SecTAG) with validateFrames which is not in the strict mode */
635 uint64_t inPktsNoTag; /**< The number of received packets discarded without the
636 MAC security tag (SecTAG) with validateFrames which is in the strict mode */
637 uint64_t inPktsBadTag; /**< The number of received packets discarded with an invalid
638 SecTAG or a zero value PN or an invalid ICV */
639 uint64_t inPktsUnknownSCI; /**< The number of received packets with unknown SCI with the
640 condition : validateFrames is not in the strict mode and the
641 C bit in the SecTAG is not set */
642 uint64_t inPktsNoSCI; /**< The number of received packets discarded with unknown SCI
643 information with the condition : validateFrames is in the strict mode
644 or the C bit in the SecTAG is set */
645 uint64_t inPktsOverrun; /**< The number of packets discarded because the number of
646 received packets exceeded the cryptographic performance capabilities */
647 /* Frame validation statistics */
648 uint64_t inOctetsValidated; /**< The number of octets of plaintext recovered from received frames with
649 resolved SCI that were integrity protected but not encrypted */
650 uint64_t inOctetsDecrypted; /**< The number of octets of plaintext recovered from received frames with
651 resolved SCI that were integrity protected and encrypted */
652 /* Frame generation statistics */
653 uint64_t outPktsUntagged; /**< The number of frames, that the user of the controlled port requested to
654 be transmitted, with protectFrame false */
655 uint64_t outPktsTooLong; /**< The number of frames, that the user of the controlled port requested to
656 be transmitted, discarded due to length being larger than Maximum Frame Length (MACSEC_MFL) */
657 /* Frame protection statistics */
658 uint64_t outOctetsProtected; /**< The number of octets of User Data in transmitted frames that were
659 integrity protected but not encrypted */
660 uint64_t outOctetsEncrypted; /**< The number of octets of User Data in transmitted frames that were
661 both integrity protected and encrypted */
662 } t_FmMacsecSecYStatistics;
663
664
665 /**************************************************************************//**
666 @Description MACSEC SecY SC Params
667 *//***************************************************************************/
668 typedef struct t_FmMacsecSecYSCParams {
669 macsecSCI_t sci; /**< The secure channel identification of the SC */
670 e_FmMacsecSecYCipherSuite cipherSuite; /**< Cipher suite to be used for the SC */
671 } t_FmMacsecSecYSCParams;
672
673 /**************************************************************************//**
674 @Group FM_MACSEC_SECY_init_grp FM-MACSEC SecY Initialization Unit
675
676 @Description FM-MACSEC SecY Initialization Unit
677
678 @{
679 *//***************************************************************************/
680
681 /**************************************************************************//**
682 @Description enum for validate frames
683 *//***************************************************************************/
684 typedef enum e_FmMacsecValidFrameBehavior {
685 e_FM_MACSEC_VALID_FRAME_BEHAVIOR_DISABLE = 0, /**< disable the validation function */
686 e_FM_MACSEC_VALID_FRAME_BEHAVIOR_CHECK, /**< enable the validation function but only for checking
687 without filtering out invalid frames */
688 e_FM_MACSEC_VALID_FRAME_BEHAVIOR_STRICT /**< enable the validation function and also strictly filter
689 out those invalid frames */
690 } e_FmMacsecValidFrameBehavior;
691
692 /**************************************************************************//**
693 @Description enum for sci insertion
694 *//***************************************************************************/
695 typedef enum e_FmMacsecSciInsertionMode {
696 e_FM_MACSEC_SCI_INSERTION_MODE_EXPLICIT_SECTAG = 0, /**< explicit sci in the sectag */
697 e_FM_MACSEC_SCI_INSERTION_MODE_EXPLICIT_MAC_SA, /**< mac sa is overwritten with the sci*/
698 e_FM_MACSEC_SCI_INSERTION_MODE_IMPLICT_PTP /**< implicit point-to-point sci (pre-shared) */
699 } e_FmMacsecSciInsertionMode;
700
701 /**************************************************************************//**
702 @Description FM MACSEC SecY config input
703 *//***************************************************************************/
704 typedef struct t_FmMacsecSecYParams {
705 t_Handle h_FmMacsec; /**< A handle to the FM MACSEC object */
706 t_FmMacsecSecYSCParams txScParams; /**< Tx SC Params */
707 uint32_t numReceiveChannels; /**< Number of receive channels dedicated to this SecY */
708 t_FmMacsecSecYExceptionsCallback *f_Exception; /**< Callback routine to be called by the driver upon SecY exception */
709 t_FmMacsecSecYEventsCallback *f_Event; /**< Callback routine to be called by the driver upon SecY event */
710 t_Handle h_App; /**< A handle to an application layer object; This handle will
711 be passed by the driver upon calling the above callbacks */
712 } t_FmMacsecSecYParams;
713
714 /**************************************************************************//**
715 @Function FM_MACSEC_SECY_Config
716
717 @Description Creates descriptor for the FM MACSEC SECY module;
718
719 The routine returns a handle (descriptor) to the FM MACSEC SECY object;
720 This descriptor must be passed as first parameter to all other
721 FM MACSEC SECY function calls;
722 No actual initialization or configuration of FM MACSEC SecY hardware is
723 done by this routine.
724
725 @Param[in] p_FmMacsecSecYParam Pointer to data structure of parameters.
726
727 @Return Handle to FM MACSEC SECY object, or NULL for Failure.
728 *//***************************************************************************/
729 t_Handle FM_MACSEC_SECY_Config(t_FmMacsecSecYParams *p_FmMacsecSecYParam);
730
731 /**************************************************************************//**
732 @Function FM_MACSEC_SECY_Init
733
734 @Description Initializes the FM MACSEC SECY module.
735
736 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
737
738 @Return E_OK on success; Error code otherwise.
739 *//***************************************************************************/
740 t_Error FM_MACSEC_SECY_Init(t_Handle h_FmMacsecSecY);
741
742 /**************************************************************************//**
743 @Function FM_MACSEC_SECY_Free
744
745 @Description Frees all resources that were assigned to FM MACSEC SECY module.
746
747 Calling this routine invalidates the descriptor.
748
749 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
750
751 @Return E_OK on success; Error code otherwise.
752 *//***************************************************************************/
753 t_Error FM_MACSEC_SECY_Free(t_Handle h_FmMacsecSecY);
754
755 /**************************************************************************//**
756 @Group FM_MACSEC_SECY_advanced_init_grp FM-MACSEC SecY Advanced Configuration Unit
757
758 @Description Configuration functions used to change default values.
759
760 @{
761 *//***************************************************************************/
762
763 /**************************************************************************//**
764 @Function FM_MACSEC_SECY_ConfigSciInsertionMode
765
766 @Description Calling this routine changes the SCI-insertion-mode in the
767 internal driver data base from its default configuration
768 [DEFAULT_sciInsertionMode]
769
770 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
771 @Param[in] sciInsertionMode Sci insertion mode
772
773 @Return E_OK on success; Error code otherwise.
774
775 @Cautions Allowed only following FM_MACSEC_SECY_Config() and before FM_MACSEC_SECY_Init();
776
777 *//***************************************************************************/
778 t_Error FM_MACSEC_SECY_ConfigSciInsertionMode(t_Handle h_FmMacsecSecY, e_FmMacsecSciInsertionMode sciInsertionMode);
779
780 /**************************************************************************//**
781 @Function FM_MACSEC_SECY_ConfigProtectFrames
782
783 @Description Calling this routine changes the protect-frame mode in the
784 internal driver data base from its default configuration
785 [DEFAULT_protectFrames]
786
787 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
788 @Param[in] protectFrames If FALSE, frames are transmitted without modification
789
790 @Return E_OK on success; Error code otherwise.
791
792 @Cautions Allowed only following FM_MACSEC_SECY_Config() and before FM_MACSEC_SECY_Init();
793
794 *//***************************************************************************/
795 t_Error FM_MACSEC_SECY_ConfigProtectFrames(t_Handle h_FmMacsecSecY, bool protectFrames);
796
797 /**************************************************************************//**
798 @Function FM_MACSEC_SECY_ConfigReplayWindow
799
800 @Description Calling this routine changes the replay-window settings in the
801 internal driver data base from its default configuration
802 [DEFAULT_replayEnable], [DEFAULT_replayWindow]
803
804 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
805 @Param[in] replayProtect; Replay protection function mode
806 @Param[in] replayWindow; The size of the replay window
807
808 @Return E_OK on success; Error code otherwise.
809
810 @Cautions Allowed only following FM_MACSEC_SECY_Config() and before FM_MACSEC_SECY_Init();
811
812 *//***************************************************************************/
813 t_Error FM_MACSEC_SECY_ConfigReplayWindow(t_Handle h_FmMacsecSecY, bool replayProtect, uint32_t replayWindow);
814
815 /**************************************************************************//**
816 @Function FM_MACSEC_SECY_ConfigValidationMode
817
818 @Description Calling this routine changes the frame-validation-behavior mode
819 in the internal driver data base from its default configuration
820 [DEFAULT_validateFrames]
821
822 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
823 @Param[in] validateFrames Validation function mode
824
825 @Return E_OK on success; Error code otherwise.
826
827 @Cautions Allowed only following FM_MACSEC_SECY_Config() and before FM_MACSEC_SECY_Init();
828
829 *//***************************************************************************/
830 t_Error FM_MACSEC_SECY_ConfigValidationMode(t_Handle h_FmMacsecSecY, e_FmMacsecValidFrameBehavior validateFrames);
831
832 /**************************************************************************//**
833 @Function FM_MACSEC_SECY_ConfigConfidentiality
834
835 @Description Calling this routine changes the confidentiality settings in the
836 internal driver data base from its default configuration
837 [DEFAULT_confidentialityEnable], [DEFAULT_confidentialityOffset]
838
839 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
840 @Param[in] confidentialityEnable TRUE - confidentiality protection and integrity protection
841 FALSE - no confidentiality protection, only integrity protection
842 @Param[in] confidentialityOffset The number of initial octets of each MSDU without confidentiality protection
843 common values are 0, 30, and 50
844
845 @Return E_OK on success; Error code otherwise.
846
847 @Cautions Allowed only following FM_MACSEC_SECY_Config() and before FM_MACSEC_SECY_Init();
848
849 *//***************************************************************************/
850 t_Error FM_MACSEC_SECY_ConfigConfidentiality(t_Handle h_FmMacsecSecY, bool confidentialityEnable, uint16_t confidentialityOffset);
851
852 /**************************************************************************//**
853 @Function FM_MACSEC_SECY_ConfigPointToPoint
854
855 @Description configure this SecY to work in point-to-point mode, means that
856 it will have only one rx sc;
857
858 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
859
860 @Return E_OK on success; Error code otherwise.
861
862 @Cautions Allowed only following FM_MACSEC_SECY_Config() and before FM_MACSEC_SECY_Init();
863 Can be called only once in a system; only the first secY that will call this
864 routine will be able to operate in Point-To-Point mode.
865 *//***************************************************************************/
866 t_Error FM_MACSEC_SECY_ConfigPointToPoint(t_Handle h_FmMacsecSecY);
867
868 /**************************************************************************//**
869 @Function FM_MACSEC_SECY_ConfigException
870
871 @Description Calling this routine changes the internal driver data base
872 from its default selection of exceptions enablement;
873 By default all exceptions are enabled.
874
875 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
876 @Param[in] exception The exception to be selected.
877 @Param[in] enable TRUE to enable interrupt, FALSE to mask it.
878
879 @Return E_OK on success; Error code otherwise.
880
881 @Cautions Allowed only following FM_MACSEC_SECY_Config() and before FM_MACSEC_SECY_Init().
882 *//***************************************************************************/
883 t_Error FM_MACSEC_SECY_ConfigException(t_Handle h_FmMacsecSecY, e_FmMacsecSecYExceptions exception, bool enable);
884
885 /**************************************************************************//**
886 @Function FM_MACSEC_SECY_ConfigEvent
887
888 @Description Calling this routine changes the internal driver data base
889 from its default selection of events enablement;
890 By default all events are enabled.
891
892 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
893 @Param[in] event The event to be selected.
894 @Param[in] enable TRUE to enable interrupt, FALSE to mask it.
895
896 @Return E_OK on success; Error code otherwise.
897
898 @Cautions Allowed only following FM_MACSEC_SECY_Config() and before FM_MACSEC_SECY_Init().
899 *//***************************************************************************/
900 t_Error FM_MACSEC_SECY_ConfigEvent(t_Handle h_FmMacsecSecY, e_FmMacsecSecYEvents event, bool enable);
901
902 /** @} */ /* end of FM_MACSEC_SECY_advanced_init_grp group */
903 /** @} */ /* end of FM_MACSEC_SECY_init_grp group */
904
905
906 /**************************************************************************//**
907 @Group FM_MACSEC_SECY_runtime_control_grp FM-MACSEC SecY Runtime Control Unit
908
909 @Description FM MACSEC SECY Runtime control unit API functions, definitions and enums.
910
911 @{
912 *//***************************************************************************/
913
914 /**************************************************************************//**
915 @Function FM_MACSEC_SECY_CreateRxSc
916
917 @Description Create a receive secure channel.
918
919 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
920 @Param[in] scParams secure channel params.
921
922 @Return E_OK on success; Error code otherwise.
923
924 @Cautions Allowed only following FM_MACSEC_SECY_Init().
925 *//***************************************************************************/
926 t_Handle FM_MACSEC_SECY_CreateRxSc(t_Handle h_FmMacsecSecY, t_FmMacsecSecYSCParams *p_ScParams);
927
928 /**************************************************************************//**
929 @Function FM_MACSEC_SECY_DeleteRxSc
930
931 @Description Deleting an initialized secure channel.
932
933 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
934 @Param[in] h_Sc SC handle as returned by FM_MACSEC_SECY_CreateRxSc.
935
936 @Return E_OK on success; Error code otherwise.
937
938 @Cautions Allowed only following FM_MACSEC_SECY_CreateRxSc().
939 *//***************************************************************************/
940 t_Error FM_MACSEC_SECY_DeleteRxSc(t_Handle h_FmMacsecSecY, t_Handle h_Sc);
941
942 /**************************************************************************//**
943 @Function FM_MACSEC_SECY_CreateRxSa
944
945 @Description Create a receive secure association for the secure channel;
946 the SA cannot be used to receive frames until FM_MACSEC_SECY_RxSaEnableReceive is called.
947
948 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
949 @Param[in] h_Sc SC handle as returned by FM_MACSEC_SECY_CreateRxSc.
950 @Param[in] an association number represent the SA.
951 @Param[in] lowestPn the lowest acceptable PN value for a received frame.
952 @Param[in] key the desired key for this SA.
953
954 @Return E_OK on success; Error code otherwise.
955
956 @Cautions Allowed only following FM_MACSEC_SECY_CreateRxSc().
957 *//***************************************************************************/
958 t_Error FM_MACSEC_SECY_CreateRxSa(t_Handle h_FmMacsecSecY, t_Handle h_Sc, macsecAN_t an, uint32_t lowestPn, macsecSAKey_t key);
959
960 /**************************************************************************//**
961 @Function FM_MACSEC_SECY_DeleteRxSa
962
963 @Description Deleting an initialized secure association.
964
965 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
966 @Param[in] h_Sc SC handle as returned by FM_MACSEC_SECY_CreateRxSc.
967 @Param[in] an association number represent the SA.
968
969 @Return E_OK on success; Error code otherwise.
970
971 @Cautions Allowed only following FM_MACSEC_SECY_Init().
972 *//***************************************************************************/
973 t_Error FM_MACSEC_SECY_DeleteRxSa(t_Handle h_FmMacsecSecY, t_Handle h_Sc, macsecAN_t an);
974
975 /**************************************************************************//**
976 @Function FM_MACSEC_SECY_RxSaEnableReceive
977
978 @Description Enabling the SA to receive frames.
979
980 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
981 @Param[in] h_Sc SC handle as returned by FM_MACSEC_SECY_CreateRxSc.
982 @Param[in] an association number represent the SA.
983
984 @Return E_OK on success; Error code otherwise.
985
986 @Cautions Allowed only following FM_MACSEC_SECY_CreateRxSa().
987 *//***************************************************************************/
988 t_Error FM_MACSEC_SECY_RxSaEnableReceive(t_Handle h_FmMacsecSecY, t_Handle h_Sc, macsecAN_t an);
989
990 /**************************************************************************//**
991 @Function FM_MACSEC_SECY_RxSaDisableReceive
992
993 @Description Disabling the SA from receive frames.
994
995 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
996 @Param[in] h_Sc SC handle as returned by FM_MACSEC_SECY_CreateRxSc.
997 @Param[in] an association number represent the SA.
998
999 @Return E_OK on success; Error code otherwise.
1000
1001 @Cautions Allowed only following FM_MACSEC_SECY_CreateRxSa().
1002 *//***************************************************************************/
1003 t_Error FM_MACSEC_SECY_RxSaDisableReceive(t_Handle h_FmMacsecSecY, t_Handle h_Sc, macsecAN_t an);
1004
1005 /**************************************************************************//**
1006 @Function FM_MACSEC_SECY_RxSaUpdateNextPn
1007
1008 @Description Update the next packet number expected on RX;
1009 The value of nextPN shall be set to the greater of its existing value and the
1010 supplied of updtNextPN (802.1AE-2006 10.7.15).
1011
1012 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1013 @Param[in] h_Sc SC handle as returned by FM_MACSEC_SECY_CreateRxSc.
1014 @Param[in] an association number represent the SA.
1015 @Param[in] updtNextPN the next PN value for a received frame.
1016
1017 @Return E_OK on success; Error code otherwise.
1018
1019 @Cautions Allowed only following FM_MACSEC_SECY_CreateRxSa().
1020 *//***************************************************************************/
1021 t_Error FM_MACSEC_SECY_RxSaUpdateNextPn(t_Handle h_FmMacsecSecY, t_Handle h_Sc, macsecAN_t an, uint32_t updtNextPN);
1022
1023 /**************************************************************************//**
1024 @Function FM_MACSEC_SECY_RxSaUpdateLowestPn
1025
1026 @Description Update the lowest packet number expected on RX;
1027 The value of lowestPN shall be set to the greater of its existing value and the
1028 supplied of updtLowestPN (802.1AE-2006 10.7.15).
1029
1030 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1031 @Param[in] h_Sc SC handle as returned by FM_MACSEC_SECY_CreateRxSc.
1032 @Param[in] an association number represent the SA.
1033 @Param[in] updtLowestPN the lowest PN acceptable value for a received frame.
1034
1035 @Return E_OK on success; Error code otherwise.
1036
1037 @Cautions Allowed only following FM_MACSEC_SECY_CreateRxSa().
1038 *//***************************************************************************/
1039 t_Error FM_MACSEC_SECY_RxSaUpdateLowestPn(t_Handle h_FmMacsecSecY, t_Handle h_Sc, macsecAN_t an, uint32_t updtLowestPN);
1040
1041 /**************************************************************************//**
1042 @Function FM_MACSEC_SECY_RxSaModifyKey
1043
1044 @Description Modify the current key of the SA with a new one.
1045
1046 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1047 @Param[in] h_Sc SC handle as returned by FM_MACSEC_SECY_CreateRxSc.
1048 @Param[in] an association number represent the SA.
1049 @Param[in] key new key to replace the current key.
1050
1051 @Return E_OK on success; Error code otherwise.
1052
1053 @Cautions Allowed only following FM_MACSEC_SECY_CreateRxSa().
1054 *//***************************************************************************/
1055 t_Error FM_MACSEC_SECY_RxSaModifyKey(t_Handle h_FmMacsecSecY, t_Handle h_Sc, macsecAN_t an, macsecSAKey_t key);
1056
1057 /**************************************************************************//**
1058 @Function FM_MACSEC_SECY_CreateTxSa
1059
1060 @Description Create a transmit secure association for the secure channel;
1061 the SA cannot be used to transmit frames until FM_MACSEC_SECY_TxSaSetActivate is called;
1062 Only one SA can be active at a time.
1063
1064 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1065 @Param[in] an association number represent the SA.
1066 @Param[in] key the desired key for this SA.
1067
1068 @Return E_OK on success; Error code otherwise.
1069
1070 @Cautions Allowed only following FM_MACSEC_SECY_Init().
1071 *//***************************************************************************/
1072 t_Error FM_MACSEC_SECY_CreateTxSa(t_Handle h_FmMacsecSecY, macsecAN_t an, macsecSAKey_t key);
1073
1074 /**************************************************************************//**
1075 @Function FM_MACSEC_SECY_DeleteTxSa
1076
1077 @Description Deleting an initialized secure association.
1078
1079 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1080 @Param[in] an association number represent the SA.
1081
1082 @Return E_OK on success; Error code otherwise.
1083
1084 @Cautions Allowed only following FM_MACSEC_SECY_Init().
1085 *//***************************************************************************/
1086 t_Error FM_MACSEC_SECY_DeleteTxSa(t_Handle h_FmMacsecSecY, macsecAN_t an);
1087
1088 /**************************************************************************//**
1089 @Function FM_MACSEC_SECY_TxSaModifyKey
1090
1091 @Description Modify the key of the inactive SA with a new one.
1092
1093 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1094 @Param[in] nextActiveAn association number represent the next SA to be activated.
1095 @Param[in] key new key to replace the current key.
1096
1097 @Return E_OK on success; Error code otherwise.
1098
1099 @Cautions Allowed only following FM_MACSEC_SECY_Init().
1100 *//***************************************************************************/
1101 t_Error FM_MACSEC_SECY_TxSaModifyKey(t_Handle h_FmMacsecSecY, macsecAN_t nextActiveAn, macsecSAKey_t key);
1102
1103 /**************************************************************************//**
1104 @Function FM_MACSEC_SECY_TxSaSetActive
1105
1106 @Description Set this SA to the active SA to be used on TX for SC;
1107 only one SA can be active at a time.
1108
1109 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1110 @Param[in] an association number represent the SA.
1111
1112 @Return E_OK on success; Error code otherwise.
1113
1114 @Cautions Allowed only following FM_MACSEC_SECY_Init().
1115 *//***************************************************************************/
1116 t_Error FM_MACSEC_SECY_TxSaSetActive(t_Handle h_FmMacsecSecY, macsecAN_t an);
1117
1118 /**************************************************************************//**
1119 @Function FM_MACSEC_SECY_TxSaGetActive
1120
1121 @Description Get the active SA that being used for TX.
1122
1123 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1124 @Param[out] p_An the active an.
1125
1126 @Return E_OK on success; Error code otherwise.
1127
1128 @Cautions Allowed only following FM_MACSEC_SECY_Init().
1129 *//***************************************************************************/
1130 t_Error FM_MACSEC_SECY_TxSaGetActive(t_Handle h_FmMacsecSecY, macsecAN_t *p_An);
1131
1132 /**************************************************************************//**
1133 @Function FM_MACSEC_SECY_GetStatistics
1134
1135 @Description get all statistics counters.
1136
1137 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1138 @Param[in] p_Statistics Structure with statistics.
1139
1140 @Return E_OK on success; Error code otherwise.
1141
1142 @Cautions Allowed only following FM_MACSEC_SECY_Init().
1143 *//***************************************************************************/
1144 t_Error FM_MACSEC_SECY_GetStatistics(t_Handle h_FmMacsecSecY, t_FmMacsecSecYStatistics *p_Statistics);
1145
1146 /**************************************************************************//**
1147 @Function FM_MACSEC_SECY_RxScGetStatistics
1148
1149 @Description get all statistics counters.
1150
1151 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1152 @Param[in] h_Sc Rx Sc handle.
1153 @Param[in] p_Statistics Structure with statistics.
1154
1155 @Return E_OK on success; Error code otherwise.
1156
1157 @Cautions Allowed only following FM_MACSEC_SECY_Init().
1158 *//***************************************************************************/
1159 t_Error FM_MACSEC_SECY_RxScGetStatistics(t_Handle h_FmMacsecSecY, t_Handle h_Sc, t_FmMacsecSecYRxScStatistics *p_Statistics);
1160
1161 /**************************************************************************//**
1162 @Function FM_MACSEC_SECY_RxSaGetStatistics
1163
1164 @Description get all statistics counters
1165
1166 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1167 @Param[in] h_Sc Rx Sc handle.
1168 @Param[in] an association number represent the SA.
1169 @Param[in] p_Statistics Structure with statistics.
1170
1171 @Return E_OK on success; Error code otherwise.
1172
1173 @Cautions Allowed only following FM_MACSEC_SECY_Init().
1174 *//***************************************************************************/
1175 t_Error FM_MACSEC_SECY_RxSaGetStatistics(t_Handle h_FmMacsecSecY, t_Handle h_Sc, macsecAN_t an, t_FmMacsecSecYRxSaStatistics *p_Statistics);
1176
1177 /**************************************************************************//**
1178 @Function FM_MACSEC_SECY_TxScGetStatistics
1179
1180 @Description get all statistics counters.
1181
1182 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1183 @Param[in] p_Statistics Structure with statistics.
1184
1185 @Return E_OK on success; Error code otherwise.
1186
1187 @Cautions Allowed only following FM_MACSEC_SECY_Init().
1188 *//***************************************************************************/
1189 t_Error FM_MACSEC_SECY_TxScGetStatistics(t_Handle h_FmMacsecSecY, t_FmMacsecSecYTxScStatistics *p_Statistics);
1190
1191 /**************************************************************************//**
1192 @Function FM_MACSEC_SECY_TxSaGetStatistics
1193
1194 @Description get all statistics counters.
1195
1196 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1197 @Param[in] an association number represent the SA.
1198 @Param[in] p_Statistics Structure with statistics.
1199
1200 @Return E_OK on success; Error code otherwise.
1201
1202 @Cautions Allowed only following FM_MACSEC_SECY_Init().
1203 *//***************************************************************************/
1204 t_Error FM_MACSEC_SECY_TxSaGetStatistics(t_Handle h_FmMacsecSecY, macsecAN_t an, t_FmMacsecSecYTxSaStatistics *p_Statistics);
1205
1206 /**************************************************************************//**
1207 @Function FM_MACSEC_SECY_SetException
1208
1209 @Description Calling this routine enables/disables the specified exception.
1210
1211 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1212 @Param[in] exception The exception to be selected.
1213 @Param[in] enable TRUE to enable interrupt, FALSE to mask it.
1214
1215 @Return E_OK on success; Error code otherwise.
1216
1217 @Cautions Allowed only following FM_MACSEC_SECY_Init().
1218 *//***************************************************************************/
1219 t_Error FM_MACSEC_SECY_SetException(t_Handle h_FmMacsecSecY, e_FmMacsecExceptions exception, bool enable);
1220
1221 /**************************************************************************//**
1222 @Function FM_MACSEC_SECY_SetEvent
1223
1224 @Description Calling this routine enables/disables the specified event.
1225
1226 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1227 @Param[in] event The event to be selected.
1228 @Param[in] enable TRUE to enable interrupt, FALSE to mask it.
1229
1230 @Return E_OK on success; Error code otherwise.
1231
1232 @Cautions Allowed only following FM_MACSEC_SECY_Config() and before FM_MACSEC_SECY_Init().
1233 *//***************************************************************************/
1234 t_Error FM_MACSEC_SECY_SetEvent(t_Handle h_FmMacsecSecY, e_FmMacsecSecYEvents event, bool enable);
1235
1236 /**************************************************************************//**
1237 @Function FM_MACSEC_SECY_GetRxScPhysId
1238
1239 @Description return the physical id of the Secure Channel.
1240
1241 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1242 @Param[in] h_Sc SC handle as returned by FM_MACSEC_SECY_CreateRxSc.
1243 @Param[out] p_ScPhysId the SC physical id.
1244
1245 @Return E_OK on success; Error code otherwise.
1246
1247 @Cautions Allowed only following FM_MACSEC_SECY_CreateRxSc().
1248 *//***************************************************************************/
1249 t_Error FM_MACSEC_SECY_GetRxScPhysId(t_Handle h_FmMacsecSecY, t_Handle h_Sc, uint32_t *p_ScPhysId);
1250
1251 /**************************************************************************//**
1252 @Function FM_MACSEC_SECY_GetTxScPhysId
1253
1254 @Description return the physical id of the Secure Channel.
1255
1256 @Param[in] h_FmMacsecSecY FM MACSEC SECY module descriptor.
1257 @Param[out] p_ScPhysId the SC physical id.
1258
1259 @Return E_OK on success; Error code otherwise.
1260
1261 @Cautions Allowed only following FM_MACSEC_SECY_Init().
1262 *//***************************************************************************/
1263 t_Error FM_MACSEC_SECY_GetTxScPhysId(t_Handle h_FmMacsecSecY, uint32_t *p_ScPhysId);
1264
1265 /** @} */ /* end of FM_MACSEC_SECY_runtime_control_grp group */
1266 /** @} */ /* end of FM_MACSEC_SECY_grp group */
1267 /** @} */ /* end of FM_MACSEC_grp group */
1268 /** @} */ /* end of FM_grp group */
1269
1270
1271 #endif /* __FM_MACSEC_EXT_H */
Cache object: eec9cef1f35f5a30f477379277378d0c
|