[I couldn't find my previous message in the mail list archive and
concluded that the message didn't get through. Sorry if it's a duplicate.
I'd really appreciate if someone emailed me privately to let me know
that my messages are visible in this list.]
Hello gentlemen,
I'm hopeful that it's not totally late to submit a fix and an IANA patch
for 1.8.10. If it's too late for the changes to be included in 1.8.10,
please just commit them into the CVS.
The lan-msg-bridge-fix.diff patch fixes an issue in the LAN driver with
bridging messages for IPMI sessions without authentication. It also adds
capability of handling AMC.0- and uTCA-style bridging, in which
responses to bridged messages are incorporated into responses of the
Send Message command instead of delivering separately.
The pps-iana.diff patch adds Pigeon Point's IANA and string.
Best regards,
Dmitry
--- src/plugins/lan/lan.c.org Tue Jul 22 17:41:24 2008
+++ src/plugins/lan/lan.c Tue Jul 22 17:38:02 2008
@@ -575,25 +575,38 @@ ipmi_lan_poll_recv(struct ipmi_intf * in
"bridge command
response");
}
/* bridged command: lose extra header */
- if (rsp->payload.ipmi_response.cmd ==
0x34) {
- if (rsp->data_len == 38) {
+ if (rsp->payload.ipmi_response.netfn ==
7 &&
+ rsp->payload.ipmi_response.cmd
== 0x34) {
+ if (rsp->data_len - x - 1 == 0)
{
rsp = !rsp->ccode ?
ipmi_lan_recv_packet(intf) : NULL;
if (rsp && !rsp->ccode
&&
intf->transit_addr != intf->my_addr &&
intf->transit_addr != 0 &&
- (rsp->data[34] >>
2) == entry->rq_seq) {
+ (rsp->data[x - 3]
>> 2) == entry->rq_seq) {
/* double
bridging: remove the Send Message prologue */
-
memmove(rsp->data + 29, rsp->data + 36,
-
rsp->data_len - 36);
- rsp->data[28]
-= 8;
+
memmove(rsp->data + x - 7, rsp->data + x,
+
rsp->data_len - x - 1);
+ rsp->data[x -
8] -= 8;
rsp->data_len
-= 8;
- entry->rq_seq =
rsp->data[34] >> 2;
+ entry->rq_seq =
rsp->data[x - 3] >> 2;
}
entry->req.msg.cmd =
entry->req.msg.target_cmd;
if (rsp == NULL) {
ipmi_req_remove_entry(entry->rq_seq, entry->req.msg.cmd);
}
continue;
+ } else {
+ /* The bridged answer data
are inside the incoming packet */
+ char bridge_cnt =
+ 1 + (intf->transit_addr
!= intf->my_addr && intf->transit_addr != 0);
+ memmove(rsp->data + x - 7,
+ rsp->data + x + 7 *
(bridge_cnt - 1),
+ rsp->data_len - (x
+ 7 * (bridge_cnt - 1)));
+ rsp->data[x - 8] -= 8 *
bridge_cnt;
+ rsp->data_len -= 8 *
bridge_cnt;
+ entry->rq_seq = rsp->data[x
- 3] >> 2;
+ entry->req.msg.cmd =
entry->req.msg.target_cmd;
+ continue;
}
} else {
//x +=
sizeof(rsp->payload.ipmi_response);
Index: include/ipmitool/ipmi.h
===================================================================
RCS file: /cvsroot/ipmitool/ipmitool/include/ipmitool/ipmi.h,v
retrieving revision 1.29
diff -p -u -p -u -r1.29 ipmi.h
--- include/ipmitool/ipmi.h 19 Jul 2008 00:02:27 -0000 1.29
+++ include/ipmitool/ipmi.h 22 Jul 2008 14:11:18 -0000
@@ -265,6 +265,7 @@ typedef enum IPMI_OEM {
IPMI_OEM_PICMG = 12634,
IPMI_OEM_RARITAN = 13742,
IPMI_OEM_KONTRON = 15000,
+ IPMI_OEM_PPS = 16394,
IPMI_OEM_AMI = 20974,
IPMI_OEM_NOKIA_SIEMENS_NETWORKS = 28458
} IPMI_OEM;
Index: lib/ipmi_strings.c
===================================================================
RCS file: /cvsroot/ipmitool/ipmitool/lib/ipmi_strings.c,v
retrieving revision 1.29
diff -p -u -p -u -r1.29 ipmi_strings.c
--- lib/ipmi_strings.c 19 Jul 2008 00:02:28 -0000 1.29
+++ lib/ipmi_strings.c 22 Jul 2008 14:11:46 -0000
@@ -66,6 +66,7 @@ const struct valstr ipmi_oem_info[] = {
{ IPMI_OEM_HITACHI_399, "Hitachi" },
{ IPMI_OEM_NOKIA_SIEMENS_NETWORKS, "Nokia Siemens Networks" },
{ IPMI_OEM_BULL, "Bull Company" },
+ { IPMI_OEM_PPS, "Pigeon Point Systems" },
{ 0xffff , NULL },
};
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel