wang long(deleted)
|
Net.e1000 with Intel82583 Multicast Not Work,Help
|
wang long(deleted)
12/28/2013 12:22 PM
post107732
|
Net.e1000 with Intel82583 Multicast Not Work,Help
OS:Qnx4.25
Hardware: Intel82583
DriverVersion:Net.e1000.20120213.tar.gz
TCPIPVersion:Tcpip.20120510.tar.gz
code as below can't recv any multicast packets from client.when the code is executed, it will be stuck at recv. and i
checked the registers, and found that none of multicast filter is set. if i set multicast promiscuous bit as 1, the
MPRC( multicast packet receive counter ) will increase, but the code still is stuck at recv. anybody can help me?
/**************82583 relative registers*************************/
# ./dbg
idx:0 busnum =1,devfun=0, portAddr = dfe20000,page_ptr = 0000e000
RCTL:04408012 PRC64:00000067 PRC127:0000010e
PRC255:00000000 PRC511:003f7e8f PRC1023:00000004 PRC1522:00000002
GPRC:003f7ff1 BPRC:0000010e MPRC:003f7e82 TPR:003f7ff3
/******************network configuration*********************/
# ifconfig -a
en1: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
address: 00:30:64:25:d5:08
inet 192.168.0.244 netmask 0xffffff00 broadcast 192.168.0.255
en2: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
address: 00:30:64:25:d5:09
inet 192.168.1.244 netmask 0xffffff00 broadcast 192.168.1.255
en3: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
address: 00:30:64:25:d5:0a
inet 192.168.2.244 netmask 0xffffff00 broadcast 192.168.2.255
en4: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
address: 00:30:64:25:d5:0b
inet 198.122.3.22 netmask 0xffff0000 broadcast 198.122.255.255
en5: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
address: 00:30:64:25:d5:0c
inet 192.168.5.244 netmask 0xffffff00 broadcast 192.168.5.255
en6: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
address: 00:30:64:25:d5:0d
inet 192.168.6.244 netmask 0xffffff00 broadcast 192.168.6.255
lo0: flags=8009<UP,LOOPBACK,MULTICAST> mtu 32976
inet 127.0.0.1 netmask 0xff000000
# netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Mtu Interface
localhost localhost UH 0 56 - lo0
192.168 link#1 UC 0 0 - en1
192.168.0.10 3c:97:0e:c0:73:69 UHL 1 88 - en1
192.168.1 link#2 UC 0 0 - en2
192.168.2 link#3 UC 0 0 - en3
192.168.5 link#5 UC 0 0 - en5
192.168.6 link#6 UC 0 0 - en6
198.122/16 link#4 UC 0 0 - en4
/*****************************code***********************************/
#define PORT 4321
#define MCAST_GROUP "224.0.1.129"
#define LOCAL_ADDR "192.168.0.244"
int init_socket(void)
{
int sock, on = 1, ucItem,mrport;
struct sockaddr_in name;
struct ip_mreq mreq; // multicast
sock = socket(AF_INET, SOCK_DGRAM, 0);
if(sock < 0)
{
printf("opening datagram socket error.");
return -1;
}
on = 1;
if(setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)))
{
printf("reuse address error.");
return -1;
}
on = 1;
if(setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, &on, sizeof(on)))
{
printf("reuse port error.");
return -1;
}
memset(&name, 0, sizeof(struct sockaddr_in));
name.sin_len = sizeof(struct sockaddr_in);
name.sin_family = AF_INET;
name.sin_addr.s_addr = inet_addr(LOCAL_ADDR);
name.sin_port = htons(PORT);
if(bind(sock, (struct sockaddr *)&name, sizeof(name)))
{
printf("binding datagram socket error.");
return -1;
}
mreq.imr_multiaddr.s_addr =...
View Full Message
|
|
|
Hugh Brown
|
Re: Net.e1000 with Intel82583 Multicast Not Work,Help
|
Hugh Brown
01/02/2014 7:26 AM
post107751
|
Re: Net.e1000 with Intel82583 Multicast Not Work,Help
Did you start the driver with the -M command line option?
On 2013/12/28, 12:22 PM, "wang long" <community-noreply@qnx.com> wrote:
>OS:Qnx4.25
>Hardware: Intel82583
>DriverVersion:Net.e1000.20120213.tar.gz
>TCPIPVersion:Tcpip.20120510.tar.gz
>
>code as below can't recv any multicast packets from client.when the code
>is executed, it will be stuck at recv. and i checked the registers, and
>found that none of multicast filter is set. if i set multicast
>promiscuous bit as 1, the MPRC( multicast packet receive counter ) will
>increase, but the code still is stuck at recv. anybody can help me?
>
>/**************82583 relative registers*************************/
># ./dbg
>idx:0 busnum =1,devfun=0, portAddr = dfe20000,page_ptr = 0000e000
>RCTL:04408012 PRC64:00000067 PRC127:0000010e
>PRC255:00000000 PRC511:003f7e8f PRC1023:00000004 PRC1522:00000002
>GPRC:003f7ff1 BPRC:0000010e MPRC:003f7e82 TPR:003f7ff3
>/******************network configuration*********************/
># ifconfig -a
>en1: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu
>1500
> address: 00:30:64:25:d5:08
> inet 192.168.0.244 netmask 0xffffff00 broadcast 192.168.0.255
>en2: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu
>1500
> address: 00:30:64:25:d5:09
> inet 192.168.1.244 netmask 0xffffff00 broadcast 192.168.1.255
>en3: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu
>1500
> address: 00:30:64:25:d5:0a
> inet 192.168.2.244 netmask 0xffffff00 broadcast 192.168.2.255
>en4: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu
>1500
> address: 00:30:64:25:d5:0b
> inet 198.122.3.22 netmask 0xffff0000 broadcast 198.122.255.255
>en5: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu
>1500
> address: 00:30:64:25:d5:0c
> inet 192.168.5.244 netmask 0xffffff00 broadcast 192.168.5.255
>en6: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu
>1500
> address: 00:30:64:25:d5:0d
> inet 192.168.6.244 netmask 0xffffff00 broadcast 192.168.6.255
>lo0: flags=8009<UP,LOOPBACK,MULTICAST> mtu 32976
> inet 127.0.0.1 netmask 0xff000000
># netstat -r
>Routing tables
>
>Internet:
>Destination Gateway Flags Refs Use Mtu
>Interface
>localhost localhost UH 0 56 - lo0
>192.168 link#1 UC 0 0 - en1
>192.168.0.10 3c:97:0e:c0:73:69 UHL 1 88 - en1
>192.168.1 link#2 UC 0 0 - en2
>192.168.2 link#3 UC 0 0 - en3
>192.168.5 link#5 UC 0 0 - en5
>192.168.6 link#6 UC 0 0 - en6
>198.122/16 link#4 UC 0 0 - en4
>
>
>/*****************************code***********************************/
>#define PORT 4321
>#define MCAST_GROUP "224.0.1.129"
>#define LOCAL_ADDR "192.168.0.244"
>
>int init_socket(void)
>{
> int sock, on = 1, ucItem,mrport;
> struct sockaddr_in name;
> struct ip_mreq mreq; // multicast
>
> sock = socket(AF_INET, SOCK_DGRAM, 0);
> if(sock < 0)
> {
> printf("opening datagram socket error.");
> return -1;
> }
> on = 1;
> if(setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)))
> {
> printf("reuse address error.");
> return -1;
> }
> on = 1;
> if(setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, &on,...
View Full Message
|
|
|
|