diff options
author | Sean Hefty <sean.hefty@intel.com> | 2007-08-08 15:51:06 -0700 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-10-09 19:59:12 -0700 |
commit | a81c994d5eef87ed77cb30d8343d6be296528b3f (patch) | |
tree | 2d5be6dcb6283ab32cbc434b43f04df3034de5d8 /include/rdma | |
parent | 733d65fe33b3002a6f2694c0fd8bd760dc13141f (diff) | |
download | linux-a81c994d5eef87ed77cb30d8343d6be296528b3f.tar.gz linux-a81c994d5eef87ed77cb30d8343d6be296528b3f.tar.bz2 linux-a81c994d5eef87ed77cb30d8343d6be296528b3f.zip |
RDMA/cma: Add ability to specify type of service
Provide support to specify a type of service for a communication
identifier. A new function call is used when dealing with IPv4
addresses. For IPv6 addresses, the ToS is specified through the
traffic class field in the sockaddr_in6 structure.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
[ The comments Eitan Zahavi and myself have made over the v1 post at
<http://lists.openfabrics.org/pipermail/general/2007-August/039247.html>
were fully addressed. ]
Reviewed-by: Or Gerlitz <ogerlitz@voltaire.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'include/rdma')
-rw-r--r-- | include/rdma/rdma_cm.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/rdma/rdma_cm.h b/include/rdma/rdma_cm.h index 2d6a7705eae7..010f876f41d8 100644 --- a/include/rdma/rdma_cm.h +++ b/include/rdma/rdma_cm.h @@ -314,4 +314,18 @@ int rdma_join_multicast(struct rdma_cm_id *id, struct sockaddr *addr, */ void rdma_leave_multicast(struct rdma_cm_id *id, struct sockaddr *addr); +/** + * rdma_set_service_type - Set the type of service associated with a + * connection identifier. + * @id: Communication identifier to associated with service type. + * @tos: Type of service. + * + * The type of service is interpretted as a differentiated service + * field (RFC 2474). The service type should be specified before + * performing route resolution, as existing communication on the + * connection identifier may be unaffected. The type of service + * requested may not be supported by the network to all destinations. + */ +void rdma_set_service_type(struct rdma_cm_id *id, int tos); + #endif /* RDMA_CM_H */ |