You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Jessie Berlin (JIRA)" <ji...@apache.org> on 2010/03/04 20:01:44 UTC

[jira] Created: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

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
             Fix For: 5.3.0


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.


[jira] Assigned: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Rob Davies (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Davies reassigned AMQ-2636:
-------------------------------

    Assignee: Rob Davies

> 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.3.0
>
>         Attachments: addDiffServToTcpTransport.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.


[jira] Updated: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Jessie Berlin (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jessie Berlin updated AMQ-2636:
-------------------------------

    Attachment: addToSSupportAndRefactoring.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
>
>
> 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.


[jira] Commented: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Jessie Berlin (JIRA)" <ji...@apache.org>.
    [ 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.


[jira] Commented: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Rob Davies (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=59056#action_59056 ] 

Rob Davies commented on AMQ-2636:
---------------------------------

Applied ECNBits patch in SVN revision 937265

> 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.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Jessie Berlin (JIRA)" <ji...@apache.org>.
     [ 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

        

[jira] Commented: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Rob Davies (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=59058#action_59058 ] 

Rob Davies commented on AMQ-2636:
---------------------------------

Added latest patch in SVN revision 937272

> 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.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Rob Davies (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Davies resolved AMQ-2636.
-----------------------------

    Resolution: Fixed

> 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.


[jira] Reopened: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Jessie Berlin (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jessie Berlin reopened AMQ-2636:
--------------------------------


Thanks for committing our initial patch!

I will shortly be attaching a second patch (against svn revision 921822 of the ActiveMQ trunk) that adds in support for setting the Type Of Service bits as well as the Differentiated Services bits. The patch will also cleans up some tabs and incorrect spacing that I mistakenly let slip into the previous patch as well as does some refactoring on the TransportUriTests.

When would it be appropriate for me to add new information about this new Transport option to the existing documentation (http://activemq.apache.org/tcp-transport-reference.html)?

> 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.


[jira] Updated: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Jessie Berlin (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jessie Berlin updated AMQ-2636:
-------------------------------

    Attachment: addDiffServToTcpTransport.patch

Patch referred to in previous description.

> 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
>             Fix For: 5.3.0
>
>         Attachments: addDiffServToTcpTransport.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.


[jira] Updated: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Jessie Berlin (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jessie Berlin updated AMQ-2636:
-------------------------------

    Attachment: fixECNBits.patch

This patch fixes an issue that was discovered by running our automated wireshark test scripts where I was assuming the wrong two bits for the ECN bits, and so only multiples of 4 were working on machines which use 0 for the default ECN.

(tested against trunk)

The code for the automated wireshark test scripts can currently be found here: http://maljub01.svnrepository.com/comp190/trac.cgi/browser/scripts/dscp_test

Is there some way we can either include the automated wireshark test scripts somewhere in the ActiveMQ trunk (maybe as an example, since it involves a Producer that communicates with the ActiveMQ broker) or put it somewhere on the ActiveMQ website so that future uses can benefit from it?

> 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
>
>
> 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.


[jira] Commented: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Rob Davies (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=58384#action_58384 ] 

Rob Davies commented on AMQ-2636:
---------------------------------

Updated patch applied by SVN  revision 926152.
Please update the documentation!

> 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.


[jira] Resolved: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Rob Davies (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Davies resolved AMQ-2636.
-----------------------------

       Resolution: Fixed
    Fix Version/s:     (was: 5.3.0)
                   5.4.0

Fixed by svn revision 920395

> 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
>
>
> 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.


[jira] Commented: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Dejan Bosanac (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=59128#action_59128 ] 

Dejan Bosanac commented on AMQ-2636:
------------------------------------

added missing diff serv names with svn revision 938461

> 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.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Jessie Berlin (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jessie Berlin updated AMQ-2636:
-------------------------------

    Priority: Minor  (was: Major)

> 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
>            Priority: Minor
>             Fix For: 5.3.0
>
>         Attachments: addDiffServToTcpTransport.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.


[jira] Updated: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Jessie Berlin (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jessie Berlin updated AMQ-2636:
-------------------------------

    Attachment: brokerConfig.tar.gz

This tar.gz file contains the IPTables scripts which can be used to configure that broker so that all outgoing packets from the broker match the DSCP value set on the incoming packets on that connection.

> 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, brokerConfig.tar.gz, 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.
-
You can reply to this email to add a comment to the issue online.


[jira] Reopened: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Jessie Berlin (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jessie Berlin reopened AMQ-2636:
--------------------------------


See above comments.

> 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
>
>
> 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.


[jira] Resolved: (AMQ-2636) Add support for setting the Differentiated Services or Type Of Service on outgoing TCP/IP packets to support Quality Of Service

Posted by "Rob Davies (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Davies resolved AMQ-2636.
-----------------------------

    Resolution: Fixed

IP Tables scripts referenced from here: https://cwiki.apache.org/confluence/display/ACTIVEMQ/TCP+Transport+Reference

> 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, brokerConfig.tar.gz, 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.
-
You can reply to this email to add a comment to the issue online.