nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

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

概要

継承

継承元: nl::Inet::EndPointBasis
直系の既知のサブクラス:
  nl::Inet::RawEndPoint
  nl::Inet::UDPEndPoint

公開タイプ

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
enum
基盤となるエンドポイントの基本的な動的状態。
@9{
  kSendFlag_RetainBuffer = 0x0040
}
enum
SendMsg メソッドのオプション フラグを送信します。
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) typedef
void(*
メッセージ テキスト受信イベント処理関数のタイプ。
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
受信エラーイベント処理関数の型。

パブリック属性

OnMessageReceived
エンドポイントのメッセージ受信イベント処理関数のデリゲート。
OnReceiveError
エンドポイントの受信エラー イベント処理関数のデリゲート。
mState
enum nl::Inet::IPEndPointBasis::@8
基盤となるエンドポイントの基本的な動的状態。

プロテクト属性

mBoundIntfId
InterfaceId

パブリック関数

JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
IP マルチキャスト グループに参加します。
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
IP マルチキャスト グループから退会する。
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
IP マルチキャスト トラフィックをループバックするかどうかを設定します。

プロテクト関数

Bind(IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId)
BindInterface(IPAddressType aAddressType, InterfaceId aInterfaceId)
GetSocket(IPAddressType aAddressType, int aType, int aProtocol)
HandleDataReceived(Weave::System::PacketBuffer *aBuffer)
void
HandlePendingIO(uint16_t aPort)
void
Init(InetLayer *aInetLayer)
void
PrepareIO(void)
SendMsg(const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags)

静的パブリック関数

FindNetifFromInterfaceId(InterfaceId aInterfaceId)
struct netif *

保護された静的関数

GetPacketInfo(Weave::System::PacketBuffer *buf)
LwIP IP レイヤの送信元と宛先のアドレス情報を取得します。

公開タイプ

@8

 @8

基盤となるエンドポイントの基本的な動的状態。

オブジェクトは、準備完了状態で初期化され、「境界」状態にある状態を状態をローカル インターフェース アドレスにバインドした後、「リスニング」に進みます。ICMP メッセージ受信のイベントを処理するための継続が登録されている場合に、この状態に維持します。

注: kBasisState_Closed 状態の列挙型は、バイナリ互換性の過去の理由から kState_Ready にマッピングされています。既存の kState_Closed は、「まだ開いていません」との区別を区別するために存在します。および「 営業終了」以前の kState_Ready 状態と kState_Closed 状態に存在していた新しい UDM 値を返します。

プロパティ
kState_Bound

エンドポイントにバインドされていますが、リッスンしていません。

kState_Closed

エンドポイントが閉じ、リリースの準備ができました。

kState_Listening

データグラムを受信するエンドポイント。

kState_Ready

エンドポイントは初期化されましたが、開いていません。

@9

 @9

SendMsg メソッドのオプション フラグを送信します。

プロパティ
kSendFlag_RetainBuffer

破棄のためにメッセージを直接キューに入れないでください。

コピーをキューに追加します。

OnMessageReceivedFunct

void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)

メッセージ テキスト受信イベント処理関数のタイプ。

この型の関数を OnMessageReceived 委任メンバーに提供して、endPoint のメッセージ テキスト受信イベントを処理します。ここで、msg は、senderAddr の送信者から受信したメッセージ テキストです。

詳細
パラメータ
[in] endPoint
イベントに関連付けられたエンドポイント。
[in] msg
受信したメッセージ テキストです。
[in] senderAddr
送信者の IP アドレス。

OnReceiveErrorFunct

void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)

受信エラーイベント処理関数の型。

このタイプの関数を OnReceiveError 委任メンバーに提供して、endPoint での受信エラーイベントを処理します。err 引数は、エラーのタイプに関する詳細情報を提供します。

詳細
パラメータ
[in] endPoint
イベントに関連付けられたエンドポイント。
[in] err
エラーの理由。

パブリック属性

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

エンドポイントのメッセージ受信イベント処理関数のデリゲート。

OnReceiveError

OnReceiveErrorFunct OnReceiveError

エンドポイントの受信エラー イベント処理関数のデリゲート。

mState

enum nl::Inet::IPEndPointBasis::@8 mState

基盤となるエンドポイントの基本的な動的状態。

オブジェクトは、準備完了状態で初期化され、「境界」状態にある状態を状態をローカル インターフェース アドレスにバインドした後、「リスニング」に進みます。ICMP メッセージ受信のイベントを処理するための継続が登録されている場合に、この状態に維持します。

