nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

Os objetos dessa classe representam endpoints do 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 manipulação de eventos de erro de recepção.

Atributos públicos

OnMessageReceived
O delegado da função de processamento de eventos de recepção de mensagens do endpoint.
OnReceiveError
O delegado da função de processamento de eventos de erro do endpoint recebe.
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 IPs.
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Sair de um grupo multicast de IP.
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
Define se o tráfego multicast IP será repetido.

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 de IP LwIP.

Tipos públicos

@8

 @8

Estado dinâmico básico do endpoint subjacente.

Os objetos são inicializados no estado "ready", prosseguem para o estado "vinculado" após a vinculação a um endereço de interface local e, em seguida, prosseguem para o estado "listener" quando tiverem continuações registradas para manipular eventos de recebimento de mensagens ICMP.

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

Propriedades
kState_Bound

Endpoint vinculado, mas sem detecção.

kState_Closed

Endpoint fechado, pronto para lançamento.

kState_Listening

Endpoint que recebe datagramas.

kState_Ready

O endpoint foi inicializado, mas não está aberto.

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.

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 OnMessageReceived para processar eventos de recebimento de texto de mensagem no 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 manipulação 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 em 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

O delegado da função de processamento de eventos de recepção de mensagens do endpoint.

OnReceiveError

OnReceiveErrorFunct OnReceiveError

O delegado da função de processamento de eventos de erro do endpoint recebe.

mState

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

Estado dinâmico básico do endpoint subjacente.

Os objetos são inicializados no estado "ready", prosseguem para o estado "vinculado" após a vinculação a um endereço de interface local e, em seguida, prosseguem para o estado "listener" quando tiverem continuações registradas para manipular eventos de recebimento de mensagens ICMP.

Observação:a enumeração de estado kBasisState_Closed é mapeada para kState_Ready por motivos históricos de compatibilidade binária. O kState_Closed existente existe para identificar separadamente a distinção entre "ainda não aberto" e "aberto anteriormente, agora fechado", que existia 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 IPs.

Participe do endpoint do grupo de 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 de multicast para adicionar a interface
Valores de retorno
INET_NO_ERROR
sucesso: grupo de 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 de sistema ou plataforma

LeaveMulticastGroup

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Sair de um grupo multicast de IP.

Remova o endpoint do grupo de multicast fornecido na interface especificada.

Detalhes
Parâmetros
[in] aInterfaceId
o indicador da interface de rede a ser removido do grupo de multicast
[in] aAddress
o grupo de multicast para remover a interface
Valores de retorno
INET_NO_ERROR
sucesso: grupo de 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 de sistema ou plataforma

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

Define se o tráfego multicast IP será repetido.

Defina se o tráfego multicast IP deve 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 de multicast definido
other
outro erro de sistema ou 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 de IP LwIP.

Ao usar informações de LwIP sobre o pacote, ele fica "oculto" 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
Retorna
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 dos dados funciona porque o primeiro buffer em uma mensagem IP LwIP contém o espaço usado para os cabeçalhos Ethernet/IP/UDP. No entanto, dado o 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ó acontece com pacotes IPv4 muito grandes que chegam sem um cabeçalho Ethernet.