REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
		
			
				
	
	
		
			397 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			397 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   EFI EAP Management Protocol Definition
 | |
|   The EFI EAP Management Protocol is designed to provide ease of management and
 | |
|   ease of test for EAPOL state machine. It is intended for the supplicant side.
 | |
|   It conforms to IEEE 802.1x specification.
 | |
|   The definitions in this file are defined in UEFI Specification 2.2, which have
 | |
|   not been verified by one implementation yet.
 | |
| 
 | |
|   Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
|   @par Revision Reference:
 | |
|   This Protocol is introduced in UEFI Specification 2.2
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef __EFI_EAP_MANAGEMENT_PROTOCOL_H__
 | |
| #define __EFI_EAP_MANAGEMENT_PROTOCOL_H__
 | |
| 
 | |
| #include <Protocol/Eap.h>
 | |
| 
 | |
| #define EFI_EAP_MANAGEMENT_PROTOCOL_GUID \
 | |
|   { \
 | |
|     0xbb62e663, 0x625d, 0x40b2, {0xa0, 0x88, 0xbb, 0xe8, 0x36, 0x23, 0xa2, 0x45 } \
 | |
|   }
 | |
| 
 | |
| typedef struct _EFI_EAP_MANAGEMENT_PROTOCOL EFI_EAP_MANAGEMENT_PROTOCOL;
 | |
| 
 | |
| ///
 | |
| /// PAE Capabilities
 | |
| ///
 | |
| ///@{
 | |
| #define PAE_SUPPORT_AUTHENTICATOR  0x01
 | |
| #define PAE_SUPPORT_SUPPLICANT     0x02
 | |
| ///@}
 | |
| 
 | |
| ///
 | |
| /// EFI_EAPOL_PORT_INFO
 | |
| ///
 | |
| typedef struct _EFI_EAPOL_PORT_INFO {
 | |
|   ///
 | |
|   /// The identification number assigned to the Port by the System in
 | |
|   /// which the Port resides.
 | |
|   ///
 | |
|   EFI_PORT_HANDLE    PortNumber;
 | |
|   ///
 | |
|   /// The protocol version number of the EAPOL implementation
 | |
|   /// supported by the Port.
 | |
|   ///
 | |
|   UINT8              ProtocolVersion;
 | |
|   ///
 | |
|   /// The capabilities of the PAE associated with the Port. This field
 | |
|   /// indicates whether Authenticator functionality, Supplicant
 | |
|   /// functionality, both, or neither, is supported by the Port's PAE.
 | |
|   ///
 | |
|   UINT8              PaeCapabilities;
 | |
| } EFI_EAPOL_PORT_INFO;
 | |
| 
 | |
| ///
 | |
| /// Supplicant PAE state machine (IEEE Std 802.1X Section 8.5.10)
 | |
| ///
 | |
| typedef enum _EFI_EAPOL_SUPPLICANT_PAE_STATE {
 | |
|   Logoff,
 | |
|   Disconnected,
 | |
|   Connecting,
 | |
|   Acquired,
 | |
|   Authenticating,
 | |
|   Held,
 | |
|   Authenticated,
 | |
|   MaxSupplicantPaeState
 | |
| } EFI_EAPOL_SUPPLICANT_PAE_STATE;
 | |
| 
 | |
| ///
 | |
| /// Definitions for ValidFieldMask
 | |
| ///
 | |
| ///@{
 | |
| #define AUTH_PERIOD_FIELD_VALID   0x01
 | |
| #define HELD_PERIOD_FIELD_VALID   0x02
 | |
| #define START_PERIOD_FIELD_VALID  0x04
 | |
| #define MAX_START_FIELD_VALID     0x08
 | |
| ///@}
 | |
| 
 | |
| ///
 | |
| /// EFI_EAPOL_SUPPLICANT_PAE_CONFIGURATION
 | |
| ///
 | |
| typedef struct _EFI_EAPOL_SUPPLICANT_PAE_CONFIGURATION {
 | |
|   ///
 | |
|   /// Indicates which of the following fields are valid.
 | |
|   ///
 | |
|   UINT8    ValidFieldMask;
 | |
|   ///
 | |
|   /// The initial value for the authWhile timer. Its default value is 30s.
 | |
|   ///
 | |
|   UINTN    AuthPeriod;
 | |
|   ///
 | |
|   /// The initial value for the heldWhile timer. Its default value is 60s.
 | |
|   ///
 | |
|   UINTN    HeldPeriod;
 | |
|   ///
 | |
|   /// The initial value for the startWhen timer. Its default value is 30s.
 | |
|   ///
 | |
|   UINTN    StartPeriod;
 | |
|   ///
 | |
|   /// The maximum number of successive EAPOL-Start messages will
 | |
|   /// be sent before the Supplicant assumes that there is no
 | |
|   /// Authenticator present. Its default value is 3.
 | |
|   ///
 | |
|   UINTN    MaxStart;
 | |
| } EFI_EAPOL_SUPPLICANT_PAE_CONFIGURATION;
 | |
| 
 | |
| ///
 | |
| /// Supplicant Statistics (IEEE Std 802.1X Section 9.5.2)
 | |
| ///
 | |
| typedef struct _EFI_EAPOL_SUPPLICANT_PAE_STATISTICS {
 | |
|   ///
 | |
|   /// The number of EAPOL frames of any type that have been received by this Supplican.
 | |
|   ///
 | |
|   UINTN    EapolFramesReceived;
 | |
|   ///
 | |
|   /// The number of EAPOL frames of any type that have been transmitted by this Supplicant.
 | |
|   ///
 | |
|   UINTN    EapolFramesTransmitted;
 | |
|   ///
 | |
|   /// The number of EAPOL Start frames that have been transmitted by this Supplicant.
 | |
|   ///
 | |
|   UINTN    EapolStartFramesTransmitted;
 | |
|   ///
 | |
|   /// The number of EAPOL Logoff frames that have been transmitted by this Supplicant.
 | |
|   ///
 | |
|   UINTN    EapolLogoffFramesTransmitted;
 | |
|   ///
 | |
|   /// The number of EAP Resp/Id frames that have been transmitted by this Supplicant.
 | |
|   ///
 | |
|   UINTN    EapRespIdFramesTransmitted;
 | |
|   ///
 | |
|   /// The number of valid EAP Response frames (other than Resp/Id frames) that have been
 | |
|   /// transmitted by this Supplicant.
 | |
|   ///
 | |
|   UINTN    EapResponseFramesTransmitted;
 | |
|   ///
 | |
|   /// The number of EAP Req/Id frames that have been received by this Supplicant.
 | |
|   ///
 | |
|   UINTN    EapReqIdFramesReceived;
 | |
|   ///
 | |
|   /// The number of EAP Request frames (other than Rq/Id frames) that have been received
 | |
|   /// by this Supplicant.
 | |
|   ///
 | |
|   UINTN    EapRequestFramesReceived;
 | |
|   ///
 | |
|   /// The number of EAPOL frames that have been received by this Supplicant in which the
 | |
|   /// frame type is not recognized.
 | |
|   ///
 | |
|   UINTN    InvalidEapolFramesReceived;
 | |
|   ///
 | |
|   /// The number of EAPOL frames that have been received by this Supplicant in which the
 | |
|   /// Packet Body Length field (7.5.5) is invalid.
 | |
|   ///
 | |
|   UINTN    EapLengthErrorFramesReceived;
 | |
|   ///
 | |
|   /// The protocol version number carried in the most recently received EAPOL frame.
 | |
|   ///
 | |
|   UINTN    LastEapolFrameVersion;
 | |
|   ///
 | |
|   /// The source MAC address carried in the most recently received EAPOL frame.
 | |
|   ///
 | |
|   UINTN    LastEapolFrameSource;
 | |
| } EFI_EAPOL_SUPPLICANT_PAE_STATISTICS;
 | |
| 
 | |
