10. Release Notes¶
10.1. Version 1.0¶
Notable Features/Improvements:
- Use of Cython instead of Pyrex, this should not be end-user visible.
- ExtSpeed support
ibtool:
- Add `ibtool decode_mad’ can automatically handle common headers,umad, LRH, GRH, and BTH
10.2. Version 0.3¶
Notable Bug Fixes:
- Work with a limited default PKey for SA communications
Notable Features/Improvements:
- Standardized package building for Debian and Red Hat via build in docker images
- Various MAD changes from the 1.3 IBA release
ibtool:
- Add ibtool set_guid
10.3. Version 0.2¶
Notable Bug Fixes:
rdma.devices.RDMADevice.node_desc
had a trailing \n- ibverbs tracks multicast joins in QPs so they can be undone during closing, fixs up a failure to clean up during exceptions in some cases.
MADSchedule
could loose the RPC result if it got too busy.rdma.discovery.topo_SMP()
did not strictly enforce BFS order and could overrun the hop limit.- Non-end ports were ending up some of the subnet structures
- Ignore pkey index for QP0 packets (work around a kernel/driver bug)
- Fix parsing of Node Description [Chas Williams]
- Incorrect calculation of COMP_MASK bit positions for SAInformInfoRecord and SAServiceRecord
Notable Features/Improvements:
rdma.path.from_string()
is a very general string topath
parser. Includes support for parsing therepr()
format ofIBPath
, which basically makes everything possible from the command line.rdma.subnet.Subnet.advance_dr()
is used to advance a DR path, and it understands how to deal with trying to DR from a non switch port.rdma.subnet.Port.port_id
rdma.path.resolve_path()
andrdma.path.get_mad_path()
can be used withMADSchedule
, or synchronously.- Support for acting as a GMP server, including vendor MADs and vendor
MADs with OUIs. See
rdma.madtransactor.MADTransactor.parse_request()
- DEB and RPM packaging
ibtool:
- Default to use the first port with a link if no specific port is specified.
- Better target address parsing using
rdma.path.from_string()
- Add set_nodedesc[.sh]
- Add ibtracert
- Add ibswportwatch
- Add iblinkinfo
- Add subnet_diff (aka ibdiscover.pl)
- Single node fabric check functions: ibchecknode, ibcheckportstate, ibcheckportwidth, ibcheckerrs, and ibdatacounts
- Full topology check functions: ibcheckstate, ibcheckwidth, ibchecknet, ibcheckerrors, ibclearcounters, ibclearerrors, ibdatacounters, and ibidsverify.
- MAD server functions vendstat, ibsysstat and ibping
- New set_port_state and init_all_ports commands
- –get option for saquery
- dump_mfts shows the default routing too
- Add smpquerty lft
10.4. Version 0.1 Initial Release¶
March 15, 2011
I am pleased to announce the initial release of python-rdma a package to provide a Python API for the Linux RDMA stack. This initial release is mainly focused on IB specific management APIs, but the package also covers ibverbs.
A new API was developed for this library that is designed to take advantage of Python features and provides a very uniform, integrated design across all the different aspects of IB and RDMA programming. It has a particular focus on ease of use and correct operation of the IB and RDMA protocol stacks.
Included is a re-implementation of a substantial portion of the infinband-diags package. This re-implementation is functionally very similar to infiniband-diags but also gains a number of new features:
- Uniform end port addressing. All commands support GID, port GUID, LID and DR path, even commands that are GMP based (like perfquery).
- Support for collecting information entirely from the SA via the –sa option.
- Consistently fetches path records for GMP communication (eg in perfquery) to support topologies with special requirements.
- Extensive MAD parallelization provides very good performance.
- All commands support a discovery cache file, which stores information in an efficient binary format.
- Much better debugging, including packet tracing down to full field decode.
- Minor new features to many tools, review section 8 of the manual for details.
The library itself is intended mainly for applications where quick development is more important that the highest performance, such as:
- IB manamagent software development
- RDMA test development
- Training and problem exploration
Although already quite complete there are a few obvious areas that I hope to have finished in the future:
- Integration of IB and RDMA CMs
- Support for RMPP when using verbs to issue GMPs - this will enable all diags to function in –sa mode without access to /dev/umad.
- Completion of missing infinband-diags commands
It is my hope this work will be of use to the wider InfiniBand community.
Extensive prebuilt documentation for the module can be reviewed online, and the source code is available on GitHub.