td_iscsi.c:
Inconsistent coding. In some functions the variables are upper and
lower case, in others they are lower case. To be consistent with other
C files, all variables should be lower names.
On 11/24/09 08:45 AM, William Schumann wrote:
> Sanjay,
> Unless otherwise indicated below as well as those indicated by Bing in
> his response, I will implement your suggestions, coordinate changes
> with Bing, and issue another webrev.
>
> sanjay nadkarni (Laptop) wrote:
>>
>> I have reviewed all the files except td_iscsi.c. I have reviewed
>> half of the file and finish the rest tomorrow.
>>
>> General: Thre seems like an overzealous use of MAXNAMELEN. A
>> quick scan of dkio(7I) indicates that disknames will not be bigger
>> than 32 chars 2*DK_DEVLEN. MAXNAMELEN is 256. Does scsiip really
>> need this size or can it be INET_ADDRSTRLEN ?
>>
>> auto_install.c: (optional)
>> 648-660: Since all you are doing here is putting a specific string
>> in file, use of popen to do this will make it cleaner.
>>
>> auto_install.h:
>> 204-213 (and the lines above). Also above the disk vendor (not part
>> your changes) I am assuming is filled out from the inquiry string.
>> If so scsi_inquiry structure allocates only 24 bytes for vendor[8]
>> and product[16]
>>
>> auto_parse.c:
>> 193 and others:
>> if p is NULL, wouldn't this be an error. If so it will not be
>> caught. Similar issues with other parsed values.
> Errors could occur in auto_parse_manifest.c during tag parsing that
> would be ignored. However, these errors would be very unlikely, since
> they would involve a basic breakdown in the embedded Python
> interpreter, which has already been invoked to validate the
> manifest. Since fixing this would involve many changes in three
> different modules, and since this was not introduced by iSCSI, I would
> prefer to file a bug on this and handle it later at a more appropriate
> priority.
Sorry for not being clear. There are 2 issues here:
1. If you truly believe that p != NULL then why not change them to an
assert.
2. Sorry for not being clear. I was really asking where is the sematic
parsing occurring ?
>>
>>
>> auto_td.c:
>> 482: Just to be sure..when "if" statement fails,
>> diskiscsiname and diskiscsiip are both either defined
>> or undefined. A comment to that effect would be useful.
>> 492: I would have thought that rootpath[MAXNAMELEN] would be
>> sufficient (i.e. 256) instead of MAXPATHLEN which is
>> 1024.
> According to RFC 3720, the iSCSI name itself can be up to 223 bytes.
> Add to that the maximum length of the IP address, port number,
> protocol, and LUN, plus the "iscsi:" and separator characters and this
> is over 256 bytes.
Okay
>>
>> 539: strncmp(rootpath, "iscsi:", strlen("iscsi:")) would be
>> preferable.
>>
???
>> 544- 568: parsing with strtok might be a better option.
> These parameters are position-dependent, and strtok just jumps over
> separators without tokens between them.
Okay
> William
>>
>> td_api.h:
>> 54 -57: Please delete these lines. To designate iscsi
>> specific enums state that as part of the comment
>> eg:
>> TD_E_NOT_FOUND, /* iscsi specific */
>> TD_E_LUN_NOT_FOUND, /* iscsi specific. LUN not found or a
>> non-specified LUN found */
>>
>> td_iscsi.c:
>> I am a bit confused by the values chosen for CHAP. In struct
>> iSCSI_ibtf_target chap_name_len
>> and chap_secret_len are both ushort_t. Given this, would 512
>> be big enough for name ?
>>
>> 58: comment for failure does not match the actual value being
>> returned.
>>
>> 79: Can lhbaList->oidCount be zero since one can get here
>> with lhbaList != NULL and should
>> this be marked as an error ?
>>
>> 99: Why is targetIpaddr[128] and not a predefined value
>> [INET_ADDRSTRLEN] or something
>> appropriate ? I noticed below that this string is used
>> to contain IP address and port, so
>> changing the the name to be something appropriate would
>> be helpful.
>>
>> 122-124: /* Currently iscsi driver doesn't allow one to add
>> a duplicate static configuration. So
>> we try to get the existing static configuration
>> first and then do a comparision....
>> */
>> A comment as to what mbstowcs does would be useful.
>> 421: char devnam[MAXNAMELEN] --- overkill ?
>>
>> William Schumann wrote:
>>> quick iSCSI boot status update:
>>>
>>> Am doing final unit testing on OpenSolaris code, and would like to
>>> put it up for review on Wednesday.
>>>
>>> Current webrev: http://cr.opensolaris.org/~wmsch/bug-6590/
>>>
>>> Working on text describing manual network configuration to eliminate
>>> NWAM.
>>>
>>> RFC 4173 Bootstrapping Clients using the Internet Small Computer
>>> System Interface (iSCSI) Protocol
>>> http://tools.ietf.org/html/rfc4173
>>> shows technique for DHCP server to supply IP address to iSCSI boot
>>> target using DHCP Rootpath (it works on Intel e1000g0). dhcpinfo
>>> can then be used to get the iSCSI boot parameters from the DHCP
>>> server: "dhcpinfo Rootpath". Still trying to figure out best way to
>>> do this to handle x86 2-NIC case. Interface must first be set as
>>> DHCP - "ifconfig <if> dhcp". Maybe DHCP Rootpath can be configured
>>> for PXE interface...
>>>
>>> Unusual behavior: iSCSI boot network interface not listed as 'DHCP'
>>> in ifconfig. I think that this might be causing some confusion in
>>> the DHCP server, which periodically marks the address as
>>> "unusable". I see "ICMP ECHO reply to OFFER candidate: <IP>
>>> disabling" in system log. From
>>> http://docs.sun.com/app/docs/doc/806-0916/6ja8539b0?a=view
>>>>
>>>> ICMP ECHO reply to OFFER candidate: n.n.n.n, disabling
>>>>
>>>> The IP address being considered for offering to a DHCP client is
>>>> already in use. This might occur if more than one DHCP server owns
>>>> the address, or if an address was manually configured for a
>>>> non-DHCP network client.
>>>> Determine the proper ownership of the address and correct either
>>>> the DHCP server database or the host's network configuration.
>>>>
>>> Initial reboot with nwam (phase 0.n) service up by default works,
>>> but DNS is not correctly configured until second reboot. Can be
>>> fixed manually. Also might be due to the interface not looking like
>>> a DHCP interface.
>>>
>>> Did some NWAM phase 1 testing. Looks OK, with some minor service
>>> startup problems possibly due to incorrect dependencies or timing
>>> issues.
>>>
>>> Back on Wednesday,
>>> William
>>
>>