PDA

View Full Version : Routing NDI traffic to a specific NIC



jmmultex
07-03-2017, 04:47 PM
We have an installation with a front-end system that talks to multiple video servers on the backend. All of these systems have two NIC's - a 10G card that we want to route all NDI traffic across and a 1G card that we want to route all internet traffic across. The 10G network operates as one subnet and the 1G as another. All systems are running Windows 10 Pro.

We want to make sure that all NDI connections happen across the 10G network/subnet even though there is a 1G path between the boxes.

If there is a link to documentation that covers this situation just send it along. I don't mind "reading the *** manual" - just want a pointer in the right direction.

Thanks,
John

livepad
07-06-2017, 07:22 AM
We have an installation with a front-end system that talks to multiple video servers on the backend. All of these systems have two NIC's - a 10G card that we want to route all NDI traffic across and a 1G card that we want to route all internet traffic across. The 10G network operates as one subnet and the 1G as another. All systems are running Windows 10 Pro.

We want to make sure that all NDI connections happen across the 10G network/subnet even though there is a 1G path between the boxes.

If there is a link to documentation that covers this situation just send it along. I don't mind "reading the *** manual" - just want a pointer in the right direction.

Thanks,
John

Hi John.

We contributed source code to deliver this functionality for the NDI reference code last year, although it is not currently enabled in the public version of the NDI Libraries since there is currently no SDK call to control NIC selection.

We have requested that this functionality should be exposed in the shipping NDI Libraries, and hopefully that might happen in a future SDK release.

Meanwhile, it will help to highlight this important requirement so it falls under the radar of the NDI developers. I can see this being important in lots of higher end facilities where dedicated 'media' networks are Implemented.

Mark.

jmmultex
07-06-2017, 09:19 AM
Hi Mark - Thanks for the reply. This is definitely an important feature for what we are working on, and something we'd want to see as part of the base API. We'll find some way to work around this in the near term, but our final delivery by the end of the year will require more granular control over the routing of NDI Traffic.

I'll run this up as a feature request to Andrew to see if this can make the next cut.

I appreciate you taking the time to update me.

Best,
John

ACross
07-06-2017, 03:47 PM
Hi Mark - Thanks for the reply. This is definitely an important feature for what we are working on, and something we'd want to see as part of the base API. We'll find some way to work around this in the near term, but our final delivery by the end of the year will require more granular control over the routing of NDI Traffic.

Making this work is slightly more complicated than meets the eye (and Mark's code implemented). Bear in mind that we have many platforms to support which use optimized paths for each (e.g. the Windows implementation uses completion ports and overlapped IO). This then needs to factor into the mDNS implementations (which are different on different platforms), the sending and the receiving ... and also into what we are about to release which takes things the next step. Finally there has to be a good API way of handling this that is simple for everyone.

This is something that we will add, but getting it right is not as simple as meets the eye.

Andrew

PIZAZZ
07-08-2017, 03:13 PM
Making this work is slightly more complicated than meets the eye (and Mark's code implemented). Bear in mind that we have many platforms to support which use optimized paths for each (e.g. the Windows implementation uses completion ports and overlapped IO). This then needs to factor into the mDNS implementations (which are different on different platforms), the sending and the receiving ... and also into what we are about to release which takes things the next step. Finally there has to be a good API way of handling this that is simple for everyone.

This is something that we will add, but getting it right is not as simple as meets the eye.

Andrew

Andrew, Would you say it is "nontrivial" to implement?

ACross
07-09-2017, 01:28 AM
Andrew, Would you say it is "nontrivial" to implement?

I would say it is entirely possible to implement, but some thought needs to be given to exactly how it works and how it interacts with the different parts of the system. NDI has multiple parts that talk to network ports, discovery, sending and receiving, how do we want these to spread themselves across the nics, do you want to always just hard limit all parts to a single NIC or simply prioritize one over the other, etc...

The case described above of being on two distinct networks actually is not a problem because traffic would always go over the correct NIC in that case, the problem is when you have multiple NICs on the same networks or there are multiple routes between machines.

Andrew

ACross
07-13-2017, 05:26 PM
We want to make sure that all NDI connections happen across the 10G network/subnet even though there is a 1G path between the boxes.


I was discussing this issue with some engineers today and one of them suggested a really good workaround that would work today on all versions of NDI. Simply create a firewall rule that blocks port 5353 (the Bonjour port) on the NIC that you do not want traffic on.

jmmultex
07-14-2017, 08:41 AM
Andrew - thanks for the replies. Your suggestion of blocking the port is excellent for our immediate usage. I appreciate the followup.

Best,
john