diff -ruNp org/include/linux/netdevice.h rev2/include/linux/netdevice.h
--- org/include/linux/netdevice.h       2007-07-20 07:49:28.000000000 +0530
+++ rev2/include/linux/netdevice.h      2007-07-22 13:20:16.000000000 +0530
@@ -340,6 +340,7 @@ struct net_device
 #define NETIF_F_VLAN_CHALLENGED        1024    /* Device cannot handle VLAN 
packets */
 #define NETIF_F_GSO            2048    /* Enable software GSO. */
 #define NETIF_F_LLTX           4096    /* LockLess TX */
+#define NETIF_F_BATCH_ON       8192    /* Batching skbs xmit API is enabled */
 #define NETIF_F_MULTI_QUEUE    16384   /* Has multiple TX/RX queues */
 
        /* Segmentation offload features */
@@ -452,6 +453,7 @@ struct net_device
        struct Qdisc            *qdisc_sleeping;
        struct list_head        qdisc_list;
        unsigned long           tx_queue_len;   /* Max frames per queue allowed 
*/
+       struct sk_buff_head     skb_blist;      /* List of batch skbs */
 
        /* Partially transmitted GSO packet. */
        struct sk_buff          *gso_skb;
@@ -472,6 +474,9 @@ struct net_device
        void                    *priv;  /* pointer to private data      */
        int                     (*hard_start_xmit) (struct sk_buff *skb,
                                                    struct net_device *dev);
+       int                     (*hard_start_xmit_batch) (struct net_device
+                                                         *dev);
+
        /* These may be needed for future network-power-down code. */
        unsigned long           trans_start;    /* Time (in jiffies) of last Tx 
*/
 
@@ -582,6 +587,8 @@ struct net_device
 #define        NETDEV_ALIGN            32
 #define        NETDEV_ALIGN_CONST      (NETDEV_ALIGN - 1)
 
+#define BATCHING_ON(dev)       ((dev->features & NETIF_F_BATCH_ON) != 0)
+
 static inline void *netdev_priv(const struct net_device *dev)
 {
        return dev->priv;
@@ -832,6 +839,8 @@ extern int          dev_set_mac_address(struct n
                                            struct sockaddr *);
 extern int             dev_hard_start_xmit(struct sk_buff *skb,
                                            struct net_device *dev);
+extern int             dev_add_skb_to_blist(struct sk_buff *skb,
+                                            struct net_device *dev);
 
 extern void            dev_init(void);
 
@@ -1104,6 +1113,8 @@ extern void               dev_set_promiscuity(struct 
 extern void            dev_set_allmulti(struct net_device *dev, int inc);
 extern void            netdev_state_change(struct net_device *dev);
 extern void            netdev_features_change(struct net_device *dev);
+extern int             dev_change_tx_batching(struct net_device *dev,
+                                              unsigned long new_batch_skb);
 /* Load a device via the kmod */
 extern void            dev_load(const char *name);
 extern void            dev_mcast_init(void);
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to