diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/net/if_inet6.h | 11 | ||||
-rw-r--r-- | include/net/ip.h | 10 | ||||
-rw-r--r-- | include/rdma/ib_mad.h | 4 | ||||
-rw-r--r-- | include/rdma/rdma_user_cm.h | 13 |
4 files changed, 28 insertions, 10 deletions
diff --git a/include/net/if_inet6.h b/include/net/if_inet6.h index 448eccb20638..b24508abb850 100644 --- a/include/net/if_inet6.h +++ b/include/net/if_inet6.h | |||
@@ -269,18 +269,21 @@ static inline void ipv6_arcnet_mc_map(const struct in6_addr *addr, char *buf) | |||
269 | buf[0] = 0x00; | 269 | buf[0] = 0x00; |
270 | } | 270 | } |
271 | 271 | ||
272 | static inline void ipv6_ib_mc_map(struct in6_addr *addr, char *buf) | 272 | static inline void ipv6_ib_mc_map(const struct in6_addr *addr, |
273 | const unsigned char *broadcast, char *buf) | ||
273 | { | 274 | { |
275 | unsigned char scope = broadcast[5] & 0xF; | ||
276 | |||
274 | buf[0] = 0; /* Reserved */ | 277 | buf[0] = 0; /* Reserved */ |
275 | buf[1] = 0xff; /* Multicast QPN */ | 278 | buf[1] = 0xff; /* Multicast QPN */ |
276 | buf[2] = 0xff; | 279 | buf[2] = 0xff; |
277 | buf[3] = 0xff; | 280 | buf[3] = 0xff; |
278 | buf[4] = 0xff; | 281 | buf[4] = 0xff; |
279 | buf[5] = 0x12; /* link local scope */ | 282 | buf[5] = 0x10 | scope; /* scope from broadcast address */ |
280 | buf[6] = 0x60; /* IPv6 signature */ | 283 | buf[6] = 0x60; /* IPv6 signature */ |
281 | buf[7] = 0x1b; | 284 | buf[7] = 0x1b; |
282 | buf[8] = 0; /* P_Key */ | 285 | buf[8] = broadcast[8]; /* P_Key */ |
283 | buf[9] = 0; | 286 | buf[9] = broadcast[9]; |
284 | memcpy(buf + 10, addr->s6_addr + 6, 10); | 287 | memcpy(buf + 10, addr->s6_addr + 6, 10); |
285 | } | 288 | } |
286 | #endif | 289 | #endif |
diff --git a/include/net/ip.h b/include/net/ip.h index 840dd91b513b..50c8889b1b8d 100644 --- a/include/net/ip.h +++ b/include/net/ip.h | |||
@@ -266,20 +266,22 @@ static inline void ip_eth_mc_map(__be32 naddr, char *buf) | |||
266 | * Leave P_Key as 0 to be filled in by driver. | 266 | * Leave P_Key as 0 to be filled in by driver. |
267 | */ | 267 | */ |
268 | 268 | ||
269 | static inline void ip_ib_mc_map(__be32 naddr, char *buf) | 269 | static inline void ip_ib_mc_map(__be32 naddr, const unsigned char *broadcast, char *buf) |
270 | { | 270 | { |
271 | __u32 addr; | 271 | __u32 addr; |
272 | unsigned char scope = broadcast[5] & 0xF; | ||
273 | |||
272 | buf[0] = 0; /* Reserved */ | 274 | buf[0] = 0; /* Reserved */ |
273 | buf[1] = 0xff; /* Multicast QPN */ | 275 | buf[1] = 0xff; /* Multicast QPN */ |
274 | buf[2] = 0xff; | 276 | buf[2] = 0xff; |
275 | buf[3] = 0xff; | 277 | buf[3] = 0xff; |
276 | addr = ntohl(naddr); | 278 | addr = ntohl(naddr); |
277 | buf[4] = 0xff; | 279 | buf[4] = 0xff; |
278 | buf[5] = 0x12; /* link local scope */ | 280 | buf[5] = 0x10 | scope; /* scope from broadcast address */ |
279 | buf[6] = 0x40; /* IPv4 signature */ | 281 | buf[6] = 0x40; /* IPv4 signature */ |
280 | buf[7] = 0x1b; | 282 | buf[7] = 0x1b; |
281 | buf[8] = 0; /* P_Key */ | 283 | buf[8] = broadcast[8]; /* P_Key */ |
282 | buf[9] = 0; | 284 | buf[9] = broadcast[9]; |
283 | buf[10] = 0; | 285 | buf[10] = 0; |
284 | buf[11] = 0; | 286 | buf[11] = 0; |
285 | buf[12] = 0; | 287 | buf[12] = 0; |
diff --git a/include/rdma/ib_mad.h b/include/rdma/ib_mad.h index 8ec3799e42e1..7228c056b9e9 100644 --- a/include/rdma/ib_mad.h +++ b/include/rdma/ib_mad.h | |||
@@ -230,7 +230,9 @@ struct ib_class_port_info | |||
230 | * @seg_count: The number of RMPP segments allocated for this send. | 230 | * @seg_count: The number of RMPP segments allocated for this send. |
231 | * @seg_size: Size of each RMPP segment. | 231 | * @seg_size: Size of each RMPP segment. |
232 | * @timeout_ms: Time to wait for a response. | 232 | * @timeout_ms: Time to wait for a response. |
233 | * @retries: Number of times to retry a request for a response. | 233 | * @retries: Number of times to retry a request for a response. For MADs |
234 | * using RMPP, this applies per window. On completion, returns the number | ||
235 | * of retries needed to complete the transfer. | ||
234 | * | 236 | * |
235 | * Users are responsible for initializing the MAD buffer itself, with the | 237 | * Users are responsible for initializing the MAD buffer itself, with the |
236 | * exception of any RMPP header. Additional segment buffer space allocated | 238 | * exception of any RMPP header. Additional segment buffer space allocated |
diff --git a/include/rdma/rdma_user_cm.h b/include/rdma/rdma_user_cm.h index 9749c1b34d00..c55705460b87 100644 --- a/include/rdma/rdma_user_cm.h +++ b/include/rdma/rdma_user_cm.h | |||
@@ -60,7 +60,8 @@ enum { | |||
60 | RDMA_USER_CM_CMD_SET_OPTION, | 60 | RDMA_USER_CM_CMD_SET_OPTION, |
61 | RDMA_USER_CM_CMD_NOTIFY, | 61 | RDMA_USER_CM_CMD_NOTIFY, |
62 | RDMA_USER_CM_CMD_JOIN_MCAST, | 62 | RDMA_USER_CM_CMD_JOIN_MCAST, |
63 | RDMA_USER_CM_CMD_LEAVE_MCAST | 63 | RDMA_USER_CM_CMD_LEAVE_MCAST, |
64 | RDMA_USER_CM_CMD_MIGRATE_ID | ||
64 | }; | 65 | }; |
65 | 66 | ||
66 | /* | 67 | /* |
@@ -230,4 +231,14 @@ struct rdma_ucm_set_option { | |||
230 | __u32 optlen; | 231 | __u32 optlen; |
231 | }; | 232 | }; |
232 | 233 | ||
234 | struct rdma_ucm_migrate_id { | ||
235 | __u64 response; | ||
236 | __u32 id; | ||
237 | __u32 fd; | ||
238 | }; | ||
239 | |||
240 | struct rdma_ucm_migrate_resp { | ||
241 | __u32 events_reported; | ||
242 | }; | ||
243 | |||
233 | #endif /* RDMA_USER_CM_H */ | 244 | #endif /* RDMA_USER_CM_H */ |