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
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