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

Is there an input-queued linklayer interface in INET? #864

Open
kalsasdf opened this issue Mar 8, 2023 · 2 comments
Open

Is there an input-queued linklayer interface in INET? #864

kalsasdf opened this issue Mar 8, 2023 · 2 comments
Assignees
Labels
Milestone

Comments

@kalsasdf
Copy link

kalsasdf commented Mar 8, 2023

Hi, I notice that the current linklayer interfaces in INET are all in the output queue model, that is, packets are queued at the output port. Take the EthernetMacBase mdule in EthernetInterface.ned as an example,
1678298339725
it needs to bind a queue as its buffer txQueue in the initialize() function using the getQueue() function.
1678298479893
This is fine for host nodes, but for switches, we know that there are more input-queued switches in reality, that is, packets are queued at the input port of the switch. And there are many protocols that rely on this feature, such as the flow control mechanism PFC (priority flow control) in data centers. I would like to know if INET has an input-queued linklayer interface or if there will be one in the future?

@levy levy added the Feature label Mar 9, 2023
@levy levy self-assigned this Mar 9, 2023
@levy
Copy link
Contributor

levy commented Mar 9, 2023

No, currently there's no such thing in INET, and we do not have this feature on our roadmap. The queues are always part of the network interface, and packets are always enqueued in the outgoing network interface after the forwarding decision has been made.

I don't exactly know how this feature should work, so I'm not sure how it could be implemented. Maybe it's easier to implement this than it sounds for the first time. INET is already very modular and flexible now with respect to the network node architecture, so maybe very little C++ programming is required.

So if you could give us more details that would be great!

@levy levy added this to the Postponed milestone Mar 9, 2023
@levy
Copy link
Contributor

levy commented Mar 9, 2023

I have just pushed two example configurations in the queueing tutorial in 0f2464e that demonstrates a possible solution for the different queueing architectures (see InputQueueSwitching and OutputQueueSwitching networks and configuration). For real network nodes the network architecture would be more complicated because the switching mechanism consists of several additional modules including MessageDispatchers, etc.

This comment is more like a reminder, not a real solution.

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

No branches or pull requests

2 participants