Multicast Receptions on MOD54417
Posted: Wed Apr 19, 2017 1:52 pm
Using NNDK 2.7.5 -
Our application requires dedicating each of the 2 MOD54417 Network interfaces to a specific multicast address. I have created 2 separate tasks, one to service interface 1 and the other to service interface 2, each with a dedicated Fifo queue. The setup is as follows:
Connection to Interface 1: IP Address set (via IPSetup) to XX.Y.ZZ.NN, Subnet Mask 255.255.240.0;
The dedicated task is programmed to listen ONLY to Broadcast Address Group 239.255.AA.BB at a specified port on Interface 1, per line in multicast.h:
void RegisterMulticastFifo( IPADDR group, WORD dest_port, OS_FIFO *pfifo, int interface = 0 );
where we specify the interface = 1;
Connection to Interface 2: IP Address set (via IPSetup) to XX.Y.QQ.NN, Subnet Mask 255.255.240.0;
The dedicated task is programmed to listen ONLY to Broadcast Group Address 239.255.CC.DD at a specified port on Interface 2, also per the above line in multicast.h:
where we specify the interface = 2;
(NOTE: the interface argument is NOT described at all in the multicast.h file, so it is unclear whether 0 and 1 are needed, or 1 and 2, respectively, for the 2 interfaces. I have tried both sets of values.)
With my test setup, I can only send out broadcasts out one group IP at a time.
Both NetBurner Ethernet ports are connected to a switch, to which the broadcast sender is also connected.
So here's the scenario:
1) Sending out broadcasts out to Group Address 239.255.AA.BB, works fine. If I disconnect the Ethernet cable from NetBurner RJ-45 connector 0 (interface 1), the corresponding task reports that receptions are interrupted as expected. All's well. Reconnect, and receptions are re-established. SFSG...
2) Sending out broadcasts out to Group Address 239.255.CC.DD, also works fine. HOWEVER, if I disconnect the Ethernet cable from NetBurner RJ-45 connector 1 (interface 2), the corresponding task DOES NOT report that receptions are interrupted. If, just for fun, I disconnect the Ethernet cable from the NetBurner RJ-45 connector 0 ... the task dedicated to receiving on interface 2 now reports that receptions are interrupted!
It would appear that the association of each of the two tasks to a specified interface is not working as expected, and both tasks are responding to broadcasts arriving on Interface 1.
Am I missing something in setting up the Registering of the Multicast receptions with the Fifo Am I not understanding something about the association of the interfaces with the Fifo queues
Ron
Our application requires dedicating each of the 2 MOD54417 Network interfaces to a specific multicast address. I have created 2 separate tasks, one to service interface 1 and the other to service interface 2, each with a dedicated Fifo queue. The setup is as follows:
Connection to Interface 1: IP Address set (via IPSetup) to XX.Y.ZZ.NN, Subnet Mask 255.255.240.0;
The dedicated task is programmed to listen ONLY to Broadcast Address Group 239.255.AA.BB at a specified port on Interface 1, per line in multicast.h:
void RegisterMulticastFifo( IPADDR group, WORD dest_port, OS_FIFO *pfifo, int interface = 0 );
where we specify the interface = 1;
Connection to Interface 2: IP Address set (via IPSetup) to XX.Y.QQ.NN, Subnet Mask 255.255.240.0;
The dedicated task is programmed to listen ONLY to Broadcast Group Address 239.255.CC.DD at a specified port on Interface 2, also per the above line in multicast.h:
where we specify the interface = 2;
(NOTE: the interface argument is NOT described at all in the multicast.h file, so it is unclear whether 0 and 1 are needed, or 1 and 2, respectively, for the 2 interfaces. I have tried both sets of values.)
With my test setup, I can only send out broadcasts out one group IP at a time.
Both NetBurner Ethernet ports are connected to a switch, to which the broadcast sender is also connected.
So here's the scenario:
1) Sending out broadcasts out to Group Address 239.255.AA.BB, works fine. If I disconnect the Ethernet cable from NetBurner RJ-45 connector 0 (interface 1), the corresponding task reports that receptions are interrupted as expected. All's well. Reconnect, and receptions are re-established. SFSG...
2) Sending out broadcasts out to Group Address 239.255.CC.DD, also works fine. HOWEVER, if I disconnect the Ethernet cable from NetBurner RJ-45 connector 1 (interface 2), the corresponding task DOES NOT report that receptions are interrupted. If, just for fun, I disconnect the Ethernet cable from the NetBurner RJ-45 connector 0 ... the task dedicated to receiving on interface 2 now reports that receptions are interrupted!
It would appear that the association of each of the two tasks to a specified interface is not working as expected, and both tasks are responding to broadcasts arriving on Interface 1.
Am I missing something in setting up the Registering of the Multicast receptions with the Fifo Am I not understanding something about the association of the interfaces with the Fifo queues
Ron