My program mainly depends on quic multipath extension.
I read the source code methods such as picoquic_prepare_next_packet_ex ,picoquic_prepare_packet_ex, picoquic_handle_send_paths and picoquic_select_next_path_tuple It seems when multipath works in round robin order as the comment says
* For each path:
* - For each tuple:
* - if a first challenge is required now, the path/tuple is selected immediately.
* - if a response is required now, the path/tuple is selected immediately.
* - if a challenge or a response is required after the current time:
* - the next time is update.
* If there is not an immediate selection:
* for each path in available mode. in round robin order:
* - if there is data or ACK to send:
* the path is selected, with first tuple.
* If no path selected:
* select the default path or tuple.
*/
Months before I was testing my code in two 4G modems , two paths works round robin It's fine.
But when different path with different bandwith, 4G modem maybe 10-20Mbps, and 5G modem about 70-100Mbps, I want to give diffrent weight to diffrent path according to their bandwitdth.
picoquic_set_stream_path_affinity can't help because I don't known how many packets a TCP 4 tuples will send, and don't known how may streams concurrent , So I can't divide streams into different path by number of streams.
So is there any plan to support packet scheduler to decide which path to send. Or maybe I fork the source code and do some modifications in method picoquic_select_next_path_tuple, will it affect some where else in the whole picoquic stack ? Can you give me some ideas or suggestions ?
My program mainly depends on quic multipath extension.
I read the source code methods such as
picoquic_prepare_next_packet_ex,picoquic_prepare_packet_ex,picoquic_handle_send_pathsandpicoquic_select_next_path_tupleIt seems when multipath works in round robin order as the comment saysMonths before I was testing my code in two 4G modems , two paths works round robin It's fine.
But when different path with different bandwith, 4G modem maybe 10-20Mbps, and 5G modem about 70-100Mbps, I want to give diffrent weight to diffrent path according to their bandwitdth.
picoquic_set_stream_path_affinitycan't help because I don't known how many packets a TCP 4 tuples will send, and don't known how may streams concurrent , So I can't divide streams into different path by number of streams.So is there any plan to support packet scheduler to decide which path to send. Or maybe I fork the source code and do some modifications in method
picoquic_select_next_path_tuple, will it affect some where else in the whole picoquic stack ? Can you give me some ideas or suggestions ?