Added definitions of EFI EAP Protocol, EFI EAP Management Protocol and EFI FTPv4 Protocol.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9200 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
400
MdePkg/Include/Protocol/EapManagement.h
Normal file
400
MdePkg/Include/Protocol/EapManagement.h
Normal file
@@ -0,0 +1,400 @@
|
||||
/** @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.3, which have
|
||||
not been verified by one implementation yet.
|
||||
|
||||
Copyright (c) 2009, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
#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 struct _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 struct _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 struct _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 struct _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 struct _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 struct _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 struct _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 struct _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
|
||||
|
Reference in New Issue
Block a user