Hi,

I had a question.

How do I send IP multicast traffic if link layer is ATM? 
I have a socket program, in which if I try sending over atm0, I get a
-EINVAL.

I have attached my sender code below.

I am using CLIP. I have two Linux boxes connected back-back (I am able to
ping each other on ATM).

The code works for ethernet.

Am I missing something?

Thanks,
Pramodh

mcast_send() {
        fd=socket(AF_INET,SOCK_DGRAM,0);

        /* struct ifreq ifr; */
        strcpy(ifr.ifr_ifrn.ifrn_name, "atm0");
        ret = ioctl(fd, SIOCGIFINDEX, (void *)&ifr);

        /* struct ip_mreqn mreqn; */
        mreqn.imr_multiaddr.s_addr = inet_addr("225.0.0.37");
        /* 192.168.40.2 --> ATM interface address */
        mreqn.imr_address.s_addr = inet_addr("192.168.40.2");
        mreqn.imr_ifindex = ifr.ifr_ifru.ifru_ivalue;

        ret = setsockopt(fd, SOL_IP, IP_MULTICAST_IF, 
                        (void *)&mreqn, sizeof(mreqn));
        
        /* struct sockaddr_in addr; */
        addr.sin_family=AF_INET;
        addr.sin_addr.s_addr=inet_addr("225.0.0.37");
        addr.sin_port=htons(6001);
        if (sendto(fd,(char *)message,len,0,
                   (struct sockaddr *) &addr, sizeof(addr)) < 0) {
            perror("sendto");
            exit(1);
        }
}

-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]

Reply via email to