Documentation ¶
Overview ¶
Package ibft defines the iSCSI Boot Firmware Table.
An iBFT is placed in memory by a bootloader to tell an OS which iSCSI target it was booted from and what additional iSCSI targets it shall connect to.
An iBFT is typically placed in one of two places:
(1) an ACPI table named "iBFT", or (2) in the 512K-1M physical memory range identified by its first 4 bytes.
However, this package doesn't concern itself with the placement, just the marshaling of the table's bytes.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IBFT ¶
type IBFT struct { SingleLoginMode bool // Initiator offset: 0x50 Initiator Initiator // NIC offset: 0xa0 NIC0 NIC // Target offset: 0x110 Target0 Target }
IBFT defines the entire iSCSI boot firmware table.
type Initiator ¶
type Initiator struct { // Name is the name of the initiator. // // Some servers apparently use initiator names for permissions. Name string Valid bool // Boot indicates that this initiator was used to boot. Boot bool // I have no clue what this stuff is. SNSServer net.IP SLPServer net.IP PrimaryRadiusServer net.IP SecondaryRadiusServer net.IP }
Initiator defines an iSCSI initiator.
type NIC ¶
type NIC struct { // Valid NIC. Valid bool // Boot indicates this NIC was used to boot from. Boot bool // Global indicates a globally reachable IP (as opposed to a link-local IP). Global bool // IPNet is the IP and subnet mask for this network interface. IPNet *net.IPNet // Origin. Nobody knows what this is. Nobody cares. // // The spec links to a Microsoft.com 404 page. Yay. Origin uint8 // Gateway is the network gateway. The gateway must be within the IPNet. Gateway net.IP // PrimaryDNS is the primary DNS server. PrimaryDNS net.IP // SecondaryDNS is a secondary DNS server. SecondaryDNS net.IP // DHCPServer is the address for the DHCP server, if one was used. DHCPServer net.IP // VLAN is the VLAN for this network interface. VLAN uint16 // MACAddress is the MAC of the network interface. MACAddress net.HardwareAddr // PCIBDF is the Bus/Device/Function identifier of the PCI NIC device. PCIBDF BDF // HostName is the host name of the machine. HostName string }
NIC defines NIC network configuration such as IP, gateway, DNS.
type Target ¶
type Target struct { Valid bool Boot bool CHAP bool RCHAP bool // Target is the server to connect to. Target *net.TCPAddr // BootLUN is the LUN to connect to. BootLUN uint64 CHAPType uint8 // NICAssociation is the Index of the NIC. NICAssociation uint8 // TargetName is the name of the iSCSI target. // // The target name must be a valid iSCSI Qualifier Name or EUI. TargetName string CHAPName string CHAPSecret string ReverseCHAPName string ReverseCHAPSecret string }
Target carries info about an iSCSI target server.
Click to show internal directories.
Click to hide internal directories.