<html xmlns="http://www.w3.org/TR/REC-html40" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml">

<head>


<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"MS PGothic";
        panose-1:2 11 6 0 7 2 5 8 2 4;}
@font-face
        {font-family:"\@MS PGothic";
        panose-1:2 11 6 0 7 2 5 8 2 4;}
@font-face
        {font-family:"\@SimSun";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:SimSun;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:SimSun;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:SimSun;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:Consolas;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle22
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle23
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle24
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:1526551213;
        mso-list-type:hybrid;
        mso-list-template-ids:-1194831534 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body vlink="purple" link="blue" lang="EN-US">

<div class="Section1">

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">Current code only handles challenge response that is string of
hex numbers that started with either $B!H(B0x$B!I(B.&nbsp; The challenge sent back by
this target is in base64 format.&nbsp; I think we need to add base64 (per RFC
3720) format support &nbsp;in order to solve this problem.&nbsp; &nbsp;The
description of this format is in RFC 3720:<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New""><br>
&nbsp; base64-constant: base64 constant encoded as a string that starts<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
with &quot;0b&quot; or &quot;0B&quot; followed by 1 or more digits or letters
or plus<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
or slash or equal.&nbsp; The encoding is done according to [RFC2045]<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
and each character, except equal, represents a base64 digit or a<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
6-bit binary string.&nbsp; Base64-constants are used to encode<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
numerical-values or binary strings.&nbsp; When used to encode<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
numerical values, the excessive use of leading 0 digits (encoded<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
as A) is discouraged.&nbsp; The string following 0B (or 0b) represents<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
a base64 number that starts with the most significant base64<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
digit, followed by all other digits in decreasing order of<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
significance and ending with the least-significant base64 digit;<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
the least significant base64 digit may be optionally followed by<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
pad digits (encoded as equal) that are not considered as part of<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
the number.&nbsp; When used to encode binary strings, base64-constants<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
have an implicit<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
byte-length that includes six bits for every character of the<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
constant, excluding trailing equals (i.e., a base64-constant of n<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
base64 characters excluding the trailing equals has a byte-length<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
of ((the integer part of) (n*3/4)).&nbsp; Correctly encoded base64<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
strings cannot have n values of 1, 5 ... k*4+1.<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New""><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">This support is already in Open-ISCSI Initiator.<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">static int<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">acl_text_to_data(const char *text, unsigned char *data,<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;unsigned
int *data_length)<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">{<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp; int status;<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp; unsigned int text_length;<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp; status = acl_chk_string(text, 2 + 2 *
AUTH_LARGE_BINARY_MAX_LEN + 1,<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;text_length);<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp; if (status)<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
status;<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp; if (text[0] == '0' &amp;&amp; (text[1]
== 'x' || text[1] == 'X')) {<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
skip prefix */<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text
+= 2;<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text_length
-= 2;<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; status
= acl_hex_to_data(text, text_length, data, data_length);<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp; } else if (text[0] == '0' &amp;&amp;
(text[1] == 'b' || text[1] == 'B')) {<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
skip prefix */<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text
+= 2;<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text_length
-= 2;<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; status
= acl_base64_to_data(text, data, data_length);<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp; } else<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; status
= 1;&nbsp;&nbsp;&nbsp;&nbsp; /* prefix not recognized. */<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp; return status;<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">}<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">So my initial proposed fix WILL not work. &nbsp;Sorry$B!D(B. <o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">Regards,<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">Kevin<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<div>

<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">

<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Kevin Tran <br>
<b>Sent:</b> Wednesday, March 17, 2010 1:59 AM<br>
<b>To:</b> 'lsq726'<br>
<b>Cc:</b> 'gpxe@etherboot.org'<br>
<b>Subject:</b> RE: Re:Re: [gPXE] Fwd: Re:Re: why?username and password is
right , but can't boot?<o:p></o:p></span></p>

</div>

</div>

<p class="MsoNormal"><o:p>&nbsp;</o:p></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">Hi,<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">I was looking at the network trace &nbsp;that was captured
between the MSFT iSCSI initiator and iSCSI target.&nbsp; &nbsp;That explains
everything work correctly. </span><span style="font-size:11.0pt;font-family:
Wingdings;color:#1F497D">J</span><span style="font-size:11.0pt;font-family:
"Calibri","sans-serif";color:#1F497D"><o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">LSQ726 sent me another trace (88888..).&nbsp; I looked at the
trace and the iSCSI code and &nbsp;I think I know that the problem is.&nbsp; <o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p style="text-indent:-.25in;mso-list:l0 level1 lfo2" class="MsoListParagraph"><![if !supportLists]><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><span style="mso-list:Ignore">1.<span style="font:7.0pt "Times New Roman"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">gPXE sent out iSCSI login command with CHAP_A=5.<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><img src="cid:image003.png@01CAC57C.8BD88580" id="Picture_x0020_3" height="500" width="943"><o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p style="text-indent:-.25in;mso-list:l0 level1 lfo2" class="MsoListParagraph"><![if !supportLists]><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><span style="mso-list:Ignore">2.<span style="font:7.0pt "Times New Roman"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">iSCSI target sent back iSCSI response with CHAP_A,CHAP_I, and
CHAP_C<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><img src="cid:image004.png@01CAC57C.8BD88580" id="Picture_x0020_4" height="470" width="951"><o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p style="text-indent:-.25in;mso-list:l0 level1 lfo2" class="MsoListParagraph"><![if !supportLists]><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><span style="mso-list:Ignore">3.<span style="font:7.0pt "Times New Roman"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">CHAP processing code rejected the challenge because it didn$B!G(Bt
start with $B!H(B0x$B!I(B.&nbsp; <o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">static int iscsi_handle_chap_c_value ( struct iscsi_session
*iscsi,<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char *value ) {<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp; char buf[3];<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp; char *endp;<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp; uint8_t byte;<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp; unsigned int i;<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp; </span><b><i><span style="font-size:
11.0pt;font-family:"Courier New";color:red">/* Check and strip leading
&quot;0x&quot; */<o:p></o:p></span></i></b></p>

<p class="MsoNormal"><b><i><span style="font-size:11.0pt;font-family:"Courier New";
color:red">&nbsp;&nbsp;&nbsp;&nbsp; if ( ( value[0] != '0' ) || ( value[1] !=
'x' ) ) {<o:p></o:p></span></i></b></p>

<p class="MsoNormal"><b><i><span style="font-size:11.0pt;font-family:"Courier New";
color:red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DBGC (
iscsi, &quot;iSCSI %p saw invalid CHAP challenge \&quot;%s\&quot;\n&quot;,<o:p></o:p></span></i></b></p>

<p class="MsoNormal"><b><i><span style="font-size:11.0pt;font-family:"Courier New";
color:red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iscsi, value );<o:p></o:p></span></i></b></p>

<p class="MsoNormal"><b><i><span style="font-size:11.0pt;font-family:"Courier New";
color:red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-EPROTO;<o:p></o:p></span></i></b></p>

<p class="MsoNormal"><b><i><span style="font-size:11.0pt;font-family:"Courier New";
color:red">&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></i></b></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp; value += 2;<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">I don$B!G(Bt think there is such a requirement.&nbsp; If it starts
with $B!H(B0x$B!I(B, then it should skip two bytes. &nbsp;&nbsp;&nbsp;I can double-check
the specs tomorrow.&nbsp;&nbsp;&nbsp;&nbsp; For now, can you recompile the code
with the following changes:<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">/* Check and strip leading &quot;0x&quot; */<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp; if ( ( value[0] == '0' ) &amp;&amp; (
(value[1] == 'x') || (value[1] ==&nbsp; $B!F(BX$B!G(B)) &nbsp;) {<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; value += 2;<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";
color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">Regards,<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">Kevin<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<div>

<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">

<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Kevin Tran <br>
<b>Sent:</b> Tuesday, March 16, 2010 11:32 PM<br>
<b>To:</b> 'lsq726'<br>
<b>Cc:</b> gpxe@etherboot.org<br>
<b>Subject:</b> RE: Re:Re: [gPXE] Fwd: Re:Re: why?username and password is
right , but can't boot?<o:p></o:p></span></p>

</div>

</div>

<p class="MsoNormal"><o:p>&nbsp;</o:p></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D">You need to check your configuration.&nbsp; Based on the network
trace, the response to $B!H(BRead Capacity10$B!I(B was &nbsp;1GB.<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><img src="cid:image005.png@01CAC57C.8BD88580" id="Picture_x0020_2" height="542" width="1184"><o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D"><o:p>&nbsp;</o:p></span></p>

<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">

<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> lsq726
[mailto:lsq726@163.com] <br>
<b>Sent:</b> Tuesday, March 16, 2010 11:25 PM<br>
<b>To:</b> Kevin Tran<br>
<b>Subject:</b> Re:Re: [gPXE] Fwd: Re:Re: why?username and password is right ,
but can't boot?<o:p></o:p></span></p>

</div>

<p class="MsoNormal"><o:p>&nbsp;</o:p></p>

<div>

<p class="MsoNormal">HI,<o:p></o:p></p>

</div>

<div>

<p class="MsoNormal">The partition is 10GB<o:p></o:p></p>

</div>

<div>

<p class="MsoNormal">PLEASE GPXE.RAR<o:p></o:p></p>

</div>

<div>

<p class="MsoNormal"><br>
&nbsp;<o:p></o:p></p>

</div>

<p style="margin-bottom:12.0pt" class="MsoNormal"><br>
<span lang="ZH-CN">$B:_(B</span>2010-03-17 14:09:01<span lang="ZH-CN">$B!$(B</span>&quot;Kevin&nbsp;Tran&quot;&nbsp;&lt;ktran@broadcom.com&gt;
<span lang="ZH-CN">$B<LF;!'(B</span><o:p></o:p></p>

<div>

<p class="MsoPlainText">Hi,<o:p></o:p></p>

<p class="MsoPlainText">I looked at the network trace briefly and I didn't see
anything obviously wrong.<o:p></o:p></p>

<p class="MsoPlainText">&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">1. gPXE did login to the iSCSI target successfully with
CHAP authentication (one-way).<o:p></o:p></p>

<p class="MsoPlainText">2. The partition is only 1Gbyte and the partition is NTFS
based on the MBR and Disk Inquiry response.<o:p></o:p></p>

<p class="MsoPlainText">&nbsp;<o:p></o:p></p>

<p class="MsoPlainText"><img src="cid:image006.png@01CAC57C.8BD88580" id="Picture_x0020_1" height="538" width="635"><o:p></o:p></p>

<p class="MsoPlainText">3. There were a lot of READ/WRITE IO<span lang="JA">$B!G(B</span>s
from the initiator after login.<o:p></o:p></p>

<p class="MsoPlainText">4. The last operations were iSCSI logout and then TCP
connection was closed.<o:p></o:p></p>

<p class="MsoPlainText">&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">In normal Win2k3/Win2K8 or Linux iSCSI boot, gPXE passes iSCSI
parameters + CHAP information to the OS initiator via iBFT.&nbsp; OS initiator
then does iSCSI login again with the iSCSI target.&nbsp; I didn<span lang="JA">$B!G(B</span>t
see such operations.&nbsp; In addition, Windows partition is normally 5GB to
15GB which depends on the favor of the OS and user<span lang="JA">$B!G(B</span>s
setup.<o:p></o:p></p>

<p class="MsoPlainText">&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">What are you trying to boot?<o:p></o:p></p>

<p class="MsoPlainText">&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">Regards!<o:p></o:p></p>

<p class="MsoPlainText">&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">Kevin<o:p></o:p></p>

<p class="MsoPlainText">&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">-----Original Message-----<br>
From: <a href="mailto:gpxe-bounces@etherboot.org">gpxe-bounces@etherboot.org</a>
[mailto:<a href="mailto:gpxe-bounces@etherboot.org">gpxe-bounces@etherboot.org</a>]
On Behalf Of Marty Connor<br>
Sent: Tuesday, March 16, 2010 9:58 PM<br>
To: <a href="mailto:gpxe@etherboot.org">gpxe@etherboot.org</a><br>
Subject: [gPXE] Fwd: Re:Re: why?username and password is right , but can't
boot?<o:p></o:p></p>

<p class="MsoPlainText">&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">Forwarding.&nbsp; Perhaps this will be helpful in
debugging this issue.<o:p></o:p></p>

<p class="MsoPlainText">&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">-------- Original Message --------<o:p></o:p></p>

<p class="MsoPlainText">Subject: Re:Re: [gPXE] why?username and password is right
,but can't boot?<o:p></o:p></p>

<p class="MsoPlainText">Date: Wed, 17 Mar 2010 09:43:12 +0800 (CST)<o:p></o:p></p>

<p class="MsoPlainText">From: lsq726 &lt;<a href="mailto:lsq726@163.com">lsq726@163.com</a>&gt;<o:p></o:p></p>

<p class="MsoPlainText">To: Marty Connor &lt;<a href="mailto:mdc@etherboot.org">mdc@etherboot.org</a>&gt;<o:p></o:p></p>

<p class="MsoPlainText">&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">SERVER ISCSI STARWIND 'S TWO LOG FILE<o:p></o:p></p>

<p class="MsoPlainText">&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">2010-03-17 09:17:06&quot;Marty Connor&quot; &lt;<a href="mailto:mdc@etherboot.org">mdc@etherboot.org</a>&gt; <o:p></o:p></p>

<p class="MsoPlainText">&gt;lsq726 wrote on 3/16/10 8:30 PM:<o:p></o:p></p>

<p class="MsoPlainText">&gt;&gt; why?username and password is right ,but can't
boot?<o:p></o:p></p>

<p class="MsoPlainText">&gt;&gt; please see photo<o:p></o:p></p>

<p class="MsoPlainText">&gt;&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">&gt;I also notice that you are getting a _lot_ of RXE
(Receive Errors)<o:p></o:p></p>

<p class="MsoPlainText">&gt;&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">&gt;It looks a lot like you may have some sort of network
configuration error.<o:p></o:p></p>

<p class="MsoPlainText">&gt;&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">&gt;And could you turn on CONSOLE_SERIAL and paste text
instead of sending <o:p></o:p></p>

<p class="MsoPlainText">&gt;pictures?<o:p></o:p></p>

<p class="MsoPlainText">&gt;&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">&gt;If your setup boots when if there is no password,
then it could easily <o:p></o:p></p>

<p class="MsoPlainText">&gt;be some arcane Windows security policy issue.<o:p></o:p></p>

<p class="MsoPlainText">&gt;&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">&gt;Getting Windows to log in detail what it doesn't like
and why it is <o:p></o:p></p>

<p class="MsoPlainText">&gt;rejecting the connection will probably help a
lot.&nbsp; Perhaps the server <o:p></o:p></p>

<p class="MsoPlainText">&gt;is even already logging and you just need to look
into it.<o:p></o:p></p>

<p class="MsoPlainText">&gt;&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">&gt;A quick web search suggests that there is lot of
information out there <o:p></o:p></p>

<p class="MsoPlainText">&gt;dealing with Windows iSCSI CHAP authentication on the
server side.<o:p></o:p></p>

<p class="MsoPlainText">&gt;&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">&gt;/ Marty /<o:p></o:p></p>

<p class="MsoPlainText">&gt;&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">&gt;&nbsp;<o:p></o:p></p>

<p class="MsoPlainText">&nbsp;<o:p></o:p></p>

</div>

<p style="margin-bottom:12.0pt" class="MsoNormal"><o:p>&nbsp;</o:p></p>

</div>

</body>

</html>