FreeRTOS-Plus-TCP icon indicating copy to clipboard operation
FreeRTOS-Plus-TCP copied to clipboard

[Feature Request] Add priority event queues

Open go2sh opened this issue 1 year ago • 4 comments

Is your feature request related to a problem? Please describe. For certain application it is desirable to have multiple priorities during sending of packets. For example an audio stream might have strict jitter requirements and thus should always be send on time. In conjunction with a network hardware supporting mutiple queues, this provides a powerful tool for time sensitive networking.

Describe the solution you'd like Have multiple worker queues for tx and rx events to allow packets to overtake each other. All other events would be processed in the highst priority queue.

Describe alternatives you've considered None

This feature could be implemented as an opt in. Only two functions access the network queue currently. These could be expanded to support priorities. The priority could set through setsockopt (SO_PRIORITY and/or IP_TOS) like in linux/posix. The user could create a map between the priority/TOS and queues and also between queues/priority and hw queues.

I have a working prototype.

go2sh avatar Jun 01 '23 07:06 go2sh

Hi Christoph,

Thanks for adding this feature request. I agree that this will be a useful addition for network hardware supporting multiple FIFOs.

You also mentioned that you have a working prototype. It will be good if you can share the changes as a PR and we will be more than happy to work together for review and fine-tuning and merging the changes.

shubnil avatar Jun 05 '23 11:06 shubnil

Hi @go2sh, Gentle Reminder.

shubnil avatar Jun 12 '23 08:06 shubnil

Here you go @shubnil . Happy to see your comments coming in :)

go2sh avatar Jun 15 '23 20:06 go2sh

Thanks a lot, Christoph. This is really helpful. We have started reviewing the change and will discuss internally more on the design and synch up with you as well more on the design part. Please note that the actual merge might happen only in August. We have an important GA release coming up and we will be freezing the branch in a week. However, we will make sure that we merge the change as soon as the release tagging is done. Thanks for being patient.

shubnil avatar Jun 17 '23 04:06 shubnil