NAME
ibv_query_port - RDMA ポートの属性情報を取得する
SYNOPSIS
#include <infiniband/verbs.h> int ibv_query_port(struct ibv_context *context, uint8_t port_num, struct ibv_port_attr *port_attr);
DESCRIPTION
ibv_query_port()
は context で指定される port_num で指定されるポートの属性情報を port_attr が指す領域にコピーする。
context は ibv_open_device() でオープンした RDMA デバイスを指定する。
port_num は 1 からはじまるポート番号を指定する。 RDMA デバイスにいくつポートがあるかは ibv_query_device() で得られる phys_port_cnt を参照すること。
メンバ変数 | 型 | 解説 | 典型的な値 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
state | enum ibv_port_state | ポートの論理ステート。この値は Subnet Manager が設定する。 | 状況に応じて変化する。 | ||||||||||||||||
max_mtu | enum ibv_mtu | ポートがサポートしている最大 MTU。この値は HCA ごとに決まっている。 IBV_MTU_256、IBV_MTU_512、IBV_MTU_1024、IBV_MTU_2048、IBV_MTU_4096 のいずれか。 |
IBV_MTU_4096 | ||||||||||||||||
active_mtu | enum ibv_mtu | ポートの現在の最大 MTU。この値は Subnet Manager が設定する。 IBV_MTU_256、IBV_MTU_512、IBV_MTU_1024、IBV_MTU_2048、IBV_MTU_4096 のいずれか。 |
IBV_MTU_4096 | ||||||||||||||||
gid_tbl_len | int | Source GID Table の長さ。この値は HCA ごとに決まっている。 ibv_query_gid() で index で指定する値は、gid_tbl_len 未満である必要がある。 |
128 | ||||||||||||||||
port_cap_flags | uint32_t | ポートのケーパビリティ。 | Table 2 を参照 | ||||||||||||||||
max_msg_sz | uint32_t | メッセージの最大長。これは RC/RD/UCサービスの最大メッセージ長となる。最大は 0x80000000。この値は HCA ごとに決まっている。 | 0x40000000 | ||||||||||||||||
bad_pkey_cntr | uint32_t | パケットの Partition Key が QP の P_Key と不一致が原因でパケットが破棄された場合、HCA がカウントアップする。 | カウンターの値 | ||||||||||||||||
qkey_viol_cntr | uint32_t | UD サービスのパケットの Partition Key が QP の Q_Key と不一致が原因でパケットが破棄された場合、HCA がカウントアップする。 | カウンターの値 | ||||||||||||||||
pkey_tbl_len | uint16_t | Partition Key Table のエントリ数。この値は HCA ごとに決まっている。 ibv_query_pkey() で index で指定する値は、pkey_tbl_len 未満である必要がある。 |
128 | ||||||||||||||||
lid | uint16_t | Port LID。この値は Subnet Manager が設定する。 | Subnet Manager が割り当てるまでは 0。それ以降は 0x0001 〜 0xBFFF。 | ||||||||||||||||
sm_lid | uint16_t | このサブネットを管理している Subnet Managerの LID。この値は Subnet Manager が設定する。 | Subnet Manager が割り当てるまでは 0。それ以降は 0x0001 〜 0xBFFF。 | ||||||||||||||||
lmc | uint8_t | LID Mask Control。この値は Subnet Manager が設定する。 | 0x00 | ||||||||||||||||
max_vl_num | uint8_t | Virtual Lane(VL) 数。この値は Subnet Manager が設定する。
|
8 (2) | ||||||||||||||||
sm_sl | uint8_t | Subnet Managerの Service Level。この値は Subnet Manager が設定する。 | 0 | ||||||||||||||||
subnet_timeout | uint8_t | このポートが Trap を Subnet Manager へ送ってから、Subnet Manager が TrapRepress を応答として返すまでの最大期待時間。実際の応答時間は 4.096 μsec * 2subnet_timeout で表現される。この時間が経過しても TrapRepress が返って来ない場合、Trap を再送する。この値は Subnet Manager が設定する。 | 4.096 * 218 = 1.0737 sec | ||||||||||||||||
init_type_reply | uint8_t | InitTypeReply という機能をサポートしているかどうか。この値は HCA ごとに決まっている。
|
未サポート (0) | ||||||||||||||||
active_width | uint8_t | このポートの現在の通信幅。実際の通信帯域は active_width * active_speed で決まる。この値は HCA の上限の範囲で、Subnet Manager が設定する。
|
4X (2) | ||||||||||||||||
active_speed | uint8_t | このポートの現在の通信レート。実際の通信帯域は active_width * active_speed で決まる。この値は HCA の上限の範囲で、Subnet Manager が設定する。
|
10.0 Gbps (4) | ||||||||||||||||
phys_state | uint8_t |
ポートの物理的ステート。この値はポートの接続状態によって変化する。
|
状況に応じて変化する。 | ||||||||||||||||
link_layer | uint8_t |
ポートのメディア。この値はポートが InfiniBand なのか Ethernet なのかによって決まる。
|
INFINIBAND(1) |
ビット | 名称 | 解説 | 典型的な値 |
---|---|---|---|
0 | Reserved | 常に0 | |
1 | IsSM | このビットは可変で、Subnet Manager が自身を動作するポートを 1 に設定し、停止する時に 0 に戻す。このビットを使うことでサブネット内に他の Subnet Manager が居るか確認できる。 | |
2 | IsNoticeSupported | MAD が Notice をサポートしているかどうか。 | |
3 | IsTrapSupported | MAD が Trap をサポートしているかどうか。 | Supported |
4 | IsOptionalIPDSupported | Interpacket Delay をサポートするかどうかのだが、現在は無視される。 | |
5 | IsAutomaticMigrationSupported | Automatic Migration をサポートするかどうか。 | Supported |
6 | IsSLMappingSupported | SL Mapping をサポートするかどうか。 | Supported |
7 | IsMKeyNVRAM | M_Key を不揮発メモリに記録して電源投入時やリセット時に再設定する機能をサポートするかどうか。 | |
8 | IsPKeyNVRAM | P_Key を不揮発メモリに記録して電源投入時やリセット時に再設定する機能をサポートするかどうか。 | |
9 | IsLEDInfoSupported | LED をオン/オフする機能をサポートするかどうか。 | |
10 | IsSMdisabled | このビットは可変で、Subnet manager が動作しているポートがその動作の継続が不能になった時に 1 を設定する。同時に IsSM は 0 に落とす必要がある。 | |
11 | IsSystemImageGUIDSupported | SystemImageGUID をサポートするかどうか。 | |
12 | IsPKeySwitchExternalPortTrapSupported | ||
13 | IsCableInfoSupported | CableInfo 属性をサポートするかどうか。 CableInfo 属性は Subnet Management の追加属性で、ケーブルの EEPROM データを読み取ることができる。 | |
14 | IsExtendedSpeedsSupported | Extended Speeds をサポートするかどうか。 FDR(14.0625 Gbps)とEDR(25.78125 Gbps) をサポートするために必要。 | Supported |
15 | IsCapabilityMask2Supported | Subnet Manager の追加属性として ClassPortInfo:CapabilityMask2 をサポートするかどうか。 | |
16 | IsCommunicationManagementSupported | Communication Management をサポートするかどうか。 | Supported |
17 | IsSNMPTunnelingSupported | ||
18 | IsReinitSupported | ||
19 | IsDeviceManagementSupported | Device Management Agent をサポートするかどうか。 Device Management Agent は I/O デバイスと I/O コントローラを General Management Packet としてやり取りする機能。 | |
20 | IsVendorClassSupported | Vendor-specific Agent をサポートするかどうか。 Vendor-specific Agent は General Management Packet としてベンタ固有の情報をやり取りする機能。 | Supported |
21 | IsDRNoticeSupported | ||
22 | IsCapabilityMaskNoticeSupported | Supported | |
23 | IsBootManagementSupported | Supported | |
24 | IsLinkRoundTripLatencySupported | ||
25 | IsClientReregistrationSupported | Supported | |
26 | IsOtherLocalChangeNoticeSupported | ||
27 | IsLinkSpeedWidthPairsTableSupported | ||
28 | IsVendorSpecificMadsTableSupported | Supported | |
29 | IsMulticastPKeyTrapSuppressionSupported | ||
30 | IsMulticastFDBTopSupported | ||
31 | IsHierarchyInfoSupported | Hierarchy Information をサポートしているかどうか。 サポートしている場合、InfiniBand スイッチの物理的な位置などを加味したネットワーク接続状態を可視化することができる。 Hierarchy Information は Supplement to InfiniBand Architecture Specification Volume 1.2.1 Annex A15: Hierarchy Information で定義されている。 |
RETURN VALUE
ibv_query_port()
は成功すれば 0 を返す。
失敗した場合は、エラーの原因を示す値(errno と同じ)を返す。
SEE ALSO
InfiniBand Verbs API Reference、ibv_create_qp(3)、ibv_destroy_qp(3)、ibv_query_qp(3)、ibv_create_ah(3)
AUTHORS
コメント
コメントを書き込む