1

Topic: CobraNet Multi-Unicast reminder

I used to know this, but am currently confused by some conflicting/ambiguous docs and advice.
See attached on one part.
http://www.peaveyoxford.com/forum/viewtopic.php?id=465 doesn't quite answer all my questions.
This specific example will clarify one of the principles I'm trying to clarify:
txUnicastMode = 2
txMaxUnicast = 4
Receivers on the bundle = 4
Does it become multicast after 2 receivers?

Also, without battling with cycle.exe, what are the rule of thumb limits of a CM-1?
Total bundles?
Total channels in/out? 32x32, regardless of Multi-Unicast??

Specifically, I want to send 3 bundles (2x 8ch, 1x 4ch) each multi-unicast to 4 receivers (= 20ch into CM-1 and 12 bundles out).
What (roughly) am I left with in terms of other unicast bundles in and out?

Thanks very much.

Post's attachments

Attachment icon NWare Device Ref v CobraNet Programmers Ref.docx 258.12 kb, 645 downloads since 2014-10-26 

"The single biggest problem in communication is the illusion that it has taken place."
                                                                                        - George Bernard Shaw

2

Re: CobraNet Multi-Unicast reminder

Hi Phil,

txUnicastMode and txMaxUnicast only apply to bundle numbers greater than 256, i.e. bundles that are normally unicast.

txUnicastMode can be thought of as a multicast  threshold value. So yes, in your question the bundle will be sent multicast if there are more than 2 receivers for it.

When the number of receiving devices exceeds the number set in txUnicastMode, then the bundle will be sent as a  multicast bundle.

This value is normally set very high so that it can never be exceeded and the bundle is always sent unicast.
0x7fffff is the default value and corresponds to the 'Always' setting for UnicastMode when using the advanced configuration mode in nWare.

Legal values for txUnicastMode are:

  • 0         = Always multicast - this is as legal CobraNet value but is not a value that can be set from nWare
                    If you want to always multicast abundle then it is best to use a bundle number lower than 256

  • 1           = Multicast the bundle if there is more than one receiver for the bundle number

  • 2           = Multicast the bundle if there are more than two receivers for the bundle number

  • 3           = Multicast the bundle if there are more than three receivers for the bundle number

  • 4           = Multicast the bundle if there are more than four receivers for the bundle number

  • 0x7fffff  = Always unicast, i.e. never multicast. This HEX value also equals  8388607 decimal

ALL OTHER VALUES SHOULD BE CONSIDERED ILLEGAL

So with a default txUnicastNMode of 0x7fffff the bundle will always be sent unicast and if there is more than one receiver for the bundle then the the transmitter will send as many copies of the bunlde to th receivers up to the value of txMaxUnicast or 4, whichever is lower. The default value is always 1 unless changed. So be default each transmitter can only unicast one bundle.

So let's look at a few scenarios:
In each there are three receivers that want to receive bundle number 300 and our transmitter is set to transmit bundle 300

Scenario 1:
txUnicastMode = 0x7ffff
txMaxUnicast   = 1
Result:  Transmitter sends one bundle to only one receiver. Two receivers do not receive the bundle

Scenario 2:
txUnicastMode = 0x7ffff
txMaxUnicast  = 3
Result:  Transmitter sends three separate copies of the same bundle to all three receivers.

Scenario 3:
txUnicastMode = 2
txMaxUnicast  = 3
Result:  Transmitter sends only one bundle as a multicast bundle because there are more than two receivers for it.
             Allreceivers receive the one multicast bundle
             The value of txMaxUnicast does not matter

txUnicastMode = 3
txMaxUnicast   = 2
Result:  Transmitter sends two separate copies of the same  bundle to the two receivers.
             One receiver does not get a copy of the bundle because txMaxUnicast is set to 2

LEGAL VALUES FOR txMaxUnicast = 1,2,3 or 4

There is no hard and fast rule of thumb for bundle loading. It is a multi-variable consideration but
usually try to keep it at 32 to 40 channels tops, depending on total transmitters used and other loading factors like CAB control, bridging and conductor responsibilities. It should never be less than 32 regardless of bundle configuration but you may not always be able to get more.

In your case, you want to send 3 bundles multi-unicast to 4 receivers each. That is WAY too much for one interface based on channel counts.
That would be 2 @  8 channel bundles * 4 multi-unicast copies = 8 @ 8 channel bundles = 64 channels!   PLUS four more 4 channel bundles on top of that.  That's 80 channels in 12 bundles.
There is no way that could ever work.

If you want to do this you might be able to support this scenario if divided on two different NIONs.  That would be 40 channels per NION but that still might not be possible depending on what else the CM-1 in the NION is being asked to do. How many receivers are configured? Is the NION the conductor? How many CABS are assigned to the NION?

The other possibility would be to use multicast bundles. But then you've used up quite a bit of your total available 100BT bandwidth system wide.  So that is probably not a good solution either.

Use more NIONs to send these bundles.
Let me know if you have any more questions about this.

Nihilism is best done by professionals

3

Re: CobraNet Multi-Unicast reminder

Hi Steve,

Thanks very much for this answer: it clarifies many things for me.
After posting, I did actually crank up cycle.exe, which immediately made me realise how impossible the case I was looking at actually is, in terms of Ethernet traffic as you point out. In spite of the unicast settings that somebody has put in, the relevant bundles are transmitting multicast, which is the only way that it could even almost work.
Thanks again,
Phil

"The single biggest problem in communication is the illusion that it has taken place."
                                                                                        - George Bernard Shaw