Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (53 commits) [TCP]: Verify the presence of RETRANS bit when leaving FRTO [IPV6]: Call inet6addr_chain notifiers on link down [NET_SCHED]: Kill CONFIG_NET_CLS_POLICE [NET_SCHED]: act_api: qdisc internal reclassify support [NET_SCHED]: sch_dsmark: act_api support [NET_SCHED]: sch_atm: act_api support [NET_SCHED]: sch_atm: Lindent [IPV6]: MSG_ERRQUEUE messages do not pass to connected raw sockets [IPV4]: Cleanup call to __neigh_lookup() [NET_SCHED]: Revert "avoid transmit softirq on watchdog wakeup" optimization [NETFILTER]: nf_conntrack: UDPLITE support [NETFILTER]: nf_conntrack: mark protocols __read_mostly [NETFILTER]: x_tables: add connlimit match [NETFILTER]: Lower *tables printk severity [NETFILTER]: nf_conntrack: Don't track locally generated special ICMP error [NETFILTER]: nf_conntrack: Introduces nf_ct_get_tuplepr and uses it [NETFILTER]: nf_conntrack: make l3proto->prepare() generic and renames it [NETFILTER]: nf_conntrack: Increment error count on parsing IPv4 header [NET]: Add ethtool support for NETIF_F_IPV6_CSUM devices. [AF_IUCV]: Add lock when updating accept_q ...
This commit is contained in:
@@ -295,28 +295,8 @@ struct blkcipher_tfm {
|
||||
};
|
||||
|
||||
struct cipher_tfm {
|
||||
void *cit_iv;
|
||||
unsigned int cit_ivsize;
|
||||
u32 cit_mode;
|
||||
int (*cit_setkey)(struct crypto_tfm *tfm,
|
||||
const u8 *key, unsigned int keylen);
|
||||
int (*cit_encrypt)(struct crypto_tfm *tfm,
|
||||
struct scatterlist *dst,
|
||||
struct scatterlist *src,
|
||||
unsigned int nbytes);
|
||||
int (*cit_encrypt_iv)(struct crypto_tfm *tfm,
|
||||
struct scatterlist *dst,
|
||||
struct scatterlist *src,
|
||||
unsigned int nbytes, u8 *iv);
|
||||
int (*cit_decrypt)(struct crypto_tfm *tfm,
|
||||
struct scatterlist *dst,
|
||||
struct scatterlist *src,
|
||||
unsigned int nbytes);
|
||||
int (*cit_decrypt_iv)(struct crypto_tfm *tfm,
|
||||
struct scatterlist *dst,
|
||||
struct scatterlist *src,
|
||||
unsigned int nbytes, u8 *iv);
|
||||
void (*cit_xor_block)(u8 *dst, const u8 *src);
|
||||
void (*cit_encrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
|
||||
void (*cit_decrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
|
||||
};
|
||||
|
||||
@@ -265,6 +265,7 @@ u32 ethtool_op_get_link(struct net_device *dev);
|
||||
u32 ethtool_op_get_tx_csum(struct net_device *dev);
|
||||
int ethtool_op_set_tx_csum(struct net_device *dev, u32 data);
|
||||
int ethtool_op_set_tx_hw_csum(struct net_device *dev, u32 data);
|
||||
int ethtool_op_set_tx_ipv6_csum(struct net_device *dev, u32 data);
|
||||
u32 ethtool_op_get_sg(struct net_device *dev);
|
||||
int ethtool_op_set_sg(struct net_device *dev, u32 data);
|
||||
u32 ethtool_op_get_tso(struct net_device *dev);
|
||||
|
||||
@@ -227,6 +227,17 @@ struct ieee80211_cts {
|
||||
#define WLAN_CAPABILITY_SHORT_SLOT_TIME (1<<10)
|
||||
#define WLAN_CAPABILITY_DSSS_OFDM (1<<13)
|
||||
|
||||
/* 802.11g ERP information element */
|
||||
#define WLAN_ERP_NON_ERP_PRESENT (1<<0)
|
||||
#define WLAN_ERP_USE_PROTECTION (1<<1)
|
||||
#define WLAN_ERP_BARKER_PREAMBLE (1<<2)
|
||||
|
||||
/* WLAN_ERP_BARKER_PREAMBLE values */
|
||||
enum {
|
||||
WLAN_ERP_PREAMBLE_SHORT = 0,
|
||||
WLAN_ERP_PREAMBLE_LONG = 1,
|
||||
};
|
||||
|
||||
/* Status codes */
|
||||
enum ieee80211_statuscode {
|
||||
WLAN_STATUS_SUCCESS = 0,
|
||||
|
||||
9
include/linux/if_macvlan.h
Normal file
9
include/linux/if_macvlan.h
Normal file
@@ -0,0 +1,9 @@
|
||||
#ifndef _LINUX_IF_MACVLAN_H
|
||||
#define _LINUX_IF_MACVLAN_H
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
extern struct sk_buff *(*macvlan_handle_frame_hook)(struct sk_buff *);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* _LINUX_IF_MACVLAN_H */
|
||||
@@ -127,13 +127,6 @@ struct vlan_dev_info {
|
||||
* like DHCP that use packet-filtering and don't understand
|
||||
* 802.1Q
|
||||
*/
|
||||
struct dev_mc_list *old_mc_list; /* old multi-cast list for the VLAN interface..
|
||||
* we save this so we can tell what changes were
|
||||
* made, in order to feed the right changes down
|
||||
* to the real hardware...
|
||||
*/
|
||||
int old_allmulti; /* similar to above. */
|
||||
int old_promiscuity; /* similar to above. */
|
||||
struct net_device *real_dev; /* the underlying device/interface */
|
||||
unsigned char real_dev_addr[ETH_ALEN];
|
||||
struct proc_dir_entry *dent; /* Holds the proc data */
|
||||
|
||||
@@ -190,6 +190,7 @@ struct dev_addr_list
|
||||
struct dev_addr_list *next;
|
||||
u8 da_addr[MAX_ADDR_LEN];
|
||||
u8 da_addrlen;
|
||||
u8 da_synced;
|
||||
int da_users;
|
||||
int da_gusers;
|
||||
};
|
||||
@@ -516,6 +517,9 @@ struct net_device
|
||||
void *saddr,
|
||||
unsigned len);
|
||||
int (*rebuild_header)(struct sk_buff *skb);
|
||||
#define HAVE_CHANGE_RX_FLAGS
|
||||
void (*change_rx_flags)(struct net_device *dev,
|
||||
int flags);
|
||||
#define HAVE_SET_RX_MODE
|
||||
void (*set_rx_mode)(struct net_device *dev);
|
||||
#define HAVE_MULTICAST
|
||||
@@ -560,6 +564,8 @@ struct net_device
|
||||
|
||||
/* bridge stuff */
|
||||
struct net_bridge_port *br_port;
|
||||
/* macvlan */
|
||||
struct macvlan_port *macvlan_port;
|
||||
|
||||
/* class/net/name entry */
|
||||
struct device dev;
|
||||
@@ -1100,6 +1106,8 @@ extern int dev_unicast_delete(struct net_device *dev, void *addr, int alen);
|
||||
extern int dev_unicast_add(struct net_device *dev, void *addr, int alen);
|
||||
extern int dev_mc_delete(struct net_device *dev, void *addr, int alen, int all);
|
||||
extern int dev_mc_add(struct net_device *dev, void *addr, int alen, int newonly);
|
||||
extern int dev_mc_sync(struct net_device *to, struct net_device *from);
|
||||
extern void dev_mc_unsync(struct net_device *to, struct net_device *from);
|
||||
extern void dev_mc_discard(struct net_device *dev);
|
||||
extern int __dev_addr_delete(struct dev_addr_list **list, int *count, void *addr, int alen, int all);
|
||||
extern int __dev_addr_add(struct dev_addr_list **list, int *count, void *addr, int alen, int newonly);
|
||||
|
||||
17
include/linux/netfilter/xt_connlimit.h
Normal file
17
include/linux/netfilter/xt_connlimit.h
Normal file
@@ -0,0 +1,17 @@
|
||||
#ifndef _XT_CONNLIMIT_H
|
||||
#define _XT_CONNLIMIT_H
|
||||
|
||||
struct xt_connlimit_data;
|
||||
|
||||
struct xt_connlimit_info {
|
||||
union {
|
||||
u_int32_t v4_mask;
|
||||
u_int32_t v6_mask[4];
|
||||
};
|
||||
unsigned int limit, inverse;
|
||||
|
||||
/* this needs to be at the end */
|
||||
struct xt_connlimit_data *data __attribute__((aligned(8)));
|
||||
};
|
||||
|
||||
#endif /* _XT_CONNLIMIT_H */
|
||||
@@ -121,34 +121,4 @@ extern int tcf_action_dump_old(struct sk_buff *skb, struct tc_action *a, int, in
|
||||
extern int tcf_action_dump_1(struct sk_buff *skb, struct tc_action *a, int, int);
|
||||
extern int tcf_action_copy_stats (struct sk_buff *,struct tc_action *, int);
|
||||
#endif /* CONFIG_NET_CLS_ACT */
|
||||
|
||||
extern int tcf_police(struct sk_buff *skb, struct tcf_police *p);
|
||||
extern void tcf_police_destroy(struct tcf_police *p);
|
||||
extern struct tcf_police * tcf_police_locate(struct rtattr *rta, struct rtattr *est);
|
||||
extern int tcf_police_dump(struct sk_buff *skb, struct tcf_police *p);
|
||||
extern int tcf_police_dump_stats(struct sk_buff *skb, struct tcf_police *p);
|
||||
|
||||
static inline int
|
||||
tcf_police_release(struct tcf_police *p, int bind)
|
||||
{
|
||||
int ret = 0;
|
||||
#ifdef CONFIG_NET_CLS_ACT
|
||||
if (p) {
|
||||
if (bind)
|
||||
p->tcf_bindcnt--;
|
||||
|
||||
p->tcf_refcnt--;
|
||||
if (p->tcf_refcnt <= 0 && !p->tcf_bindcnt) {
|
||||
tcf_police_destroy(p);
|
||||
ret = 1;
|
||||
}
|
||||
}
|
||||
#else
|
||||
if (p && --p->tcf_refcnt == 0)
|
||||
tcf_police_destroy(p);
|
||||
|
||||
#endif /* CONFIG_NET_CLS_ACT */
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -11,6 +11,44 @@
|
||||
* Copyright 2006 Johannes Berg <johannes@sipsolutions.net>
|
||||
*/
|
||||
|
||||
|
||||
/* Radiotap header iteration
|
||||
* implemented in net/wireless/radiotap.c
|
||||
* docs in Documentation/networking/radiotap-headers.txt
|
||||
*/
|
||||
/**
|
||||
* struct ieee80211_radiotap_iterator - tracks walk thru present radiotap args
|
||||
* @rtheader: pointer to the radiotap header we are walking through
|
||||
* @max_length: length of radiotap header in cpu byte ordering
|
||||
* @this_arg_index: IEEE80211_RADIOTAP_... index of current arg
|
||||
* @this_arg: pointer to current radiotap arg
|
||||
* @arg_index: internal next argument index
|
||||
* @arg: internal next argument pointer
|
||||
* @next_bitmap: internal pointer to next present u32
|
||||
* @bitmap_shifter: internal shifter for curr u32 bitmap, b0 set == arg present
|
||||
*/
|
||||
|
||||
struct ieee80211_radiotap_iterator {
|
||||
struct ieee80211_radiotap_header *rtheader;
|
||||
int max_length;
|
||||
int this_arg_index;
|
||||
u8 *this_arg;
|
||||
|
||||
int arg_index;
|
||||
u8 *arg;
|
||||
__le32 *next_bitmap;
|
||||
u32 bitmap_shifter;
|
||||
};
|
||||
|
||||
extern int ieee80211_radiotap_iterator_init(
|
||||
struct ieee80211_radiotap_iterator *iterator,
|
||||
struct ieee80211_radiotap_header *radiotap_header,
|
||||
int max_length);
|
||||
|
||||
extern int ieee80211_radiotap_iterator_next(
|
||||
struct ieee80211_radiotap_iterator *iterator);
|
||||
|
||||
|
||||
/* from net/wireless.h */
|
||||
struct wiphy;
|
||||
|
||||
|
||||
@@ -209,9 +209,6 @@ static inline void inet_twsk_put(struct inet_timewait_sock *tw)
|
||||
extern struct inet_timewait_sock *inet_twsk_alloc(const struct sock *sk,
|
||||
const int state);
|
||||
|
||||
extern void __inet_twsk_kill(struct inet_timewait_sock *tw,
|
||||
struct inet_hashinfo *hashinfo);
|
||||
|
||||
extern void __inet_twsk_hashdance(struct inet_timewait_sock *tw,
|
||||
struct sock *sk,
|
||||
struct inet_hashinfo *hashinfo);
|
||||
|
||||
@@ -60,6 +60,7 @@ struct iucv_sock {
|
||||
char dst_user_id[8];
|
||||
char dst_name[8];
|
||||
struct list_head accept_q;
|
||||
spinlock_t accept_q_lock;
|
||||
struct sock *parent;
|
||||
struct iucv_path *path;
|
||||
struct sk_buff_head send_skb_q;
|
||||
|
||||
@@ -347,9 +347,16 @@ enum ieee80211_if_types {
|
||||
* @mac_addr: pointer to MAC address of the interface. This pointer is valid
|
||||
* until the interface is removed (i.e. it cannot be used after
|
||||
* remove_interface() callback was called for this interface).
|
||||
* This pointer will be %NULL for monitor interfaces, be careful.
|
||||
*
|
||||
* This structure is used in add_interface() and remove_interface()
|
||||
* callbacks of &struct ieee80211_hw.
|
||||
*
|
||||
* When you allow multiple interfaces to be added to your PHY, take care
|
||||
* that the hardware can actually handle multiple MAC addresses. However,
|
||||
* also take care that when there's no interface left with mac_addr != %NULL
|
||||
* you remove the MAC address from the device to avoid acknowledging packets
|
||||
* in pure monitor mode.
|
||||
*/
|
||||
struct ieee80211_if_init_conf {
|
||||
int if_id;
|
||||
@@ -574,10 +581,11 @@ struct ieee80211_ops {
|
||||
* to returning zero. By returning non-zero addition of the interface
|
||||
* is inhibited. Unless monitor_during_oper is set, it is guaranteed
|
||||
* that monitor interfaces and normal interfaces are mutually
|
||||
* exclusive. The open() handler is called after add_interface()
|
||||
* if this is the first device added. At least one of the open()
|
||||
* open() and add_interface() callbacks has to be assigned. If
|
||||
* add_interface() is NULL, one STA interface is permitted only. */
|
||||
* exclusive. If assigned, the open() handler is called after
|
||||
* add_interface() if this is the first device added. The
|
||||
* add_interface() callback has to be assigned because it is the only
|
||||
* way to obtain the requested MAC address for any interface.
|
||||
*/
|
||||
int (*add_interface)(struct ieee80211_hw *hw,
|
||||
struct ieee80211_if_init_conf *conf);
|
||||
|
||||
@@ -921,12 +929,6 @@ struct sk_buff *
|
||||
ieee80211_get_buffered_bc(struct ieee80211_hw *hw, int if_id,
|
||||
struct ieee80211_tx_control *control);
|
||||
|
||||
/* Low level drivers that have their own MLME and MAC indicate
|
||||
* the aid for an associating station with this call */
|
||||
int ieee80211_set_aid_for_sta(struct ieee80211_hw *hw,
|
||||
u8 *peer_address, u16 aid);
|
||||
|
||||
|
||||
/* Given an sk_buff with a raw 802.11 header at the data pointer this function
|
||||
* returns the 802.11 header length in bytes (not including encryption
|
||||
* headers). If the data in the sk_buff is too short to contain a valid 802.11
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
/* Returns new sk_buff, or NULL */
|
||||
struct sk_buff *nf_ct_ipv4_ct_gather_frags(struct sk_buff *skb);
|
||||
|
||||
extern struct nf_conntrack_l3proto nf_conntrack_l3proto_ipv4;
|
||||
|
||||
extern struct nf_conntrack_l4proto nf_conntrack_l4proto_tcp4;
|
||||
extern struct nf_conntrack_l4proto nf_conntrack_l4proto_udp4;
|
||||
extern struct nf_conntrack_l4proto nf_conntrack_l4proto_icmp;
|
||||
|
||||
@@ -7,7 +7,7 @@ extern struct nf_conntrack_l4proto nf_conntrack_l4proto_tcp6;
|
||||
extern struct nf_conntrack_l4proto nf_conntrack_l4proto_udp6;
|
||||
extern struct nf_conntrack_l4proto nf_conntrack_l4proto_icmpv6;
|
||||
|
||||
extern int nf_ct_ipv6_skip_exthdr(struct sk_buff *skb, int start,
|
||||
extern int nf_ct_ipv6_skip_exthdr(const struct sk_buff *skb, int start,
|
||||
u8 *nexthdrp, int len);
|
||||
|
||||
extern int nf_ct_frag6_init(void);
|
||||
|
||||
@@ -186,6 +186,10 @@ extern void nf_conntrack_hash_insert(struct nf_conn *ct);
|
||||
|
||||
extern void nf_conntrack_flush(void);
|
||||
|
||||
extern int nf_ct_get_tuplepr(const struct sk_buff *skb,
|
||||
unsigned int nhoff,
|
||||
u_int16_t l3num,
|
||||
struct nf_conntrack_tuple *tuple);
|
||||
extern int nf_ct_invert_tuplepr(struct nf_conntrack_tuple *inverse,
|
||||
const struct nf_conntrack_tuple *orig);
|
||||
|
||||
|
||||
@@ -58,11 +58,11 @@ struct nf_conntrack_l3proto
|
||||
|
||||
/*
|
||||
* Called before tracking.
|
||||
* *dataoff: offset of protocol header (TCP, UDP,...) in *pskb
|
||||
* *dataoff: offset of protocol header (TCP, UDP,...) in skb
|
||||
* *protonum: protocol number
|
||||
*/
|
||||
int (*prepare)(struct sk_buff **pskb, unsigned int hooknum,
|
||||
unsigned int *dataoff, u_int8_t *protonum);
|
||||
int (*get_l4proto)(const struct sk_buff *skb, unsigned int nhoff,
|
||||
unsigned int *dataoff, u_int8_t *protonum);
|
||||
|
||||
int (*tuple_to_nfattr)(struct sk_buff *skb,
|
||||
const struct nf_conntrack_tuple *t);
|
||||
@@ -89,8 +89,6 @@ extern struct nf_conntrack_l3proto *nf_ct_l3proto_find_get(u_int16_t l3proto);
|
||||
extern void nf_ct_l3proto_put(struct nf_conntrack_l3proto *p);
|
||||
|
||||
/* Existing built-in protocols */
|
||||
extern struct nf_conntrack_l3proto nf_conntrack_l3proto_ipv4;
|
||||
extern struct nf_conntrack_l3proto nf_conntrack_l3proto_ipv6;
|
||||
extern struct nf_conntrack_l3proto nf_conntrack_l3proto_generic;
|
||||
|
||||
static inline struct nf_conntrack_l3proto *
|
||||
|
||||
@@ -65,8 +65,6 @@ struct tcf_exts
|
||||
{
|
||||
#ifdef CONFIG_NET_CLS_ACT
|
||||
struct tc_action *action;
|
||||
#elif defined CONFIG_NET_CLS_POLICE
|
||||
struct tcf_police *police;
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -91,8 +89,6 @@ tcf_exts_is_predicative(struct tcf_exts *exts)
|
||||
{
|
||||
#ifdef CONFIG_NET_CLS_ACT
|
||||
return !!exts->action;
|
||||
#elif defined CONFIG_NET_CLS_POLICE
|
||||
return !!exts->police;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
@@ -129,11 +125,7 @@ tcf_exts_exec(struct sk_buff *skb, struct tcf_exts *exts,
|
||||
#ifdef CONFIG_NET_CLS_ACT
|
||||
if (exts->action)
|
||||
return tcf_action_exec(skb, exts->action, res);
|
||||
#elif defined CONFIG_NET_CLS_POLICE
|
||||
if (exts->police)
|
||||
return tcf_police(skb, exts->police);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -89,8 +89,10 @@ static inline void qdisc_run(struct net_device *dev)
|
||||
__qdisc_run(dev);
|
||||
}
|
||||
|
||||
extern int tc_classify_compat(struct sk_buff *skb, struct tcf_proto *tp,
|
||||
struct tcf_result *res);
|
||||
extern int tc_classify(struct sk_buff *skb, struct tcf_proto *tp,
|
||||
struct tcf_result *res);
|
||||
struct tcf_result *res);
|
||||
|
||||
/* Calculate maximal size of packet seen by hard_start_xmit
|
||||
routine of this device.
|
||||
|
||||
@@ -290,7 +290,7 @@ static inline int qdisc_reshape_fail(struct sk_buff *skb, struct Qdisc *sch)
|
||||
{
|
||||
sch->qstats.drops++;
|
||||
|
||||
#ifdef CONFIG_NET_CLS_POLICE
|
||||
#ifdef CONFIG_NET_CLS_ACT
|
||||
if (sch->reshape_fail == NULL || sch->reshape_fail(skb, sch))
|
||||
goto drop;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user