adjacentlink / emane

Distributed wireless network emulation framework
Other
129 stars 37 forks source link

EMANE Host Data Opaqueness #154

Closed hideogump closed 4 years ago

hideogump commented 4 years ago

I need to add what I consider metadata to the host packet that is carried by EMANE downstream through the NEM stack. This metadata gets consumed by a custom shim to drive elements of the EMANE Framework PHY such as transmit durations, tx power, freq, etc.

I could do this either by prepending or appending the metadata. This modification of the host frame occurs outside of the EMANE NEM stack itself in a separate application, so it would not be using the EMANE APIs to prepend user data. The metadata addition to the host packet is a pure binary increasing the size of the host packet without modifying the IPv4 header, which for the append operation, the original host packet is left intact for routing interpretation. It does not use Google Protobuf serialization technology.

As I understand EMANE is opaque to host data itself, so notionally it would be carried to a peer node intact? Or does EMANE need to examine parts of the host data, say the IPv4 header to determine NEM ID and how to route packets to a particular destination?

Is this something that simply will not work, that is having externally appended (or could be prepended) metadata to the host packet itself?

Notionally the same application that appends the metadata for the downstream, would remove it for the upstream so that the raw host packets gets to its destination intact.

hideogump commented 4 years ago

The metadata append process works correctly, presumably allowing the EMANE stack to view IPv4 header information of the original host packet.