O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

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:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint

Tipos públicos

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
tipo enumerado
Estado dinâmico básico do endpoint subjacente.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
tipo enumerado
Transmite as sinalizações 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 de eventos de recepção de texto da 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 recepção de mensagem do endpoint.
OnReceiveError
Os endpoints recebem a função de manipulação dos eventos de erro.
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)
Participar de um grupo de multicast de IP.
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Saia de um grupo de multicast de IP.
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
Define se o tráfego multicast de IP deve 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)
Consiga informações sobre a origem e o endereçamento 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 "quot;ready", seguem para o estado "bound" após a vinculação com um endereço de interface local, e avançam para o estado "listening&; quando eles têm continuaçãos registradas para processar eventos de recepção de mensagens ICMP.

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

Transmite as sinalizações de opção para o método SendMsg.

Propriedades
kSendFlag_RetainBuffer

Não adicione a mensagem 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 de eventos de recepção de texto da mensagem.

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

Detalhes
Parâmetros
[in] endPoint
Endpoint associado ao evento.
[in] msg
A mensagem de texto 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 de erro.

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

Atributos públicos

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

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

OnReceiveError

OnReceiveErrorFunct OnReceiveError

Os endpoints recebem a função de manipulação dos eventos de erro.

mState

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

Estado dinâmico básico do endpoint subjacente.

Os objetos são inicializados no estado "quot;ready", seguem para o estado "bound" após a vinculação com um endereço de interface local, e avançam para o estado "listening&; quando eles têm continuaçãos registradas para processar eventos de recepção de mensagens ICMP.

Observação: a enumeração de estado kBasisState_Closed é mapeada para kState_Ready por um motivo histórico de compatibilidade binária. O kState_Closed já existe para identificar separadamente a distinção entre "não aberto ainda" e "aberto anteriormente" agora fechado e 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
)

Participar de um grupo de multicast de IP.

Juntar o endpoint ao grupo de multicast fornecido na interface especificada.

Detalhes
Parâmetros
[in] aInterfaceId
o indicador da interface de rede a ser adicionada ao grupo multicast
[in] aAddress
o grupo multicast a que a interface será adicionada
Valores de retorno
INET_NO_ERROR
com sucesso: grupo de multicast removido
INET_ERROR_UNKNOWN_INTERFACE
Interface de rede desconhecida: aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress não é kIPAddressType_IPv4 ou kIPAddressType_IPv6 ou não é multicast
other
outro sistema ou erro de plataforma

Deixar várioscastcast

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Saia de um grupo de 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
o grupo multicast para remover a interface de
Valores de retorno
INET_NO_ERROR
com sucesso: grupo de multicast removido
INET_ERROR_UNKNOWN_INTERFACE
Interface de rede desconhecida: aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress não é kIPAddressType_IPv4 ou kIPAddressType_IPv6 ou não é multicast
other
outro sistema ou erro de plataforma

SetMulticastLoopback.

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

Define se o tráfego multicast de IP deve ser retornado.

Define se o tráfego multicast de IP deve ou não ser retornado a esse endpoint.

Detalhes
Parâmetros
[in] aIPVersion
[in] aLoop
Valores de retorno
INET_NO_ERROR
sucesso: conjunto de comportamentos de loopback multicast
other
outro sistema ou erro de 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
)

Soquete

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
)

Enviar mensagem

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
)

Consiga informações sobre a origem e o endereçamento da camada IP do LwIP.

Ao usar informações do LwIP sobre o pacote, eles ficam no espaço reservado antes do início dos dados no buffer do pacote. Isso é necessário porque os eventos da camada do sistema têm apenas dois argumentos, que, neste caso, são usados para transmitir o ponteiro para o ponto final e 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, será NULL se não houver espaço suficiente no pacote para as informações de endereço.

Na maioria dos casos, esse truque é armazenar informações antes que os dados funcionem, porque o primeiro buffer em uma mensagem de IP LwIP contém o espaço 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 para pacotes IPv4 extremamente grandes que chegam sem um cabeçalho Ethernet.