Open fdgonthier opened 2 years ago
Hi @fdgonthier! I think that we probably have a terminology issue here.
The "IPCP Task" is the single task that contains all the RINA implementation modules, including: the IPC Manager, the "normal" IPCP components, the shim IPCPs (right now only the WiFi one) and also a kind of "packet reception module" that gets the packets from the different drivers and dispatches them do shims. It should be renamed to something like "RINA Task" or something in the future.
The other issue is that the module that gets events from the different drivers is embedded into the IPCP.c file, and it also does some work (processing Ethernet frames) that should be done within the shim WiFi. So, what @esmaxness and myself propose is:
What do you think?
To put terminology aside, I am observing that the IPCP.c file has code which looks directly at Ethernet packet. This cannot be if we want to add a Bluetooth shim. That code should be moved in the ethernet (ie: wifi) shim.
What your proposing to reach that goal is reasonable and probably what I would have organically ended up with. I do not engineer things ahead all that far.
Since we want to use different kinds of shim (ie: Bluetooth), we need to make the IPCP independent of ethernet-based shims. Right now, the IPCP manipulates ethernet frames directly.