Commit Graph

50 Commits

Author SHA1 Message Date
jbjohnso
50ca1f5737 Have IPMI tolerate incorrect rqaddr field to communicate with buggy BMCs that don't comply to the spec
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15013 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-01-29 21:23:38 +00:00
jbjohnso
86102a215b Provide more human readable interpretation of RMCP status messages where possible
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14727 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-01-02 18:31:14 +00:00
jbjohnso
5f050f6a49 Instead of randomizing each retry, just randomize the first to get things spread out then do the triangular progression timeout
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14243 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-05 14:36:04 +00:00
jbjohnso
7b2b6d9d2c Apply another algorithm to avoid sequence number reuse as much as possible
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14236 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-04 17:25:38 +00:00
jbjohnso
6464143589 Have IPMI.pm explicitly not expect cmd netfn after receiveng cmd/netfn response
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14234 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-04 17:25:25 +00:00
jbjohnso
49b78de893 Improve reliability of duplicate response detection phase 1, also check netfn and command match
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14225 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-02 13:37:46 +00:00
jbjohnso
d4fa1ed91a Document some potential plans for sequence number magic to disambiguate spurious retries again
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14128 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-25 19:53:58 +00:00
jbjohnso
ba08481381 It was discovered that the strategy to jump software ids, while effective, had the side effect of invalidating reservations
This means that initial SDR download would usually fail on implementations that consider reservations in such a manner.
Back out the incrementing software id behavior and instead bump retry interval back up to mitigate risk of wraparound
on retries.

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14126 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-25 19:26:09 +00:00
jbjohnso
ad9945e953 Extend ipmi sequence validity through rqaddr
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13987 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-11 21:02:53 +00:00
jbjohnso
7d023e94ac Fix glaring mistake in previous commit where 'FAILED' and 'all good' were indistinguishable
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13945 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-03 19:56:35 +00:00
jbjohnso
ab965b04ed Have IPMI more decisively quite should the password be incorrect. Hypothetically a DoS could be aimed at the client, but that's much less likely.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13944 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-03 19:56:29 +00:00
jbjohnso
ccaacfd954 Fix mistake with sid increment
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13823 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-16 12:55:27 +00:00
jbjohnso
fe4b65400f Several changes to improve IPMI behavior, *particularly* with IPMI 2.0
-Go back to restarting the log in process if rakp2 or rakp4 goes awry, it's too likely for a dropped packet to confuse IPMI 2 devices.
-Fix relog to reset session context to avoid getting distracted by now stale RAKP messages if the IPMI device happened to be slow
-Switch session ids on relog, so that everything can ignore packets from a zombie IPMI session reliably (e.g. relog recovery of a session).
-In parse_ipmi_payload, delete pendingargs in addition to deleting sessions_waiting entry.  The latter should have sufficed, but there persisted an odd
 issue where sometimes the last non-logout packet was erroneously retransmitted as retries at the end.  This change short-circuits
 the timedout function should this occur, generally delaying exit by 100 milliseconds whet it goes wrong.

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13815 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-16 03:53:43 +00:00
jbjohnso
98ffaf7fbc In accordance with previous change, always act as if logout completed successfully without checking the result
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13812 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-15 13:23:30 +00:00
jbjohnso
9bab28ab00 When doing close session, if the reply packet is dropped on the network, session may no longer be closeable. Send a close session and hope for the best, do not hold up things waiting
for something that shall never come

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13811 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-15 13:23:22 +00:00
jbjohnso
95fbd48c1e Eliminate instances of recursive timedouts really ruining our day in IPMI
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13809 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-15 00:57:44 +00:00
jbjohnso
1f5e91d32e Rework IPMI.pm IPMI 2 session negotiation a bit, now we take care to make sure the most recent open rmcp+ request is the one used
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13808 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-15 00:57:28 +00:00
jbjohnso
64d767ab44 Revise ipmi 2 session establishment to be more forgiving of retries during the process
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13805 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-14 15:01:43 +00:00
jbjohnso
54f4616dbc Rework IPMI seqlun management to avoid accepting the same data twice as valid instead of retry
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13788 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-13 21:00:07 +00:00
jbjohnso
55c3a0ef04 Sometimes IPMI 2 implementations randomly complain about our math being wrong once in a few thousand tries, start over from scratch should this occur
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13593 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-23 18:21:25 +00:00
jbjohnso
7fce0d11b6 Further refine IPMI support, now pretty solid for 5,000 nodes at a time, still one more condition to recover from, erroneous bad auth code
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13590 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-23 17:08:52 +00:00
jbjohnso
9764d338cd Further refinements of IPMI, defer retries until there is a guaranteed chance given for BMC to reply
Ensure every transmit gives an opportunity to process incoming data

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13456 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-08 19:52:02 +00:00
jbjohnso
18052caaef Tweak IPMI retry to be more aggressive to reduce impact of occasional drops
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13371 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-30 19:22:46 +00:00
jbjohnso
2beaf85453 Fix problem where IPMI 1.5 timeouts would bug rather than properly report problem
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13351 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-26 13:10:39 +00:00
jbjohnso
f19277afe8 Rework pulling packets off the socket, less delay in moving data to a more stable data structure
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13346 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-25 20:19:20 +00:00
jbjohnso
825e410d16 Rework IPMI.pm a tad for better sacalbility
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13345 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-25 20:19:08 +00:00
jbjohnso
ebb3f27e55 Rework some of the IPv6 logic to tolerate certain peculiar perl environments
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@11797 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-08 15:17:20 +00:00
jbjohnso
b144a32404 Implement a '-w' argument on rpower suspend to force blocking until system has gone into suspend
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@11699 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-02-27 17:49:29 +00:00
jbjohnso
9bc1b7f8f1 Explicitly denote NI_NUMERICHOST as a function, which seems strange but it makes perl give us the benefit of the doubt
on it beling a valid scoped entity that will be avoided if not imported.
Could have probably used & to acheive the same effect, but it doesn't particularly matter

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@11500 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-02-07 13:34:20 +00:00
jbjohnso
c41fe0e1a3 Fix IPMI.pm warning message on every packet when IPv6 is possible
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@11475 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-02-03 22:17:46 +00:00
jbjohnso
45fecc3aa5 Have IPMI avoid conflicts between Socket6 and INET in some configs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@11425 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-01-27 16:53:48 +00:00
jbjohnso
bb0d44e4c6 Fix a warning message and ever so slightly improve performance
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@11240 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2011-12-13 19:59:42 +00:00
jbjohnso
acdca98125 Have base IPMI functionality be IPv4/IPv6 agnostic.
wvid still is IPv4 dependent, need to hijack LWP's use of IPv6-incapbale
ipmitool can't do it either..

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@11238 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2011-12-13 19:57:29 +00:00
lissav
27575eae36 Comment out use/require Data:Dumper
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@9271 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2011-04-11 13:51:09 +00:00
jbjohnso
791598aeb1 -Fix output when logout packet times out
-Adjust RCVBUF as possible in IPMI to increase outstanding transactions when the default value is low.
-Have IPMI throttle outstanding transactions based on the available size of the buffer to minimize UDP loss due to buffer overflow.


