• Chris Leech's avatar
    iscsi_ibft: filter null v4-mapped v6 addresses · e6050b61
    Chris Leech authored
    I've had reports of UEFI platforms failing iSCSI boot in various
    configurations, that ended up being caused by network initialization
    scripts getting tripped up by unexpected null addresses (0.0.0.0) being
    reported for gateways, dhcp servers, and dns servers.
    
    The tianocore EDK2 iSCSI driver generates an iBFT table that always uses
    IPv4-mapped IPv6 addresses for the NIC structure fields.  This results
    in values that are "not present or not specified" being reported as
    ::ffff:0.0.0.0 rather than all zeros as specified.
    
    The iscsi_ibft module filters unspecified fields from the iBFT from
    sysfs, preventing userspace from using invalid values and making it easy
    to check for the presence of a value.  This currently fails in regard to
    these mapped null addresses.
    
    In order to remain consistent with how the iBFT information is exposed,
    we should accommodate the behavior of the tianocore iSCSI driver as it's
    already in the wild in a large number of servers.
    
    Tested under qemu using an OVMF build of tianocore EDK2.
    Signed-off-by: default avatarChris Leech <cleech@redhat.com>
    Reviewed-by: default avatarMike Christie <michaelc@cs.wisc.edu>
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    e6050b61
iscsi_ibft.c 19.4 KB