Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make IPCP independent of Ethernet #125

Open
fdgonthier opened this issue Sep 27, 2022 · 2 comments
Open

Make IPCP independent of Ethernet #125

fdgonthier opened this issue Sep 27, 2022 · 2 comments

Comments

@fdgonthier
Copy link
Contributor

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.

@edugrasa
Copy link
Contributor

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:

  • Identify and separate the code that gets the events from the drivers. This module should just check from what is the "type of the packet received" and pass it to the appropriate shim (or drop the packet if no shim can process it). In order to make it modular, define an interface that lets a shim declare a type of packet and a function pointer to pass the packet for that "type of packets".
  • Move the code that processes Ethernet frames into the shim Ethernet component.

What do you think?

@fdgonthier
Copy link
Contributor Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants