IBV_QUERY_PORT(3)

作成日:2014.05.10
修正日:2014.07.22

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 が指す領域にコピーする。

contextibv_open_device() でオープンした RDMA デバイスを指定する。

port_num は 1 からはじまるポート番号を指定する。 RDMA デバイスにいくつポートがあるかは ibv_query_device() で得られる phys_port_cnt を参照すること。

Table 1: struct ibv_port_attr 構造体
メンバ変数解説典型的な値
stateenum ibv_port_state ポートの論理ステート。この値は Subnet Manager が設定する。 状況に応じて変化する。
max_mtuenum ibv_mtu ポートがサポートしている最大 MTU。この値は HCA ごとに決まっている。
IBV_MTU_256IBV_MTU_512IBV_MTU_1024IBV_MTU_2048IBV_MTU_4096 のいずれか。
IBV_MTU_4096
active_mtuenum ibv_mtu ポートの現在の最大 MTU。この値は Subnet Manager が設定する。
IBV_MTU_256IBV_MTU_512IBV_MTU_1024IBV_MTU_2048IBV_MTU_4096 のいずれか。
IBV_MTU_4096
gid_tbl_lenint Source GID Table の長さ。この値は HCA ごとに決まっている。
ibv_query_gid()index で指定する値は、gid_tbl_len 未満である必要がある。
128
port_cap_flagsuint32_t ポートのケーパビリティ。 Table 2 を参照
max_msg_szuint32_t メッセージの最大長。これは RC/RD/UCサービスの最大メッセージ長となる。最大は 0x80000000。この値は HCA ごとに決まっている。 0x40000000
bad_pkey_cntruint32_t パケットの Partition Key が QP の P_Key と不一致が原因でパケットが破棄された場合、HCA がカウントアップする。 カウンターの値
qkey_viol_cntruint32_t UD サービスのパケットの Partition Key が QP の Q_Key と不一致が原因でパケットが破棄された場合、HCA がカウントアップする。 カウンターの値
pkey_tbl_lenuint16_t Partition Key Table のエントリ数。この値は HCA ごとに決まっている。
ibv_query_pkey()index で指定する値は、pkey_tbl_len 未満である必要がある。
128
liduint16_t Port LID。この値は Subnet Manager が設定する。 Subnet Manager が割り当てるまでは 0。それ以降は 0x0001 〜 0xBFFF。
sm_liduint16_t このサブネットを管理している Subnet Managerの LID。この値は Subnet Manager が設定する。 Subnet Manager が割り当てるまでは 0。それ以降は 0x0001 〜 0xBFFF。
lmcuint8_t LID Mask Control。この値は Subnet Manager が設定する。 0x00
max_vl_numuint8_t Virtual Lane(VL) 数。この値は Subnet Manager が設定する。
意味
11
22
34
48
515
8 (2)
sm_sluint8_t Subnet Managerの Service Level。この値は Subnet Manager が設定する。 0
subnet_timeoutuint8_t このポートが Trap を Subnet Manager へ送ってから、Subnet Manager が TrapRepress を応答として返すまでの最大期待時間。実際の応答時間は 4.096 μsec * 2subnet_timeout で表現される。この時間が経過しても TrapRepress が返って来ない場合、Trap を再送する。この値は Subnet Manager が設定する。 4.096 * 218 = 1.0737 sec
init_type_replyuint8_t InitTypeReply という機能をサポートしているかどうか。この値は HCA ごとに決まっている。
ビット位置意味
bit 0NoLoad。
bit 1PreserveContent。
bit 2PreservedPresence。
bit 3DoNotResuscitate。
未サポート (0)
active_widthuint8_t このポートの現在の通信幅。実際の通信帯域は active_width * active_speed で決まる。この値は HCA の上限の範囲で、Subnet Manager が設定する。
意味
11X
24X
48X
812X
4X (2)
active_speeduint8_t このポートの現在の通信レート。実際の通信帯域は active_width * active_speed で決まる。この値は HCA の上限の範囲で、Subnet Manager が設定する。
意味
12.5 Gbps
25.0 Gbps
410.0 Gbps
810.0 Gbps
1614.0 Gbps
3225.0 Gbps
10.0 Gbps (4)
phys_stateuint8_t ポートの物理的ステート。この値はポートの接続状態によって変化する。
ステート
1SLEEP
2POLLING
3DISABLED
4PORT_CONFIGURATION_TRAINNING
5LINK_UP
6LINK_ERROR_RECOVERY
7PHY_TEST
状況に応じて変化する。
link_layeruint8_t ポートのメディア。この値はポートが InfiniBand なのか Ethernet なのかによって決まる。
ステート
0UNSEPCIFIED
1INFINIBAND
2ETHERNET
INFINIBAND(1)
Table 2: ポートのケーパビリティ
ビット名称解説典型的な値
0Reserved 常に0  
1IsSM このビットは可変で、Subnet Manager が自身を動作するポートを 1 に設定し、停止する時に 0 に戻す。このビットを使うことでサブネット内に他の Subnet Manager が居るか確認できる。  
2IsNoticeSupported MAD が Notice をサポートしているかどうか。  
3IsTrapSupported MAD が Trap をサポートしているかどうか。 Supported
4IsOptionalIPDSupported Interpacket Delay をサポートするかどうかのだが、現在は無視される。  
5IsAutomaticMigrationSupported Automatic Migration をサポートするかどうか。 Supported
6IsSLMappingSupported SL Mapping をサポートするかどうか。 Supported
7IsMKeyNVRAM M_Key を不揮発メモリに記録して電源投入時やリセット時に再設定する機能をサポートするかどうか。  
8IsPKeyNVRAM P_Key を不揮発メモリに記録して電源投入時やリセット時に再設定する機能をサポートするかどうか。  
9IsLEDInfoSupported LED をオン/オフする機能をサポートするかどうか。  
10IsSMdisabled このビットは可変で、Subnet manager が動作しているポートがその動作の継続が不能になった時に 1 を設定する。同時に IsSM は 0 に落とす必要がある。  
11IsSystemImageGUIDSupported SystemImageGUID をサポートするかどうか。  
12IsPKeySwitchExternalPortTrapSupported    
13IsCableInfoSupported CableInfo 属性をサポートするかどうか。 CableInfo 属性は Subnet Management の追加属性で、ケーブルの EEPROM データを読み取ることができる。  
14IsExtendedSpeedsSupported Extended Speeds をサポートするかどうか。 FDR(14.0625 Gbps)とEDR(25.78125 Gbps) をサポートするために必要。 Supported
15IsCapabilityMask2Supported Subnet Manager の追加属性として ClassPortInfo:CapabilityMask2 をサポートするかどうか。  
16IsCommunicationManagementSupported Communication Management をサポートするかどうか。 Supported
17IsSNMPTunnelingSupported    
18IsReinitSupported    
19IsDeviceManagementSupported Device Management Agent をサポートするかどうか。 Device Management Agent は I/O デバイスと I/O コントローラを General Management Packet としてやり取りする機能。  
20IsVendorClassSupported Vendor-specific Agent をサポートするかどうか。 Vendor-specific Agent は General Management Packet としてベンタ固有の情報をやり取りする機能。 Supported
21IsDRNoticeSupported    
22IsCapabilityMaskNoticeSupported   Supported
23IsBootManagementSupported   Supported
24IsLinkRoundTripLatencySupported    
25IsClientReregistrationSupported   Supported
26IsOtherLocalChangeNoticeSupported    
27IsLinkSpeedWidthPairsTableSupported    
28IsVendorSpecificMadsTableSupported   Supported
29IsMulticastPKeyTrapSuppressionSupported    
30IsMulticastFDBTopSupported    
31IsHierarchyInfoSupported 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 Referenceibv_create_qp(3)ibv_destroy_qp(3)ibv_query_qp(3)ibv_create_ah(3)

AUTHORS

コメント

コメントを書き込む

TOP    掲示板    戻る
Written by NAKAMURA Minoru, Email: nminoru atmark nminoru dot jp, Twitter:@nminoru_jp