inband
------
--fail-if-ipmi-not-detected
- needs inband flag - discover vs. not-discover on locate
- seems unnecessary.
  - Ultimately it is impossible to do correctly, vendor need not store
    anything in acpi/smbios/etc.
  - User can use ipmi-locate if they really want to probe.

ipmi-seld
---------
log sel events to syslog?
- could work across cluster?
- need filtering thingie to remove crud?
requires a sel montioring lib? like ipmimonitoring?
- sensor type filter
- date range filter

general
-------
forwarded command support (errata 35b)
functions to support "is supported" checks for OEM stuff
- i.e. you don't need to check manufactur ids in two places, just use
  the function.
all conf files in /etc/freeipmi/ instead of /etc

hpm/hpmi
--------
picmg hpm/hpmi.1 standard - defines ipmi firmware update stuff
- http://www.picmg.org/v2internal/specifications.htm

bmc-device
--------
set bmc global enables
- really should be done by firmware? or OS distro?
- or only as ipmi-oem-ism?

ipmi-locate
-----------
(TEST) ensure no breakage on itanium, dell, sun machine for acpi/spmi

entity ids
-----------
0x41, 0x42, are "identical" to other entries
- should map them together for entity-id-names output in sensors?

simulator
---------
server simulator, for scalable testing
- test much larger set of corner cases, psosibilities, etc.
- different SDR combos
- different SEL entries
- all permutations of sensors, etc.

ipmiconsole
-----------
suport other escape codes like w/ &D
- F1-F12 suggested by user

hostrange
---------
exclude hosts option
- not really necessary in FreeIPMI?  in pdsh, the reason you really
  need this is because you can do -a (all) or -g (genders
  attribute/netgroups attribute).
if user inputs hostname of localhost, do inband not outofband?

config tools
------------
rework workaronds
- pass around sections into callbacks so they can do the search/find, etc.  No need to continue adding more cruft
into each state_data.

collapse into one allmight tool?
- user must pick section
- bmc, pef, sensor, chassis, all
- makes more extensible in the future
  - oem, dcmi, etc.

bmc-config
----------
supermicro
- if username not set and receive 0xCC from set user access, it's b/c
username not set yet.  workaround?

freeipmi tools
--------------
config via environment variables too - like config file
ipmi-oem-config
- to deal with config OEM stuff config tool style?
- consider maybe down the road
- inventec mac/shared nic stuff
  - no, oem specific and will reboot BMC

oem
---
dell poweredge lcd support
sun sel 4140
=====================================================
SEL Event Record
=====================================================
[             6DFh] = record_id[16b]
[               2h] = record_type[ 8b]
[        4AD3A4B4h] = timestamp[32b]
[               1h] = generator_id.id_type[ 1b]
[               0h] = generator_id.id[ 7b]
[               0h] = ipmb_device_lun[ 2b]
[               0h] = reserved[ 2b]
[               0h] = channel_number[ 4b]
[               4h] = event_message_format_version[ 8b]
[              2Ch] = sensor_type[ 8b]
[              32h] = sensor_number[ 8b]
[              6Fh] = event_type_code[ 7b]
[               0h] = event_dir[ 1b]
[               3h] = offset_from_event_reading_type_code[ 4b]
[               2h] = event_data3_flag[ 2b]
[               2h] = event_data2_flag[ 2b]
[               0h] = event_data2[ 8b]
[              32h] = event_data3[ 8b]
ID   | Date        | Time     | Name             | Type                    | Event
1759 | Oct-12-2009 | 14:50:44 | Sensor #50       | FRU State               | FRU Activation In Progress ; OEM Event Data2 code = 00h ; OEM Event Data3 code = 32h
=====================================================
SEL Event Record 
=====================================================
[             6E3h] = record_id[16b]
[               2h] = record_type[ 8b]
[        4AD3A5ABh] = timestamp[32b]
[               1h] = generator_id.id_type[ 1b]
[               0h] = generator_id.id[ 7b]
[               0h] = ipmb_device_lun[ 2b]
[               0h] = reserved[ 2b]
[               0h] = channel_number[ 4b]
[               4h] = event_message_format_version[ 8b]
[               Fh] = sensor_type[ 8b]
[               1h] = sensor_number[ 8b]
[              6Fh] = event_type_code[ 7b]
[               0h] = event_dir[ 1b]
[               0h] = offset_from_event_reading_type_code[ 4b]
[               2h] = event_data3_flag[ 2b]
[               0h] = event_data2_flag[ 2b]
[               0h] = event_data2[ 8b]
[               1h] = event_data3[ 8b]
1763 | Oct-12-2009 | 14:54:51 | Sensor #1        | System Firmware Progress | System Firmware Error ; OEM Event Data3 code = 01h
=====================================================
SEL Event Record
=====================================================
[             6ECh] = record_id[16b]
[               2h] = record_type[ 8b]
[        4AD3BB23h] = timestamp[32b]
[               1h] = generator_id.id_type[ 1b]
[               0h] = generator_id.id[ 7b]
[               0h] = ipmb_device_lun[ 2b]
[               0h] = reserved[ 2b]
[               0h] = channel_number[ 4b]
[               4h] = event_message_format_version[ 8b]
[               7h] = sensor_type[ 8b]
[               2h] = sensor_number[ 8b]
[              6Fh] = event_type_code[ 7b]
[               0h] = event_dir[ 1b]
[               7h] = offset_from_event_reading_type_code[ 4b]
[               2h] = event_data3_flag[ 2b]
[               3h] = event_data2_flag[ 2b]
[              FFh] = event_data2[ 8b]
[               2h] = event_data3[ 8b] 
1772 | Oct-12-2009 | 16:26:27 | Sensor #2        | Processor                | Processor Presence detected ; OEM Event Data3 code = 02h
psun: =====================================================
psun: SEL Event Record 
psun: =====================================================
psun: [             6E1h] = record_id[16b]
psun: [               2h] = record_type[ 8b]
psun: [        4A2F6512h] = timestamp[32b]
psun: [               1h] = generator_id.id_type[ 1b]
psun: [               0h] = generator_id.id[ 7b]
psun: [               0h] = ipmb_device_lun[ 2b]
psun: [               0h] = reserved[ 2b]
psun: [               0h] = channel_number[ 4b]
psun: [               4h] = event_message_format_version[ 8b]
psun: [               7h] = sensor_type[ 8b]
psun: [               2h] = sensor_number[ 8b]
psun: [              6Fh] = event_type_code[ 7b]
psun: [               0h] = event_dir[ 1b]
psun: [               7h] = offset_from_event_reading_type_code[ 4b]
psun: [               2h] = event_data3_flag[ 2b]
psun: [               3h] = event_data2_flag[ 2b]
psun: [              FFh] = event_data2[ 8b]
psun: [               4h] = event_data3[ 8b]
ID    | Date        | Time     | Name             | Type                    | Event
1761  | Jun-10-2009 | 00:47:30 | Sensor #2        | Processor               | Processor Presence detected ; OEM Event Data3 code = 04h


