Re: Problem with sockets an 2.6.21-rc5 kernel

2007-03-27 Thread Evgeniy Polyakov
On Mon, Mar 26, 2007 at 11:03:21PM +0200, Jose Alberto Reguero ([EMAIL 
PROTECTED]) wrote:
 I had two python programs, server.py and client.py(attached)
 
 With server.py in  a kernel 2.6.21-rc5 x86_64 and client.py in the same 
 machine,  server.py get the message.
 
 With server.py in  a kerner 2.6.21-rc5 x86_64 and client.py in another 
 machine, server.py don't get the message.
 
 The same with the programs in c(attached).
 
 With kernel 2.6.20.3 the programs work well.
 
 There are something wrong in the programs?

Besides full absence of error checks and coding style issues it does not
seem to contain errors.

And, btw, C program work with 2.6.21-rc5 (git tree
e0f2e3a06be513352cb4955313ed7e55909acd84) on x86_64.

server.c application compiled with Debian 4.1.1-21 compiler on x86_64
sucessfully received message from 2.6.18-3 machine.

-- 
Evgeniy Polyakov
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Problem with sockets an 2.6.21-rc5 kernel

2007-03-27 Thread Jose Alberto Reguero
El Martes, 27 de Marzo de 2007, Evgeniy Polyakov escribió:
 On Mon, Mar 26, 2007 at 11:03:21PM +0200, Jose Alberto Reguero 
([EMAIL PROTECTED]) wrote:
  I had two python programs, server.py and client.py(attached)
 
  With server.py in  a kernel 2.6.21-rc5 x86_64 and client.py in the same
  machine,  server.py get the message.
 
  With server.py in  a kerner 2.6.21-rc5 x86_64 and client.py in another
  machine, server.py don't get the message.
 
  The same with the programs in c(attached).
 
  With kernel 2.6.20.3 the programs work well.
 
  There are something wrong in the programs?

 Besides full absence of error checks and coding style issues it does not
 seem to contain errors.

 And, btw, C program work with 2.6.21-rc5 (git tree
 e0f2e3a06be513352cb4955313ed7e55909acd84) on x86_64.

 server.c application compiled with Debian 4.1.1-21 compiler on x86_64
 sucessfully received message from 2.6.18-3 machine.

Thanks. I thought it was a kernel BUG. It is a alt1 driver BUG(Attansic(R) L1 
Ethernet Network Driver). The error happens with the atl1 driver that comes 
with kernel 2.6.21-rc5. With he original driver from ASUS for M2V motherboard 
modified to compile with kernel 2.6.21-rc5 there is no problems.

Jose Alberto
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Problem with sockets an 2.6.21-rc5 kernel

2007-03-27 Thread Evgeniy Polyakov
On Tue, Mar 27, 2007 at 04:29:11PM +0200, Jose Alberto Reguero ([EMAIL 
PROTECTED]) wrote:
 El Martes, 27 de Marzo de 2007, Evgeniy Polyakov escribió:
  On Mon, Mar 26, 2007 at 11:03:21PM +0200, Jose Alberto Reguero 
 ([EMAIL PROTECTED]) wrote:
   I had two python programs, server.py and client.py(attached)
  
   With server.py in  a kernel 2.6.21-rc5 x86_64 and client.py in the same
   machine,  server.py get the message.
  
   With server.py in  a kerner 2.6.21-rc5 x86_64 and client.py in another
   machine, server.py don't get the message.
  
   The same with the programs in c(attached).
  
   With kernel 2.6.20.3 the programs work well.
  
   There are something wrong in the programs?
 
  Besides full absence of error checks and coding style issues it does not
  seem to contain errors.
 
  And, btw, C program work with 2.6.21-rc5 (git tree
  e0f2e3a06be513352cb4955313ed7e55909acd84) on x86_64.
 
  server.c application compiled with Debian 4.1.1-21 compiler on x86_64
  sucessfully received message from 2.6.18-3 machine.
 
 Thanks. I thought it was a kernel BUG. It is a alt1 driver BUG(Attansic(R) L1 
 Ethernet Network Driver). The error happens with the atl1 driver that comes 
 with kernel 2.6.21-rc5. With he original driver from ASUS for M2V motherboard 
 modified to compile with kernel 2.6.21-rc5 there is no problems.

