Isolation of peers in a common network

asked 2014-04-16 05:15:58 -0700

chanetd gravatar image

I'm looking for a way to make sure that certain hosts on the network (running alljoyn programs, obviously) don't "see" each other.

A bit of context: we have a number of developers, all of whom are on the same network, working on different aspects of an AllJoyn application. Currently, when those developers run tests, the test applications discover each other on the network and start interacting, which messes up the tests.

Is there a way to configure the application, or the routing node, in such a way that you can limit the devices with which your application is willing to communicate?

Off the top of my head, I can think of two workarounds, neither of which are desirable:

  1. limit the applications to host-only communication. This is undesirable, because we explicitly want to test interactions across hosts as well.
  2. give each developer a separate test network, and limit the application communication to the network interface attached to the test network. This is undesirable due to infrastructure costs and maintainability of the setup.

I assume that some measure of configuration is possible through the routing node's config.xml file, but I cannot find documentation on the syntax and semantics of this file anywhere on the Alliance website.

edit retag flag offensive close merge delete


Can you comment on how you are discovering (wellknown name or about) and provide more details on the setup? Thin library devices connecting to AllJoyn Router (stand alone or bundled in an app)? All Standard Library applications? Are you using any AllJoyn service frameworks? In order to provide a good recommendation we need more information.

bspencer ( 2014-04-16 09:48:37 -0700 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2014-04-21 12:11:03 -0700

bspencer gravatar image

I'm going to make some assumptions here as no further information has been provided...

The design of AllJoyn is to be able to discover everything around you that you can interact with. That being said I understand it may present challenges when you want a specific test case setup with 3 applications visible, but not more, etc.

If I were testing a mobile application that used the AllJoyn Standard Library and I wanted to have different testing setups then I would create a debug release of the app that would read from a config file what wellknown names it should show. Then when the application starts up it will discover everything, but in the FoundAdvertiseName block it would short and only show the names in the config file. Now I see the device right next to me that I am looking for with the test name I have put in the config file.

If this is a mobile application that is using the About Feature then I would setup the same type of filtering above only filter on the "Device Name" (AKA Friendly Name) that comes through in the About sessionless signal.

If using Notification service then I would do the same level of filtering based on the "Device Name" (AKA Friendly Name) in the Notification callback only show messages that come from the config file that I am interested in.

There is nothing in AllJoyn that will filter or disallow connections, its up to the developer who uses the SDk to decide how it should function. AllJoyn gives you the information, what you do with it and how you use it, that's up to the application.

edit flag offensive delete publish link more


Thank you for the suggestions. Can't we do anything with the alljoyn-daemon config file? E.g. play with the <listen> tags? Is there any documentation available on the syntax and semantics of this config file?

chanetd ( 2014-04-25 06:05:35 -0700 )edit

There is nothing you can do with the config file unless you want to remove a transport from being supported. It would be possible to remove all network traffic so you have just local, on target, communication. But you would lose device to device communication.

bspencer ( 2014-04-28 11:15:25 -0700 )edit

Is there somewhere a formal specification of the config file ?

praetp ( 2014-07-03 04:40:04 -0700 )edit

There is no formal specification other than the source code. You can look through the alljoyn router source code found under the alljoyn.git project under alljoyn_core/router.

bspencer ( 2014-07-10 10:03:32 -0700 )edit
Login/Signup to Answer

Question Tools

1 follower


Asked: 2014-04-16 05:15:58 -0700

Seen: 52 times

Last updated: Apr 21 '14