HI Dmitry & all ,

I was tesing the LAN interface with the latest CVS code and there was a 
issue with ipmi_lan_poll_recv related to send message..
It was not taking care when authentication is none (-A none) . Works only 
when we have some kind of authentication (- U xxx -P yyyy) 

For example 

< When the Authentication is none and send message is used>
-bash-3.00$ ./ipmitool -I lan -C 0 -H 10.100.22.168 -A none -t 0x82 sel
SEL Information
Version          : 0.0 (Unknown)
Entries          : 0
Free Space       : 0 bytes
Percent Used     : 0%
Last Add Time    : Not Available
Last Del Time    : Not Available
Overflow         : false
Supported Cmds   : None

<When Authentication is present and send message is used > 
-bash-3.00$ ./ipmitool -I lan -C 0 -H 10.100.22.168 -U admin -P radisys -A 
password -t 0x82 sel
SEL Information
Version          : 1.5 (v1.5, v2 compliant)
Entries          : 173
Free Space       : 28806 bytes
Percent Used     : 8%
Last Add Time    : 09/11/2007 03:10:47
Last Del Time    : Not Available
Overflow         : false
Supported Cmds   : 'Reserve'

So added a patch file which will check the authentication  and if its not 
present it should check only for 22 and if authentication is present then 
it should check for response data length for 38.. 

--- lan.c       2007-09-12 10:48:48.161772000 -0700
+++ lan_new.c   2007-09-12 11:02:44.504303000 -0700
@@ -428,6 +428,7 @@
        struct ipmi_rq_entry * entry;
        int x=0, rv;
        uint8_t our_address = intf->my_addr;
+       uint8_t authentication = FALSE;
 
        if (our_address == 0)
                our_address = IPMI_BMC_SLAVE_ADDR;
@@ -522,7 +523,10 @@
                        /* Standard IPMI 1.5 packet */
                        rsp->session.payloadtype = IPMI_PAYLOAD_TYPE_IPMI;
                        if (intf->session->active && 
(rsp->session.authtype || intf->session->authtype))
+                       {
+                               authentication = TRUE;
                                x += 16;
+                       }
 
                        rsp->session.msglen = rsp->data[x++];
                        rsp->payload.ipmi_response.rq_addr = 
rsp->data[x++];
@@ -575,8 +579,14 @@
                                                         "bridge command 
response");
                                        }
                                        /* bridged command: lose extra 
header */
-                                       if (rsp->payload.ipmi_response.cmd 
== 0x34) {
-                                               if (rsp->data_len == 38) {
+                                       /* Extra check to ensure that 
command is 0x34 and netfn 
+                                        * should be Application 0x07 */
+                                       if 
((rsp->payload.ipmi_response.cmd == 0x34) &&
+ (rsp->payload.ipmi_response.netfn == 0x07)) {
+                                       /* If authentication is present 
then the resp length will be 38
+                                       * and if its not present then the 
response length is 22*/
+                                               if ((authentication && 
rsp->data_len == 38) ||
+                                                  (!authentication && 
rsp->data_len == 22)) {
                                                        rsp = !rsp->ccode 
? ipmi_lan_recv_packet(intf) : NULL;
                                                        if (rsp && 
!rsp->ccode &&
 intf->transit_addr != intf->my_addr &&


Attached is the patch for it. 



Thanks,
Harshad Prabhu




Dmitry Frolov <[EMAIL PROTECTED]> 
Sent by: [EMAIL PROTECTED]
09/12/2007 08:29 AM

To
Thomas Rendelmann <[EMAIL PROTECTED]>
cc
ipmitool-devel@lists.sourceforge.net
Subject
Re: [Ipmitool-devel] Patch for lan/lanplus channel






* Thomas Rendelmann <[EMAIL PROTECTED]> [12.09.2007 19:34]:

> > Exactly the same patch was already commited to CVS HEAD about 2 weeks
> > ago :)
> 
> I already posted this patch to the list some time ago, but I have
> never seen the message on the list, so I thought I post it again. When
> I posted it first, I was not a subscriber, so I thought that was the
> reason for not appearing.
> 
> Sorry for bugging you. ;-)

Nothing to worry about. Thanks for the patch!

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel

Attachment: lan.patch
Description: Binary data

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel

Reply via email to