libfreeipmi
-----------
* how to support xRC4 (can we? should we? does any vendor support this?)
* HMAC-SHA-256

config
------
config file - support workarounds/etc. for heterogenous cluster?

ipmi-fru
--------
(TEST) multirecord stuff against a FRU

bmc-config
----------
(TEST) that ipmi 2.0 (> 20 char) password not possible on ipmi 1.5 only mobo
destination address vlan tags (or would be in ipmi-pef-config?)
all lan destination config (or would be in ipmi-pef-config?)
(NEVER TESTED) bmc password threshold

sensors/monitoring
------------------
(TEST) make sure bridging still works w/ sensor-read lib
(TEST) make sure oem still outputs fine
specify sensors by name too
- useful in libipmimonitoring, if heterogenous firmware versions, but
same sensor names?
- manually check thresholds, don't trust motherboard to help deal w/ 
issues on some motherboards.
check sensor thresholds manually instead of trust flags
- some mobos seem to set flags incorrectly

ipmimonitoring
--------------
- how to deal with OEM sensors??  special config file format?
---
OEM <manufacturer_id> <product_id> <generator_id> <sensor_type> <event_offset> <nominal|warning|critical>
---
- how to deal with one-off oddities from vendors?  another config file format?
---
SPECIAL <generator_id> <sensor_type> <event_offset> <nominal|warning|critical>
---
- extend to monitor/interpret SEL entries too??
ryan b. suggestions
- make alternate config file to ipmi_monitoring_sensor_config
- allow more than nominal | warning | critical, allow "info" too so like syslog
  - allows user to config away things are normal and always happening, such as boot
    events
- make a "interpret sensor based on this info" function which returns
  nominal/warning/critical.
  - so can support output in ipmi-sensors, ipmi-sel instead of new tool
- another idea
  - new lib "ipmiinterpret" or something like that?
- on the other hand
  - unlike sensors, no way to "limit" output or by record-id or sensor-type
  - whatever events happened just happened
  - difficult to differentiate between "info" events vs. "real issue" events
    - on some mobos, fans/temps that don't exist, always report "lower non-recoverable"
    - on some mobos, entity sensors always report "absent" if you never have
      - but you can't differentiate betwwen "real issue" vs. non-issue
        unless you program exact specific sensor numbers/record ids
  - maybe best to leave as is, b/c that's just the nature of SEL
  - leave to higher up analysis utilities to make use of data if they care

ipmi-chassis-config
-------------------
* conf.5 manpage
(NEVER TESTED) panel button config - need hardware w/ this
(NEVER TESTED) device instance selector

