iPXE
ibft.h File Reference

iSCSI boot firmware table More...

#include <stdint.h>
#include <ipxe/acpi.h>
#include <ipxe/scsi.h>
#include <ipxe/in.h>

Go to the source code of this file.

Data Structures

struct  ibft_string
 A string within the iBFT. More...
struct  ibft_ipaddr
 An IP address within the iBFT. More...
struct  ibft_header
 iBFT structure header More...
struct  ibft_offset_pair
 iBFT NIC and Target offset pair More...
struct  ibft_control
 iBFT Control structure More...
struct  ibft_initiator
 iBFT Initiator structure More...
struct  ibft_nic
 iBFT NIC structure More...
struct  ibft_target
 iBFT Target structure More...
struct  ibft_table
 iSCSI Boot Firmware Table (iBFT) More...

Macros

#define IBFT_SIG   ACPI_SIGNATURE ( 'i', 'B', 'F', 'T' )
 iSCSI Boot Firmware Table signature
#define IBFT_ALIGN   16
 Alignment of structures within iBFT.
#define IBFT_STRUCTURE_ID_CONTROL   0x01
 Structure ID for Control section.
#define IBFT_FL_CONTROL_SINGLE_LOGIN_ONLY   0x01
 Attempt login only to specified target.
#define IBFT_STRUCTURE_ID_INITIATOR   0x02
 Structure ID for Initiator section.
#define IBFT_FL_INITIATOR_BLOCK_VALID   0x01
 Initiator block valid.
#define IBFT_FL_INITIATOR_FIRMWARE_BOOT_SELECTED   0x02
 Initiator firmware boot selected.
#define IBFT_STRUCTURE_ID_NIC   0x03
 Structure ID for NIC section.
#define IBFT_FL_NIC_BLOCK_VALID   0x01
 NIC block valid.
#define IBFT_FL_NIC_FIRMWARE_BOOT_SELECTED   0x02
 NIC firmware boot selected.
#define IBFT_FL_NIC_GLOBAL   0x04
 NIC global / link local.
#define IBFT_NIC_ORIGIN_OTHER   0x00
 NIC IP address origin.
#define IBFT_NIC_ORIGIN_MANUAL   0x01
#define IBFT_NIC_ORIGIN_WELLKNOWN   0x02
#define IBFT_NIC_ORIGIN_DHCP   0x03
#define IBFT_NIC_ORIGIN_RA   0x04
#define IBFT_NIC_ORIGIN_UNCHANGED   0x0f
#define IBFT_STRUCTURE_ID_TARGET   0x04
 Structure ID for Target section.
#define IBFT_FL_TARGET_BLOCK_VALID   0x01
 Target block valid.
#define IBFT_FL_TARGET_FIRMWARE_BOOT_SELECTED   0x02
 Target firmware boot selected.
#define IBFT_FL_TARGET_USE_CHAP   0x04
 Target use Radius CHAP.
#define IBFT_FL_TARGET_USE_RCHAP   0x08
 Target use Radius rCHAP.
#define IBFT_CHAP_NONE   0
 No CHAP authentication.
#define IBFT_CHAP_ONE_WAY   1
 One-way CHAP.
#define IBFT_CHAP_MUTUAL   2
 Mutual CHAP.

Typedefs

typedef uint16_t ibft_off_t
 An offset from the start of the iBFT.
typedef uint16_t ibft_size_t
 Length of a string within the iBFT (excluding terminating NUL)

Functions

 FILE_LICENCE (BSD2)
 FILE_SECBOOT (PERMITTED)

Variables

struct acpi_model ibft_model __acpi_model
 aBFT model

Detailed Description

iSCSI boot firmware table

The information in this file is derived from the document "iSCSI Boot Firmware Table (iBFT)" as published by IBM at

ftp://ftp.software.ibm.com/systems/support/system_x_pdf/ibm_iscsi_boot_firmware_table_v1.02.pdf

Definition in file ibft.h.

Macro Definition Documentation

◆ IBFT_SIG

#define IBFT_SIG   ACPI_SIGNATURE ( 'i', 'B', 'F', 'T' )

iSCSI Boot Firmware Table signature

Definition at line 51 of file ibft.h.

Referenced by ibft_install().

◆ IBFT_ALIGN

#define IBFT_ALIGN   16

Alignment of structures within iBFT.

Definition at line 54 of file ibft.h.

Referenced by ibft_align().

◆ IBFT_STRUCTURE_ID_CONTROL

#define IBFT_STRUCTURE_ID_CONTROL   0x01

Structure ID for Control section.

Definition at line 134 of file ibft.h.

Referenced by ibft_install().

◆ IBFT_FL_CONTROL_SINGLE_LOGIN_ONLY

#define IBFT_FL_CONTROL_SINGLE_LOGIN_ONLY   0x01

Attempt login only to specified target.

If this flag is not set, all targets will be logged in to.

Definition at line 140 of file ibft.h.

◆ IBFT_STRUCTURE_ID_INITIATOR

#define IBFT_STRUCTURE_ID_INITIATOR   0x02

