nl::Inet

概要

列挙型

@7{
  kInetEvent_TCPConnectComplete = _INET_CONFIG_EVENT(0),
  kInetEvent_TCPConnectionReceived = _INET_CONFIG_EVENT(1),
  kInetEvent_TCPDataReceived = _INET_CONFIG_EVENT(2),
  kInetEvent_TCPDataSent = _INET_CONFIG_EVENT(3),
  kInetEvent_TCPError = _INET_CONFIG_EVENT(4),
  kInetEvent_UDPDataReceived = _INET_CONFIG_EVENT(5),
  kInetEvent_DNSResolveComplete = _INET_CONFIG_EVENT(6),
  kInetEvent_TunDataReceived = _INET_CONFIG_EVENT(7),
  kInetEvent_RawDataReceived = _INET_CONFIG_EVENT(8)
}
enum
Inet レイヤのイベントタイプの定義。
DNSOptions{
  kDNSOption_AddrFamily_Mask = 0x07,
  kDNSOption_Flags_Mask = 0xF8,
  kDNSOption_AddrFamily_Any = 0x00,
  kDNSOption_AddrFamily_IPv4Only = 0x01,
  kDNSOption_AddrFamily_IPv4Preferred = 0x02,
  kDNSOption_AddrFamily_IPv6Only = 0x03,
  kDNSOption_AddrFamily_IPv6Preferred = 0x04,
  kDNSOption_ValidFlags = 0
}
enum
IP アドレスの解決方法を制御するオプション。
IPAddressType{
  kIPAddressType_Unknown = 0,
  kIPAddressType_IPv4 = 1,
  kIPAddressType_IPv6 = 2,
  kIPAddressType_Any = 3
}
enum
インターネット プロトコル アドレス ファミリー。
IPProtocol{
  kIPProtocol_ICMPv6 = 58,
  kIPProtocol_ICMPv4 = 1
}
enum
IP ファミリーの一部のプロトコルの番号。
IPV6MulticastGroup{
  kIPV6MulticastGroup_AllRouters = 2
}
enum
インターネット プロトコル マルチキャスト グループ識別子。
IPVersion{
  kIPVersion_6 = 6,
  kIPVersion_4 = 4
}
enum
使用されている IP プロトコルのバージョン。
IPv6MulticastFlag{
  kIPv6MulticastFlag_Transient = 0x01,
  kIPv6MulticastFlag_Prefix = 0x02
}
enum
インターネット プロトコル v6 マルチキャスト フラグ。
IPv6MulticastScope{
  kIPv6MulticastScope_Interface = 1,
  kIPv6MulticastScope_Link = 2,
  kIPv6MulticastScope_IPv4 = 3,
  kIPv6MulticastScope_Admin = 4,
  kIPv6MulticastScope_Site = 5,
  kIPv6MulticastScope_Organization = 8,
  kIPv6MulticastScope_Global = 14
}
enum
インターネット プロトコル マルチキャスト アドレスのスコープ。

Typedef

InterfaceId typedef
struct netif *
システム ネットワーク インターフェースのインジケーター。

変数

sIOCTLSocket = -1
int

関数

