Hi All,
I'm using kernel 2.4.18 and developing an ethernet network interface driver.
I have two problems that if you may consult me how to solve them -
1.. How can I adjust the throttling parameter of the IP stack not to drop any packet ? Meantime the IP stack routes 55k packets/sec and all the other it just drops (I can see them by the result of netif_rx).
2.. Routing jumbo packets through IP stack - I send 9K packets in size and IP stack routes the packets but by sending 1K packets in size ! is this possible ? I tripple checked the device driver on receive and transmit and it's ok. Do you know what is the problem ?
Thank you alot,
Rabeeh
From: Thomas 'Dent' Mirlacher <hidden> Date: 2002-06-02 09:39:53
--snip/snip
2.. Routing jumbo packets through IP stack - I send 9K packets in size and IP stack routes the packets but by sending 1K packets in size ! is this possible ? I tripple checked the device driver on receive and transmit and it's ok. Do you know what is the problem ?
did you check you MTU?
tm
--
in some way i do, and in some way i don't.
2.. Routing jumbo packets through IP stack - I send 9K packets in size and IP stack routes the packets but by sending 1K packets in size ! is this possible ? I tripple checked the device driver on receive and transmit and it's ok. Do you know what is the problem ?
I fixed the problems. I'm replying for the record of the mailing list.
Rabeeh Khoury wrote:
Hi All,
I'm using kernel 2.4.18 and developing an ethernet network interface
driver.
I have two problems that if you may consult me how to solve them -
1.. How can I adjust the throttling parameter of the IP stack not to
drop any packet ? Meantime the IP stack routes 55k packets/sec and all
the other it just drops (I can see them by the result of netif_rx).
echo 50000 > /proc/sys/net/core/netdev_max_backlog
This puts the throttling parameter of the IP stack to 50000, instead of
300 which is the defaul in kernel 2.4.18 (the default is set in
net/core/dev.c with the variable 'int netdev_max_backlog = 300;')
2.. Routing jumbo packets through IP stack - I send 9K packets in size
and IP stack routes the packets but by sending 1K packets in size ! is
this possible ? I tripple checked the device driver on receive and
transmit and it's ok. Do you know what is the problem ?
The HW I'v used that generates jumbo packets has put a wrong
total_length field in the IP header, which made IP stack remove a large
chunck of the packet. The relevant code that removes the chunck is in
net/ipv4/ip_input.c -
/* Our transport medium may have padded the buffer out.
Now we know it
* is IP we can trim to the true length of the frame.
* Note this now means skb->len holds ntohs(iph->tot_len).
*/
if (skb->len > len) {
__pskb_trim(skb, len);
if (skb->ip_summed == CHECKSUM_HW)
skb->ip_summed = CHECKSUM_NONE;
}
I fixed the problems. I'm replying for the record of the mailing list.
Rabeeh Khoury wrote:
Hi All,
I'm using kernel 2.4.18 and developing an ethernet network interface
driver.
I have two problems that if you may consult me how to solve them -
1.. How can I adjust the throttling parameter of the IP stack not to
drop any packet ? Meantime the IP stack routes 55k packets/sec and all
the other it just drops (I can see them by the result of netif_rx).
echo 50000 > /proc/sys/net/core/netdev_max_backlog
This puts the throttling parameter of the IP stack to 50000, instead of
300 which is the defaul in kernel 2.4.18 (the default is set in
net/core/dev.c with the variable 'int netdev_max_backlog = 300;')
2.. Routing jumbo packets through IP stack - I send 9K packets in size
and IP stack routes the packets but by sending 1K packets in size ! is
this possible ? I tripple checked the device driver on receive and
transmit and it's ok. Do you know what is the problem ?
The HW I'v used that generates jumbo packets has put a wrong
total_length field in the IP header, which made IP stack remove a large
chunck of the packet. The relevant code that removes the chunck is in
net/ipv4/ip_input.c -
/* Our transport medium may have padded the buffer out.
Now we know it
* is IP we can trim to the true length of the frame.
* Note this now means skb->len holds ntohs(iph->tot_len).
*/
if (skb->len > len) {
__pskb_trim(skb, len);
if (skb->ip_summed == CHECKSUM_HW)
skb->ip_summed = CHECKSUM_NONE;
}
From: Robert Olsson <hidden> Date: 2002-06-03 15:25:27
Rabeeh Khoury writes:
>
> 1.. How can I adjust the throttling parameter of the IP stack not to drop any packet ? Meantime the IP stack routes 55k packets/sec and all the other it just drops (I can see them by the result of netif_rx).
Hello!
There are no "throttling parameter" you have probably hit some of your
machine limits, bandwidth, CPU etc and 55 kpps can be decent. You didn't
mention your input rate, paket size or hardware.
http://www.cyberus.ca/~hadi/usenix-paper.tgz
Discusses related issues..
Cheers.
--ro