[
https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jessie Berlin updated AMQ-2636:
-------------------------------
Attachment: fixECNBitsAndAddCSDiffServNames.patch
This patch fixes the issue with the ECN bits as described above, and also adds
8 more Differentiated Services Code Point names, CS0 through CS7. If this patch
is committed, the documentation found on
http://activemq.apache.org/tcp-transport-reference.html needs to be updated for
the diffServ option to add those new names.
This patch is against r932870 and obsoletes the fixECNBits patch.
> 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, fixECNBits.patch,
> fixECNBitsAndAddCSDiffServNames.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.
-
If you think it was sent incorrectly contact one of the administrators:
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira