preferred routing?

Technical discussions around xCORE processors (e.g. xcore-200 & xcore.ai).
Post Reply
User avatar
CousinItt
Respected Member
Posts: 360
Joined: Wed May 31, 2017 6:55 pm

preferred routing?

Post by CousinItt »

mesh links.png
mesh links.png (5.27 KiB) Viewed 3416 times
mesh links.png
mesh links.png (5.27 KiB) Viewed 3416 times

Hi,

the pic shows five XL devices A..E, connected by links, with an XTAG debugger X attached to node A.

I'd like each node to be able to communicate with any other, but I would like the B-C link only to carry traffic directly between those two nodes. In other words, traffic between A and C should follow the path A-D-C, not A-B-C, and traffic between D, or E, and B should follow the D-A-B route and not D-C-B. I'd like to do this because I don't want the B-C link to be blocked.

Is there a way to set up the routing that would support this?

Thanks!


User avatar
CousinItt
Respected Member
Posts: 360
Joined: Wed May 31, 2017 6:55 pm

Post by CousinItt »

Nobody?
User avatar
akp
XCore Expert
Posts: 578
Joined: Thu Nov 26, 2015 11:47 pm

Post by akp »

Have you made progress with this problem? I don't know the answer but looking at this document (https://www.xmos.com/file/xconnect-architecture/) I see two options that might be relevant to your situation:
1. Set the channel ends associated with the B-C link to a different virtual network than the other channel ends (Sec 1.4), so then the traffic on your main virtual network won't be routed through that link
2. Set the B-C link as non-routed per Sec. 2.3 -- to me this seems ideal since it reduces overhead to improve your bandwidth
User avatar
CousinItt
Respected Member
Posts: 360
Joined: Wed May 31, 2017 6:55 pm

Post by CousinItt »

Hi akp,

it's nice to get a reply, so thanks.

The routing I was trying to achieve was for test purposes, but not needed for the final product so I've just done without it. Effectively the link between B and C is missing, so all messages between them would be routed B-A-D-C (and vice versa). It's a good thing none are needed. It's not clear that a solution to the problem even exists.

I don't know enough about virtual networks. Can a node be a member of more than one virtual network simultaneously? If not, this would allow B and C to have a private chat, but nothing else could talk to them, which wouldn't work for me.

I've not tried non-routed links, but it's an interesting thought. Maybe I'll give it a try when the dust has settled.

Thanks again.
User avatar
akp
XCore Expert
Posts: 578
Joined: Thu Nov 26, 2015 11:47 pm

Post by akp »

What I understand is that you can set the virtual network on a link, not a node. So you could set B-C link to virtual network 1 (for instance) and all the other links to virtual network 0. There can be 4 virtual networks. So if you transmit a message from B to any other node on virtual network 0 it would follow the A-B link, and likewise for C it would follow the C-D link. But if you transmit a message from B-C on virtual network 0 it would follow the B-C link. But I have never tried it, I am just trying to understand the documents. But in your case setting up a static link (aka non-routed link) in software rather than using the routing table might be a better bet for that high priority link.

Having said that, this feature could be useful to me in the future so if you get it to work I would be interested to hear the result.
Quintondun
Newbie
Posts: 1
Joined: Thu Nov 21, 2019 12:01 pm

Post by Quintondun »

What do you think a good use case for this feature would be, akp?
Post Reply