<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/drivers/net/ipoib.c, 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/drivers/net/ipoib.c?h=v0.9.6</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/drivers/net/ipoib.c?h=v0.9.6'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2008-11-19T19:15:44+00:00</updated>
<entry>
<title>[i386] Change [u]int32_t to [unsigned] int, rather than [unsigned] long</title>
<updated>2008-11-19T19:15:44+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-11-19T02:22:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=b59e0cc56eb6d5f3b6f934722931f6919309ffd2'/>
<id>urn:sha1:b59e0cc56eb6d5f3b6f934722931f6919309ffd2</id>
<content type='text'>
This brings us in to line with Linux definitions, and also simplifies
adding x86_64 support since both platforms have 2-byte shorts, 4-byte
ints and 8-byte long longs.
</content>
</entry>
<entry>
<title>[infiniband] Respect hop pointer when building directed route SMP return path</title>
<updated>2008-11-12T15:35:45+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-11-12T15:35:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=1b3edd9e11019240fd989de40defe444634cb094'/>
<id>urn:sha1:1b3edd9e11019240fd989de40defe444634cb094</id>
<content type='text'>
The return path in directed route SMPs lists the egress ports in order
from SM to node, rather than from node to SM.

To write to the correct offset within the return path, we need to
parse the hop pointer.  This is held within the class-specific data
portion of the MAD header, which was previously unused by us and
defined to be a uint16_t.  Define this field to be a union type; this
requires some rearrangement of ib_mad.h and corresponding changes to
ipoib.c.
</content>
</entry>
<entry>
<title>[ipoib] Kill off the IPoIB pseudo-header</title>
<updated>2008-11-11T05:31:08+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-11-07T03:26:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=9a35830d1f13c85be738325ac900b88b9b60139d'/>
<id>urn:sha1:9a35830d1f13c85be738325ac900b88b9b60139d</id>
<content type='text'>
Some Infiniband cards will not be as accommodating as the Arbel and
Hermon cards in providing enough space for us to push a fake extra
header at the start of the received packet.  We must therefore make do
with squeezing enough information to identify source and destination
addresses into the two bytes of padding within a genuine IPoIB
link-layer header.
</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>[netdevice] Change link-layer push() and pull() methods to take raw types</title>
<updated>2008-10-16T04:13:40+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-10-15T03:17:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=3a505dfc350cc9c720c170660f0c779ec32a4bfd'/>
<id>urn:sha1:3a505dfc350cc9c720c170660f0c779ec32a4bfd</id>
<content type='text'>
EFI requires us to be able to specify the source address for
individual transmitted packets, and to be able to extract the
destination address on received packets.

Take advantage of this to rationalise the push() and pull() methods so
that push() takes a (dest,source,proto) tuple and pull() returns a
(dest,source,proto) tuple.
</content>
</entry>
<entry>
<title>[netdevice] Split multicast hashing out into an mc_hash method</title>
<updated>2008-10-16T04:12:56+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-10-15T01:00:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=6b9cc2555688e716387c02ecfe4569d2a73a7208'/>
<id>urn:sha1:6b9cc2555688e716387c02ecfe4569d2a73a7208</id>
<content type='text'>
Multicast hashing is an ugly overlap between network and link layers.
EFI requires us to provide access to this functionality, so move it
out of ipv4.c and expose it as a method of the link layer.
</content>
</entry>
<entry>
<title>[netdevice] Add maximum packet length as a net device property</title>
<updated>2008-10-16T04:11:47+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-10-14T23:49:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=832668105e22c42f965970078124cdc2c556ac0d'/>
<id>urn:sha1:832668105e22c42f965970078124cdc2c556ac0d</id>
<content type='text'>
Currently this length is set at device allocation time, and is never
changed.
</content>
</entry>
</feed>