Did it work with in-kernel driver?
There is only one remotely related change in the driver:

-   mta = ioread32((hw + REG_RX_HASH_TABLE) + (hash_reg  2));
+   mta = ioread32((hw-hw_addr + REG_RX_HASH_TABLE) + (hash_reg  2));

If it worked before, then spurious ioread() from outside of our
univercity could lead to good/bad mta value (likely zero or ~0), so appropriate 
multicast list update could succeed.

If your programs never worked with this new driver, then it can not be
easily solved without hardware specifications.

I added Jay Cliburn who submitted the driver to Cc list.

 Jose Alberto

-- 
Evgeniy Polyakov
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Problem with sockets an 2.6.21-rc5 kernel

2007-03-27 Thread Jose Alberto Reguero
El Martes, 27 de Marzo de 2007, Evgeniy Polyakov escribió:
 On Tue, Mar 27, 2007 at 04:29:11PM +0200, Jose Alberto Reguero 
([EMAIL PROTECTED]) wrote:
  El Martes, 27 de Marzo de 2007, Evgeniy Polyakov escribió:
   On Mon, Mar 26, 2007 at 11:03:21PM +0200, Jose Alberto Reguero
 
  ([EMAIL PROTECTED]) wrote:
I had two python programs, server.py and client.py(attached)
   
With server.py in  a kernel 2.6.21-rc5 x86_64 and client.py in the
same machine,  server.py get the message.
   
With server.py in  a kerner 2.6.21-rc5 x86_64 and client.py in
another machine, server.py don't get the message.
   
The same with the programs in c(attached).
   
With kernel 2.6.20.3 the programs work well.
   
There are something wrong in the programs?
  
   Besides full absence of error checks and coding style issues it does
   not seem to contain errors.
  
   And, btw, C program work with 2.6.21-rc5 (git tree
   e0f2e3a06be513352cb4955313ed7e55909acd84) on x86_64.
  
   server.c application compiled with Debian 4.1.1-21 compiler on x86_64
   sucessfully received message from 2.6.18-3 machine.
 
  Thanks. I thought it was a kernel BUG. It is a alt1 driver
  BUG(Attansic(R) L1 Ethernet Network Driver). The error happens with the
  atl1 driver that comes with kernel 2.6.21-rc5. With he original driver
  from ASUS for M2V motherboard modified to compile with kernel 2.6.21-rc5
  there is no problems.

 Did it work with in-kernel driver?
 There is only one remotely related change in the driver:

 - mta = ioread32((hw + REG_RX_HASH_TABLE) + (hash_reg  2));
 + mta = ioread32((hw-hw_addr + REG_RX_HASH_TABLE) + (hash_reg  2));

 If it worked before, then spurious ioread() from outside of our
 univercity could lead to good/bad mta value (likely zero or ~0), so
 appropriate multicast list update could succeed.

 If your programs never worked with this new driver, then it can not be
 easily solved without hardware specifications.

 I added Jay Cliburn who submitted the driver to Cc list.

  Jose Alberto

The first time i try the kernel driver was with kernel 2.6.21-rc4, and don't 
work.  I can help to debug the problem, with some help.

I have a M2V motherboard with built-in Attansic(R) L1 Ethernet Network Driver 
and a Athlon 64 X2 Dual Core processor.

Jose Alberto


-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Problem with sockets an 2.6.21-rc5 kernel

2007-03-27 Thread Jose Alberto Reguero
El Martes, 27 de Marzo de 2007, Jose Alberto Reguero escribió:
 El Martes, 27 de Marzo de 2007, Evgeniy Polyakov escribió:
  On Tue, Mar 27, 2007 at 04:29:11PM +0200, Jose Alberto Reguero

 ([EMAIL PROTECTED]) wrote:
   El Martes, 27 de Marzo de 2007, Evgeniy Polyakov escribió:
