[ 
https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=58440#action_58440
 ] 

Jessie Berlin commented on AMQ-2636:
------------------------------------

I created an account on the confluence site (jessieberlin), but it still says 
that I am "Not Permitted" edit the TCP Transport Reference Page 
(http://activemq.apache.org/tcp-transport-reference.html).

The changes that I want to make are as follows (adding on these rows to the 
main table):

||Option Name||Default Value||Description|| 
|diffServ|0|(client only) The preferred Differentiated Services traffic class 
to be set on outgoing packets, as described in [RFC 
2475|http://www.ietf.org/rfc/rfc2475.txt]. Valid integer values: [0,64). Valid 
string values: EF or AF[1-4][1-3]. With JDK 6, only works when the Java Runtime 
uses the IPv4 stack, which can be done by setting the java.net.preferIPv4Stack 
system property to be true. Cannot be used at the same time as the 
typeOfService option.|
|typeOfService|0|(client only) The preferred Type of Service value to be set on 
outgoing packets. Valid integer values: [0,256). With JDK 6, only works when 
the Java Runtime uses the IPv4 stack, which can be done by setting the 
java.net.preferIPv4Stack system property to be true. Cannot be used at the same 
time as the diffServ option|

> Add support for setting the Differentiated Services or Type Of Service on 
> outgoing TCP/IP packets to support Quality Of Service
> -------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-2636
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2636
>             Project: ActiveMQ
>          Issue Type: New Feature
>          Components: Transport
>    Affects Versions: 5.3.0
>         Environment: Affects all OSes, proposed fix has only been tested on 
> Ubuntu 9.10
>            Reporter: Jessie Berlin
>            Assignee: Rob Davies
>            Priority: Minor
>             Fix For: 5.4.0
>
>         Attachments: addDiffServToTcpTransport.patch, 
> addToSSupportAndRefactoring.patch
>
>
> It should be possible to specify the desired Differentiated Services class, 
> as outlined in RFC 2475 (http://tools.ietf.org/html/rfc2475), or Type of 
> Service value, on outgoing TCP/IP packets by specifying a diffServ or 
> typeOfService Tcp Transport Option 
> (http://activemq.apache.org/tcp-transport-reference.html).
> e.g. tcp://somehost:61616?trace=false&soTimeout=60000&diffServ=AF21
> e.g. tcp://somehost:61616?trace=false&soTimeout=60000&typeOfService=3
> I am part of a student group 
> (http://maljub01.svnrepository.com/comp190/trac.cgi/wiki) at Tufts University 
> that is implementing this functionality in ActiveMQ for potential use by MIT 
> Lincoln Labs as part of the NextGen Network Enabled Weather Program 
> (https://wiki.ucar.edu/display/NNEWD/The+NNEW+Wiki)..
> We would like to contribute our changes back to the ActiveMQ trunk, if 
> possible. Attached is a initial patch against the 5.3.0 release version, 
> which implements setting the Differentiated Services class via a Tcp 
> Transport Option on the connection URI.
> Some notes about this approach:
> The basic underlying mechanism for actually setting the bits in the packet 
> headers is the java.net.Socket.setTrafficClass method. This was
> the most elegant implementation out of all the possible implementations that 
> we came up with.
> In order for setTrafficClass to work in JDK 6, it is necessary to set the 
> System property java.net.preferIPv4Stack to be true. We found that this has 
> precedent in ActiveMQ 
> (http://activemq.apache.org/multicast-watch-out-for-ipv6-vs-ipv4-support-on-your-operating-system-or-distribution-or-network.html),
>  but we are hoping that  this issue will be resolved in JDK 7, so that we can 
> use the IPv6 stack when possible.
> In addition, the current implementation only sets the specified 
> Differentiated Services bits on the outgoing packets, and has no control over 
> the Acknowledgments sent back for those packets. We have yet to find an 
> elegant and cross-platform way to have the ActiveMQ Broker find out what the 
> Differentiated Services bits on the incoming packets are directly in Java, 
> although we are considering approaches that would involve calling a shell 
> script from TcpTransportServer that would utilize IPtables.
> We would like to know if might be interested in accepting this work into the 
> ActiveMQ trunk. The sooner you let us know one way or another, the better, as 
> this is a single-semester project.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to