CheckMulticastGroupArgs(InterfaceId aInterfaceId, const IPAddress & aAddress)
CloseIOCTLSocket(void)
void
GetIOCTLSocket によって作成されたグローバル ソケットを閉じます。
FormatInetLayerError(char *buf, uint16_t bufSize, int32_t err)
bool
Inet Layer エラーが発生した場合、人が読める形式の NULL 終端の C 文字列を返します。
GetIOCTLSocket(void)
int
特定のネットワーク IOCTL の呼び出しに役立つグローバルな汎用ソケットを返します。
GetInterfaceName(InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
ネットワーク インターフェースの名前を取得します。
INET_IsInetEvent(Weave::System::EventType aType)
bool
System::EventType が有効な Inet レイヤイベントタイプであるかどうかを確認します。
InterfaceNameToId(const char *intfName, InterfaceId & intfId)
NL_DLL_EXPORT INET_ERROR
ネットワーク インターフェースのリストで、指定された名前を検索します。
LwIPBindInterface(struct raw_pcb *aRaw, InterfaceId intfId)
LwIPBindInterface(struct udp_pcb *aUDP, InterfaceId intfId)
NetmaskToPrefixLength(const uint8_t *netmask, uint16_t netmaskLen)
uint8_t
可変長のネットマスクからプレフィックス長を計算します。
ParseHostAndPort(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort)
ホストまたは IP アドレスとオプションのポート番号(「:」で区切られたもの)を含む、人が読める形式の文字列を解析します。以下の形式に対応しています。
ParseHostPortAndInterface(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort, const char *& aInterface, uint16_t & aInterfaceLen)
ホストまたは IP アドレス、オプションのポート番号(「:」で区切られたもの)、オプションのインターフェース名(「'」で区切られたもの)を含む、人が読める形式の文字列を解析します。以下の形式に対応しています。
RegisterInetLayerErrorFormatter(void)
void
Inet レイヤエラーのテキストエラー フォーマッタを登録します。
SocketsIPv4JoinLeaveMulticastGroup(int aSocket, InterfaceId aInterfaceId, const IPAddress & aAddress, int aCommand)
SocketsIPv6JoinLeaveMulticastGroup(int aSocket, InterfaceId aInterfaceId, const IPAddress & aAddress, int aCommand)
SocketsSetMulticastLoopback(int aSocket, bool aLoopback, int aProtocol, int aOption)
SocketsSetMulticastLoopback(int aSocket, IPVersion aIPVersion, bool aLoopback)

クラス

nl::Inet::AsyncDNSResolverSockets

これは InetLayer の内部クラスで、InetLayer で非同期ドメイン ネーム システム(DNS)を解決するためのヘルパー API を提供します。

nl::Inet::DNSResolver

これは、InetLayer でドメイン ネーム システム(DNS)解決を抽象化する、InetLayer の内部クラスです。

nl::Inet::EndPointBasis

インターネット トランスポート エンドポイント クラスのベース。

nl::Inet::IPAddress

インターネット プロトコル アドレス。

nl::Inet::IPEndPointBasis

このクラスのオブジェクトは、インスタンス化できない IP プロトコル エンドポイントを表します。

nl::Inet::IPPacketInfo

メッセージや接続の着信 / 発信に関する情報。

nl::Inet::IPPrefix

インターネット プロトコル アドレスの接頭辞。

nl::Inet::InetLayer

これにより、タイマー、ドメイン ネーム システム(DNS)解決、TCP ネットワーク トランスポート、UDP ネットワーク トランスポート、生のネットワーク トランスポートなどのインターネット サービスを 1 つのスレッドでアクセスできるようになります。

nl::Inet::InetLayerBasis

これは、InetLayer オブジェクトによって管理される参照カウントオブジェクトの基本クラスです。

nl::Inet::InterfaceAddressIterator

システム ネットワーク インターフェース IP アドレスのリストのイテレータ。

nl::Inet::InterfaceIterator

システム ネットワーク インターフェースのリストのイテレータ。

nl::Inet::RawEndPoint

このクラスのオブジェクトは、未加工の IP ネットワーク エンドポイントを表します。

nl::Inet::SocketEvents

ソケットでリクエスト済み/保留中の I/O イベントのセットを表します。

nl::Inet::TCPEndPoint

このクラスのオブジェクトは、TCP トランスポート エンドポイントを表します。

nl::Inet::TunEndPoint

このクラスのオブジェクトはトンネル インターフェースを表します。

nl::Inet::UDPEndPoint

このクラスのオブジェクトは、UDP トランスポート エンドポイントを表します。

共用体

nl::Inet::PeerSockAddr

名前空間

nl::Inet::Platform

列挙型

@7

 @7

Inet レイヤのイベントタイプの定義。

プロパティ
kInetEvent_DNSResolveComplete

DNS 名前解決完了のイベント。

kInetEvent_RawDataReceived

InetLayer 未加工エンドポイントを介したデータ受信のイベント。

kInetEvent_TCPConnectComplete

TCP 接続完了のイベント。

kInetEvent_TCPConnectionReceived

TCP 接続の受信イベント。

kInetEvent_TCPDataReceived

TCP 接続を介したデータ受信のイベント。

kInetEvent_TCPDataSent

TCP 接続を介したデータ転送のイベント。

kInetEvent_TCPError

TCP 接続のエラーのイベント。

kInetEvent_TunDataReceived

Weave トンネルを介したデータ受信のイベント。

kInetEvent_UDPDataReceived

UDP を介したデータ受信のイベント。

DNSOptions

 DNSOptions

IP アドレスの解決方法を制御するオプション。

プロパティ
kDNSOption_AddrFamily_Any

ネームサーバーから返された順序で IPv4 アドレスまたは IPv6 アドレス、あるいはその両方を返します。

kDNSOption_AddrFamily_IPv4Only

IPv4 アドレスのみを返します。

kDNSOption_AddrFamily_IPv4Preferred

IPv4 および/または IPv6 アドレスを、最初に IPv4 アドレスから返します。

kDNSOption_AddrFamily_IPv6Only

IPv6 アドレスのみを返します。

kDNSOption_AddrFamily_IPv6Preferred

IPv4 および/または IPv6 アドレスを、IPv6 アドレスを最初に返します。

kDNSOption_AddrFamily_Mask

目的のアドレス ファミリーを表す DNSOptions 整数値内のビット。

kDNSOption_Flags_Mask

フラグ用に予約されている DNSOptions 整数値内のビット。

kDNSOption_ValidFlags

すべての有効な DNSOption フラグのセット。

IPAddressType

 IPAddressType

インターネット プロトコル アドレス ファミリー。

IPAddressType 型の値は、IPAddress::Type() メソッドによって返されます。これらのアドレスは、そのアドレスの使用に伴うアドレス ファミリーを示します。

プロパティ
kIPAddressType_Any

未指定のインターネット アドレス(プロトコルのバージョンは問わない)

kIPAddressType_IPv4

インターネット プロトコル バージョン 4。

kIPAddressType_IPv6

インターネット プロトコル バージョン 6。

kIPAddressType_Unknown

使用されません。

IPProtocol

 IPProtocol

IP ファミリーの一部のプロトコルの番号。

プロパティ
kIPProtocol_ICMPv4

ICMPv4

kIPProtocol_ICMPv6

ICMPv6。

IPV6MulticastGroup

 IPV6MulticastGroup

インターネット プロトコル マルチキャスト グループ識別子。

IPV6MulticastGroup 型の値は、IPAddress::MakeIPv6Multicast() メソッドを呼び出すために使用されます。これらは、IETF によって IANA に登録された識別グループ識別子を示します。

プロパティ
kIPV6MulticastGroup_AllRouters

RFC 4291。

IPVersion

 IPVersion

使用されている IP プロトコルのバージョン。

プロパティ
kIPVersion_4

IPv4:

kIPVersion_6

IPv6:

IPv6MulticastFlag

 IPv6MulticastFlag

インターネット プロトコル v6 マルチキャスト フラグ。

IPv6MulticastFlag 型の値は、IPAddress::MakeIPv6Multicast() メソッドを呼び出すために使用されます。これらは、作成する IPv6 マルチキャスト アドレスのタイプを示します。これらの番号は IETF によって IANA に登録されています。

プロパティ
kIPv6MulticastFlag_Prefix

マルチキャスト アドレスはネットワーク接頭辞に基づく(1)です。

kIPv6MulticastFlag_Transient

マルチキャスト アドレスは、(0)well-known(IANA で割り当て)ではなく、(1)一時的なもの(つまり動的に割り当てられる)です。

IPv6MulticastScope

 IPv6MulticastScope

インターネット プロトコル マルチキャスト アドレスのスコープ。

IPv6MulticastScope 型の値は、IPAddress::MakeIPv6Multicast() メソッドを呼び出すために使用されます。結果で指定されたマルチキャスト グループのルーティング可能な範囲を示します。これらの番号は IETF によって IANA に登録されています。

プロパティ
kIPv6MulticastScope_Admin

レルム ローカル スコープ。

kIPv6MulticastScope_Global

グローバル スコープ。

kIPv6MulticastScope_IPv4

レルムローカル(「IPv4」)スコープ。

kIPv6MulticastScope_Interface

インターフェース ローカル スコープ。

kIPv6MulticastScope_Link

リンクローカル スコープ。

kIPv6MulticastScope_Organization

組織のローカル スコープ。

kIPv6MulticastScope_Site

レルム ローカル スコープ。

Typedef

InterfaceId

struct netif * InterfaceId

システム ネットワーク インターフェースのインジケーター。

ポータビリティは、このエイリアスを監視しないことを前提とします。将来、コンクリート不透明クラスに置き換えられる可能性があります。

「インターフェース識別子」という用語はは、関連するすべての IETF 標準ドキュメントにおける IPv6 アドレスの下位 64 ビットのことを指します。「IID」という略語は、よく使用されます。ここでは「インターフェース インジケーター」という用語をこの型のエイリアスの値を参照します。

変数

sIOCTLSocket

int sIOCTLSocket = -1

関数

CheckMulticastGroupArgs

INET_ERROR CheckMulticastGroupArgs(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

CloseIOCTLSocket

void CloseIOCTLSocket(
  void
)

GetIOCTLSocket によって作成されたグローバル ソケットを閉じます。

この関数は、グローバル IOCTL ソケットを開いたままにしておくとリークとして登録されます。

注: この関数は GetIOCTLSocket に関してスレッドセーフではありません。

FormatInetLayerError

bool FormatInetLayerError(
  char *buf,
  uint16_t bufSize,
  int32_t err
)

Inet Layer エラーが発生した場合、人が読める形式の NULL 終端の C 文字列を返します。

詳細
パラメータ
[in] buf
エラー文字列を格納するバッファ。
[in] bufSize
指定されたバッファのサイズ(バイト単位)。
[in] err
説明するエラー。
戻り値
指定されたバッファに説明文字列が書き込まれた場合は true。
戻り値
指定されたエラーが Inet レイヤのエラーではなかった場合は false。

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

特定のネットワーク IOCTL の呼び出しに役立つグローバルな汎用ソケットを返します。

この関数は、すべてのプラットフォームでスレッドセーフです。

GetInterfaceName

NL_DLL_EXPORT INET_ERROR GetInterfaceName(
  InterfaceId intfId,
  char *nameBuf,
  size_t nameBufSize
)

ネットワーク インターフェースの名前を取得します。

Writes the name of the network interface as \c NUL terminated text string
at \c nameBuf. The name of the unspecified network interface is the empty
string.

詳細
パラメータ
[in] intfId
ネットワークインターフェースを
[in] nameBuf
インターフェース名を書き込みます。
[in] nameBufSize
nameBuf で示されるリージョンのサイズ
戻り値
INET_NO_ERROR
成功の結果、インターフェース名の書き込み
INET_ERROR_NO_MEMORY
名前が大きすぎてバッファに書き込めません
other
別のシステムエラーまたはプラットフォーム エラー

INET_IsInetEvent

bool INET_IsInetEvent(
  Weave::System::EventType aType
)

System::EventType が有効な Inet レイヤイベントタイプであるかどうかを確認します。

詳細
パラメータ
[in] aType
Weave システム レイヤのイベントタイプ。
戻り値
列挙範囲内にあれば true、それ以外の場合は false です。

InterfaceNameToId

NL_DLL_EXPORT INET_ERROR InterfaceNameToId(
  const char *intfName,
  InterfaceId & intfId
)

ネットワーク インターフェースのリストで、指定された名前を検索します。

On LwIP, this function must be called with the LwIP stack lock acquired.

The \c intfId parameter is not updated unless the value returned is
\c INET_NO_ERROR. It should be initialized with \c INET_NULL_INTERFACEID
before calling this function.

詳細
パラメータ
[in] intfName
検索するネットワーク インターフェースの名前
[out] intfId
割り当てるネットワーク インターフェースの
戻り値
INET_NO_ERROR
成功すると、ネットワーク インターフェースが
INET_ERROR_UNKNOWN_INTERFACE
ネットワーク インターフェースが見つかりません
other
別のシステムエラーまたはプラットフォーム エラー

LwIPBindInterface

INET_ERROR LwIPBindInterface(
  struct raw_pcb *aRaw,
  InterfaceId intfId
)

LwIPBindInterface

INET_ERROR LwIPBindInterface(
  struct udp_pcb *aUDP,
  InterfaceId intfId
)

NetmaskToPrefixLength

uint8_t NetmaskToPrefixLength(
  const uint8_t *netmask,
  uint16_t netmaskLen
)

可変長のネットマスクからプレフィックス長を計算します。

ParseHostAndPort

INET_ERROR ParseHostAndPort(
  const char *aString,
  uint16_t aStringLen,
  const char *& aHost,
  uint16_t & aHostLen,
  uint16_t & aPort
)

ホストまたは IP アドレスとオプションのポート番号(「:」で区切られたもの)を含む、人が読める形式の文字列を解析します。以下の形式に対応しています。

  • :
  • :
  • []:

詳細
パラメータ
[in] aString
解析する文字列。人間が理解できます。
[in] aStringLen
aString の長さ(文字数)。
[out] aHost
解析された文字列のホスト名部分へのポインタ。
[out] aHostLen
aHost の長さ(文字数)。
[out] aPort
ポート番号(存在する場合)それ以外の場合は 0 です。
戻り値
INET_ERROR_INVALID_HOST_NAME: 解析する入力の長さがゼロであるか、不正な形式である場合。
戻り値
INET_ERROR_HOST_NAME_TOO_LONG: ホスト名が 253 文字を超える場合。
戻り値
INET_NO_ERROR: 成功時。

ParseHostPortAndInterface

INET_ERROR ParseHostPortAndInterface(
  const char *aString,
  uint16_t aStringLen,
  const char *& aHost,
  uint16_t & aHostLen,
  uint16_t & aPort,
  const char *& aInterface,
  uint16_t & aInterfaceLen
)

ホストまたは IP アドレス、オプションのポート番号(「:」で区切られたもの)、オプションのインターフェース名(「'」で区切られたもの)を含む、人が読める形式の文字列を解析します。以下の形式に対応しています。

  • %
  • :
  • :%
  • %
  • :
  • :%
  • %
  • []:
  • []:%

詳細
パラメータ
[in] aString
解析する文字列。人間が理解できます。
[in] aStringLen
aString の長さ(文字数)。
[out] aHost
解析された文字列のホスト名部分へのポインタ。
[out] aHostLen
aHost の長さ(文字数)。
[out] aPort
ポート番号(存在する場合)それ以外の場合は 0 です。
[out] aInterface
解析された文字列のインターフェース部分へのポインタ。
[out] aInterfaceLen
aInterface の長さ(文字数)。
戻り値
INET_ERROR_INVALID_HOST_NAME: 解析する入力が長さがゼロであるか、形式が正しくない場合。
戻り値
INET_ERROR_HOST_NAME_TOO_LONG: ホスト名が 253 文字を超える場合。
戻り値
INET_NO_ERROR: 成功時。

RegisterInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

Inet レイヤエラーのテキストエラー フォーマッタを登録します。

SocketsIPv4JoinLeaveMulticastGroup

INET_ERROR SocketsIPv4JoinLeaveMulticastGroup(
  int aSocket,
  InterfaceId aInterfaceId,
  const IPAddress & aAddress,
  int aCommand
)

SocketsIPv6JoinLeaveMulticastGroup

INET_ERROR SocketsIPv6JoinLeaveMulticastGroup(
  int aSocket,
  InterfaceId aInterfaceId,
  const IPAddress & aAddress,
  int aCommand
)

SocketsSetMulticastLoopback

INET_ERROR SocketsSetMulticastLoopback(
  int aSocket,
  bool aLoopback,
  int aProtocol,
  int aOption
)

SocketsSetMulticastLoopback

INET_ERROR SocketsSetMulticastLoopback(
  int aSocket,
  IPVersion aIPVersion,
  bool aLoopback
)