[infiniband] Do not use GRH for local paths
Avoid including an unnecessary GRH in packets sent to unicast destinations within the local subnet. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
bd1687465c
commit
114a2f19a6
|
@ -75,6 +75,12 @@ static void ib_path_complete ( struct ib_device *ibdev,
|
|||
"%d\n", ibdev->name, IB_GID_ARGS ( dgid ), path->av.lid,
|
||||
path->av.sl, path->av.rate );
|
||||
|
||||
/* Use only the LID if no GRH is needed for this path */
|
||||
if ( memcmp ( &path->av.gid.s.prefix, &ibdev->gid.s.prefix,
|
||||
sizeof ( path->av.gid.s.prefix ) ) == 0 ) {
|
||||
path->av.gid_present = 0;
|
||||
}
|
||||
|
||||
out:
|
||||
/* Destroy the completed transaction */
|
||||
ib_destroy_madx ( ibdev, mi, madx );
|
||||
|
@ -245,13 +251,6 @@ int ib_resolve_path ( struct ib_device *ibdev, struct ib_address_vector *av ) {
|
|||
struct ib_cached_path *cached;
|
||||
unsigned int cache_idx;
|
||||
|
||||
/* Sanity check */
|
||||
if ( ! av->gid_present ) {
|
||||
DBGC ( ibdev, "IBDEV %s attempt to look up path without GID\n",
|
||||
ibdev->name );
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* Look in cache for a matching entry */
|
||||
cached = ib_find_path_cache_entry ( ibdev, gid );
|
||||
if ( cached && cached->path->av.lid ) {
|
||||
|
|
Reference in New Issue