TianoCore EDK2 master
Loading...
Searching...
No Matches
IpSecConfig.h
Go to the documentation of this file.
1
14#ifndef __EFI_IPSE_CCONFIG_PROTOCOL_H__
15#define __EFI_IPSE_CCONFIG_PROTOCOL_H__
16
17#define EFI_IPSEC_CONFIG_PROTOCOL_GUID \
18 { \
19 0xce5e5929, 0xc7a3, 0x4602, {0xad, 0x9e, 0xc9, 0xda, 0xf9, 0x4e, 0xbf, 0xcf } \
20 }
21
23
27typedef enum {
59 IPsecConfigDataTypeMaximum
61
65typedef struct _EFI_IP_ADDRESS_INFO {
69
104 UINT16 LocalPort;
124
129typedef enum {
143
148typedef enum {
166
180 UINT64 ByteCount;
192
199typedef enum {
200 EfiIPsecTransport,
201 EfiIPsecTunnel
203
211typedef enum {
216
236
240typedef enum {
244
254 BOOLEAN ExtSeqNum;
261 BOOLEAN SeqOverflow;
266 BOOLEAN FragCheck;
296
301typedef struct _EFI_IPSEC_SA_ID {
307 UINT32 Spi;
317
318#define MAX_PEERID_LEN 128
319
323typedef struct _EFI_IPSEC_SPD_DATA {
328 UINT8 Name[MAX_PEERID_LEN];
368
375 UINT8 AuthAlgoId;
376 UINTN AuthKeyLength;
377 VOID *AuthKey;
379
389 UINT8 EncAlgoId;
390 UINTN EncKeyLength;
391 VOID *EncKey;
392 UINT8 AuthAlgoId;
393 UINTN AuthKeyLength;
394 VOID *AuthKey;
396
400typedef union {
401 EFI_IPSEC_AH_ALGO_INFO AhAlgoInfo;
402 EFI_IPSEC_ESP_ALGO_INFO EspAlgoInfo;
404
408typedef struct _EFI_IPSEC_SA_DATA {
417 UINT64 SNCount;
435 UINT32 PathMTU;
445 BOOLEAN ManualSet;
447
451typedef struct _EFI_IPSEC_SA_DATA2 {
460 UINT64 SNCount;
478 UINT32 PathMTU;
488 BOOLEAN ManualSet;
498
504typedef struct _EFI_IPSEC_PAD_ID {
508 BOOLEAN PeerIdValid;
509 union {
520 UINT8 PeerId[MAX_PEERID_LEN];
521 } Id;
523
529typedef union {
530 EFI_IPSEC_SPD_SELECTOR SpdSelector;
531 EFI_IPSEC_SA_ID SaId;
532 EFI_IPSEC_PAD_ID PadId;
534
540typedef enum {
541 EfiIPsecAuthProtocolIKEv1,
542 EfiIPsecAuthProtocolIKEv2,
543 EfiIPsecAuthProtocolMaximum
545
549typedef enum {
558 EfiIPsecAuthMethodMaximum
560
564typedef struct _EFI_IPSEC_PAD_DATA {
578 BOOLEAN IkeIdFlag;
588 VOID *AuthData;
599
629typedef
635 IN VOID *Data,
637 );
638
666typedef
672 IN OUT UINTN *DataSize,
673 OUT VOID *Data
674 );
675
713typedef
718 IN OUT UINTN *SelectorSize,
720 );
721
743typedef
748 IN EFI_EVENT Event
749 );
750
769typedef
774 IN EFI_EVENT Event
775 );
776
790 EFI_IPSEC_CONFIG_REGISTER_NOTIFY RegisterDataNotify;
791 EFI_IPSEC_CONFIG_UNREGISTER_NOTIFY UnregisterDataNotify;
792};
793
794extern EFI_GUID gEfiIpSecConfigProtocolGuid;
795
796#endif
UINT64 UINTN
EFI_STATUS(EFIAPI * EFI_IPSEC_CONFIG_SET_DATA)(IN EFI_IPSEC_CONFIG_PROTOCOL *This, IN EFI_IPSEC_CONFIG_DATA_TYPE DataType, IN EFI_IPSEC_CONFIG_SELECTOR *Selector, IN VOID *Data, IN EFI_IPSEC_CONFIG_SELECTOR *InsertBefore OPTIONAL)
Definition: IpSecConfig.h:631
struct _EFI_IPSEC_SPD_DATA EFI_IPSEC_SPD_DATA
EFI_STATUS(EFIAPI * EFI_IPSEC_CONFIG_UNREGISTER_NOTIFY)(IN EFI_IPSEC_CONFIG_PROTOCOL *This, IN EFI_IPSEC_CONFIG_DATA_TYPE DataType, IN EFI_EVENT Event)
Definition: IpSecConfig.h:771
EFI_STATUS(EFIAPI * EFI_IPSEC_CONFIG_REGISTER_NOTIFY)(IN EFI_IPSEC_CONFIG_PROTOCOL *This, IN EFI_IPSEC_CONFIG_DATA_TYPE DataType, IN EFI_EVENT Event)
Definition: IpSecConfig.h:745
struct _EFI_IPSEC_SA_ID EFI_IPSEC_SA_ID
struct _EFI_IPSEC_PAD_ID EFI_IPSEC_PAD_ID
EFI_STATUS(EFIAPI * EFI_IPSEC_CONFIG_GET_NEXT_SELECTOR)(IN EFI_IPSEC_CONFIG_PROTOCOL *This, IN EFI_IPSEC_CONFIG_DATA_TYPE DataType, IN OUT UINTN *SelectorSize, IN OUT EFI_IPSEC_CONFIG_SELECTOR *Selector)
Definition: IpSecConfig.h:715
struct _EFI_IP_ADDRESS_INFO EFI_IP_ADDRESS_INFO
EFI_IPSEC_MODE
Definition: IpSecConfig.h:199
struct _EFI_IPSEC_SA_DATA2 EFI_IPSEC_SA_DATA2
struct _EFI_IPSEC_SPD_SELECTOR EFI_IPSEC_SPD_SELECTOR
struct _EFI_IPSEC_ESP_ALGO_INFO EFI_IPSEC_ESP_ALGO_INFO
struct _EFI_IPSEC_SA_DATA EFI_IPSEC_SA_DATA
EFI_IPSEC_CONFIG_DATA_TYPE
Definition: IpSecConfig.h:27
@ IPsecConfigDataTypeSad
Definition: IpSecConfig.h:49
@ IPsecConfigDataTypeSpd
Definition: IpSecConfig.h:41
@ IPsecConfigDataTypePad
Definition: IpSecConfig.h:58
struct _EFI_IPSEC_AH_ALGO_INFO EFI_IPSEC_AH_ALGO_INFO
EFI_IPSEC_TRAFFIC_DIR
Definition: IpSecConfig.h:129
@ EfiIPsecInBound
Definition: IpSecConfig.h:135
@ EfiIPsecOutBound
Definition: IpSecConfig.h:141
EFI_IPSEC_ACTION
Definition: IpSecConfig.h:148
@ EfiIPsecActionDiscard
Definition: IpSecConfig.h:152
@ EfiIPsecActionProtect
Definition: IpSecConfig.h:164
@ EfiIPsecActionBypass
Definition: IpSecConfig.h:157
struct _EFI_IPSEC_SA_LIFETIME EFI_IPSEC_SA_LIFETIME
EFI_IPSEC_PROTOCOL_TYPE
Definition: IpSecConfig.h:240
@ EfiIPsecESP
IP Encapsulating Security Payload which is specified in RFC 4303.
Definition: IpSecConfig.h:242
@ EfiIPsecAH
IP Authentication Header protocol which is specified in RFC 4302.
Definition: IpSecConfig.h:241
EFI_IPSEC_AUTH_PROTOCOL_TYPE
Definition: IpSecConfig.h:540
struct _EFI_IPSEC_PAD_DATA EFI_IPSEC_PAD_DATA
struct _EFI_IPSEC_PROCESS_POLICY EFI_IPSEC_PROCESS_POLICY
struct _EFI_IPSEC_TUNNEL_OPTION EFI_IPSEC_TUNNEL_OPTION
EFI_IPSEC_AUTH_METHOD
Definition: IpSecConfig.h:549
@ EfiIPsecAuthMethodCertificates
Definition: IpSecConfig.h:557
@ EfiIPsecAuthMethodPreSharedSecret
Definition: IpSecConfig.h:553
EFI_IPSEC_TUNNEL_DF_OPTION
Definition: IpSecConfig.h:211
@ EfiIPsecTunnelCopyDf
Copy DF bit from inner header.
Definition: IpSecConfig.h:214
@ EfiIPsecTunnelClearDf
Clear DF bit from inner header.
Definition: IpSecConfig.h:212
@ EfiIPsecTunnelSetDf
Set DF bit from inner header.
Definition: IpSecConfig.h:213
EFI_STATUS(EFIAPI * EFI_IPSEC_CONFIG_GET_DATA)(IN EFI_IPSEC_CONFIG_PROTOCOL *This, IN EFI_IPSEC_CONFIG_DATA_TYPE DataType, IN EFI_IPSEC_CONFIG_SELECTOR *Selector, IN OUT UINTN *DataSize, OUT VOID *Data)
Definition: IpSecConfig.h:668
#define OPTIONAL
Definition: Base.h:290
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_EVENT
Definition: UefiBaseType.h:37
EFI_IP_ADDRESS Address
The IPv4 or IPv6 address.
Definition: IpSecConfig.h:66
UINT8 PrefixLength
The length of the prefix associated with the Address.
Definition: IpSecConfig.h:67
EFI_IPSEC_AUTH_PROTOCOL_TYPE AuthProtocol
Definition: IpSecConfig.h:568
EFI_IPSEC_AUTH_METHOD AuthMethod
Definition: IpSecConfig.h:572
UINT8 PeerId[MAX_PEERID_LEN]
Definition: IpSecConfig.h:520
EFI_IP_ADDRESS_INFO IpAddress
Definition: IpSecConfig.h:513
EFI_IPSEC_SA_LIFETIME SaLifetime
Definition: IpSecConfig.h:271
EFI_IPSEC_TUNNEL_OPTION * TunnelOption
Definition: IpSecConfig.h:279
EFI_IPSEC_PROTOCOL_TYPE Proto
Definition: IpSecConfig.h:283
EFI_IPSEC_SA_LIFETIME SaLifetime
Definition: IpSecConfig.h:473
EFI_IP_ADDRESS TunnelDestinationAddress
Definition: IpSecConfig.h:496
EFI_IPSEC_ALGO_INFO AlgoInfo
Definition: IpSecConfig.h:469
EFI_IP_ADDRESS TunnelSourceAddress
Definition: IpSecConfig.h:492
EFI_IPSEC_SPD_SELECTOR * SpdSelector
Definition: IpSecConfig.h:482
EFI_IPSEC_MODE Mode
Definition: IpSecConfig.h:455
EFI_IPSEC_SA_LIFETIME SaLifetime
Definition: IpSecConfig.h:430
EFI_IPSEC_ALGO_INFO AlgoInfo
Definition: IpSecConfig.h:426
EFI_IPSEC_MODE Mode
Definition: IpSecConfig.h:412
EFI_IPSEC_SPD_SELECTOR * SpdSelector
Definition: IpSecConfig.h:439
EFI_IP_ADDRESS DestAddress
Definition: IpSecConfig.h:315
EFI_IPSEC_PROTOCOL_TYPE Proto
Definition: IpSecConfig.h:311
EFI_IPSEC_SA_ID SaId[1]
Definition: IpSecConfig.h:366
EFI_IPSEC_ACTION Action
Definition: IpSecConfig.h:353
EFI_IPSEC_TRAFFIC_DIR TrafficDirection
Definition: IpSecConfig.h:348
UINT8 Name[MAX_PEERID_LEN]
Definition: IpSecConfig.h:328
EFI_IPSEC_PROCESS_POLICY * ProcessingPolicy
Definition: IpSecConfig.h:357
EFI_IP_ADDRESS_INFO * RemoteAddress
Definition: IpSecConfig.h:91
EFI_IP_ADDRESS_INFO * LocalAddress
Definition: IpSecConfig.h:82
EFI_IP_ADDRESS LocalTunnelAddress
Definition: IpSecConfig.h:224
EFI_IPSEC_TUNNEL_DF_OPTION DF
Definition: IpSecConfig.h:234
EFI_IP_ADDRESS RemoteTunnelAddress
Definition: IpSecConfig.h:228
Definition: Base.h:213