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

nl::Inet:Ponto final

#include <src/inet/RawEndPoint.h>

Os objetos dessa classe representam endpoints da rede IP brutos.

Resumo

A camada do Nest Inet encapsula métodos para interagir com endpoints da rede IP (soquetes SOCK_RAW em sistemas Linux e derivados BSD) ou blocos de controle de protocolo bruto LwIP, conforme o sistema é configurado de acordo.

Herança

Herda de: nl::Inet::IPEndPointBasis

Atributos públicos

IPProto
IPProtocol
versão do Internet Control Message Protocol (ICMP)
IPVer
IPVersion
Versão do protocolo de Internet.

Funções públicas

Bind(IPAddressType addrType, IPAddress addr, InterfaceId intfId)
Vincule o endpoint a um endereço IP da interface.
BindIPv6LinkLocal(InterfaceId intf, IPAddress addr)
Vincule o endpoint bruto a um endereço de escopo link-local IPv6 no índice de interface especificado.
BindInterface(IPAddressType addrType, InterfaceId intf)
Vincular o endpoint a uma interface de rede.
Close(void)
void
Feche o endpoint.
Free(void)
void
Feche o endpoint e recicle a memória.
GetBoundInterface(void)
InterfaceId
Consiga a interface vinculada neste endpoint.
Listen(void)
Prepare o endpoint para receber mensagens ICMP.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Envia uma mensagem ICMP para o destino especificado.
SendTo(IPAddress addr, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Um sinônimo de SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags)
SendTo(IPAddress addr, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Envia uma mensagem ICMP para o endereço de destino especificado.
SetICMPFilter(uint8_t numICMPTypes, const uint8_t *aICMPTypes)
Defina os parâmetros do filtro ICMP6 na pilha de rede.

Atributos públicos

IPProto

IPProtocol IPProto

versão do Internet Control Message Protocol (ICMP)

Embora esse campo seja uma variável de classe mutável, ele é uma variante da classe que não pode ser modificada.

Ver IP

IPVersion IPVer

Versão do protocolo de Internet.

Embora esse campo seja uma variável de classe mutável, ele é uma variante da classe que não pode ser modificada.

Funções públicas

Vincular

INET_ERROR Bind(
  IPAddressType addrType,
  IPAddress addr,
  InterfaceId intfId
)

Vincule o endpoint a um endereço IP da interface.

Vincula o endpoint ao endereço IP da interface de rede especificado.

Detalhes
Parâmetros
[in] addrType
A versão do protocolo do endereço IP
[in] addr
o endereço IP (precisa ser um endereço de interface)
[in] intfId
um indicador opcional de interface de rede
Valores de retorno
INET_NO_ERROR
sucesso: endpoint vinculado ao endereço
INET_ERROR_INCORRECT_STATE
o endpoint foi vinculado anteriormente.
INET_NO_MEMORY
memória insuficiente para o endpoint
INET_ERROR_UNKNOWN_INTERFACE
Em algumas plataformas, a interface especificada opcionalmente não está presente.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType não corresponde a IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType é kIPAddressType_Any ou o tipo de addr não é igual a addrType.
other
outro sistema ou erro de plataforma

No LwIP, esse método não pode ser chamado com o bloqueio de pilha do LwIP já adquirido.

BindIPv6LinkLocal

INET_ERROR BindIPv6LinkLocal(
  InterfaceId intf,
  IPAddress addr
)

Vincule o endpoint bruto a um endereço de escopo link-local IPv6 no índice de interface especificado.

Também define várias opções de soquete IPv6 adequadas para a transmissão de pacotes de e para destinos no link.

vincula o endpoint ao endereço link-local IPv6 addr na interface de rede indicada por intf;

Detalhes
Parâmetros
[in] intf
Um InterfaceId para identificar o escopo do endereço.
[in] addr
Um objeto IPAddress do escopo link-local IPv6.
Parâmetros
[in] intf
o indicador da interface de rede
[in] addr
o endereço IP (precisa ser um endereço de interface)
Valores de retorno
INET_NO_ERROR
sucesso: endpoint vinculado ao endereço
INET_ERROR_INCORRECT_STATE
o endpoint foi vinculado anteriormente.
INET_NO_MEMORY
memória insuficiente para o endpoint
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType não corresponde a IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addr não é um endereço link-local IPv6 ou intf é INET_NULL_INTERFACEID.
other
outro sistema ou erro de plataforma
Retorna
INET_NO_ERROR em caso de sucesso ou um erro de SO mapeado em caso de falha. Uma lista inválida de parâmetros pode resultar em INET_ERROR_WRONG_ADDRESS_TYPE. Se o endpoint bruto já estiver vinculado ou estiver em detecção, ele retornará INET_ERROR_INCORRECT_STATE. Vincule o endpoint a um endereço link-local IPv6 da interface.

No LwIP, esse método não pode ser chamado com o bloqueio de pilha do LwIP já adquirido.

BindInterface.

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Vincular o endpoint a uma interface de rede.

Vincula o endpoint ao endereço IP da interface de rede especificado.

Detalhes
Parâmetros
[in] addrType
A versão do protocolo do endereço IP.
[in] intf
indicador da interface de rede.
Valores de retorno
INET_NO_ERROR
sucesso: endpoint vinculado ao endereço
INET_NO_MEMORY
memória insuficiente para o endpoint
INET_ERROR_NOT_IMPLEMENTED
implementação do sistema não concluída.
INET_ERROR_UNKNOWN_INTERFACE
Em algumas plataformas, a interface não está presente.
other
outro sistema ou erro de plataforma

No LwIP, esse método não pode ser chamado com o bloqueio de pilha do LwIP já adquirido.

Fechar

void Close(
  void
)

Feche o endpoint.

Se o mState != kState_Closed for definido, o endpoint será fechado e removido do conjunto de endpoints qualificado para eventos de comunicação.

Em sistemas LwIP, esse método não pode ser chamado com o bloqueio de pilha LwIP já adquirido.

Gratuito

void Free(
  void
)

Feche o endpoint e recicle a memória.

Invoca o método Close e, em seguida, invoca o método InetLayerBasis::Release para retornar o objeto ao pool de memória.

Em sistemas LwIP, esse método não pode ser chamado com o bloqueio de pilha LwIP já adquirido.

GetBoundInterface.

InterfaceId GetBoundInterface(
  void
)

Consiga a interface vinculada neste endpoint.

Detalhes
Retorna
InterfaceId: o ID da interface vinculada.

Detectar

INET_ERROR Listen(
  void
)

Prepare o endpoint para receber mensagens ICMP.

Se mState já for kState_Listening, nenhuma operação será realizada. Caso contrário, o mState será definido como kState_Listening, e o endpoint será preparado para receber mensagens ICMPv6, de acordo com a semântica da plataforma.

Detalhes
Valores de retorno
INET_NO_ERROR
sempre devolvido.

No LwIP, esse método não pode ser chamado com o bloqueio de pilha do LwIP já adquirido.

Enviar mensagem

INET_ERROR SendMsg(
  const IPPacketInfo *pktInfo,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Envia uma mensagem ICMP para o destino especificado.

 Send the ICMP message \c msg using the destination information given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

Detalhes
Parâmetros
[in] pktInfo
informações de destino da mensagem
[in] msg
o buffer de pacote contendo a mensagem UDP
[in] sendFlags
sinalizações opcionais de opção de transmissão
Valores de retorno
INET_NO_ERROR
sucesso: msg na fila para transmissão.
INET_ERROR_NOT_SUPPORTED
o sistema não suporta a operação solicitada.
INET_ERROR_WRONG_ADDRESS_TYPE
o endereço de destino e o endereço da interface vinculada não têm versões de protocolo ou tipo de endereço correspondentes;
INET_ERROR_MESSAGE_TOO_LONG
msg não contém toda a mensagem ICMP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Em algumas plataformas, apenas uma parte truncada do msg foi colocada na fila para transmissão.
other
outro sistema ou erro de plataforma

Enviar para

INET_ERROR SendTo(
  IPAddress addr,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Um sinônimo de SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags)

Enviar para

INET_ERROR SendTo(
  IPAddress addr,
  InterfaceId intfId,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Envia uma mensagem ICMP para o endereço de destino especificado.

 Send the ICMP message in \c msg to the destination given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

Detalhes
Parâmetros
[in] addr
o endereço IP de destino;
[in] intfId
um indicador opcional de interface de rede
[in] msg
o buffer de pacote contendo a mensagem UDP
[in] sendFlags
sinalizações opcionais de opção de transmissão
Valores de retorno
INET_NO_ERROR
sucesso: msg na fila para transmissão.
INET_ERROR_NOT_SUPPORTED
o sistema não suporta a operação solicitada.
INET_ERROR_WRONG_ADDRESS_TYPE
o endereço de destino e o endereço da interface vinculada não têm versões de protocolo ou tipo de endereço correspondentes;
INET_ERROR_MESSAGE_TOO_LONG
msg não contém toda a mensagem ICMP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Em algumas plataformas, apenas uma parte truncada do msg foi colocada na fila para transmissão.
other
outro sistema ou erro de plataforma

SetICMPFilter (Filtro de ICMP)

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

Defina os parâmetros do filtro ICMP6 na pilha de rede.

Aplique os parâmetros de filtragem ICMPv6 para os códigos em aICMPTypes ao endpoint subjacente na pilha de rede do sistema.

Detalhes
Parâmetros
[in] numICMPTypes
comprimento da matriz em aICMPTypes
[in] aICMPTypes
o conjunto de códigos do tipo ICMPv6 para filtrar.
Valores de retorno
INET_NO_ERROR
sucesso: parâmetros do filtro definidos
INET_ERROR_NOT_IMPLEMENTED
o sistema não implementa
INET_ERROR_WRONG_ADDRESS_TYPE
O endpoint não é do tipo IPv6
INET_ERROR_WRONG_PROTOCOL_TYPE
O endpoint não é do tipo ICMP6
other
outro sistema ou erro de plataforma