mirror of
https://github.com/ipxe/ipxe
synced 2025-12-14 16:01:38 +03:00
[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:
@@ -75,6 +75,12 @@ static void ib_path_complete ( struct ib_device *ibdev,
|
|||||||
"%d\n", ibdev->name, IB_GID_ARGS ( dgid ), path->av.lid,
|
"%d\n", ibdev->name, IB_GID_ARGS ( dgid ), path->av.lid,
|
||||||
path->av.sl, path->av.rate );
|
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:
|
out:
|
||||||
/* Destroy the completed transaction */
|
/* Destroy the completed transaction */
|
||||||
ib_destroy_madx ( ibdev, mi, madx );
|
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;
|
struct ib_cached_path *cached;
|
||||||
unsigned int cache_idx;
|
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 */
|
/* Look in cache for a matching entry */
|
||||||
cached = ib_find_path_cache_entry ( ibdev, gid );
|
cached = ib_find_path_cache_entry ( ibdev, gid );
|
||||||
if ( cached && cached->path->av.lid ) {
|
if ( cached && cached->path->av.lid ) {
|
||||||
|
|||||||
Reference in New Issue
Block a user