general
-------
beginning doc for developers
event handling
perl extensions
- api support?
- raw support?
python extensions
- api support?
- raw support?
firmware firewall support?
- new config tool??
read/store username/password/k_g out of file encrypted so it's not sitting there in the clear
configure alternate port - i.e. don't use port 623?
- under current IPMI spec, completely not compliant/possible
IPv6
- not possible under current IPMI spec
- develop based on assumption someone's BMC can read IPv6 mapped IPv4 addresses?
- assume OEM extensions to configure IPv6 addresses?
have funcs that return buflen return ssize_t?, input should be size_t and void *? like read(), write()?
config file support per host.
e.g. workarounds FOO nodes[0-100]

bmc-device
--------
(NEVER TESTED) get auxiliary log status - not tested, don't have a machine with this support
(TEST) ensure get-lan-statistics and clear-lan-statistics still work

ipmi-pef-config
-----------
* conf.5 manpage
* allow oem sensor types as input

inband code
-----------
retry/resend code?

ipmi-sensors-config
-------------------
* conf.5 manpage
* instructions for each section??

ipmb
----
(NEVER TESTED) ipmi 2.0 bridging
(NEVER TESTED) openipmi ipmb

libs
----
merge all libs into one?  would aid debian packaging.
- make package layout simpler?
- make .so-naming consistent?
- merge all except libipmidetect?

contribs
--------
module for snmptrapd to parse ipmi traps
zenoss
- request from someone

oem-isms
--------
what OEM vendors can add
- bmc-info - device specific info
- ipmi-oem - any oem-sms
- ipmi-dcmi - oem exception actions
- ipmi-fru/fru-parse - oem fru records
- ipmi-sel/sel-parse - oem sel records and oem codes
- ipmi-sensors/ipmi-sensors-config/ipmimonitoring/sensor-read/libipmimonitoring - oem sensors
- ipmi-sensors - OEM sdr records

DCMI functionality
------------------
(NEVER TESTED) capability info > revision 1
(NEVER TESTED) everything else

ipmi proxy daemon
-----------------
capture lan and do inband, maybe useful if you have dedicated port
that can't be seen by the network, and you don't have enough switch
ports to have both plugged up to the network.

PmBus functionality
-------------------
pmbus.org
- doable via FreeIPMI?  Can pass through Smbus to PmBus to do power control monitoring?

RELEASE TODOS - Do on every release
-----------------------------------
Email freeipmi-users && freeipmi-devel
Email info-gnu@gnu.org
Update savannah announcements
Update freshmeat.net
Update freeipmi webpage
Update opendesktop.org page
Update ohloh page
Update to softpedia??
Update fsf directory info.
Upload to ftp.gluster.com
Upload to ftp.gnu.org

info-gnu@gnu.org template e-mail 

FreeIPMI X.X.X has been released. It can be downloaded at:

http://www.gnu.org/software/freeipmi/download.html

What is IPMI?

The Intelligent Platform Management Interface (IPMI) specification
defines a set of interfaces for platform management.  It is
implemented by a large number of hardware manufacturers to support
system management on motherboards. The features of IPMI that most
users will be interested in are sensor monitoring (e.g. CPU
temperatures, fan speeds), remote power control, and serial-over-LAN
(SOL).

What is FreeIPMI?

FreeIPMI provides in-band and out-of-band IPMI software based on the
IPMI v1.5/2.0 specification.  FreeIPMI provides tools and libraries
for users to access and read IPMI sensor readings, system event log
(SEL) entries, serial-over-LAN (SOL), remote power control functions,
field replaceable unit (FRU) device information, and more.  More
information about FreeIPMI can be found at the FreeIPMI webpage at:

http://www.gnu.org/software/freeipmi/index.html

Release X.X.X Changes
---------------------

To do this:

1. The file to be distributed (for example, foo.tar.gz).

2. Detached GPG binary signature for (1), (for example, foo.tar.gz.sig).

gpg -b foo.tar.gz

3. A clearsigned directive file, (for example, foo.tar.gz.directive.asc). 

Format is:

version: 1.1
directory: freeipmi
filename: freeipmi-0.X.X.tar.gz
comment: FreeIPMI 0.X.X

gpg --clearsign foo.tar.gz.directive

4. Upload the file(s) via anonymous ftp to ftp-upload.gnu.org. If the
upload is destined for ftp.gnu.org, place the file(s) in the
/incoming/ftp directory. If the upload is destined for alpha.gnu.org,
place the file(s) in the /incoming/alpha directory.

Uploads are processed every five minutes. Uploads that are in progress
while the upload processing script is running are handled properly, so
do not worry about the timing of your upload. Uploaded files that
belong to an incomplete triplet are deleted automatically after 24
hours.

Your designated upload email addresses (see Automated Upload
Registration) are sent a message if there are any problems processing
an upload for your package. You also receive a message when your
upload has been successfully processed.
