nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

Os objetos desta classe representam endpoints de protocolo IP não instanciáveis.

Resumo

Herança

Herda de: nl::Inet::EndPointBasis
Subclasses conhecidas diretas:
  nl::Inet::RawEndPoint
  nl::Inet::UDPEndPoint

Tipos públicos

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
enum
Estado dinâmico básico do endpoint subjacente.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
enum
Transmitir flags de opção para o método SendMsg.
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) typedef
void(*
Tipo de função de manipulação do evento de recepção de texto de mensagem.
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Tipo de função de tratamento de eventos de erro de recepção.

Atributos públicos

OnMessageReceived
Delegado da função de manipulação de eventos de recepção de mensagens do endpoint.
OnReceiveError
O delegado da função de manipulação de eventos de erro de recebimento do endpoint.
mState
enum nl::Inet::IPEndPointBasis::@8
Estado dinâmico básico do endpoint subjacente.

Atributos protegidos

mBoundIntfId
InterfaceId

Funções públicas

JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Participe de um grupo de multicast de IP.
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Sair de um grupo multicast de IP.
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
Defina se o tráfego multicast IP precisa ser retornado.

Funções protegidas

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)

Funções estáticas públicas

FindNetifFromInterfaceId(InterfaceId aInterfaceId)
struct netif *

Funções estáticas protegidas

GetPacketInfo(Weave::System::PacketBuffer *buf)
Recebe informações de endereçamento de origem e destino da camada IP do LwIP.

Tipos públicos

@8

 @8

Estado dinâmico básico do endpoint subjacente.

Os objetos são inicializados no estado "pronto" estado, vá até o "limite" após a vinculação a um endereço de interface local e, em seguida, passe para a etapa estado quando têm continuações registradas para lidar com eventos para recebimento de mensagens ICMP.

Observação:a enumeração do estado kBasisState_Closed é mapeada para kState_Ready por motivos históricos de compatibilidade binária. O kState_Closed existe para identificar separadamente a distinção entre "ainda não aberto". e "anteriormente abertos fechado agora" que existiam anteriormente nos estados kState_Ready e kState_Closed.

Propriedades
kState_Bound

Endpoint vinculado, mas sem escutando.

kState_Closed

Endpoint fechado, pronto para lançamento.

kState_Listening

Endpoint que recebe datagramas.

kState_Ready

O endpoint foi inicializado, mas não abriu.

@9

 @9

Transmitir flags de opção para o método SendMsg.

Propriedades
kSendFlag_RetainBuffer

Não coloque a mensagem em fila de forma destrutiva diretamente.

Coloque uma cópia na fila.

OnMessageReceivedFunct

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

Tipo de função de manipulação do evento de recepção de texto de mensagem.

Forneça uma função desse tipo ao membro delegado do OnMessageReceived para processar eventos de recepção de texto de mensagem em endPoint, em que msg é o texto da mensagem recebido do remetente em senderAddr.

Detalhes
Parâmetros
[in] endPoint
O endpoint associado ao evento.
[in] msg
O texto da mensagem recebida.
[in] senderAddr
O endereço IP do remetente.

OnReceiveErrorFunct

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

Tipo de função de tratamento de eventos de erro de recepção.

Forneça uma função desse tipo ao membro delegado OnReceiveError para processar eventos de erro de recepção no endPoint. O argumento err fornece detalhes específicos sobre o tipo do erro.

Detalhes
Parâmetros
[in] endPoint
O endpoint associado ao evento.
[in] err
O motivo do erro.

Atributos públicos

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

Delegado da função de manipulação de eventos de recepção de mensagens do endpoint.

OnReceiveError

OnReceiveErrorFunct OnReceiveError

O delegado da função de manipulação de eventos de erro de recebimento do endpoint.

mState

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

Estado dinâmico básico do endpoint subjacente.

Os objetos são inicializados no estado "pronto" estado, vá até o "limite" após a vinculação a um endereço de interface local e, em seguida, passe para a etapa estado quando têm continuações registradas para lidar com eventos para recebimento de mensagens ICMP.

Observação:a enumeração do estado kBasisState_Closed é mapeada para kState_Ready por motivos históricos de compatibilidade binária. O kState_Closed existe para identificar separadamente a distinção entre "ainda não aberto". e "anteriormente abertos fechado agora" que existiam anteriormente nos estados kState_Ready e kState_Closed.

Atributos protegidos

mBoundIntfId

InterfaceId mBoundIntfId

Funções públicas

JoinMulticastGroup

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Participe de um grupo de multicast de IP.

Associe o endpoint ao grupo multicast fornecido na interface especificada.

Detalhes
Parâmetros
[in] aInterfaceId
o indicador da interface de rede para adicionar ao grupo multicast
[in] aAddress
o grupo multicast para adicionar a interface
Valores de retorno
INET_NO_ERROR
sucesso: grupo multicast removido
INET_ERROR_UNKNOWN_INTERFACE
interface de rede desconhecida, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress não é kIPAddressType_IPv4, kIPAddressType_IPv6 ou não é multicast
other
outro erro do sistema ou da plataforma

LeaveMulticastGroup

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Sair de um grupo multicast de IP.

Remove o endpoint do grupo multicast fornecido na interface especificada.

Detalhes
Parâmetros
[in] aInterfaceId
o indicador da interface de rede a ser removida do grupo multicast
[in] aAddress
do grupo multicast para remover a interface
Valores de retorno
INET_NO_ERROR
sucesso: grupo multicast removido
INET_ERROR_UNKNOWN_INTERFACE
interface de rede desconhecida, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress não é kIPAddressType_IPv4, kIPAddressType_IPv6 ou não é multicast
other
outro erro do sistema ou da plataforma

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

Defina se o tráfego multicast IP precisa ser retornado.

Defina se o tráfego multicast IP precisa ser retornado ou não para esse endpoint.

Detalhes
Parâmetros
[in] aIPVersion
[in] aLoop
Valores de retorno
INET_NO_ERROR
sucesso: comportamento de loopback multicast definido
other
outro erro do sistema ou da plataforma

Funções protegidas

Vincular

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
)

Funções estáticas públicas

FindNetifFromInterfaceId

struct netif * FindNetifFromInterfaceId(
  InterfaceId aInterfaceId
)

Funções estáticas protegidas

GetPacketInfo

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

Recebe informações de endereçamento de origem e destino da camada IP do LwIP.

Quando o LwIP é usado, as informações sobre o pacote ficam "ocultas" no espaço reservado antes do início dos dados no buffer de pacote. Isso é necessário porque os eventos da camada do sistema têm apenas dois argumentos, que, nesse caso, são usados para transmitir o ponteiro para o ponto final e o ponteiro para o buffer.

Detalhes
Parâmetros
[in] aBuffer
o buffer de pacote que contém a mensagem IP
Retornos
um ponteiro para as informações de endereço em caso de sucesso; Caso contrário, NULL se não houver espaço suficiente no pacote para as informações de endereço.

Na maioria dos casos, esse truque de armazenar informações antes de os dados funcionar porque o primeiro buffer em uma mensagem IP LwIP contém o espaço que foi usado para os cabeçalhos Ethernet/IP/UDP. No entanto, devido ao tamanho atual da estrutura IPPacketInfo (40 bytes), é possível que não haja espaço suficiente para armazenar a estrutura com o payload em um único buffer de pacote. Na prática, isso só deve acontecer com pacotes IPv4 extremamente grandes que chegam sem um cabeçalho Ethernet.