Bing Zhao - Sun Microsystems wrote:
> Hi Sanjay:
>
> Thank you very much for your time and comments. :-) Please see my 
> email inline. Thanks.
>
> 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 ?
> Maybe they are different things. Here the device name stands for os 
> device name. It is not the disk name said in dkio(7I) I think.
> For iscsi and fibre channel os device name, they usually contain a 
> GUID. So the length can be longer than 32 .You can see them from 
> format(1M).
 Is this length constrained ?  For example, there is a definition of 
GUID in heci.h which defines it to 32 bytes. 

>
> -bash-3.2# format
> Searching for disks...done
>
>
> AVAILABLE DISK SELECTIONS:
>        0. c1t0d0 <DEFAULT cyl 17831 alt 2 hd 255 sec 63>
>           /pci at 0,0/pci10de,376 at a/pci1000,3150 at 0/sd at 0,0
>        1. c1t2d0 <DEFAULT cyl 60797 alt 2 hd 255 sec 126>
>           /pci at 0,0/pci10de,376 at a/pci1000,3150 at 0/sd at 2,0
>        2. c1t3d0 <DEFAULT cyl 13053 alt 2 hd 255 sec 63>
>           /pci at 0,0/pci10de,376 at a/pci1000,3150 at 0/sd at 3,0
>        3. c3t600144F00008272C70AF4AB8A05E0001d0 <DEFAULT cyl 2607 alt 
> 2 hd 255 sec 63> <=====The name is longer than 32 bytes.
>           /scsi_vhci/disk at g600144f00008272c70af4ab8a05e0001
>        4. c3t600144F000082747EEEB4AF2715D0001d0 <DEFAULT cyl 1956 alt 
> 2 hd 255 sec 63>
>           /scsi_vhci/disk at g600144f000082747eeeb4af2715d0001
>        5. c3t600144F00008276216FD4AAA179F0001d0 <DEFAULT cyl 1302 alt 
> 2 hd 255 sec 63>
>           /scsi_vhci/disk at g600144f00008276216fd4aaa179f0001
> Specify disk (enter its number):
>
> On iscsi related command iscsiadm(1M), you can also find above iscsi 
> disks:
> -bash-3.2# iscsiadm list target -S
> Target: iqn.1986-03.com.sun:02:7ff23d41-0ff1-c92e-9549-fb6532f2a55f
>     Alias: -
>     TPGT: 1
>     ISID: 4000002a0000
>     Connections: 1
>     LUN: 3
>          Vendor:  SUN    
>          Product: COMSTAR        
>          OS Device Name: 
> /dev/rdsk/c3t600144F000082747EEEB4AF2715D0001d0s2      <=====The os 
> device name is longer than 32 bytes.
>     LUN: 1
>          Vendor:  SUN    
>          Product: COMSTAR        
>          OS Device Name: /dev/rdsk/c3t600144F00008272C70AF4AB8A05E0001d0s2
>     LUN: 0
>          Vendor:  SUN    
>          Product: COMSTAR        
>          OS Device Name: /dev/rdsk/c3t600144F00008276216FD4AAA179F0001d0s2
>
>
> Here I think the disk name said in dkio(7I) is a different thing with 
> the os device name.
> So I use MAXNAMELEN here.
>>
>> 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.
>>
>>
>> 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.
>>
>>        539:  strncmp(rootpath, "iscsi:", strlen("iscsi:"))  would be 
>> preferable.
>>
>>        544- 568:  parsing with strtok might be a better option.
>>
>> 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 ?
> Here we use IMA. And IMA is a SNIA specification. Currently we are 
> using v2.0. It can be found here:
> http://www.snia.org/tech_activities/standards/curr_standards/ima/
>
> In the iSCSI Management API (IMA) v2.0 
> <http://www.snia.org/tech_activities/standards/curr_standards/ima/iSCSIManagementAPI_v2.0.pdf>
>   
> section 5.56, the max length of chap name is set to 512. So I set it 
> to 512.
>
> In the iSCSI_ibft_target is defined according to iBFT specification 
> here: http://www.microsoft.com/whdc/system/platform/firmware/ibft.mspx
> In section 3.7, it uses two bytes for the length of the chap name. So 
> we that's why we used ushort_t there.
So is version 2 of CHAP limited to 512 whereas the maximum can be much 
higher ?  I am still unclear about the relationship between the two.
>>
>>        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 ?
> I will correct our code according to your other comments and send the 
> webrev later.
>
> Thank you again for your comments. It is really helpful. :-)
>
> Regards,
> Bing
>>
>> 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
>>
>>
>> _______________________________________________
>> caiman-discuss mailing list
>> caiman-discuss at opensolaris.org
>> http://mail.opensolaris.org/mailman/listinfo/caiman-discuss
>


Reply via email to