cURL
Haxx ad
libcurl

curl's project page on SourceForge.net

Sponsors:
Haxx

cURL > Mailing List > Monthly Index > Single Mail

curl-tracker mailing list Archives

[ curl-Feature Requests-2914924 ] Support for QoS tagging needed

From: SourceForge.net <noreply_at_sourceforge.net>
Date: Tue, 15 Dec 2009 22:05:02 +0000

Feature Requests item #2914924, was opened at 2009-12-15 10:28
Message generated for change (Comment added) made by pprindeville
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=350976&aid=2914924&group_id=976

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: libcurl
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Philip Prindeville (pprindeville)
Assigned to: Daniel Stenberg (bagder)
Summary: Support for QoS tagging needed

Initial Comment:
As an increasing amount of real-time, streaming video and audio shares the
Internet, it becomes essential to be able to differentiate time-sensitive
traffic from all others.

This is most easily achieved by having applications mark their traffic with the
appropriate DSCP tag in the IP tos field.

To achieve this:

* A configuration option is needed to allow specifying a QoS value (cs0...cs7,
af11..af43, ef, or "none" (same as "cs0")).

* A setsockopt(..., SOL_IP, IP_TOS, ...) will then need to be done on the
socket before it does a listen().

* Potentially a reasonable default value (like AF11 or AF12) could be set when
the configuration doesn't explicitly set a value.

----------------------------------------------------------------------

>Comment By: Philip Prindeville (pprindeville)
Date: 2009-12-15 15:05

Message:
This fix is partial... it doesn't actually seem to work when tested.

From what I can tell by running 'strace curl ...':

socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 3
setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
fcntl(3, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(3, {sa_family=AF_INET, sin_port=htons(80),
sin_addr=inet_addr("207.115.101.144")}, 16) = -1 EINPROGRESS (Operation now
in progress)
poll([{fd=3, events=POLLOUT}], 1, 149798) = 1 ([{fd=3, revents=POLLOUT}])
getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0

tells me that it's calling src/main.c sockoptcallback().

So I guess I need to add a similar function? It's not clear.

I thought the changes I made lib/http.c, lib/connect.c would have been
sufficient, but it seems they're not.

Also, I was wondering how to introduce a system-wide set of configuration
options for setting QoS defaults for FTP-DATA, FTP-CTL, HTTP, Telnet,
Gopher, etc.

----------------------------------------------------------------------

Comment By: Daniel Stenberg (bagder)
Date: 2009-12-15 11:56

Message:
moved to feature requests

----------------------------------------------------------------------

You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=350976&aid=2914924&group_id=976
Received on 2009-12-15

These mail archives are generated by hypermail.

donate! Page updated November 12, 2010.
web site info

File upload with ASP.NET