注: kBasisState_Closed 状態の列挙型は、バイナリ互換性の過去の理由から kState_Ready にマッピングされています。既存の kState_Closed は、「まだ開いていません」との区別を区別するために存在します。および「 営業終了」以前の kState_Ready 状態と kState_Closed 状態に存在していた新しい UDM 値を返します。

プロテクト属性

mBoundIntfId

InterfaceId mBoundIntfId

パブリック関数

JoinMulticastGroup

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

IP マルチキャスト グループに参加します。

指定されたインターフェースで、指定されたマルチキャスト グループにエンドポイントを参加させます。

詳細
パラメータ
[in] aInterfaceId
マルチキャスト グループに追加するネットワーク インターフェースのインジケーター
[in] aAddress
インターフェースを追加するマルチキャスト グループ
戻り値
INET_NO_ERROR
成功: マルチキャスト グループが削除されました
INET_ERROR_UNKNOWN_INTERFACE
不明なネットワーク インターフェース、aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddresskIPAddressType_IPv4 または kIPAddressType_IPv6 でないか、マルチキャストではありません
other
別のシステムエラーまたはプラットフォーム エラー

LeaveMulticastGroup

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

IP マルチキャスト グループから退会する。

指定されたインターフェース上の指定されたマルチキャスト グループからエンドポイントを削除します。

詳細
パラメータ
[in] aInterfaceId
マルチキャスト グループから削除するネットワーク インターフェースのインジケーター
[in] aAddress
インターフェースを削除するマルチキャスト グループ
戻り値
INET_NO_ERROR
成功: マルチキャスト グループが削除されました
INET_ERROR_UNKNOWN_INTERFACE
不明なネットワーク インターフェース、aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddresskIPAddressType_IPv4 または kIPAddressType_IPv6 でないか、マルチキャストではありません
other
別のシステムエラーまたはプラットフォーム エラー

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

IP マルチキャスト トラフィックをループバックするかどうかを設定します。

IP マルチキャスト トラフィックをこのエンドポイントにループバックするかどうかを設定します。

詳細
パラメータ
[in] aIPVersion
[in] aLoop
戻り値
INET_NO_ERROR
成功: マルチキャスト ループバック動作セット
other
別のシステムエラーまたはプラットフォーム エラー

プロテクト関数

バインド

INET_ERROR Bind(
  IPAddressType aAddressType,
  IPAddress aAddress,
  uint16_t aPort,
  InterfaceId aInterfaceId
)

BindInterface

INET_ERROR BindInterface(
  IPAddressType aAddressType,
  InterfaceId aInterfaceId
)

GetSocket

INET_ERROR GetSocket(
  IPAddressType aAddressType,
  int aType,
  int aProtocol
)

HandleDataReceived

void HandleDataReceived(
  Weave::System::PacketBuffer *aBuffer
)

HandlePendingIO

void HandlePendingIO(
  uint16_t aPort
)

init

void Init(
  InetLayer *aInetLayer
)

PrepareIO

SocketEvents PrepareIO(
  void
)

SendMsg

INET_ERROR SendMsg(
  const IPPacketInfo *aPktInfo,
  Weave::System::PacketBuffer *aBuffer,
  uint16_t aSendFlags
)

静的パブリック関数

FindNetifFromInterfaceId

struct netif * FindNetifFromInterfaceId(
  InterfaceId aInterfaceId
)

保護された静的関数

GetPacketInfo

IPPacketInfo * GetPacketInfo(
  Weave::System::PacketBuffer *buf
)

LwIP IP レイヤの送信元と宛先のアドレス情報を取得します。

LwIP を使用すると、パケットに関する情報が「非表示」になるバッファ内のデータ開始前に確保された領域に書き込まれます。これが必要になるのは、システムレイヤ イベントには引数が 2 つしかないためです。この例では、ポインタをエンドポイントに、バッファにポインタを伝えるために使用されます。

詳細
パラメータ
[in] aBuffer
IP メッセージを含むパケット バッファ
戻り値
成功時のアドレス情報へのポインタそうでない場合は NULL を返します。

ほとんどの場合、LwIP IP メッセージの最初のバッファに Ethernet/IP/UDP ヘッダーに使用されたスペースが含まれているため、データが機能する前に情報を保存する技法があります。ただし、IPPacketInfo 構造の現在のサイズ(40 バイト)では、単一のパケット バッファに構造をペイロードとともに格納するのに十分なスペースがない可能性もあります。実際には、これはイーサネット ヘッダーなしで到着した非常に大きな IPv4 パケットに対してのみ発生します。