|
@@ -126,6 +126,10 @@ static const struct net_device_ops ifb_netdev_ops = {
|
|
.ndo_validate_addr = eth_validate_addr,
|
|
.ndo_validate_addr = eth_validate_addr,
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+#define IFB_FEATURES (NETIF_F_NO_CSUM | NETIF_F_SG | NETIF_F_FRAGLIST | \
|
|
|
|
+ NETIF_F_TSO_ECN | NETIF_F_TSO | NETIF_F_TSO6 | \
|
|
|
|
+ NETIF_F_HIGHDMA | NETIF_F_HW_VLAN_TX)
|
|
|
|
+
|
|
static void ifb_setup(struct net_device *dev)
|
|
static void ifb_setup(struct net_device *dev)
|
|
{
|
|
{
|
|
/* Initialize the device structure. */
|
|
/* Initialize the device structure. */
|
|
@@ -136,6 +140,9 @@ static void ifb_setup(struct net_device *dev)
|
|
ether_setup(dev);
|
|
ether_setup(dev);
|
|
dev->tx_queue_len = TX_Q_LIMIT;
|
|
dev->tx_queue_len = TX_Q_LIMIT;
|
|
|
|
|
|
|
|
+ dev->features |= IFB_FEATURES;
|
|
|
|
+ dev->vlan_features |= IFB_FEATURES;
|
|
|
|
+
|
|
dev->flags |= IFF_NOARP;
|
|
dev->flags |= IFF_NOARP;
|
|
dev->flags &= ~IFF_MULTICAST;
|
|
dev->flags &= ~IFF_MULTICAST;
|
|
dev->priv_flags &= ~IFF_XMIT_DST_RELEASE;
|
|
dev->priv_flags &= ~IFF_XMIT_DST_RELEASE;
|