git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@8599 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2011-01-10 20:25:35 +00:00
jbjohnso
4a6e7dd4ca -Fix errors where responses from retries would be confused for new data
-Increase initial timeout to assure at least one second lapses before a retry is sent (if time is milliseconds from a new second, the old code would retry in milliseconds)


git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5215 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2010-02-12 19:24:25 +00:00
jbjohnso
f49c63dcba -Fix problem where unresolvable BMC addresses reported as BUG rather than a clean error message
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5206 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2010-02-10 20:05:00 +00:00
jbjohnso
abe207e271 -Report timeout condition back up through stack
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5170 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2010-02-05 18:17:27 +00:00
jbjohnso
42d1c686f6 -Implement timeouts and retry
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5169 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2010-02-05 18:11:12 +00:00
jbjohnso
c38f03b095 -Fix padding mistake in IPMI library
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5092 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2010-01-31 18:39:53 +00:00
jbjohnso
5d04211a85 -Fix so encryption working is no longer simply because I got it wrong twice
-Complete decryption, IPMI 2.0 session management complete


git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5085 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2010-01-30 01:06:16 +00:00
jbjohnso
fd442e74ae -First pass at decrypting data, seems accurate but isn't getting the full data yet
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5079 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2010-01-29 04:40:10 +00:00
jbjohnso
3c164dd1cf -Remove test IV
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5078 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2010-01-29 04:16:34 +00:00
jbjohnso
712c9edd0b -Encrypt outgoing payloads successfully
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5077 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2010-01-29 04:15:52 +00:00
jbjohnso
c98c4faf07 -Process received IPMI 2 IPMI payload with authentication
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5076 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2010-01-29 03:17:19 +00:00
jbjohnso
d696c29aae -Remove debug output
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5075 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2010-01-29 02:34:06 +00:00
jbjohnso
da608883e4 -Implement HMAC integrity algorithm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5074 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2010-01-29 02:32:47 +00:00
jbjohnso
5004985f18 -Get up through rakp4, next is to actually execute the integrity algorithm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5073 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2010-01-28 22:06:22 +00:00
jbjohnso
0c6495c55a -Get to rmcp+ session response correctly
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5067 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2010-01-28 03:42:24 +00:00
jbjohnso
37982470d2 -Phase 1 of IPMI rewrite, a generic IPMI session management. Implements 1.5, to add 2.0
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5060 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2010-01-27 14:58:18 +00:00