nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

Các đối tượng của lớp này đại diện cho các điểm cuối giao thức IP không thể tạo thực thể.

Tóm tắt

Tính kế thừa

Kế thừa từ: nl::Inet::EndPointBasis
Các lớp con đã biết trực tiếp:
  nl::Inet::RawEndPoint
  nl::Inet::UDPEndPoint

Loại công khai

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
enum
Trạng thái động cơ bản của điểm cuối cơ bản.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
enum
Truyền cờ tuỳ chọn cho phương thức SendMsg.
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) typedef
void(*
Loại hàm xử lý sự kiện nhận văn bản tin nhắn.
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Loại hàm xử lý sự kiện lỗi tiếp nhận.

Thuộc tính công khai

OnMessageReceived
Tính năng uỷ quyền xử lý sự kiện nhận tin nhắn của điểm cuối.
OnReceiveError
Điểm cuối nhận uỷ quyền hàm xử lý sự kiện lỗi.
mState
enum nl::Inet::IPEndPointBasis::@8
Trạng thái động cơ bản của điểm cuối cơ bản.

Thuộc tính được bảo vệ

mBoundIntfId
InterfaceId

Hàm công khai

JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Tham gia một nhóm phát đa hướng IP.
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Rời khỏi một nhóm phát đa hướng IP.
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
Thiết lập xem có nên lặp lại lưu lượng truy cập phát đa hướng IP hay không.

Hàm được bảo vệ

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)

Hàm tĩnh công khai

FindNetifFromInterfaceId(InterfaceId aInterfaceId)
struct netif *

Hàm tĩnh được bảo vệ

GetPacketInfo(Weave::System::PacketBuffer *buf)
Nhận thông tin về địa chỉ nguồn và đích đến của lớp IP LwIP.

Loại công khai

@8

 @8

Trạng thái động cơ bản của điểm cuối cơ bản.

Các đối tượng được khởi tạo ở trạng thái "sẵn sàng", tiếp tục chuyển sang trạng thái "ràng buộc" sau khi liên kết với một địa chỉ giao diện cục bộ, sau đó chuyển sang trạng thái "nghe" khi chúng đã đăng ký các gói tiếp tục để xử lý sự kiện nhận thông báo ICMP.

Lưu ý: Bảng liệt kê trạng thái kBasisState_Closed được ánh xạ tới kState_Ready vì các lý do trước đây về khả năng tương thích với tệp nhị phân. kState_Closed hiện có tồn tại để xác định riêng sự khác biệt giữa trạng thái " chưa mở" và "đã mở trước đó hiện đã đóng" từng tồn tại ở trạng thái kState_ReadykState_Closed.

Thuộc tính
kState_Bound

Thiết bị đầu cuối đã bị ràng buộc nhưng không lắng nghe.

kState_Closed

Điểm cuối đã đóng, sẵn sàng phát hành.

kState_Listening

Điểm cuối nhận gói tin.

kState_Ready

Điểm cuối đã khởi chạy nhưng chưa mở.

@9

 @9

Truyền cờ tuỳ chọn cho phương thức SendMsg.

Thuộc tính
kSendFlag_RetainBuffer

Không xếp trực tiếp tin nhắn vào hàng đợi gây thiệt hại.

Thêm một bản sao vào hàng đợi.

OnMessageReceivedFunct

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

Loại hàm xử lý sự kiện nhận văn bản tin nhắn.

Cung cấp một chức năng thuộc loại này cho thành viên uỷ quyền OnMessageReceived để xử lý các sự kiện nhận tin nhắn văn bản trên endPoint, trong đó msg là văn bản tin nhắn nhận được từ người gửi tại senderAddr.

Thông tin chi tiết
Các tham số
[in] endPoint
Điểm cuối liên kết với sự kiện.
[in] msg
Đã nhận được nội dung tin nhắn.
[in] senderAddr
Địa chỉ IP của người gửi.

OnReceiveErrorFunct

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

Loại hàm xử lý sự kiện lỗi tiếp nhận.

Cung cấp một chức năng thuộc loại này cho thành viên uỷ quyền OnReceiveError để xử lý các sự kiện lỗi tiếp nhận trên endPoint. Đối số err cung cấp thông tin chi tiết cụ thể về loại lỗi.

Thông tin chi tiết
Các tham số
[in] endPoint
Điểm cuối liên kết với sự kiện.
[in] err
Lý do lỗi.

Thuộc tính công khai

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

Tính năng uỷ quyền xử lý sự kiện nhận tin nhắn của điểm cuối.

OnReceiveError

OnReceiveErrorFunct OnReceiveError

Điểm cuối nhận uỷ quyền hàm xử lý sự kiện lỗi.

mState

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

Trạng thái động cơ bản của điểm cuối cơ bản.

