diff options
| author | Michael Brown | 2010-09-15 20:25:05 +0200 |
|---|---|---|
| committer | Michael Brown | 2010-09-15 20:25:05 +0200 |
| commit | 52e54a8c69351ee1455f8fbf2a9cd5d27d42f7ab (patch) | |
| tree | d8b88315c25088f824ee97b0b0faf4945311445a /src/include/ipxe | |
| parent | [e1000] Strip the Ethernet CRC from received packets (diff) | |
| download | ipxe-52e54a8c69351ee1455f8fbf2a9cd5d27d42f7ab.tar.gz ipxe-52e54a8c69351ee1455f8fbf2a9cd5d27d42f7ab.tar.xz ipxe-52e54a8c69351ee1455f8fbf2a9cd5d27d42f7ab.zip | |
[infiniband] Match GID/GUID terminology as used in the IBA
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include/ipxe')
| -rw-r--r-- | src/include/ipxe/ib_cm.h | 4 | ||||
| -rw-r--r-- | src/include/ipxe/ib_cmrc.h | 4 | ||||
| -rw-r--r-- | src/include/ipxe/ib_mad.h | 24 | ||||
| -rw-r--r-- | src/include/ipxe/ib_mcast.h | 4 | ||||
| -rw-r--r-- | src/include/ipxe/ib_packet.h | 45 | ||||
| -rw-r--r-- | src/include/ipxe/ib_srp.h | 14 | ||||
| -rw-r--r-- | src/include/ipxe/infiniband.h | 20 | ||||
| -rw-r--r-- | src/include/ipxe/ipoib.h | 2 |
8 files changed, 65 insertions, 52 deletions
diff --git a/src/include/ipxe/ib_cm.h b/src/include/ipxe/ib_cm.h index 136e4943b..7d08cd9b1 100644 --- a/src/include/ipxe/ib_cm.h +++ b/src/include/ipxe/ib_cm.h @@ -42,7 +42,7 @@ struct ib_connection { /** Remote communication ID */ uint32_t remote_id; /** Target service ID */ - struct ib_gid_half service_id; + union ib_guid service_id; /** Connection operations */ struct ib_connection_operations *op; @@ -62,7 +62,7 @@ struct ib_connection { extern struct ib_connection * ib_create_conn ( struct ib_device *ibdev, struct ib_queue_pair *qp, - struct ib_gid *dgid, struct ib_gid_half *service_id, + union ib_gid *dgid, union ib_guid *service_id, void *req_private_data, size_t req_private_data_len, struct ib_connection_operations *op ); extern void ib_destroy_conn ( struct ib_device *ibdev, diff --git a/src/include/ipxe/ib_cmrc.h b/src/include/ipxe/ib_cmrc.h index 4f2eae69e..47ad27fa6 100644 --- a/src/include/ipxe/ib_cmrc.h +++ b/src/include/ipxe/ib_cmrc.h @@ -14,7 +14,7 @@ FILE_LICENCE ( BSD2 ); extern int ib_cmrc_open ( struct interface *xfer, struct ib_device *ibdev, - struct ib_gid *dgid, - struct ib_gid_half *service_id ); + union ib_gid *dgid, + union ib_guid *service_id ); #endif /* _IPXE_IB_CMRC_H */ diff --git a/src/include/ipxe/ib_mad.h b/src/include/ipxe/ib_mad.h index 23c2657ca..b8694833e 100644 --- a/src/include/ipxe/ib_mad.h +++ b/src/include/ipxe/ib_mad.h @@ -75,9 +75,9 @@ struct ib_node_info { uint8_t class_version; uint8_t node_type; uint8_t num_ports; - struct ib_gid_half sys_guid; - struct ib_gid_half node_guid; - struct ib_gid_half port_guid; + union ib_guid sys_guid; + union ib_guid node_guid; + union ib_guid port_guid; uint16_t partition_cap; uint16_t device_id; uint32_t revision; @@ -221,8 +221,8 @@ struct ib_sa_hdr { struct ib_path_record { uint32_t reserved0[2]; - struct ib_gid dgid; - struct ib_gid sgid; + union ib_gid dgid; + union ib_gid sgid; uint16_t dlid; uint16_t slid; uint32_t hop_limit__flow_label__raw_traffic; @@ -239,8 +239,8 @@ struct ib_path_record { #define IB_SA_PATH_REC_SGID (1<<3) struct ib_mc_member_record { - struct ib_gid mgid; - struct ib_gid port_gid; + union ib_gid mgid; + union ib_gid port_gid; uint32_t qkey; uint16_t mlid; uint8_t mtu_selector__mtu; @@ -320,9 +320,9 @@ struct ib_cm_path { /** Remote port LID */ uint16_t remote_lid; /** Local port GID */ - struct ib_gid local_gid; + union ib_gid local_gid; /** Remote port GID */ - struct ib_gid remote_gid; + union ib_gid remote_gid; /** Flow label and rate */ uint32_t flow_label__rate; /** Traffic class */ @@ -345,9 +345,9 @@ struct ib_cm_connect_request { /** Reserved */ uint32_t reserved0[1]; /** Service ID */ - struct ib_gid_half service_id; + union ib_guid service_id; /** Local CA GUID */ - struct ib_gid_half local_ca; + union ib_guid local_ca; /** Reserved */ uint32_t reserved1[1]; /** Local queue key */ @@ -433,7 +433,7 @@ struct ib_cm_connect_reply { /** RNR retry count, SRQ */ uint8_t rnr_retry__srq; /** Local CA GUID */ - struct ib_gid_half local_ca; + union ib_guid local_ca; /** Private data */ uint8_t private_data[196]; } __attribute__ (( packed )); diff --git a/src/include/ipxe/ib_mcast.h b/src/include/ipxe/ib_mcast.h index 86d570908..a5c22a03e 100644 --- a/src/include/ipxe/ib_mcast.h +++ b/src/include/ipxe/ib_mcast.h @@ -18,7 +18,7 @@ struct ib_mc_membership { /** Queue pair */ struct ib_queue_pair *qp; /** Multicast GID */ - struct ib_gid gid; + union ib_gid gid; /** Multicast group join transaction */ struct ib_mad_transaction *madx; /** Handle join success/failure @@ -36,7 +36,7 @@ struct ib_mc_membership { extern int ib_mcast_join ( struct ib_device *ibdev, struct ib_queue_pair *qp, struct ib_mc_membership *membership, - struct ib_gid *gid, + union ib_gid *gid, void ( * joined ) ( struct ib_device *ibdev, struct ib_queue_pair *qp, struct ib_mc_membership *memb, diff --git a/src/include/ipxe/ib_packet.h b/src/include/ipxe/ib_packet.h index 09042957b..4bd335764 100644 --- a/src/include/ipxe/ib_packet.h +++ b/src/include/ipxe/ib_packet.h @@ -14,25 +14,38 @@ struct ib_queue_pair; struct ib_address_vector; struct io_buffer; -/** Half of an Infiniband Global Identifier */ -struct ib_gid_half { - union { - uint8_t bytes[8]; - uint16_t words[4]; - uint32_t dwords[2]; - } u; +/** An Infiniband Globally Unique Identifier */ +union ib_guid { + uint8_t bytes[8]; + uint16_t words[4]; + uint32_t dwords[2]; }; +/** Infiniband Globally Unique Identifier debug message format */ +#define IB_GUID_FMT "%08x:%08x" + +/** Infiniband Globally Unique Identifier debug message arguments */ +#define IB_GUID_ARGS( guid ) \ + ntohl ( (guid)->dwords[0] ), ntohl ( (guid)->dwords[1] ) + /** An Infiniband Global Identifier */ -struct ib_gid { - union { - uint8_t bytes[16]; - uint16_t words[8]; - uint32_t dwords[4]; - struct ib_gid_half half[2]; - } u; +union ib_gid { + uint8_t bytes[16]; + uint16_t words[8]; + uint32_t dwords[4]; + struct { + union ib_guid prefix; + union ib_guid guid; + } s; }; +/** Infiniband Global Identifier debug message format */ +#define IB_GID_FMT IB_GUID_FMT ":" IB_GUID_FMT + +/** Infiniband Global Identifier debug message arguments */ +#define IB_GID_ARGS( gid ) \ + IB_GUID_ARGS ( &(gid)->s.prefix ), IB_GUID_ARGS ( &(gid)->s.guid ) + /** An Infiniband Local Route Header */ struct ib_local_route_header { /** Virtual lane and link version */ @@ -83,9 +96,9 @@ struct ib_global_route_header { /** Hop limit */ uint8_t hoplmt; /** Source GID */ - struct ib_gid sgid; + union ib_gid sgid; /** Destiniation GID */ - struct ib_gid dgid; + union ib_gid dgid; } __attribute__ (( packed )); #define IB_GRH_IPVER_IPv6 0x06 diff --git a/src/include/ipxe/ib_srp.h b/src/include/ipxe/ib_srp.h index 902bef562..ad407b0cf 100644 --- a/src/include/ipxe/ib_srp.h +++ b/src/include/ipxe/ib_srp.h @@ -20,9 +20,9 @@ union ib_srp_initiator_port_id { /** Infiniband version of port identifier */ struct { /** Identifier extension */ - struct ib_gid_half id_ext; + union ib_guid id_ext; /** IB channel adapter GUID */ - struct ib_gid_half hca_guid; + union ib_guid hca_guid; } __attribute__ (( packed )) ib; }; @@ -33,9 +33,9 @@ union ib_srp_target_port_id { /** Infiniband version of port identifier */ struct { /** Identifier extension */ - struct ib_gid_half id_ext; + union ib_guid id_ext; /** I/O controller GUID */ - struct ib_gid_half ioc_guid; + union ib_guid ioc_guid; } __attribute__ (( packed )) ib; }; @@ -44,11 +44,11 @@ union ib_srp_target_port_id { */ struct sbft_ib_subtable { /** Source GID */ - struct ib_gid sgid; + union ib_gid sgid; /** Destination GID */ - struct ib_gid dgid; + union ib_gid dgid; /** Service ID */ - struct ib_gid_half service_id; + union ib_guid service_id; /** Partition key */ uint16_t pkey; /** Reserved */ diff --git a/src/include/ipxe/infiniband.h b/src/include/ipxe/infiniband.h index edcce371c..aa67dd4ab 100644 --- a/src/include/ipxe/infiniband.h +++ b/src/include/ipxe/infiniband.h @@ -88,7 +88,7 @@ struct ib_address_vector { /** GID is present */ unsigned int gid_present; /** GID, if present */ - struct ib_gid gid; + union ib_gid gid; }; /** An Infiniband Work Queue */ @@ -126,7 +126,7 @@ struct ib_multicast_gid { /** List of multicast GIDs on this QP */ struct list_head list; /** Multicast GID */ - struct ib_gid gid; + union ib_gid gid; }; /** An Infiniband queue pair type */ @@ -338,7 +338,7 @@ struct ib_device_operations { */ int ( * mcast_attach ) ( struct ib_device *ibdev, struct ib_queue_pair *qp, - struct ib_gid *gid ); + union ib_gid *gid ); /** Detach from multicast group * * @v ibdev Infiniband device @@ -347,7 +347,7 @@ struct ib_device_operations { */ void ( * mcast_detach ) ( struct ib_device *ibdev, struct ib_queue_pair *qp, - struct ib_gid *gid ); + union ib_gid *gid ); /** Set port information * * @v ibdev Infiniband device @@ -405,7 +405,7 @@ struct ib_device { /** Link speed active */ uint8_t link_speed_active; /** Port GID */ - struct ib_gid gid; + union ib_gid gid; /** Port LID */ uint16_t lid; /** Subnet manager LID */ @@ -479,7 +479,7 @@ extern void ib_destroy_qp ( struct ib_device *ibdev, extern struct ib_queue_pair * ib_find_qp_qpn ( struct ib_device *ibdev, unsigned long qpn ); extern struct ib_queue_pair * ib_find_qp_mgid ( struct ib_device *ibdev, - struct ib_gid *gid ); + union ib_gid *gid ); extern struct ib_work_queue * ib_find_wq ( struct ib_completion_queue *cq, unsigned long qpn, int is_send ); extern int ib_post_send ( struct ib_device *ibdev, struct ib_queue_pair *qp, @@ -500,17 +500,17 @@ extern int ib_open ( struct ib_device *ibdev ); extern void ib_close ( struct ib_device *ibdev ); extern int ib_link_rc ( struct ib_device *ibdev ); extern int ib_mcast_attach ( struct ib_device *ibdev, struct ib_queue_pair *qp, - struct ib_gid *gid ); + union ib_gid *gid ); extern void ib_mcast_detach ( struct ib_device *ibdev, - struct ib_queue_pair *qp, struct ib_gid *gid ); + struct ib_queue_pair *qp, union ib_gid *gid ); extern int ib_get_hca_info ( struct ib_device *ibdev, - struct ib_gid_half *hca_guid ); + union ib_guid *hca_guid ); extern int ib_set_port_info ( struct ib_device *ibdev, union ib_mad *mad ); extern int ib_set_pkey_table ( struct ib_device *ibdev, union ib_mad *mad ); extern struct ib_device * alloc_ibdev ( size_t priv_size ); extern int register_ibdev ( struct ib_device *ibdev ); extern void unregister_ibdev ( struct ib_device *ibdev ); -extern struct ib_device * find_ibdev ( struct ib_gid *gid ); +extern struct ib_device * find_ibdev ( union ib_gid *gid ); extern struct ib_device * last_opened_ibdev ( void ); extern void ib_link_state_changed ( struct ib_device *ibdev ); extern void ib_poll_eq ( struct ib_device *ibdev ); diff --git a/src/include/ipxe/ipoib.h b/src/include/ipxe/ipoib.h index 6a3fd607a..e8f12dc5d 100644 --- a/src/include/ipxe/ipoib.h +++ b/src/include/ipxe/ipoib.h @@ -22,7 +22,7 @@ struct ipoib_mac { */ uint32_t flags__qpn; /** Port GID */ - struct ib_gid gid; + union ib_gid gid; } __attribute__ (( packed )); /** IPoIB link-layer header length */ |
