this code does not get called in dev.c so do we need it?

From: will fitzgerald (linux_learning@yahoo.co.uk)
Date: Wed Oct 02 2002 - 09:02:35 EST


hi all,

this code excerpt from net_rx_action in dev.c does not
get executed at all. is there any need for it? what
does it do?

i inserted printk's in it just about everywhere.
i have a test network set up, A talks to C via router
B
(kernel 2.4.14)
justificattion:
i've pinged C from A, I've pinged eth0 on B from
A,I've pinged eth1 on B from A and i've pinged A from
router B and in no instance was any of the following
code executed.

whats CONFIG_NET_FASTROUTE supposed to do?

the only part that does get executed are the lines:
"skb->h.raw = skb->nh.raw = skb->data;
                {struct packet_type *ptype, *pt_prev;
                 unsigned short type = skb->protocol;
                  pt_prev = NULL;" just after the
CONFIG_NET_FASTROUTE section of code.

#ifdef CONFIG_NET_FASTROUTE
                if (skb->pkt_type == PACKET_FASTROUTE) {
                        netdev_rx_stat[this_cpu].fastroute_deferred_out++;
                        dev_queue_xmit(skb);
                        dev_put(rx_dev);
                        continue;
                }
#endif
                skb->h.raw = skb->nh.raw = skb->data;
                {

                        struct packet_type *ptype, *pt_prev;
                        unsigned short type = skb->protocol;

                        pt_prev = NULL;
                        for (ptype = ptype_all; ptype; ptype = ptype->next)
{
                                if (!ptype->dev || ptype->dev == skb->dev) {
                                        if (pt_prev) {
                                                if (!pt_prev->data) {
                                                        deliver_to_old_ones(pt_prev, skb, 0);
                                                } else {
                                                        atomic_inc(&skb->users);
                                                        pt_prev->func(skb,
                                                                      skb->dev,
                                                                      pt_prev);
                                                }
                                        }
                                        pt_prev = ptype;
                                }
                        }

#ifdef CONFIG_NET_DIVERT
                        if (skb->dev->divert && skb->dev->divert->divert)
                                handle_diverter(skb);
#endif /* CONFIG_NET_DIVERT */

                        
#if defined(CONFIG_BRIDGE) ||
defined(CONFIG_BRIDGE_MODULE)
                        if (skb->dev->br_port != NULL &&
                            br_handle_frame_hook != NULL) {
                                handle_bridge(skb, pt_prev);
                                dev_put(rx_dev);
                                continue;
                        }
#endif

if i'm wrong let me know,
thanks.

__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Oct 07 2002 - 22:00:34 EST