Các đối tượng được khởi tạo ở trạng thái "sẵn sàng", tiếp tục chuyển sang trạng thái "ràng buộc" sau khi liên kết với một địa chỉ giao diện cục bộ, sau đó chuyển sang trạng thái "nghe" khi chúng đã đăng ký các gói tiếp tục để xử lý sự kiện nhận thông báo ICMP.

Lưu ý: Bảng liệt kê trạng thái kBasisState_Closed được ánh xạ tới kState_Ready vì các lý do trước đây về khả năng tương thích với tệp nhị phân. kState_Closed hiện có tồn tại để xác định riêng sự khác biệt giữa trạng thái " chưa mở" và "đã mở trước đó hiện đã đóng" từng tồn tại ở trạng thái kState_ReadykState_Closed.

Thuộc tính được bảo vệ

mBoundIntfId

InterfaceId mBoundIntfId

Hàm công khai

JoinMulticastGroup

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Tham gia một nhóm phát đa hướng IP.

Tham gia điểm cuối với nhóm phát đa hướng đã cung cấp trên giao diện được chỉ định.

Thông tin chi tiết
Các tham số
[in] aInterfaceId
chỉ báo của giao diện mạng để thêm vào nhóm phát đa hướng
[in] aAddress
nhóm multicast để thêm giao diện
Giá trị trả về
INET_NO_ERROR
thành công: đã xoá nhóm phát đa hướng
INET_ERROR_UNKNOWN_INTERFACE
giao diện mạng không xác định, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress không phải là kIPAddressType_IPv4 hay kIPAddressType_IPv6 hoặc không phải là phát đa hướng
other
lỗi hệ thống hoặc nền tảng khác

LeaveMulticastGroup

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Rời khỏi một nhóm phát đa hướng IP.

Xoá điểm cuối khỏi nhóm phát đa hướng đã cung cấp trên giao diện được chỉ định.

Thông tin chi tiết
Các tham số
[in] aInterfaceId
chỉ báo giao diện mạng để xoá khỏi nhóm phát đa hướng
[in] aAddress
nhóm phát đa hướng để xoá giao diện khỏi
Giá trị trả về
INET_NO_ERROR
thành công: đã xoá nhóm phát đa hướng
INET_ERROR_UNKNOWN_INTERFACE
giao diện mạng không xác định, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress không phải là kIPAddressType_IPv4 hay kIPAddressType_IPv6 hoặc không phải là phát đa hướng
other
lỗi hệ thống hoặc nền tảng khác

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

Thiết lập xem có nên lặp lại lưu lượng truy cập phát đa hướng IP hay không.

Thiết lập xem có nên lặp lại lưu lượng truy cập phát đa hướng IP với điểm cuối này hay không.

Thông tin chi tiết
Các tham số
[in] aIPVersion
[in] aLoop
Giá trị trả về
INET_NO_ERROR
thành công: thiết lập hành vi lặp lại đa hướng
other
lỗi hệ thống hoặc nền tảng khác

Hàm được bảo vệ

Liên kết

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
)

Bắt đầu

void Init(
  InetLayer *aInetLayer
)

PrepareIO

SocketEvents PrepareIO(
  void
)

SendMsg

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

Hàm tĩnh công khai

FindNetifFromInterfaceId

struct netif * FindNetifFromInterfaceId(
  InterfaceId aInterfaceId
)

Hàm tĩnh được bảo vệ

GetPacketInfo

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

Nhận thông tin về địa chỉ nguồn và đích đến của lớp IP LwIP.

Khi sử dụng LwIP, thông tin về gói được 'ẩn' trong không gian dành riêng trước khi bắt đầu dữ liệu trong vùng đệm gói. Điều này là cần thiết vì các sự kiện lớp hệ thống chỉ có hai đối số. Trong trường hợp này, các đối số được dùng để truyền con trỏ đến điểm cuối và con trỏ đến vùng đệm.

Thông tin chi tiết
Các tham số
[in] aBuffer
vùng đệm gói chứa thông báo IP
Trả về
một con trỏ tới thông tin địa chỉ khi thành công; nếu không, là NULL nếu không có đủ dung lượng trong gói cho thông tin địa chỉ.

Trong hầu hết các trường hợp, thủ thuật lưu trữ thông tin này trước khi dữ liệu hoạt động vì vùng đệm đầu tiên trong thông báo IP LwIP chứa khoảng trống được sử dụng cho các tiêu đề Ethernet/IP/UDP. Tuy nhiên, do kích thước hiện tại của cấu trúc IPPacketInfo (40 byte) nên có thể không có đủ chỗ để lưu trữ cấu trúc cùng với tải trọng trong một vùng đệm gói. Trong thực tế, điều này chỉ xảy ra với các gói IPv4 cực lớn đến mà không có tiêu đề Ethernet.