| /**
 | |
|   Read the system configuration information associated with the Port.
 | |
| 
 | |
|   The GetSystemConfiguration() function reads the system configuration
 | |
|   information associated with the Port, including the value of the
 | |
|   SystemAuthControl parameter of the System is returned in SystemAuthControl
 | |
|   and the Port's information is returned in the buffer pointed to by PortInfo.
 | |
|   The Port's information is optional.
 | |
|   If PortInfo is NULL, then reading the Port's information is ignored.
 | |
| 
 | |
|   If SystemAuthControl is NULL, then EFI_INVALID_PARAMETER is returned.
 | |
| 
 | |
|   @param[in]  This               A pointer to the EFI_EAP_MANAGEMENT_PROTOCOL
 | |
|                                  instance that indicates the calling context.
 | |
|   @param[out] SystemAuthControl  Returns the value of the SystemAuthControl
 | |
|                                  parameter of the System.
 | |
|                                  TRUE means Enabled. FALSE means Disabled.
 | |
|   @param[out] PortInfo           Returns EFI_EAPOL_PORT_INFO structure to describe
 | |
|                                  the Port's information. This parameter can be NULL
 | |
|                                  to ignore reading the Port's information.
 | |
| 
 | |
|   @retval EFI_SUCCESS            The system configuration information of the
 | |
|                                  Port is read successfully.
 | |
|   @retval EFI_INVALID_PARAMETER  SystemAuthControl is NULL.
 | |
| 
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_EAP_GET_SYSTEM_CONFIGURATION)(
 | |
|   IN EFI_EAP_MANAGEMENT_PROTOCOL          *This,
 | |
|   OUT BOOLEAN                             *SystemAuthControl,
 | |
|   OUT EFI_EAPOL_PORT_INFO                 *PortInfo OPTIONAL
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Set the system configuration information associated with the Port.
 | |
| 
 | |
|   The SetSystemConfiguration() function sets the value of the SystemAuthControl
 | |
|   parameter of the System to SystemAuthControl.
 | |
| 
 | |
|   @param[in] This                A pointer to the EFI_EAP_MANAGEMENT_PROTOCOL
 | |
|                                  instance that indicates the calling context.
 | |
|   @param[in] SystemAuthControl   The desired value of the SystemAuthControl
 | |
|                                  parameter of the System.
 | |
|                                  TRUE means Enabled. FALSE means Disabled.
 | |
| 
 | |
|   @retval EFI_SUCCESS            The system configuration information of the
 | |
|                                  Port is set successfully.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_EAP_SET_SYSTEM_CONFIGURATION)(
 | |
|   IN EFI_EAP_MANAGEMENT_PROTOCOL          *This,
 | |
|   IN BOOLEAN                              SystemAuthControl
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Cause the EAPOL state machines for the Port to be initialized.
 | |
| 
 | |
|   The InitializePort() function causes the EAPOL state machines for the Port.
 | |
| 
 | |
|   @param[in] This                A pointer to the EFI_EAP_MANAGEMENT_PROTOCOL
 | |
|                                  instance that indicates the calling context.
 | |
| 
 | |
|   @retval EFI_SUCCESS            The Port is initialized successfully.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_EAP_INITIALIZE_PORT)(
 | |
|   IN EFI_EAP_MANAGEMENT_PROTOCOL            *This
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Notify the EAPOL state machines for the Port that the user of the System has
 | |
|   logged on.
 | |
| 
 | |
|   The UserLogon() function notifies the EAPOL state machines for the Port.
 | |
| 
 | |
|   @param[in] This                A pointer to the EFI_EAP_MANAGEMENT_PROTOCOL
 | |
|                                  instance that indicates the calling context.
 | |
| 
 | |
|   @retval EFI_SUCCESS            The Port is notified successfully.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_EAP_USER_LOGON)(
 | |
|   IN EFI_EAP_MANAGEMENT_PROTOCOL          *This
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Notify the EAPOL state machines for the Port that the user of the System has
 | |
|   logged off.
 | |
| 
 | |
|   The UserLogoff() function notifies the EAPOL state machines for the Port.
 | |
| 
 | |
|   @param[in] This                A pointer to the EFI_EAP_MANAGEMENT_PROTOCOL
 | |
|                                  instance that indicates the calling context.
 | |
| 
 | |
|   @retval EFI_SUCCESS            The Port is notified successfully.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_EAP_USER_LOGOFF)(
 | |
|   IN EFI_EAP_MANAGEMENT_PROTOCOL          *This
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Read the status of the Supplicant PAE state machine for the Port, including the
 | |
|   current state and the configuration of the operational parameters.
 | |
| 
 | |
|   The GetSupplicantStatus() function reads the status of the Supplicant PAE state
 | |
|   machine for the Port, including the current state CurrentState  and the configuration
 | |
|   of the operational parameters Configuration. The configuration of the operational
 | |
|   parameters is optional. If Configuration is NULL, then reading the configuration
 | |
|   is ignored. The operational parameters in Configuration to be read can also be
 | |
|   specified by Configuration.ValidFieldMask.
 | |
| 
 | |
|   If CurrentState is NULL, then EFI_INVALID_PARAMETER is returned.
 | |
| 
 | |
|   @param[in]      This           A pointer to the EFI_EAP_MANAGEMENT_PROTOCOL
 | |
|                                  instance that indicates the calling context.
 | |
|   @param[out]     CurrentState   Returns the current state of the Supplicant PAE
 | |
|                                  state machine for the Port.
 | |
|   @param[in, out] Configuration  Returns the configuration of the operational
 | |
|                                  parameters of the Supplicant PAE state machine
 | |
|                                  for the Port as required. This parameter can be
 | |
|                                  NULL to ignore reading the configuration.
 | |
|                                  On input, Configuration.ValidFieldMask specifies the
 | |
|                                  operational parameters to be read.
 | |
|                                  On output, Configuration returns the configuration
 | |
|                                  of the required operational parameters.
 | |
| 
 | |
|   @retval EFI_SUCCESS            The configuration of the operational parameter
 | |
|                                  of the Supplicant PAE state machine for the Port
 | |
|                                  is set successfully.
 | |
|   @retval EFI_INVALID_PARAMETER  CurrentState is NULL.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_EAP_GET_SUPPLICANT_STATUS)(
 | |
|   IN EFI_EAP_MANAGEMENT_PROTOCOL                  *This,
 | |
|   OUT EFI_EAPOL_SUPPLICANT_PAE_STATE              *CurrentState,
 | |
|   IN OUT EFI_EAPOL_SUPPLICANT_PAE_CONFIGURATION   *Configuration  OPTIONAL
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Set the configuration of the operational parameter of the Supplicant PAE
 | |
|   state machine for the Port.
 | |
| 
 | |
|   The SetSupplicantConfiguration() function sets the configuration of the
 | |
|   operational Parameter of the Supplicant PAE state machine for the Port to
 | |
|   Configuration. The operational parameters in Configuration to be set can be
 | |
|   specified by Configuration.ValidFieldMask.
 | |
| 
 | |
|   If Configuration is NULL, then EFI_INVALID_PARAMETER is returned.
 | |
| 
 | |
|   @param[in] This                A pointer to the EFI_EAP_MANAGEMENT_PROTOCOL
 | |
|                                  instance that indicates the calling context.
 | |
|   @param[in] Configuration       The desired configuration of the operational
 | |
|                                  parameters of the Supplicant PAE state machine
 | |
|                                  for the Port as required.
 | |
| 
 | |
|   @retval EFI_SUCCESS            The configuration of the operational parameter
 | |
|                                  of the Supplicant PAE state machine for the Port
 | |
|                                  is set successfully.
 | |
|   @retval EFI_INVALID_PARAMETER  Configuration is NULL.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_EAP_SET_SUPPLICANT_CONFIGURATION)(
 | |
|   IN EFI_EAP_MANAGEMENT_PROTOCOL              *This,
 | |
|   IN EFI_EAPOL_SUPPLICANT_PAE_CONFIGURATION   *Configuration
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Read the statistical information regarding the operation of the Supplicant
 | |
|   associated with the Port.
 | |
| 
 | |
|   The GetSupplicantStatistics() function reads the statistical information
 | |
|   Statistics regarding the operation of the Supplicant associated with the Port.
 | |
| 
 | |
|   If Statistics is NULL, then EFI_INVALID_PARAMETER is returned.
 | |
| 
 | |
|   @param[in]  This               A pointer to the EFI_EAP_MANAGEMENT_PROTOCOL
 | |
|                                  instance that indicates the calling context.
 | |
|   @param[out] Statistics         Returns the statistical information regarding the
 | |
|                                  operation of the Supplicant for the Port.
 | |
| 
 | |
|   @retval EFI_SUCCESS            The statistical information regarding the operation
 | |
|                                  of the Supplicant for the Port is read successfully.
 | |
|   @retval EFI_INVALID_PARAMETER  Statistics is NULL.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_EAP_GET_SUPPLICANT_STATISTICS)(
 | |
|   IN EFI_EAP_MANAGEMENT_PROTOCOL              *This,
 | |
|   OUT EFI_EAPOL_SUPPLICANT_PAE_STATISTICS     *Statistics
 | |
|   );
 | |
| 
 | |
| ///
 | |
| /// EFI_EAP_MANAGEMENT_PROTOCOL
 | |
| /// is used to control, configure and monitor EAPOL state machine on
 | |
| /// a Port. EAPOL state machine is built on a per-Port basis. Herein,
 | |
| /// a Port means a NIC. For the details of EAPOL, please refer to
 | |
| /// IEEE 802.1x specification.
 | |
| ///
 | |
| struct _EFI_EAP_MANAGEMENT_PROTOCOL {
 | |
|   EFI_EAP_GET_SYSTEM_CONFIGURATION        GetSystemConfiguration;
 | |
|   EFI_EAP_SET_SYSTEM_CONFIGURATION        SetSystemConfiguration;
 | |
|   EFI_EAP_INITIALIZE_PORT                 InitializePort;
 | |
|   EFI_EAP_USER_LOGON                      UserLogon;
 | |
|   EFI_EAP_USER_LOGOFF                     UserLogoff;
 | |
|   EFI_EAP_GET_SUPPLICANT_STATUS           GetSupplicantStatus;
 | |
|   EFI_EAP_SET_SUPPLICANT_CONFIGURATION    SetSupplicantConfiguration;
 | |
|   EFI_EAP_GET_SUPPLICANT_STATISTICS       GetSupplicantStatistics;
 | |
| };
 | |
| 
 | |
| extern EFI_GUID  gEfiEapManagementProtocolGuid;
 | |
| 
 | |
| #endif
 |