pub struct IscsiInitiator { /* private fields */ }Expand description
iSCSI initiator.
Implementations§
Source§impl IscsiInitiator
impl IscsiInitiator
Sourcepub fn login(
&mut self,
initiator_name: &str,
target_name: &str,
) -> Result<usize, IscsiError>
pub fn login( &mut self, initiator_name: &str, target_name: &str, ) -> Result<usize, IscsiError>
Perform login to a target.
Sourcepub fn logout(&mut self, session_idx: usize) -> Result<(), IscsiError>
pub fn logout(&mut self, session_idx: usize) -> Result<(), IscsiError>
Logout from a session.
Sourcepub fn scsi_command(
&mut self,
session_idx: usize,
cmd: &ScsiCommand,
write_data: Option<&[u8]>,
) -> Result<ScsiResponse, IscsiError>
pub fn scsi_command( &mut self, session_idx: usize, cmd: &ScsiCommand, write_data: Option<&[u8]>, ) -> Result<ScsiResponse, IscsiError>
Send a SCSI command and receive response.
Sourcepub fn inquiry(
&mut self,
session_idx: usize,
lun: u64,
) -> Result<InquiryData, IscsiError>
pub fn inquiry( &mut self, session_idx: usize, lun: u64, ) -> Result<InquiryData, IscsiError>
Send INQUIRY command.
Sourcepub fn read_capacity(
&mut self,
session_idx: usize,
lun: u64,
) -> Result<DiskCapacity, IscsiError>
pub fn read_capacity( &mut self, session_idx: usize, lun: u64, ) -> Result<DiskCapacity, IscsiError>
Send READ CAPACITY (10) command.
Sourcepub fn read_blocks(
&mut self,
session_idx: usize,
lun: u64,
lba: u32,
block_count: u16,
block_size: u32,
) -> Result<Vec<u8>, IscsiError>
pub fn read_blocks( &mut self, session_idx: usize, lun: u64, lba: u32, block_count: u16, block_size: u32, ) -> Result<Vec<u8>, IscsiError>
Read blocks from target.
Sourcepub fn write_blocks(
&mut self,
session_idx: usize,
lun: u64,
lba: u32,
block_count: u16,
block_size: u32,
data: &[u8],
) -> Result<(), IscsiError>
pub fn write_blocks( &mut self, session_idx: usize, lun: u64, lba: u32, block_count: u16, block_size: u32, data: &[u8], ) -> Result<(), IscsiError>
Write blocks to target.
Sourcepub fn discovery(
&mut self,
session_idx: usize,
) -> Result<Vec<String>, IscsiError>
pub fn discovery( &mut self, session_idx: usize, ) -> Result<Vec<String>, IscsiError>
Discover targets via SendTargets text request.
Sourcepub fn build_pdu(&self, bhs: &BhsHeader, data: &[u8]) -> Vec<u8>
pub fn build_pdu(&self, bhs: &BhsHeader, data: &[u8]) -> Vec<u8>
Build a complete iSCSI PDU from BHS and data segment.
Sourcepub fn parse_pdu(&self, data: &[u8]) -> Result<(BhsHeader, Vec<u8>), IscsiError>
pub fn parse_pdu(&self, data: &[u8]) -> Result<(BhsHeader, Vec<u8>), IscsiError>
Parse a PDU from raw bytes.
Sourcepub fn build_operational_params(&self) -> Vec<u8>
pub fn build_operational_params(&self) -> Vec<u8>
Build operational parameter negotiation text.
Sourcepub fn session_count(&self) -> usize
pub fn session_count(&self) -> usize
Get the number of active sessions.
Sourcepub fn session(&self, idx: usize) -> Option<&IscsiSession>
pub fn session(&self, idx: usize) -> Option<&IscsiSession>
Get a session by index.