Question regarding skb forwarding

From: Wang Yesheng <hidden>
Date: 2015-11-09 04:53:57

Hi all,

I’ve been trying to create a bridge like driver for a while. The
project is running into a wall due to the inability of seeing either
netdevice_ops structure or hard_start_xmit function from my device
driver in both Intel ixgbe and e1000e drivers.

Basically, I have a structure preserving all struct net_device
pointers running on system. I intend to send a skb via calling either
dev->netdev_ops->ndo_start_xmit() or dev->hard_start_xmit(). Long
story short, netdev_ops is a NULL pointer in my build for both ixgbe
and e1000e and hard_start_xmit() is not a member function of struct
net_device in 3.13.0 kernel.

I borrowed the idea of calling dev_queue_xmit(skb) instead from kernel
bridge driver but this is also plagued by the fact that netdev_ops
does not exist, as dev_queue_xmit will subsequently use netdev_ops
without guard.

Are my approaches off? What did I do wrong? Does anyone have any idea
as why my ixgbe and e1000e driver builds do not have netdev_ops
exposed in struct net_device pointer for the hardware ports?

Environment:
Ubuntu 14.04 LTS with kernel version 3.13.0-66-generic
Gcc 4.8
Ixgbe source version 4.0.3
e1000e source version 3.1.0.2

Thanks ahead to everyone.

Regards,
Andy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help