/* * bab.h * Copyright (C) 1997-2000 SpellCaster Telecommunications Inc. * $Id: bab.h,v 1.2 2004/07/22 18:11:18 bcrl Exp $ * Released under the GNU Public License. See LICENSE file for details. */ struct bundle; struct net; struct chan { spinlock_t chan_lock; channel_t *ch; struct bundle *bundle; struct bundle *allocd_bundle; struct net *net; struct chan *next; /* next channel in bundle */ struct chan *multihop_other; struct sk_buff_head tx_q; struct sk_buff_head rx_q; wait_queue_head_t tx_wait; wait_queue_head_t rx_wait; wait_queue_head_t wait; int user_status; int use_count; unsigned user_calltypes; int lflags; int rflags; unsigned int callid; int mtu; int idx; u32 m_seq; unsigned m_valid : 1; unsigned dialing : 1; unsigned user_active : 1; unsigned long activity_jiffies; struct bdev_stats final_stats; struct rcu_head rcu_head; }; #define FRAG_HASH_SIZE (1 << 8) /* size of fragment hash bucket -- must be a power of 2 */ #define FRAG_HASH_MASK (FRAG_HASH_SIZE - 1) struct bundle { spinlock_t bundle_lock; struct net_device *bdev; unsigned use; struct sk_buff *frag_skb; unsigned frag_offset, frag_num, frag_split; u32 frag_seq; unsigned min_frags, max_frags; unsigned long tx_bytes, rx_bytes; /* needed under 2.0 for Bandwidth on demand */ int index; unsigned num_chan; struct chan *chan; /* pointer to current channel to transmit to in bundle */ struct sk_buff *tx_skb; struct net_device_stats stats; int lflags; int rflags; u32 m_seq; u32 dummy_seq; char name[IFNAMSIZ]; int num_frags; struct sk_buff *frags[FRAG_HASH_SIZE]; struct slcompress *slhc; #define BABYLON_MAX_FRAGS 16 unsigned short frag_lens[BABYLON_MAX_FRAGS]; };