RTI Routing to allow 1 way traffic to Independant domains

6 posts / 0 new
Last post
Offline
Last seen: 8 years 10 months ago
Joined: 01/08/2015
Posts: 4
RTI Routing to allow 1 way traffic to Independant domains

We want to be able to have 2 domains that are seperate, but have the Topics/messages from domain 1 be able to be used in domain 2. Domain 2 is more for monitoring and data massaging applications. Nothing from domain 2 should go back to domain 1 including ACKNACKs and missed data requests. Domain 1 is RELIABLE_RELIABILITY. We had a problem on domain 2 and it slowed down the writers on domain 1 when it got flooded with ACKNACKs requesting data resends which couldn't be handled on domain 2 and would ask again etc. This is a problem for us. We have since fixed that problem, but we don't want a repeat if any unforseen thing happens again. We want to make domain 2 as reliable as possible, but we need the assurance that domain 1 will not be affected. We have 2 RTI routing services set up, 1 in each domain with an independant RTI routing service network conecting between them.

1. I understand that the writer and reader need to both be RELIABLE_RELIABILITY for it to work. Can this be changed as it goes through the RTI routing service to be Best-effort on the second domain, kind of like switching protocols? That way we don't have all of those resends? We only have the auto_route set up to go 1 way but the resend requests etc still come back through.

2. Is there a way to leave domain 2 at RELIABLE_RELIABILITY and just block the resend requests from coming back through.

3. If there is an auto_route set up on the domain 2 side and it has a dds_input for participant1 from the "independant RTI routing service network" between the domains to domain 2. Is there anything that can be filtered on the dds_input or dds_output to stop the resend requests from coming back through or is the filter only for the traffic coming the specified direction?

4. Is there any other way that this can be set up to accomplish the goal?

Offline
Last seen: 4 years 5 months ago
Joined: 09/10/2010
Posts: 32

Hello Brian

    The first thing to mention here is that Routing Service does not propagate ACK/NACK messages from the output domain back to the input domain.  If the writer on Domain1 is slowing down, then it is because some reader on that domain 1 is not processing data.  It could be that the Routing Service data reader on Domain 1 is the cause of the slow down.  If you do not require reliable data to be sent across the bridge then just setup the data reader for the input side of the Routing Service to be best effort.  A best effor reader can connect up with a reliable writer (opposite is not true).  All of your quesitons above, can probably be solved by making the input side of the Routing Service to be best effort.  Keep in mind however, if the machine that is running the Routing service gets bogged down, it could then miss some data being written to it on the input side.

Bert

Offline
Last seen: 8 years 10 months ago
Joined: 01/08/2015
Posts: 4

Thanks Bert

I was under the assumption that the router was like a pipe and the subscriber in Domain 2 could subscribe to the publisher in domain 1 although you can filter what goes through. It sounds like what you are saying is that the subscriber in Domain 2 subscribes to the router in Domain 2 which subscribes to the the router in Domain1 which subscibes to the publisher in Domain 1. So, if it is a reliable connection the ACK/NACK goes back to the Domain 2 router and that is who would reply with the resend, not affecting domain 1. If the router in Domain 2 gets bogged down by the subscriber in Domain 2, can that bogged down router then bog down the the router in Domain 1 and affect things in Domain 1?

<A best effor reader can connect up with a reliable writer (opposite is not true).

I thought that may be the case, although I don't remember seeing it anywhere. All I saw was that they had to be the same.

Brian

 

Offline
Last seen: 4 years 5 months ago
Joined: 09/10/2010
Posts: 32

Hi Brian,

I am curious as to why you need two routers when you are just going from Domain 1 to Domain 2.  Is there some special networking considerations for the domain you are creating in the middle betweek the two routers.  From what you describe, you should be able to use just one Routing Service.  The input should be setup to subscribe to data in Domain 1 and the output should be setup to publish data in Domain 2.  Also, if you are truly trying to setup a one way transfer of data, then you do not want to use the auto_route feature.  Please setup routes for the topics that you want to send across.  If you do want all the topics from domain 1 to go to domain 2, then you can use the auto_route feature.  There is an example setup in the exmaple configurations directory to show you how to do that.  Do not use the auto_route both ways version though as it will create a bidirectional use case.  

Bert

Offline
Last seen: 8 years 10 months ago
Joined: 01/08/2015
Posts: 4

Bert

<I am curious as to why you need two routers when you are just going from Domain 1 to Domain 2.
I inherited this setup, so I need to find the answer to that question. I was wondering the same thing after I had gone through your documentation. There is a firewall in between the two, so maybe that is the reason. Although the messages could still go through that without a router on the other side.

<Also, if you are truly trying to setup a one way transfer of data, then you do not want to use the auto_route feature. If you do want all the topics from domain 1 to go to domain 2, then you can use the auto_route feature.
We do want all the topics to go from domain 1 to domaint 2 so Why would "one way" matter for whether I use auto_route or not?
We have four different auto routes that are filtered by message types and they vary according to which qos_profile is used for each to change things like kind, depth, max_samples etc.

Thanks

Brian

Offline
Last seen: 4 years 5 months ago
Joined: 09/10/2010
Posts: 32

Hello Brian,

To use the auto_route configuration, just make sure that you only setup 1 instance of auto_route for the correct input domain and the correct output domain.  If your Routing Service configuration file shows two sets of auto_route tags then just make sure you only include the one that corresponds with your configuration.  

Also, based on what you describe, with a firewall in place, you would need to use two Routing Service processes.  And typically we leverage a TCP connection between the two routing service processes.  Just to avoid any confusion with discovery, make sure that the domainID used between the two routing services is not equal to either the input domainID or the resulting output domainID.  Please see chapter 7 of the Routing Service Users Guide for how to setup supporting WAN bridging (ie. using hw routers and firewalls in between).

Bert