build system
------------
redo, so parallel build

oem
---
handle firmware version too??

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.

interpret-lib
-------------
handle sensor/sel events outside of spec - configurable in some way?
handle sensor/sel events differently for different sensors on same
motherboard
- e.g.
SENSORFAULT | State Deasserted
SENSOROK    | State Asserted
- need mechanism to specify record ids???

dist
----
not dist out manpages?

asf
---
support asf base protocol stuff in addition to IPMI?

ipmi-sel
--------
binary search like mechanism to make --display faster
support kernel panic OEM event 0xf0
- can't make work, is just my motherboard?  Or perhaps specific panics, not test panics.
- redhat doesn't enable by default, probably don't need to worry about this much
- http://cateee.net/lkddb/web-lkddb/IPMI_PANIC_STRING.html
- http://www.cyberciti.biz/tips/compiling-linux-kernel-module.html
ganglia plugin?
nagios plugin?

ipmi-seld
---------
log sel events to syslog?
- could work across cluster?
- need filtering thingie to remove crud?

general
-------
forwarded command support (errata 35b)
serial interface? via serial basic mode?  Could just be another interfaace -I
lan
- don't increment req on retries, only seq?
- dunno, atleast put comments on code as to why we do this
consider moving #defines to #enums globally for easier debugging w/ gdb
ssif userspace implementation
- see ipmiutil for example

ipmi-fru/bmc-device
-------------------
way to write/edit FRU fields?
- useful for OEM integrators

bmc-device
--------
set bmc global enables
- really should be done by firmware? or OS distro?
- or only as ipmi-oem-ism?
(NEVER TESTED) get auxiliary log status - not tested, don't have a machine with this support

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, possibilities, 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
"learn" workarounds function - to figure out workaround flags for user
support simultaneous SOL sessions
- never tested b/c no motherboard I have supports, but should just work
- maybe need to have option to not check for currently running
  session, and/or mechanism to not disable current session?

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
------------
collapse into one allmight tool? ipmi-config
- user must pick section
- bmc, pef, sensor, chassis, all
- makes more extensible in the future
  - oem, dcmi, intel node manager, system info, firmware firewall, etc.
- --category option (bmc, sensors, chassis, pef, oem, dcmi, intel)
  - prefix sensor config w/ something?
- make tools prefix sections w/ appropriate prefixes to allow
  for checking of what sections should be used
  - i.e. BMC, CHASSIS, PEF, etc.
  - probably not, too much backwords compatability crap to handle.
    Also would make code ugly as hell to make all duplicate sections.
    should do database of what sections go to what categories
- --lan-channel for pick one?

fiid
----
rearch for speed to not use strings, use macros + strings in internal.
So something like:

{1, FOO_MACRO, "FIELD_NAME", FLAGS}

so avoid string compares for get/set/compare/etc., but have available
for debug output.

bmc-config
----------
IPv6
- support ipv4 mapped ipv6 addresses?
- simply have to deal w/ vendor crapola
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
  - will reboot BMC, is big problem

oem
---
dell poweredge lcd support

libfreeipmi
-----------
* xRC4
  - on Quanta S99Q/Dell FS12-TY
  - Began on branches/xrc, from the branch ChangeLog
----

xRC has been dropped for the time being.  After researching xRC,
ultimately the current architecture of all of FreeIPMI is ill-suited
for it.  As a stream based encryption, too much architecture of
FreeIPMI has been based on individual packets being
sent/recved/encrypted/decrypted independently of each other.  Most of
xRC implementation is doable with some hacks.  For example, the
initialization vector and data offsets could be passed as in/out
parameters to the assemble/disassemble packet functions.  The Krc
could be re-generated as needed if the initialization vector had been
noticed to change (or data offset == 0).  However, the deal break was
an "out-of-band" requirement for implementation of the suspend/resume
payload encryption.  In particular, if a packet from the BMC that had
a new initialization vector was dropped on the network, the client
would need to send a "suspend/resume payload encryption" packet to
tell the BMC to start over again before doing a
resend. Architecturally, this was the part that would have been VERY
difficult to implement across FreeIPMI as the client would suddenly be
required to understand the assemble/disassemble subtleties underneath
and send the packet on its own.

----

config
------
config file - support workarounds/etc. for heterogenous cluster?
workaround-flags BLAH hosts[1-3]
workaround-flags FOO  hosts[5-9]

sensors/monitoring
------------------
sensor reading factors
- to support non-linear sensors
check sensor thresholds manually instead of trust flags
- some mobos seem to set flags incorrectly
ipmimonitoring via sensor name
- deal w/ motherboards with slightly different SDRs
- but some mobos have sensor name == each other, so what is the purpose?
- would need to also add sensor number with it??

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]

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

ipmi-pef-config
-----------
* conf.5 manpage

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

ipmi-sensors
------------
column for sensor number
- useful is shared sensor output?

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

ipmb
----
(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?

libipmiconsole
--------------
engine_submit() - try and move initialization/setup code into engine
to reduce time spent in engine_submit(), this is the core loop used by
conman and other console software.
use conditional signals w/ garbage collector
- should work, it's not like the poll loop from before

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

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.

python/perl bindings?
---------------------
for libipmimonitoring
for libfreeipmi?
 
libfreeipmi
-----------
create more libipmimonitoring like APIs for FRU and other parts?

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

Workaround for CVE

perl -pe 's/perm -777 -exec chmod a\+rwx/perm -755 -exec chmod  755 /' Makefile.in > Makefile.in.new

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.