On Mon, Mar 26, 2007 at 11:03:21PM +0200, Jose Alberto Reguero
  
   ([EMAIL PROTECTED]) wrote:
 I had two python programs, server.py and client.py(attached)

 With server.py in  a kernel 2.6.21-rc5 x86_64 and client.py in the
 same machine,  server.py get the message.

 With server.py in  a kerner 2.6.21-rc5 x86_64 and client.py in
 another machine, server.py don't get the message.

 The same with the programs in c(attached).

 With kernel 2.6.20.3 the programs work well.

 There are something wrong in the programs?
   
Besides full absence of error checks and coding style issues it does
not seem to contain errors.
   
And, btw, C program work with 2.6.21-rc5 (git tree
e0f2e3a06be513352cb4955313ed7e55909acd84) on x86_64.
   
server.c application compiled with Debian 4.1.1-21 compiler on x86_64
sucessfully received message from 2.6.18-3 machine.
  
   Thanks. I thought it was a kernel BUG. It is a alt1 driver
   BUG(Attansic(R) L1 Ethernet Network Driver). The error happens with the
   atl1 driver that comes with kernel 2.6.21-rc5. With he original driver
   from ASUS for M2V motherboard modified to compile with kernel
   2.6.21-rc5 there is no problems.
 
  Did it work with in-kernel driver?
  There is only one remotely related change in the driver:
 
  -   mta = ioread32((hw + REG_RX_HASH_TABLE) + (hash_reg  2));
  +   mta = ioread32((hw-hw_addr + REG_RX_HASH_TABLE) + (hash_reg  2));
 
  If it worked before, then spurious ioread() from outside of our
  univercity could lead to good/bad mta value (likely zero or ~0), so
  appropriate multicast list update could succeed.
 
  If your programs never worked with this new driver, then it can not be
  easily solved without hardware specifications.
 
  I added Jay Cliburn who submitted the driver to Cc list.
 
   Jose Alberto

 The first time i try the kernel driver was with kernel 2.6.21-rc4, and
 don't work.  I can help to debug the problem, with some help.

 I have a M2V motherboard with built-in Attansic(R) L1 Ethernet Network
 Driver and a Athlon 64 X2 Dual Core processor.

 Jose Alberto



I found that the original driver has its own ether_crc_le function, that 
return the value inverted. The attached patch solve the problem.

Jose Alberto



--- linux-2.6.21-rc5/drivers/net/atl1/atl1_hw.c	2007-03-26 00:56:23.0 +0200
+++ linux-2.6.21-rc5.new/drivers/net/atl1/atl1_hw.c	2007-03-27 20:14:23.0 +0200
@@ -334,7 +334,6 @@
 	int i;
 
 	crc32 = ether_crc_le(6, mc_addr);
-	crc32 = ~crc32;
 	for (i = 0; i  32; i++)
 		value |= (((crc32  i)  1)  (31 - i));
 


Re: Problem with sockets an 2.6.21-rc5 kernel

2007-03-27 Thread Jose Alberto Reguero
El Martes, 27 de Marzo de 2007, Jose Alberto Reguero escribió:
 El Martes, 27 de Marzo de 2007, Jose Alberto Reguero escribió:
  El Martes, 27 de Marzo de 2007, Evgeniy Polyakov escribió:
   On Tue, Mar 27, 2007 at 04:29:11PM +0200, Jose Alberto Reguero
 
  ([EMAIL PROTECTED]) wrote:
El Martes, 27 de Marzo de 2007, Evgeniy Polyakov escribió:
 On Mon, Mar 26, 2007 at 11:03:21PM +0200, Jose Alberto Reguero
   
([EMAIL PROTECTED]) wrote:
  I had two python programs, server.py and client.py(attached)
 
  With server.py in  a kernel 2.6.21-rc5 x86_64 and client.py in
  the same machine,  server.py get the message.
 
  With server.py in  a kerner 2.6.21-rc5 x86_64 and client.py in
  another machine, server.py don't get the message.
 
  The same with the programs in c(attached).
 
  With kernel 2.6.20.3 the programs work well.
 
  There are something wrong in the programs?

 Besides full absence of error checks and coding style issues it
 does not seem to contain errors.

 And, btw, C program work with 2.6.21-rc5 (git tree
 e0f2e3a06be513352cb4955313ed7e55909acd84) on x86_64.

 server.c application compiled with Debian 4.1.1-21 compiler on
 x86_64 sucessfully received message from 2.6.18-3 machine.
   
