]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/staging/batman-adv/types.h
Staging: batman-adv: layer2 unicast packet fragmentation
[mv-sheeva.git] / drivers / staging / batman-adv / types.h
index 21d0717afb09ef7d7f4c6d066a6218c3085392bf..ac165753e84814ac80f168ddbd9bc9b50bc13017 100644 (file)
@@ -41,6 +41,7 @@ struct batman_if {
        char addr_str[ETH_STR_LEN];
        struct net_device *net_dev;
        atomic_t seqno;
+       atomic_t frag_seqno;
        unsigned char *packet_buff;
        int packet_len;
        struct kobject *hardif_obj;
@@ -81,6 +82,8 @@ struct orig_node {
        TYPE_OF_WORD bcast_bits[NUM_WORDS];
        uint32_t last_bcast_seqno;
        struct list_head neigh_list;
+       struct list_head frag_list;
+       unsigned long last_frag_packet;
        struct {
                uint8_t candidates;
                struct neigh_node *selected;
@@ -110,9 +113,12 @@ struct bat_priv {
        struct net_device_stats stats;
        atomic_t aggregation_enabled;
        atomic_t bonding_enabled;
+       atomic_t frag_enabled;
        atomic_t vis_mode;
        atomic_t orig_interval;
        atomic_t log_level;
+       atomic_t bcast_queue_left;
+       atomic_t batman_queue_left;
        char num_ifaces;
        struct debug_log *debug_log;
        struct batman_if *primary_if;
@@ -126,6 +132,7 @@ struct socket_client {
        unsigned char index;
        spinlock_t lock;
        wait_queue_head_t queue_wait;
+       struct bat_priv *bat_priv;
 };
 
 struct socket_packet {
@@ -180,4 +187,10 @@ struct debug_log {
        wait_queue_head_t queue_wait;
 };
 
+struct frag_packet_list_entry {
+       struct list_head list;
+       uint16_t seqno;
+       struct sk_buff *skb;
+};
+
 #endif /* _NET_BATMAN_ADV_TYPES_H_ */