Win32 API 日本語リファレンス
ホームNetworking.WinSock › NL_NEIGHBOR_STATE

NL_NEIGHBOR_STATE

列挙型
基底型i4

メンバー 8

名前10進16進説明
NlnsUnreachable00x0IP アドレスに到達できません。
NlnsIncomplete10x1アドレス解決が進行中であり、ネイバーのリンク層アドレスがまだ確定していません。IPv6 の場合は具体的に、ターゲットの要請ノードマルチキャスト IP アドレスへネイバー要請 (Neighbor Solicitation) メッセージが送信されましたが、対応するネイバー通知 (Neighbor Advertisement) はまだ受信されていません。
NlnsProbe20x2ネイバーが到達可能であるとは判断できなくなっており、到達可能性を検証するためのプローブが送信されています。IPv6 の場合、到達可能性の確認が受信されるまで、ユニキャストのネイバー要請プローブを定期的に再送信することで、到達可能性の確認が積極的に試みられます。
NlnsDelay30x3ネイバーが到達可能であるとは判断できなくなっていますが、最近そのネイバーへトラフィックが送信されています。ただし、ただちにネイバーをプローブするのではなく、上位層プロトコルが到達可能性の確認を行う機会を与えるため、プローブの送信は短時間だけ遅延されます。IPv6 の場合、転送パスが正常に機能していることを示す最後の肯定的な確認を受信してパケットが送信されてから、 MIB_IPNET_ROW2 構造体の ReachabilityTime.ReachableTime メンバーに指定された時間よりも長い時間が経過しています。 NlnsDelay 状態に入ってから一定の時間 (最初のプローブを遅延させるために使用される時間) 内に到達可能性の確認が受信されない場合、IPv6 のネイバー要請 (NS) メッセージが送信され、MIB_IPNET_ROW2 の State メンバーは NlnsProbe に変更されます。
NlnsStale40x4ネイバーが到達可能であるとは判断できなくなっていますが、そのネイバーへトラフィックが送信されるまでは、到達可能性を検証する試みは行われません。IPv6 の場合、転送パスが正常に機能していることを示す最後の肯定的な確認を受信してから、 MIB_IPNET_ROW2 構造体の ReachabilityTime.ReachableTime メンバーに指定された時間よりも長い時間が経過しています。MIB_IPNET_ROW2 の State メンバーが NlnsStale である間は、パケットが送信されるまで何の動作も行われません。 NlnsStale 状態には、キャッシュされた IP アドレスを更新する非要請のネイバー探索メッセージを受信したときに入ります。そのようなメッセージを受信しても到達可能性が確認されたことにはなりませんが、NlnsStale 状態に入ることで、そのエントリが実際に使用されている場合には到達可能性が速やかに検証されるようになります。ただし、到達可能性はそのエントリが実際に使用されるまでは実際には検証されません。
NlnsReachable50x5ネイバーが最近 (数十秒以内に) 到達可能であったことが判明しています。IPv6 の場合、 MIB_IPNET_ROW2 構造体の ReachabilityTime.ReachableTime メンバーに指定された時間内に、ネイバーへの転送パスが正常に機能しているという肯定的な確認を受信しています。MIB_IPNET_ROW2 の State メンバーが NlnsReachable である間は、パケットが送信されても特別な動作は行われません。
NlnsPermanent60x6IP アドレスは永続的なアドレスです。
NlnsMaximum70x7テスト目的で使用する最大値です。

公式ドキュメント

NL_NEIGHBOR_STATE 列挙型は、RFC 2461 のセクション 7.3.2 で説明されている、ネットワーク層のネイバー IP アドレスの状態を定義します。

解説(Remarks)

RFC 2461 のセクション 7.3.2 の詳細については、Network Working Group による Neighbor Discovery for IP Version 6 (IPv6) のメモを参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum NL_NEIGHBOR_STATE : int {
    NlnsUnreachable = 0,
    NlnsIncomplete = 1,
    NlnsProbe = 2,
    NlnsDelay = 3,
    NlnsStale = 4,
    NlnsReachable = 5,
    NlnsPermanent = 6,
    NlnsMaximum = 7
} NL_NEIGHBOR_STATE;
public enum NL_NEIGHBOR_STATE : int
{
    NlnsUnreachable = 0,
    NlnsIncomplete = 1,
    NlnsProbe = 2,
    NlnsDelay = 3,
    NlnsStale = 4,
    NlnsReachable = 5,
    NlnsPermanent = 6,
    NlnsMaximum = 7,
}
Public Enum NL_NEIGHBOR_STATE As Integer
    NlnsUnreachable = 0
    NlnsIncomplete = 1
    NlnsProbe = 2
    NlnsDelay = 3
    NlnsStale = 4
    NlnsReachable = 5
    NlnsPermanent = 6
    NlnsMaximum = 7
End Enum
import enum

class NL_NEIGHBOR_STATE(enum.IntEnum):
    NlnsUnreachable = 0
    NlnsIncomplete = 1
    NlnsProbe = 2
    NlnsDelay = 3
    NlnsStale = 4
    NlnsReachable = 5
    NlnsPermanent = 6
    NlnsMaximum = 7
// NL_NEIGHBOR_STATE
pub const NlnsUnreachable: i32 = 0;
pub const NlnsIncomplete: i32 = 1;
pub const NlnsProbe: i32 = 2;
pub const NlnsDelay: i32 = 3;
pub const NlnsStale: i32 = 4;
pub const NlnsReachable: i32 = 5;
pub const NlnsPermanent: i32 = 6;
pub const NlnsMaximum: i32 = 7;
// NL_NEIGHBOR_STATE
const (
	NlnsUnreachable int32 = 0
	NlnsIncomplete int32 = 1
	NlnsProbe int32 = 2
	NlnsDelay int32 = 3
	NlnsStale int32 = 4
	NlnsReachable int32 = 5
	NlnsPermanent int32 = 6
	NlnsMaximum int32 = 7
)
const
  NlnsUnreachable = 0;
  NlnsIncomplete = 1;
  NlnsProbe = 2;
  NlnsDelay = 3;
  NlnsStale = 4;
  NlnsReachable = 5;
  NlnsPermanent = 6;
  NlnsMaximum = 7;
// NL_NEIGHBOR_STATE
pub const NlnsUnreachable: i32 = 0;
pub const NlnsIncomplete: i32 = 1;
pub const NlnsProbe: i32 = 2;
pub const NlnsDelay: i32 = 3;
pub const NlnsStale: i32 = 4;
pub const NlnsReachable: i32 = 5;
pub const NlnsPermanent: i32 = 6;
pub const NlnsMaximum: i32 = 7;
const
  NlnsUnreachable* = 0
  NlnsIncomplete* = 1
  NlnsProbe* = 2
  NlnsDelay* = 3
  NlnsStale* = 4
  NlnsReachable* = 5
  NlnsPermanent* = 6
  NlnsMaximum* = 7
enum NL_NEIGHBOR_STATE : int {
    NlnsUnreachable = 0,
    NlnsIncomplete = 1,
    NlnsProbe = 2,
    NlnsDelay = 3,
    NlnsStale = 4,
    NlnsReachable = 5,
    NlnsPermanent = 6,
    NlnsMaximum = 7,
}
#define global NlnsUnreachable 0x0
#define global NlnsIncomplete  0x1
#define global NlnsProbe       0x2
#define global NlnsDelay       0x3
#define global NlnsStale       0x4
#define global NlnsReachable   0x5
#define global NlnsPermanent   0x6
#define global NlnsMaximum     0x7