| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
The modern IP standard stresses the IP prefix length
rather than the mask, so track the IP prefix length.
|
|
|
|
|
|
| |
Gcc version 7.2.1 and linux glibc devel version 4.14
define __bitwise and does not need open-iscsi to
do it, so check for define before doing it ourselves.
|
|
|
|
|
|
| |
More consistent, doesn't rely on __packed being defined in userspace.
Signed-off-by: Khazhismel Kumykov <khazhy@google.com>
|
|
|
|
|
| |
Check for the presence of /sbin/iscsiuio before using hardware offload
for bnx2 and bnx2x devices.
|
|
|
|
|
|
|
| |
Adds code to check for VLAN devices if the boot configuration specifies
a VLAN ID.
Does not create VLANs, they need to already be in place.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The parallel rescan patches work, in so much as the rescans happen, but
if a target is specified the non-matching cases cause warning to be
printed and a non-zero exit code.
To reproduce: have more than one session to different targets, issue a
node mode rescan command to one of them (-m node -T <iqn.target> -R).
The problem is that while exit() takes an int, only the low byte is part
of the exit code and it's combined with other exit status information.
iscsiadm tries to use exit(-1) to indicate a non-match (not a fatal
error). The value retrieved with wait() after an exit(-1) is actually
65280.
Fix this by making use of the wait.h macros for checking the exit code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of waking up frequently to check if actors need to run, set an
alarm for the first timeout and use a signalfd to get us out of poll() when
the alarm expires and SIGALRM is sent.
alarm(2) only has second granularity but we are using delayed actors for
multi-second timeout handling so this is ok. All callsites were multiplying
by 1000 for wait-in-msec, so just change actor_timer() callsites to pass
timeout in seconds.
Fold actor_check() into actor_poll().
Remove actor_timer_mod, not used.
Rename actor_list to ready_list for clarity.
Remove poll_list, no longer needed.
Remove ACTOR_POLL_WAITING state, no longer needed.
Add some more helpful macros to list.h.
Based on earlier work by Chris Leech.
Signed-off-by: Andy Grover <agrover@redhat.com>
|
|
|
|
|
|
|
|
| |
Check the iBFT NIC and Target flags for valid boot.
Since some adapters correctly set Bit 0 and others
set Bit 1 for NICs, allow either value there.
Signed-off-by: Lee Duncan <lduncan@suse.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
See IBFT standard for location of "origin" field in iBFT table,
and see MS document: http://msdn.microsoft.com/en-us/library/aa366281.aspx
for description of enums, duplicated here in part:
typedef enum {
IpPrefixOriginOther = 0,
IpPrefixOriginManual,
IpPrefixOriginWellKnown,
IpPrefixOriginDhcp,
IpPrefixOriginRouterAdvertisement,
IpPrefixOriginUnchanged = 16
} IP_PREFIX_ORIGIN;
|
|
|
|
|
|
|
|
|
|
|
| |
iBFT has an 'origin' field which indicates the origin of the
network address. If that is set to '3' it indicates that
DHCP has been used; there is no need to evaluate the 'dhcp'
field here.
In fact. latest iPXE sets the 'origin' field, but not the
'dhcp' field.
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
|
|
|
|
| |
Signed-off-by: Lalit Chandivade <lalit.chandivade@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
|
|
|
|
|
|
|
|
|
| |
Added support to display and update additional network parameters
through iscsiadm
Signed-off-by: Harish Zunjarrao <harish.zunjarrao@qlogic.com>
Signed-off-by: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
|
|
|
|
|
|
| |
Signed-off-by: Harish Zunjarrao <harish.zunjarrao@qlogic.com>
Signed-off-by: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
|
|
|
|
|
|
|
|
|
|
| |
Provide support to add and update CHAP entry using chap submode of
iscsiadm host mode.
Both, new and update, iscsiadm operations perform the same function.
Currently only one entry can be added or updated at a time.
Signed-off-by: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch and description from Eddie Wai:
Three new session sysfs parameters are introduced:
boot_root - holds the ibft boot root folder name
boot_nic - holds the ibft boot ethernetN name
boot_target - holds the ibft boot targetN name
This patch copies over the /sys/firmware/<boot_root>/ethernetN/targetN
info
from the boot context to the node_rec.
Signed-off-by: Eddie Wai <eddie.wai@broadcom.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This patches syncs iscsi_if.h with upstream commit
commit ae542edb11c79706cd74d7bd54ebd7702965a7f3
Author: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com>
Date: Mon Jul 1 05:54:11 2013 -0400
[SCSI] scsi_transport_iscsi: Exporting new attrs for iscsi session
and conne
|
|
|
|
|
|
|
|
| |
openSUSE Build Service compiler noticed that one discovery
error path did not have a return value, so an appropriate
error is now being returned.
Signed-of-by: Lee Duncan <lduncan@suse.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This support lets the user manage the target entries in adapter flash
and
perform various operations like add, delete, login, logout,
and update the target information.
The sysfs entries will look as cited below:
/sys/bus/iscsi_flashnode/devices/flashnode_sess-<host_no>:<flashnode_id>/<session
attrs>
/sys/bus/iscsi_flashnode/devices/flashnode_conn-<host_no>:<flashnode_id>:<conn_id>/<conn
attrs>
Operations using iscsiadm:
=========================
List all target nodes stored in the FLASH of the adapter
\# iscsiadm -m host -H hostno -C flashnode -o show
View all parameters of one particular flash node
\# iscsiadm -m host -H hostno -C flashnode -x <flashnode_idx> -o show
Update an entry and commit to adapter FLASH
\# iscsiadm -m host -H hostno -C flashnode -x <flashnode_idx> -n <name>
-v <value> -o update
Multiple name, value pairs can be specified in a single command for
update operation
Delete an entry
\# iscsiadm -m host -H hostno -C flashnode -x <flashnode_idx> -o delete
Create a new entry
\# iscsiadm -m host -H hostno -C flashnode -o new -A <ipv4/ipv6>
\# iscsiadm -m host -H hostno -C flashnode -x <flashnode_idx> -n <name>
-v <value> -o update
Example, create new entry:
\#iscsiadm -m host -H 7 -C flashnode -o new -A ipv4
Flashnode index: 2
New flashnode for host7 added
\#iscsiadm -m host -H 7 -C flashnode -o show
qla4xxx: [0] 192.168.1.12:3260,2
iqn.2002-03.com.compellent:5000d310004b0716
qla4xxx: [1] 192.168.1.12:3260,2
qla4xxx: [2]
Here - The newly created entry is at flashnode_idx 2, use it to update
the entry
\# iscsiadm -m host -H 7 -C flashnode -x 2 -o update
flashnode.conn[0].ipaddress -v 192.168.1.13
\#iscsiadm -m host -H 7 -C flashnode -o show
qla4xxx: [0] 192.168.1.12:3260,2
iqn.2002-03.com.compellent:5000d310004b0716
qla4xxx: [1] 192.168.1.12:3260,2
qla4xxx: [2] 192.168.1.13:3260,0
Login
\# iscsiadm -m host -H hostno -C flashnode -x <flashnode_idx> -o login
Logout
\# iscsiadm -m host -H hostno -C flashnode -x <flashnode_idx> -o logout
\# iscsiadm -m session -r sid -u
Signed-off-by: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com>
Signed-off-by: Manish Rangankar <manish.rangankar@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From Eddie Wai:
This patch adds the communication path between iscsid->iscsiuio.
It utilizes the set_net_config func ptr in the iscsi_transport_template
to initiate the callbacks.
Two new files are introduced: uip_mgmt_ipc.h and uip_mgmt_ipc.c
Signed-off-by: Eddie Wai <eddie.wai@broadcom.com>
|
|
|
|
|
|
|
| |
bnx2i and cxgb*i need the network interface that the offload
engine attaches to brought up before we can connect. This patch
has the iscsi tools do this before trying to create a tcp/ip
connection.
|
|
|
|
| |
When a ping fails print more useful info.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Drivers like qla4xxx store the CHAP info in a table that is
managed at the host level. This patch allows you to see
and delete the CHAP entries on the host.
Patch from: Nilesh Javali <nilesh.javali@qlogic.com>
[lots of bug fixes by Mike Christie]
Signed-off-by: Nilesh Javali <nilesh.javali@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
|
|
|
|
|
|
|
|
|
| |
From: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Added ping support for network connection diagnostics.
[cleaned up output by Mike Christie]
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
|
|
|
|
|
|
|
| |
Patch from: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
[added code to print link up/down message by Mike Christie]
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
|
|
|
|
|
|
|
| |
The address buffers are too short for many ipv6 addresses
and if ibft/firmware gives us a hostname. As a result iscsistart
and iscsiadm were printing/getting a truncated address which
would cause login and network startup to fail.
|
|
|
|
|
|
|
|
|
|
|
| |
This syncs userspace up with what has been sent to linux-scsi
by fixing:
1. link_local_autocfg sysfs file naming.
2. init vlan, port and mtu sysfs handling so that they are
initialized to 0 on failure to read them.
3. Change ISCSI_NET_PARAM_VLAN_ID to ISCSI_NET_PARAM_VLAN_TAG
because we are setting the tag and not just the id.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch is based on initial work done by Mike Christie here,
http://groups.google.com/group/open-iscsi/browse_thread/thread/193fe9037f3127da#
This patch modifies iscsiadm so it can control sessions that are
accessed
through qla4xxx.
To do discovery using the qla4xxx iscsi class interface first check the
available qla4xxx iface
./iscsiadm -m iface -P 0
will display the different ifaces like this:
qla4xxx.00:0e:1e:04:87:fa qla4xxx,00:0e:1e:04:87:fa,192.168.1.112,\
<empty>,<empty>
qla4xxx.00:0e:1e:04:87:fe
qla4xxx,00:0e:1e:04:87:fe,<empty>,<empty>,<empty>
Issue discovery command
./iscsiadm -m discovery -t sendtargets -I qla4xxx.00:0e:1e:04:87:fa \
-p 192.168.1.10:3260
192.168.1.10:3260,1 iqn.2001-05.com.target:0-7d76ca2b7d54b541-disk2
192.168.1.10:3260,1 iqn.2001-05.com.target:0-46f6ca2b7d84b541-disk3
192.168.1.10:3260,1 iqn.2001-05.com.target:0-4c76ca2b7db4b541-disk4
192.168.1.10:3260,1 iqn.2001-05.com.target:0-7346ca2b6d04b6bb-disk1
To view discovered nodes do
./iscsiadm -m node
To login
./iscsiadm -m node -T iqn.2001-05.com.target:0-7346ca2b6d04b6bb-disk1 \
-I qla4xxx.00:0e:1e:04:87:fa -p 192.168.1.10:3260 -l
An error or ok message is displayed to indicate login failure or
success.
To see the sessions use
./iscsiadm -m session
And then to logout do
./iscsiadm -m node -T iqn.2001-05.com.target:0-7346ca2b6d04b6bb-disk1 \
-I qla4xxx.00:0e:1e:04:87:fa -p 192.168.1.10:3260 -u
An error or a ok message is displayed to indicate logout failure or
success.
Signed-off-by: Manish Rangankar <manish.rangankar@qlogic.com>
Signed-off-by: Lalit Chandivade <lalit.chandivade@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Current status:
Using iscsiadm one cannot do any network configuration for qla4xxx
adapters.
However an iface is created for the qla4xxx ports using the hwaddress.
\# ls /etc/iscsi/ifaces/
iface.example iface0 qla4xxx.00:0e:1e:04:8b:2a
qla4xxx.00:0e:1e:04:8b:2e
This allows user to issue sendtargets via the qla4xxx iscsi offload.
2. Current Proposal:
Current proposal is to allow iscsiadm to configure the network settings
for qla4xxx ports.
This implementation is based on discussions at
- http://marc.info/?l=linux-scsi&m=127066184916180&w=2
- http://groups.google.com/group/open-iscsi/browse_thread/thread/d8e8c2df71c95d69/8f731d95d46141a0?lnk=gst&q=iscsi+hba#
2.1 Changes in iscsiadm/iscsid
2.1.1 Add a new event: ISCSI_UEVENT_SET_IFACE_PARAMS
2.1.2 New structure/enum to represent a single network parameter
- enum iscsi_net_param;
- struct iscsi_iface_param_info;
2.1.3 Added new parameters in iface
2.1.4 Change in operations
Add two new operations to iscsiadm
apply: Apply the single iface settings
applyall: Apply the iface settings of all iface having the same MAC
address
2.2 Changes in sysfs network representation
The new sysfs directory would look like this:-
/sys/class/iscsi_iface/-|
_______________________|
|
|- ipv4-iface-<host_no>-<iface_no>/ <-- for ipv4
|- bootproto
|- enabled
|- ipaddress
|- subnet
|- gateway
|- mtu
|- port
|- vlan
|- vlan_enabled
|- vlan_priority
|- ipv6-iface-<host_no>-<iface_no>/ <-- for ipv6
|- enabled
|- ipaddr_autocfg
|- ipaddress
|- link_local_addr
|- linklocal_autocfg
|- mtu
|- port
|- router_addr
|- vlan
|- vlan_enabled
|- vlan_priority
3. Flow:
3.1 User space code:
- If user specify --op=update, then just update the iface
config file
- If use specify --op=applyall then ifaces for the host
passed in.
and build up the net config buffer.
- Note: If --op is "apply" then only settings for single
iface is read,
the iface provided with -I option is only read.
- The net config buffer will look like this.
----------------------------------------------------------------|
| iscsi_net_param { |
| iface_num = 0; |
| len = 4; |
| param = ISCSI_NET_PARAM_IPV4_ADDR; |
| iface_type = ISCSI_IFACE_TYPE_IPV4; |
| param_type = ISCSI_NET_PARAM; |
| value[0] = ipaddress[0]; |
| value[1] = ipaddress[1]; |
| value[2] = ipaddress[2]; |
| value[3] = ipaddress[3]; |
| } |
----------------------------------------------------------------|
| iscsi_net_param { |
| iface_num = 0; |
| len = 4; |
| param = ISCSI_NET_PARAM_IPV4_GW; |
| iface_type = ISCSI_IFACE_TYPE_IPV4; |
| param_type = ISCSI_NET_PARAM; |
| value[0] = ipgateway[0]; |
| value[1] = ipgateway[1]; |
| value[2] = ipgateway[2]; |
| value[3] = ipgateway[3]; |
| } |
-----------------------------------------------------------------
| |
| iscsi_net_param { |
| iface_num = 1; |
| len = 4; |
| param = ISCSI_NET_PARAM_IPV4_ADDR; |
| iface_type = ISCSI_IFACE_TYPE_IPV4; |
| param_type = ISCSI_NET_PARAM; |
| value[0] = ipaddress[0]; |
| value[1] = ipaddress[1]; |
| value[2] = ipaddress[2]; |
| value[3] = ipaddress[3]; |
| } |
-----------------------------------------------------------------
-----------------------------------------------------------------
| iscsi_net_param { |
| iface_num = 0; |
| len = 4; |
| param = ISCSI_NET_PARAM_IPV4_GW; |
| iface_type = ISCSI_IFACE_TYPE_IPV4; |
| param_type = ISCSI_NET_PARAM; |
| value[0] = ipgateway[0]; |
| value[1] = ipgateway[1]; |
| value[2] = ipgateway[2]; |
| value[3] = ipgateway[3]; |
| } |
-----------------------------------------------------------------
| iscsi_net_param { |
| iface_num = 1; |
| len = 1; |
| param = ISCSI_NET_PARAM_IFACE_ENABLED; |
| iface_type = ISCSI_IFACE_TYPE_IPV4; |
| param_type = ISCSI_NET_PARAM; |
| offset = 0; |
| value[0] = 0; /* 0 = disable, default = 1 = enable */ |
| } |
-----------------------------------------------------------------
Each netconfig parameter has different size requirement for value field.
e.g.: IPv4 address requires 4 bytes, IPv6 address requires 16 bytes etc.
The memory allocated for each netconfig parameter is size of
iscsi_net_param + length required for that parameter.
The multiple IO Vector mechanism is used to send netconfig
parameter from user space to kernel using Netlink interface.
IO Vector 0 is used for Netlink message header.
IO Vector 1 is used for iSCSI User Event (ev).
- The ev will be sent down with event type =
ISCSI_UEVENT_SET_NET_CONFIG
IO Vector 2 onwards, each vector consists of the struct
iscsi_net_param
with parameter name followed by its value.
The total size will be addition of all the IO vector sizes.
3.2 Kernel space code:
- Once event is received, the buffer will look like struct
iscsi_net_param
with parameter name followed by its value, then next parameter
and
its value and so on.
- the scsi_transport_iscsi would call the adapter's
transport->set_net_config - In set_net_config each
individual param can be decoded and set into the
hardware.
4. qla4xxx configuration:
iscsid, creates the iface for qla4xxx, based on the hwaddress.
To display
the iface related to qla4xxx execute following
\# iscsiadm -m iface
qla4xxx.00:0e:1e:04:8b:2e
qla4xxx,00:0e:1e:04:8b:2e,<empty>,<empty>,<empty>
qla4xxx.00:0e:1e:04:8b:2e.ipv6
qla4xxx,00:0e:1e:04:8b:2e,<empty>,<empty>,<e
mpty>
qla4xxx.00:0e:1e:04:8b:2a
qla4xxx,00:0e:1e:04:8b:2a,20.15.0.66,<empty>,<emp
ty>
qla4xxx.00:0e:1e:04:8b:2a.ipv6
qla4xxx,00:0e:1e:04:8b:2a,2001:DB8:1111:2222::8888,<empty>,<empty>
qla4xxx.00:0e:1e:04:8b:2a.ipv6.1
qla4xxx,00:0e:1e:04:8b:2a,2001:DB8:4444:5555::9999,<empty>,<empty>
To setup network configuration there can be two methods
4. 1. User can manually modify the iface file, and issue an "apply"
command.
---------------------------------------------------------------------------
\#cat /etc/iscsi/ifaces/
iface.example iface0 qla4xxx.00:0e:1e:04:8b:2a
qla4xxx.00:0e:1e:04:8b:2e
Example:
\# cat qla4xxx.00:0e:1e:04:8b:2a
iface.iscsi_ifacename = qla4xxx.00:0e:1e:04:8b:2a
iface.transport_name = qla4xxx
iface.hwaddress = 00:0e:1e:04:8b:2a
iface.state = enable
iface.iface_num = 0 (default)
iface.bootproto = static
iface.ipaddress = 192.168.2.2 (decimal)
iface.subnetmask = 255.255.255.0 (decimal)
\# vi qla4xxx.00:0e:1e:04:8b:2a.ipv6
(If file does not exist, the one can create it)
iface.iscsi_ifacename = qla4xxx.00:0e:1e:04:8b:2a.ipv6
iface.transport_name = qla4xxx
iface.hwaddress = 00:0e:1e:04:8b:2a
iface.ipaddress = 1111:2222::7777:8888 (hex)
iface.iface_num = 0
\# iscsiadm -m iface -H 00:0e:1e:04:8b:2a --op=applyall
This will find the ifaces on the host with MAC address
00:0e:1e:04:8b:2a and apply the settings to the hardware..
Note, this will read all the iface belonging to the same MAC
address.
Note2, Instead of a MAC address the host number can be
passed in.
4.2. User can use iscsiadm to specify the values and then apply
--------------------------------------------------------------
\# ls /etc/iscsi/ifaces/
iface.example iface0 qla4xxx.00:0e:1e:04:8b:2a
qla4xxx.00:0e:1e:04:8b:2e
\# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update
\
-n iface.ipaddress -v 192.168.1.2
\# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update
\
-n iface.gateway -v 192.168.1.1
\# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update
\
-n iface.subnet_mask -v 255.255.255.0
\# iscsiadm -m iface -H 00:0e:1e:04:8b:2a -o applyall
Setting up multiple IP:
First interface (default, no need to set iface_num, it is 0
by default)
\# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update
\
-n iface.ipaddress -v 192.168.1.2
Create the second one if it does not exist
\# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a.1 -op=new
\# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update
\
-n iface.iface_num -v 1 (Mandatory)
\# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update
\
-n iface.ipaddress -v 192.168.1.3
\# iscsiadm -m iface -H 00:0e:1e:04:8b:2a --op=applyall
Note: If there are common settings for multiple interfaces
then the
settings from 0th iface would be considered valid.
Note: To apply settings for a single iface, just say
--op=apply
Signed-off-by: Lalit Chandivade <lalit.chandivade@qlogic.com>
Signed-off-by: Harish Zunjarrao <harish.zunjarrao@qlogic.com>
[formatting fixes and addition of host param for applyall]
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
|
|
|
|
|
| |
This just converts the iscsi discovery code
to the iscsi_err.h error codes.
|
|
|
|
|
|
| |
Add a new auth error code to make it easier for users
to tell if it failed due to a auth error vs other
target login error.
|
|
|
|
|
|
|
|
|
| |
iscsiadm/iscsistart return a mix of type of returns codes.
Sometimes -1 and sometimes a EXYZ type of error code. This
patch has them return a ISCSI_ERR value.
See iscsiadm man page EXIT STATUS section for error
code definitions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
like bnx2i, be2iscsi, cxgb3i must use a normal eth for discovery. This patch allows us to do discovery using the iscsi class passthrough interface.
Note1 that the dirver must set the CAP_TEXT_NEGO setting, which
might requires scsi-misc.
Limitations of patch:
- MaxRecvDataSegmentLength is limited to 8K for discovery sessions
when offload is used.
V3:
- bug fixes from Eddie Wai to call start conn after we have logged in.
Fixed set param not setting all settings.
Misc cleanups.
V4:
- fix iscsistart segfault due to missing initialization.
|
|
|
|
|
|
| |
This patch modifies the ibft sysfs code to support the
iscsi boot sysfs module which is used by be2iscsi to
export be2iscsi boot info.
|
|
|
|
|
|
| |
With this patch, if the sendtargets or isns
daemon detects that a target is no longer sent
it will logout the session.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This replaces the native isns code with open-isns's libisns.
I included the open-isns code in the open-iscsi tarball
to make distribution easier since some distros use different
isns clients and may not want to carry open-isns.
This is based on open-isns commit
5e09f36d3446e41de0b8361601ffec4cd140d513.
Changes in iSNS behavior/use:
- To do discovery you must pass the ip and optionally the
port to iscsiadm:
iscsiadm -m discovery -t st -p 10.15.0.9
This command accepts the same ops as sendtargets so you can
add/remove/update the node records that are created.
It also supports ifaces properly now.
- isns.address and isns.port in iscsid.conf are no longer
used.
- ESI is temporarily not supported. This will be fixed in the
next patch when SCNs support is added.
- The iscsiadm isns discovery command is not marked as stable.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
| |
This just breaks up the network part of the nic setup code
to a new function that lives in the net utils code, so it
can be used by other callers one day.
|
|
|
|
|
|
| |
If the nic has a iscsi offload function then do not
set up the nic with the ibft net settings. We will
use those values for the iscsi net settings.
|
|
|
|
|
|
| |
There are 3 functions to get the net iface name
from the mac address. This merges them into
one function and moves it to a new file.
|
|
|
|
| |
This just mvs setup_nics to fw_entry.c so iscsiadm can use it.
|
|
|
|
|
| |
Sync kernel modules with what is being sent for the
2.6.33 feature window.
|
|
|
|
|
|
| |
Fix bad merge. The bound ep connect event number should be 19.
When transferring patches from the offload tree to head this got
set to the wrong value.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we are using a offload card, then iface_set_param will match the
iface info to a scsi_host and pass that info down to setup the net
settings of the port (currently we just set the ip address). When we
create the tcp/ip connection by calling ep_connect, we currently just go
by the routing table info.
I think there are two problems with this.
1. Some drivers do not have access to a routing table. Some drivers like
qla4xxx do not even know about other ports.
2. If you have two initiator ports on the same subnet, the user may have
set things up so that session1 was supposed to be run through port1. and
session2 was supposed to be run through port2. It looks like we could
end with both sessions going through one of the ports.
Also how do you edit the routing table for the offload cards? You cannot
use normal net tools like route can you?
3. If we set up hostA in the iface_set_param step, but then the routing
info leads us to hostB, we are stuck.
I did the attached patches to fix this. Basically we just pass down the
scsi host we want to go through.
|
|
|
|
|
| |
We messed up strncat in so many different ways that strlat could
fix. This patch converts the userspace uses of strncat to strlcat.
|
|
|
|
|
| |
This takes the iscsi modules that are planned for 2.6.29
and adds them to the kernel dir.
|
|
|
|
|
|
|
|
| |
I added a stdint include so that it would be easier
to compile userspace apps including iscsi_proto.h, but
that breaks the kernel compilation. Since this iscsi_proto.h
is only used in open-iscsi releases I am just adding
a ifdef __KERNEL__.
|
|
|
|
| |
fw_get_entry's filepath is always NULL, so this patch removes it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
firmware
This adds the ibft sysfs module (iscsi_ibft) parsing support. It
was original done by Konard, but I have ported it to use the
sysfs.c helpers (add new ones and ported iscsi_sysfs.c too).
This patch also modifies iscsistart and iscsiadm to print/log
into all the portals found in firmware.
It also changes the behavior of
iscsiadm -m discovery -t fw
so that we create db records for what is found. It is not
fully hooked into the iface code, so it will use the
different inititor name, but it will not create a iface for
it (this means that if you have a record for the same portal that
is bound to a iface with a iname you can run into problems).
|
|
|
|
|
|
|
|
| |
The segment->done functions return a iscsi error value which gives
a lot more info than conn failed, so this patch has us return
that value. I also add a new one for xmit failures.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
|
|
|
| |
If the kernel throws ISCSI_ERR_INVALID_HOST then the host is no
longer able to support iscsi. iscsid should then kill the session.
There is no need to logout or do the sync cache from the ubind
path, because at this point the transport is dead.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Mike Christie <mchristi@redhat.com>
|
|
|
|
| |
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|