aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/usnic/usnic_common_util.h
diff options
context:
space:
mode:
authorUpinder Malhi <umalhi@cisco.com>2014-01-09 17:48:17 -0500
committerRoland Dreier <roland@purestorage.com>2014-01-14 03:44:44 -0500
commitc7845bcafe4d2ecd5c479fa64d1b425c21dde17c (patch)
tree14661c7eb6d065bb2bb66c7e199d2c5821e1745c /drivers/infiniband/hw/usnic/usnic_common_util.h
parent6214105460842759020bdd7f4dbb50afa1be9d17 (diff)
IB/usnic: Add UDP support in u*verbs.c, u*main.c and u*util.h
Add supports for: 1) Parsing the socket file descriptor pass down from userspace. 2) IP notifiers 3) Encoding the IP in the GID 4) Other aux. changes to support UDP Signed-off-by: Upinder Malhi <umalhi@cisco.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband/hw/usnic/usnic_common_util.h')
-rw-r--r--drivers/infiniband/hw/usnic/usnic_common_util.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/usnic/usnic_common_util.h b/drivers/infiniband/hw/usnic/usnic_common_util.h
index 128550a4f9e2..afd8bfa379ed 100644
--- a/drivers/infiniband/hw/usnic/usnic_common_util.h
+++ b/drivers/infiniband/hw/usnic/usnic_common_util.h
@@ -36,6 +36,23 @@ usnic_mac_to_gid(const char *const mac, char *raw_gid)
36} 36}
37 37
38static inline void 38static inline void
39usnic_mac_ip_to_gid(const char *const mac, const uint32_t inaddr, char *raw_gid)
40{
41 raw_gid[0] = 0xfe;
42 raw_gid[1] = 0x80;
43 memset(&raw_gid[2], 0, 2);
44 memcpy(&raw_gid[4], &inaddr, 4);
45 raw_gid[8] = mac[0]^2;
46 raw_gid[9] = mac[1];
47 raw_gid[10] = mac[2];
48 raw_gid[11] = 0xff;
49 raw_gid[12] = 0xfe;
50 raw_gid[13] = mac[3];
51 raw_gid[14] = mac[4];
52 raw_gid[15] = mac[5];
53}
54
55static inline void
39usnic_write_gid_if_id_from_mac(char *mac, char *raw_gid) 56usnic_write_gid_if_id_from_mac(char *mac, char *raw_gid)
40{ 57{
41 raw_gid[8] = mac[0]^2; 58 raw_gid[8] = mac[0]^2;