summaryrefslogtreecommitdiffstats
path: root/src/net/infiniband/ib_gma.c
Commit message (Collapse)AuthorAgeFilesLines
* [infiniband] Update all other MAD users to use a management interfaceMichael Brown2009-08-091-403/+0Star
|
* [infiniband] Update subnet management agent to use a management interfaceMichael Brown2009-08-091-297/+0Star
|
* [infiniband] Change IB_{QPN,QKEY,QPT} names from {SMA,GMA} to {SMI,GSI}Michael Brown2009-08-061-3/+3
| | | | | | | | | | The IBA specification refers to management "interfaces" and "agents". The interface is the component that connects to the queue pair and sends and receives MADs; the agent is the component that constructs the reply to the MAD. Rename the IB_{QPN,QKEY,QPT} constants as a first step towards making this separation in gPXE.
* [infiniband] Add infrastructure for RC queue pairsMichael Brown2009-07-181-4/+20
| | | | | | | | | | | | | | | | | | Queue pairs are now assumed to be created in the INIT state, with a call to ib_modify_qp() required to bring the queue pair to the RTS state. ib_modify_qp() no longer takes a modification list; callers should modify the relevant queue pair parameters (e.g. qkey) directly and then call ib_modify_qp() to synchronise the changes to the hardware. The packet sequence number is now a property of the queue pair, rather than of the device. Each queue pair may have an associated address vector. For RC queue pairs, this is the address vector that will be programmed in to the hardware as the remote address. For UD queue pairs, it will be used as the default address vector if none is supplied to ib_post_send().
* [infiniband] Pass a generic MAD to ib_set_port_info()Michael Brown2009-07-181-1/+1
|
* [infiniband] Expose supported and enabled link speeds and widthsMichael Brown2009-07-181-7/+18
|
* [infiniband] Allow MAD handlers to indicate response via return valueMichael Brown2009-07-181-51/+80
| | | | | | | | Now that MAD handlers no longer return a status code, we can allow them to return a pointer to a MAD structure if and only if they want to send a response. This provides a more natural and flexible approach than using a "response method" field within the handler's descriptor.
* [infiniband] Remove the return status code from MAD handlersMichael Brown2009-07-181-47/+25Star
| | | | | | | | | | | | | MAD handlers have to set the status fields within the MAD itself anyway, in order to provide a meaningful response MAD; the additional gPXE return status code is just noise. Note that we probably don't need to ever explicitly set the status to IB_MGMT_STATUS_OK, since it should already have this value from the request. (By not explicitly setting the status in this way, we can safely have ib_sma_set_xxx() call ib_sma_get_xxx() in order to generate the GetResponse MAD without worrying that ib_sma_get_xxx() will clear any error status set by ib_sma_set_xxx().)
* [infiniband] Always create an SMA and a GMAMichael Brown2009-07-181-12/+266
|
* [infiniband] Add notion of a queue pair typeMichael Brown2009-07-181-3/+5
|
* [infiniband] Allow completion queue operations to be optionalMichael Brown2009-07-181-22/+0Star
| | | | | The send completion handler typically will just free the I/O buffer, so allow this common case to be handled by the Infiniband core.
* [infiniband] Implement SMA as an instance of a GMAMichael Brown2009-07-181-1/+2
| | | | | The GMA code was based upon the SMA code. We can save space by making the SMA simply an instance of the GMA.
* [infiniband] Pass GMA as a parameter to GMA MAD handlersMichael Brown2009-07-181-12/+9Star
|
* [infiniband] Allow for sending MADs via GMA without retransmissionMichael Brown2009-07-181-28/+52
|
* [infiniband] Make qkey and rate optional parameters to ib_post_send()Michael Brown2009-07-181-4/+0Star
| | | | | | | | | | The queue key is stored as a property of the queue pair, and so can optionally be added by the Infiniband core at the time of calling ib_post_send(), rather than always having to be specified by the caller. This allows IPoIB to avoid explicitly keeping track of the data queue key.
* [infiniband] Create a general management agentMichael Brown2009-07-181-0/+414
Generalise the subnet management agent into a general management agent capable of sending and responding to MADs, including support for retransmissions as necessary.