Structure ID for Initiator section.

Definition at line 160 of file ibft.h.

Referenced by ibft_fill_initiator().

◆ IBFT_FL_INITIATOR_BLOCK_VALID

#define IBFT_FL_INITIATOR_BLOCK_VALID   0x01

Initiator block valid.

Definition at line 163 of file ibft.h.

Referenced by ibft_fill_initiator().

◆ IBFT_FL_INITIATOR_FIRMWARE_BOOT_SELECTED

#define IBFT_FL_INITIATOR_FIRMWARE_BOOT_SELECTED   0x02

Initiator firmware boot selected.

Definition at line 166 of file ibft.h.

Referenced by ibft_fill_initiator().

◆ IBFT_STRUCTURE_ID_NIC

#define IBFT_STRUCTURE_ID_NIC   0x03

Structure ID for NIC section.

Definition at line 201 of file ibft.h.

Referenced by ibft_fill_nic().

◆ IBFT_FL_NIC_BLOCK_VALID

#define IBFT_FL_NIC_BLOCK_VALID   0x01

NIC block valid.

Definition at line 204 of file ibft.h.

Referenced by ibft_fill_nic().

◆ IBFT_FL_NIC_FIRMWARE_BOOT_SELECTED

#define IBFT_FL_NIC_FIRMWARE_BOOT_SELECTED   0x02

NIC firmware boot selected.

Definition at line 207 of file ibft.h.

Referenced by ibft_fill_nic().

◆ IBFT_FL_NIC_GLOBAL

#define IBFT_FL_NIC_GLOBAL   0x04

NIC global / link local.

Definition at line 210 of file ibft.h.

◆ IBFT_NIC_ORIGIN_OTHER

#define IBFT_NIC_ORIGIN_OTHER   0x00

NIC IP address origin.

Definition at line 213 of file ibft.h.

◆ IBFT_NIC_ORIGIN_MANUAL

#define IBFT_NIC_ORIGIN_MANUAL   0x01

Definition at line 214 of file ibft.h.

Referenced by ibft_fill_nic().

◆ IBFT_NIC_ORIGIN_WELLKNOWN

#define IBFT_NIC_ORIGIN_WELLKNOWN   0x02

Definition at line 215 of file ibft.h.

◆ IBFT_NIC_ORIGIN_DHCP

#define IBFT_NIC_ORIGIN_DHCP   0x03

Definition at line 216 of file ibft.h.

Referenced by ibft_fill_nic().

◆ IBFT_NIC_ORIGIN_RA

#define IBFT_NIC_ORIGIN_RA   0x04

Definition at line 217 of file ibft.h.

◆ IBFT_NIC_ORIGIN_UNCHANGED

#define IBFT_NIC_ORIGIN_UNCHANGED   0x0f

Definition at line 218 of file ibft.h.

◆ IBFT_STRUCTURE_ID_TARGET

#define IBFT_STRUCTURE_ID_TARGET   0x04

Structure ID for Target section.

Definition at line 253 of file ibft.h.

Referenced by ibft_fill_target().

◆ IBFT_FL_TARGET_BLOCK_VALID

#define IBFT_FL_TARGET_BLOCK_VALID   0x01

Target block valid.

Definition at line 256 of file ibft.h.

Referenced by ibft_fill_target().

◆ IBFT_FL_TARGET_FIRMWARE_BOOT_SELECTED

#define IBFT_FL_TARGET_FIRMWARE_BOOT_SELECTED   0x02

Target firmware boot selected.

Definition at line 259 of file ibft.h.

Referenced by ibft_fill_target().

◆ IBFT_FL_TARGET_USE_CHAP

#define IBFT_FL_TARGET_USE_CHAP   0x04

Target use Radius CHAP.

Definition at line 262 of file ibft.h.

◆ IBFT_FL_TARGET_USE_RCHAP

#define IBFT_FL_TARGET_USE_RCHAP   0x08

Target use Radius rCHAP.

Definition at line 265 of file ibft.h.

◆ IBFT_CHAP_NONE

#define IBFT_CHAP_NONE   0

No CHAP authentication.

Definition at line 268 of file ibft.h.

◆ IBFT_CHAP_ONE_WAY

#define IBFT_CHAP_ONE_WAY   1

One-way CHAP.

Definition at line 269 of file ibft.h.

Referenced by ibft_fill_target_chap().

◆ IBFT_CHAP_MUTUAL

#define IBFT_CHAP_MUTUAL   2

Mutual CHAP.

Definition at line 270 of file ibft.h.

Referenced by ibft_fill_target_reverse_chap().

Typedef Documentation

◆ ibft_off_t

An offset from the start of the iBFT.

Definition at line 57 of file ibft.h.

◆ ibft_size_t

Length of a string within the iBFT (excluding terminating NUL)

Definition at line 60 of file ibft.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( BSD2 )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED )

Variable Documentation

◆ __acpi_model

struct acpi_model ibft_model __acpi_model
extern

aBFT model

aBFT model

Definition at line 57 of file aoe.c.