Elnk driver tx ring full !

Arquer Stephane stephane.arquer at c-s.cnes.fr
Thu Nov 29 11:13:52 UTC 2007


Hello,

I'm trying to send samples over a 3Com905 nic using the elnk.c driver
and when I want to send more than 50 values (like double with variable
name ) the elnk_txdaemon stops when ring is full.

Here my networkconfig.h file:

/*
 * Default network interface
 */
static struct rtems_bsdnet_ifconfig netdriver_config = {
	RTEMS_BSP_NETWORK_DRIVER_NAME,		/* name */
	RTEMS_BSP_NETWORK_DRIVER_ATTACH,		/* attach
function */
#ifdef RTEMS_USE_LOOPBACK 
	&loopback_config,			/* link to next
interface */
#else
	NULL,					/* No more interfaces */
#endif
#if (defined (RTEMS_USE_BOOTP))
	NULL,					/* BOOTP supplies IP
address */
	NULL,					/* BOOTP supplies IP net
mask */
#else
	"192.168.0.5",				/* IP address */
	"255.255.255.0",			/* IP net mask */
#endif /* !RTEMS_USE_BOOTP */

#if (defined (RTEMS_SET_ETHERNET_ADDRESS))
	ethernet_address,               /* Ethernet hardware address */
#else
	NULL,                           /* Driver supplies hardware
address */
#endif
	0				/* Use default driver parameters
*/
};

struct rtems_bsdnet_config rtems_bsdnet_config = { 
	&netdriver_config,
#if (defined (RTEMS_USE_BOOTP))
	rtems_bsdnet_do_bootp,
#else
	NULL,
#endif
	0,			/* Default network task priority */
	256*1024,		/* Default mbuf capacity */
	512*1024,		/* Default mbuf cluster capacity */
#if (!defined (RTEMS_USE_BOOTP))
	"rtems_host",		/* Host name */
	"nodomain.com",		/* Domain name */
	"192.168.0.1",	/* Gateway */
	"192.168.0.1",	/* Log host */
	{"192.168.0.1" },	/* Name server(s) */
	{"192.168.0.1" },	/* NTP server(s) */
#endif /* !RTEMS_USE_BOOTP */
}

I made several tests increasing mbuf and mbuf cluster capacity and I saw
that it's not necessary to increase them a lot.

I use the default parameters of number of buffers 
#define RX_RING_SIZE	16	/* default number of buffers */
#define TX_RING_SIZE	16

I don't know how to tune these parameters ?
Who support this driver ?

Does someone can give me information about tuning this driver to avoid
the break inside the elnk_txdaemon ?
Is this break usefull ?
It should be better to wait for XL_TXSTAT_DL_COMPLETE before trying to
send new packet instead of putting the interface inactive.


Thanks in advance for your precious help.

Regards.

sa



More information about the users mailing list