Hi Iñaki,

I don't think there is a way right now though I think it might be
implemented by extending the uv_udp_send_t structure to hold a
"before_send" cb so you can set the option, which in turn could bet unset
in the send_cb. (extending the uv_udp_send_t might be possible by using one
entry in the reserved field of the uv_req). Of course, this is just an idea
which could be bad or simply wrong. I would open an issue in the libuv repo
to discuss your use case and possible solutions.

Cheers,

Santi

El mar., 5 nov. 2019 a las 6:18, Iñaki Baz Castillo (<[email protected]>)
escribió:

> Hi, just wondering how to deal with this scenario in which I need to
> set different DSCP values to UDP packets (actually IP packets) sent on
> the same uv_udp_t handle.
>
> For instance, I send RTP audio and video packets and need to set a
> specific DSCP/ToS value **just** for audio packets:
>
> pseudo-code:
> -------------------------------------------------
> int tos = 0x60; // CS3 just for audio packets.
> uv_os_fd_t fd;
>
> // Get the real file descriptor from our libuv UDP handle:
> uv_fileno((const uv_handle_t*)udpHandle, &fd);
>
> // Set ToS/DSCP:
> if (setsockopt(sock, IPPROTO_IP, IP_TOS,  &tos, sizeof(tos)) < 0) {
>     fprintf(stderr,"Error setting TOS: %s\n", strerror(errno));
> }
>
> // Try to send the packet synchronously:
> uv_udp_try_send(....);
>
> // It fails, so send it asynchronously:
> uv_udp_send(....);
> --------------------------------------------------
>
> This is: before sending each packet I need to call setsockopt() with
> the corresponding DSCP/ToS value for that packet. However, since I may
> need to use uv_udp_send() it may happen that, when libuv finally sends
> the RTP audio packet, the socket DSCP setting may has been modified
> again due to a new call to setsockopt() for a different packet to be
> sent.
>
> Just wondering if there is a way to tell libuv "please send this
> socket option for sending this data no matter when such a data is
> actually sent.
>
> Thanks a lot.
>
>
> --
> Iñaki Baz Castillo
> <[email protected]>
>
> --
> You received this message because you are subscribed to the Google Groups
> "libuv" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/libuv/CALiegfmopAxJ1q-dPnB0zOk%3Dx0q_78U3VVpqZ%2BnDaNq0xoAmrw%40mail.gmail.com
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"libuv" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/libuv/CAAJY-XMQWUuCifhqy0evsN3hHhcDrRvMe4cM%2BQhVSmpOsB3Oxw%40mail.gmail.com.

Reply via email to