diff options
author | Upinder Malhi <umalhi@cisco.com> | 2014-01-09 17:48:17 -0500 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2014-01-14 03:44:44 -0500 |
commit | c7845bcafe4d2ecd5c479fa64d1b425c21dde17c (patch) | |
tree | 14661c7eb6d065bb2bb66c7e199d2c5821e1745c /drivers/infiniband/hw/usnic/usnic_common_util.h | |
parent | 6214105460842759020bdd7f4dbb50afa1be9d17 (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.h | 17 |
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 | ||
38 | static inline void | 38 | static inline void |
39 | usnic_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 | |||
55 | static inline void | ||
39 | usnic_write_gid_if_id_from_mac(char *mac, char *raw_gid) | 56 | usnic_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; |