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 Layer エラーのテキストエラー フォーマッタを登録します。
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 の内部クラスで、InetLayer でドメイン ネーム システム(DNS)の解決を抽象化します。

nl::Inet::EndPointBasis

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

nl::Inet::IPAddress

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

nl::Inet::IPEndPointBasis

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

nl::Inet::IPPacketInfo

受信 / 送信メッセージや接続に関する情報。

nl::Inet::IPPrefix

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

nl::Inet::InetLayer

これにより、タイマー、ドメイン ネーム システム(DNS)の解決、TCP ネットワーク トランスポート、UDP ネットワーク トランスポート、raw ネットワーク トランスポートなど、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

Namespace

nl::Inet::Platform

列挙型

@7

 @7

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

プロパティ
kInetEvent_DNSResolveComplete

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

kInetEvent_RawDataReceived

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

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
説明するエラー。
戻り値
指定されたバッファに description 文字列が書き込まれた場合は true。
戻り値
false - 提供されたエラーが Inet Layer エラーではなかった場合。

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
Interface の長さ(文字数)。
戻り値
INET_ERROR_INVALID_HOST_NAME 解析する入力の長さがゼロであるか、形式が正しくない場合。
戻り値
INET_ERROR_HOST_NAME_TOO_LONG ホスト名が 253 文字を超えている場合。
戻り値
INET_NO_ERROR 成功の場合。

RegisterInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

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

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
)