Control information for sending/receiving packets over IPv6.
To send a packet over IPv6, fill in an IPv6ControlInfo object, attach it to the packet with the C++ method setControlInfo(), the send it to the IPv6 module.
When sending, the following fields are required:
Optional fields:
When IPv6 delivers a packet to higher layers, it also attaches an IPv6ControlInfo to it. It fills in the following fields:
IPv6 also puts the original datagram object into the control info, because it may be needed by higher layers.
The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.
Name | Type | Description |
---|---|---|
protocol | int |
transport layer protocol |
interfaceId | int |
interface on which the datagram was received, or should be sent (see InterfaceTable) |
hopLimit | short |
hop limit |
destAddr | IPv6Address |
destination IPv6 address |
srcAddr | IPv6Address |
source IPv6 address |
// // Control information for sending/receiving packets over \IPv6. // // To send a packet over \IPv6, fill in an IPv6ControlInfo object, // attach it to the packet with the C++ method setControlInfo(), // the send it to the IPv6 module. // // When sending, the following fields are required: // - protocol: a value from IPProtocolId // - destAddr // // Optional fields: // - srcAddr: it will be set to the address of the outgoing interface // - timeToLive // // When IPv6 delivers a packet to higher layers, it also attaches an // IPv6ControlInfo to it. It fills in the following fields: // - srcAddr, destAddr, protocol, hopLimit: values from the original datagram // - interfaceId: the interface on which the datagram arrived, or -1 if it was // created locally // // IPv6 also puts the original datagram object into the control info, because // it may be needed by higher layers. // class IPv6ControlInfo { @customize(true); int protocol @enum(IPProtocolId); // transport layer protocol IPv6Address destAddr; // destination IPv6 address IPv6Address srcAddr; // source IPv6 address short hopLimit; // hop limit int interfaceId = -1; // interface on which the datagram was received, or // should be sent (see InterfaceTable) }