Ok Ivo,
Thank you for the clarification. If you want to implement another NC implementation, you can use our framework, of course. For that purpose, you can create a new model within the network-coding module, asserting that your new protocol inherits from the base class NetworkCodingL4Protocol. Anyway, make sure your solutions are between IP and TCP levels (IIRC, CTP and TCP/IP fullfill this condition.
With the module (raw) that we provide you have the following stuff:
- A new layer between IP and transport layers. That means that a packet will follow the flow: Application -> TCP -> NC -> IP ... (at transmitter entities). On the other hand, if the IP header has the NC protocol put in the upper protocol field, the flow (in reception) would be: ... -> IP -> NC -> TCP-> Application
- If you want to handle the packets at relay nodes, you may need to add your own code to the function Ipv4L3Protocol::IpForward, and redirect the packet to the function you want.
- We provide as well promiscuous reception mechanisms, where a packet might get the NC layer of an arbitrary even if the MAC destination address does not correspond with the node's address. Upon a legacy operation, the MAC-level mechanisms would simply discard these packets.
There are of course additional issues that I could append, but I should need more details about your goals before (for instance, are you starting those protocols from scratch?).
Hope to be helpful.
Regards,
David