Thanks. I thought it was a kernel BUG. It is a alt1 driver
BUG(Attansic(R) L1 Ethernet Network Driver). The error happens with
the atl1 driver that comes with kernel 2.6.21-rc5. With he original
driver from ASUS for M2V motherboard modified to compile with kernel
2.6.21-rc5 there is no problems.
  
   Did it work with in-kernel driver?
   There is only one remotely related change in the driver:
  
   - mta = ioread32((hw + REG_RX_HASH_TABLE) + (hash_reg  2));
   + mta = ioread32((hw-hw_addr + REG_RX_HASH_TABLE) + (hash_reg  2));
  
   If it worked before, then spurious ioread() from outside of our
   univercity could lead to good/bad mta value (likely zero or ~0), so
   appropriate multicast list update could succeed.
  
   If your programs never worked with this new driver, then it can not be
   easily solved without hardware specifications.
  
   I added Jay Cliburn who submitted the driver to Cc list.
  
Jose Alberto
 
  The first time i try the kernel driver was with kernel 2.6.21-rc4, and
  don't work.  I can help to debug the problem, with some help.
 
  I have a M2V motherboard with built-in Attansic(R) L1 Ethernet Network
  Driver and a Athlon 64 X2 Dual Core processor.
 
  Jose Alberto

 I found that the original driver has its own ether_crc_le function, that
 return the value inverted. The attached patch solve the problem.

 Jose Alberto

if yu you want to apply it in the case that you need it:

Signed-off-by: Jose Alberto Reguero [EMAIL PROTECTED]

Jose Alberto
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Problem with sockets an 2.6.21-rc5 kernel

2007-03-26 Thread Jose Alberto Reguero
I had two python programs, server.py and client.py(attached)

With server.py in  a kernel 2.6.21-rc5 x86_64 and client.py in the same 
machine,  server.py get the message.

With server.py in  a kerner 2.6.21-rc5 x86_64 and client.py in another 
machine, server.py don't get the message.

The same with the programs in c(attached).

With kernel 2.6.20.3 the programs work well.

There are something wrong in the programs?

Thanks.

Jose Alberto


client.py
Description: application/python
#include sys/socket.h
#include netinet/in.h
#include string.h

main()
{
	int sock = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP);
	struct sockaddr_in ClientAddr;
	memset(ClientAddr, 0, sizeof(ClientAddr));
	ClientAddr.sin_family = AF_INET;
	ClientAddr.sin_addr.s_addr = inet_addr(227.234.253.9);
	int port = 15922;
	ClientAddr.sin_port = htons((short) port);
	char str[] = Hello, world;
	sendto(sock, str, strlen(str), 0, (struct sockaddr *)ClientAddr, sizeof(ClientAddr));
	close(sock);
}
#include sys/socket.h
#include netinet/in.h
#include arpa/inet.h
#include string.h
#include stdio.h

main()
{
struct sockaddr_in ServerAddr;
int sock = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP);
int reuse = 1;
setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, reuse, sizeof(int));
memset(ServerAddr, 0, sizeof(ServerAddr));
ServerAddr.sin_family = AF_INET;
ServerAddr.sin_addr.s_addr = htonl(INADDR_ANY);
int port = 15922;
ServerAddr.sin_port = htons((short) port);
bind(sock, (struct sockaddr *)ServerAddr, sizeof(ServerAddr));
struct ip_mreq mreq;
	memset(mreq, 0, sizeof(mreq));
mreq.imr_multiaddr.s_addr = inet_addr(227.234.253.9);
	mreq.imr_interface.s_addr = htonl(INADDR_ANY);
setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, mreq, sizeof(mreq));
char str[100];
	memset(str, 0, sizeof(str));
recv(sock, str, 100, 0);
printf(:%s:\n, str);
	close (sock);
}


server.py
Description: application/python