network device index selection in QNX

My system has 2 NIC’s in it, one for a normal network, the other strictly for UDP/Multicast. I need to be able to bind to the secondary device for the multicast services that will be available on it. The piece of code I need to port from LINUX follows:

//////////////////////////////////////////////////////
bool GetInterfaceIndex(int socket_fd,int& InterfaceIndex,const char DeviceName)
{
struct ip_mreqn mreqn;
struct ifreq m_ifreq;
int i;
sockaddr
sa = (sockaddr*) &m_SockAddr;

InterfaceIndex = -1;
mreqn.imr_multiaddr = *(struct in_addr *) &(sa->sa_data[2]);

for (i = 0; i < IFNAMSIZ && DeviceName[i]; ++i)
m_ifreq.ifr_name[i] = DeviceName[i];
for (; i < IFNAMSIZ; ++i)
m_ifreq.ifr_name[i] = 0;

if (ioctl (socket_fd, SIOCGIFINDEX, &m_ifreq))
return(false);

InterfaceIndex = m_ifreq.ifr_ifindex;
return(true);
}
bool Join(int socket_fd,const char *ip,const char *eth)
{
struct ip_mreqn group;
struct sockaddr_in myaddr;
socklen_t len = sizeof(myaddr);
int InterfaceIndex(0);

GetInterfaceIndex(socket_fd,InterfaceIndex,eth);
getsockname(socket_fd, (struct sockaddr *)&myaddr, &len);
memcpy(&group.imr_address, &myaddr.sin_addr, sizeof(&myaddr.sin_addr));
inet_aton(ip,&group.imr_multiaddr);
group.imr_ifindex = InterfaceIndex;
setsockopt(socket_fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&group, sizeof(gr
return(true);
}
//////////////////////////////////////////////////////

Join() will be given an connected socket already
config’d for udp.

The problem is this: LINUX uses a different
naming convention for network device from QNX,
so right off I know my example will have issues
because it’s built for names like /dev/eth0.

So is it a simple matter of device naming to make device selection work in QNX, or will I have to take an entirely different approach?

Many thanks!

-e