<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/include/gpxe/infiniband.h, branch v0.9.6</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/include/gpxe/infiniband.h?h=v0.9.6</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/include/gpxe/infiniband.h?h=v0.9.6'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2008-11-11T05:31:19+00:00</updated>
<entry>
<title>[infiniband] Add raw packet parser and constructor</title>
<updated>2008-11-11T05:31:19+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-11-07T08:39:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=9e5fd8ec59cd44dc9ba349d4feee37830fca6a14'/>
<id>urn:sha1:9e5fd8ec59cd44dc9ba349d4feee37830fca6a14</id>
<content type='text'>
This can be used with cards that require the driver to construct and
parse packet headers manually.  Headers are optionally handled
out-of-line from the packet payload, since some such cards will split
received headers into a separate ring buffer.
</content>
</entry>
<entry>
<title>[infiniband] Split subnet management agent client out into ib_smc.c</title>
<updated>2008-11-11T05:31:07+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-11-06T22:31:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=663904a7bc4ced3b80d87df125b0e7cf90c1bfc2'/>
<id>urn:sha1:663904a7bc4ced3b80d87df125b0e7cf90c1bfc2</id>
<content type='text'>
Not all Infiniband cards have embedded subnet management agents.
Split out the code that communicates with such an embedded SMA into a
separate ib_smc.c file, and have drivers call ib_smc_update()
explicitly when they suspect that the answers given by the embedded
SMA may have changed.
</content>
</entry>
<entry>
<title>[infiniband] Pass address vector in receive completions</title>
<updated>2008-11-11T05:31:07+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-11-06T21:20:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=830e19eb54f4ee2e6629612a3f296fbdba18e531'/>
<id>urn:sha1:830e19eb54f4ee2e6629612a3f296fbdba18e531</id>
<content type='text'>
Receive completion handlers now get passed an address vector
containing the information extracted from the packet headers
(including the GRH, if present), and only the payload remains in the
I/O buffer.

This breaks the symmetry between transmit and receive completions, so
remove the ib_completer_t type and use an ib_completion_queue_operations
structure instead.

Rename the "destination QPN" and "destination LID" fields in struct
ib_address_vector to reflect its new dual usage.

Since the ib_completion structure now contains only an IB status code,
("syndrome") replace it with a generic gPXE integer status code.
</content>
</entry>
<entry>
<title>[infiniband] Maintain queue fill level as a property of a work queue</title>
<updated>2008-11-11T05:31:06+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-10-03T02:04:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=0de5f7af6db39ea9173caa0015a63353174d72ce'/>
<id>urn:sha1:0de5f7af6db39ea9173caa0015a63353174d72ce</id>
<content type='text'>
Both queue owners and drivers often need to keep track of the fill
level, so let's make it a generic property.
</content>
</entry>
<entry>
<title>[infiniband] Flush uncompleted work queue entries at QP teardown</title>
<updated>2008-11-11T05:31:06+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-10-02T23:07:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=d9751edafa08b2ec3779004d4209400b95884cd4'/>
<id>urn:sha1:d9751edafa08b2ec3779004d4209400b95884cd4</id>
<content type='text'>
Avoid leaking I/O buffers in ib_destroy_qp() by completing any
outstanding work queue entries with a generic error code.  This
requires the completion handlers to be available to ib_destroy_qp(),
which is done by making them static configuration parameters of the CQ
(set by ib_create_cq()) rather than being provided on each call to
ib_poll_cq().

This mimics the functionality of netdev_{tx,rx}_flush().  The netdev
flush functions would previously have been catching any I/O buffers
leaked by the IPoIB data queue (though not by the IPoIB metadata
queue).
</content>
</entry>
<entry>
<title>[Infiniband] Move event-queue process from driver to Infiniband core</title>
<updated>2008-04-21T12:23:11+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-04-21T12:23:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=35a583667780122e8dabc72737be51fe914b4257'/>
<id>urn:sha1:35a583667780122e8dabc72737be51fe914b4257</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[Infiniband] Add preliminary multiple port support for Hermon cards</title>
<updated>2008-04-18T01:50:48+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-04-18T01:50:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=a176a24ac0a5769d6a844149595f409a1bc2e41d'/>
<id>urn:sha1:a176a24ac0a5769d6a844149595f409a1bc2e41d</id>
<content type='text'>
Infiniband devices no longer block waiting for link-up in
register_ibdev().

Hermon driver needs to create an event queue and poll for link-up events.

Infiniband core needs to reread MAD parameters when link state changes.

IPoIB needs to cope with Infiniband link parameters being only partially
available at probe and open time.
</content>
</entry>
<entry>
<title>[Infiniband] Add preliminary support for multi-port devices.</title>
<updated>2008-02-27T13:59:56+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-02-27T13:59:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=bc3f0a25c6e3ce8344fa3c255a8e3a981f59309b'/>
<id>urn:sha1:bc3f0a25c6e3ce8344fa3c255a8e3a981f59309b</id>
<content type='text'>
Arbel and Hermon cards both have multiple ports.  Add the
infrastructure required to register each port as a separate IB
device.  Don't yet register more than one port, since registration
will currently fail unless a valid link is detected.

Use ib_*_{set,get}_{drv,owner}data wrappers to access driver- and
owner-private data on Infiniband structures.
</content>
</entry>
<entry>
<title>[Infiniband] Centralise MAD operations</title>
<updated>2008-02-26T22:56:19+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-02-26T22:56:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=6570203571bcd953ca9bdc507967ea4b24d7e880'/>
<id>urn:sha1:6570203571bcd953ca9bdc507967ea4b24d7e880</id>
<content type='text'>
Pull out common code for handling management datagrams from arbel.c
and hermon.c into infiniband.c.

Add port number to struct ib_device.

Add open(), close() and mad() methods to struct ib_device_operations.
</content>
</entry>
<entry>
<title>Some interesting packet corruption happening now.</title>
<updated>2007-09-17T12:31:13+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2007-09-17T12:31:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=bdac59172695b746b48550a1ebff02c405e7b3f8'/>
<id>urn:sha1:bdac59172695b746b48550a1ebff02c405e7b3f8</id>
<content type='text'>
</content>
</entry>
</feed>
