Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (43 commits) [IPSEC]: Fix BEET output [ICMP]: Dst entry leak in icmp_send host re-lookup code (v2). [AX25]: Remove obsolete references to BKL from TODO file. [NET]: Fix multicast device ioctl checks [IRDA]: Store irnet_socket termios properly. [UML]: uml-net: don't set IFF_ALLMULTI in set_multicast_list [VLAN]: Don't copy ALLMULTI/PROMISC flags from underlying device netxen, phy/marvell, skge: minor checkpatch fixes S2io: Handle TX completions on the same CPU as the sender for MIS-X interrupts b44: Truncate PHY address skge napi->poll() locking bug rndis_host: fix oops when query for OID_GEN_PHYSICAL_MEDIUM fails cxgb3: Fix lockdep problems with sge.reg_lock ehea: Fix IPv6 support dm9000: Support promisc and all-multi modes dm9601: configure MAC to drop invalid (crc/length) packets dm9601: add Hirose USB-100 device ID Marvell PHY m88e1111 driver fix netxen: fix rx dropped stats netxen: remove low level tx lock ...
This commit is contained in:
@@ -218,6 +218,10 @@ extern unsigned long neigh_rand_reach_time(unsigned long base);
|
||||
extern void pneigh_enqueue(struct neigh_table *tbl, struct neigh_parms *p,
|
||||
struct sk_buff *skb);
|
||||
extern struct pneigh_entry *pneigh_lookup(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev, int creat);
|
||||
extern struct pneigh_entry *__pneigh_lookup(struct neigh_table *tbl,
|
||||
struct net *net,
|
||||
const void *key,
|
||||
struct net_device *dev);
|
||||
extern int pneigh_delete(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev);
|
||||
|
||||
extern void neigh_app_ns(struct neighbour *n);
|
||||
|
||||
@@ -204,6 +204,7 @@ struct xfrm_state
|
||||
* transformer. */
|
||||
const struct xfrm_type *type;
|
||||
struct xfrm_mode *inner_mode;
|
||||
struct xfrm_mode *inner_mode_iaf;
|
||||
struct xfrm_mode *outer_mode;
|
||||
|
||||
/* Security context */
|
||||
@@ -387,6 +388,27 @@ enum {
|
||||
extern int xfrm_register_mode(struct xfrm_mode *mode, int family);
|
||||
extern int xfrm_unregister_mode(struct xfrm_mode *mode, int family);
|
||||
|
||||
static inline int xfrm_af2proto(unsigned int family)
|
||||
{
|
||||
switch(family) {
|
||||
case AF_INET:
|
||||
return IPPROTO_IPIP;
|
||||
case AF_INET6:
|
||||
return IPPROTO_IPV6;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static inline struct xfrm_mode *xfrm_ip2inner_mode(struct xfrm_state *x, int ipproto)
|
||||
{
|
||||
if ((ipproto == IPPROTO_IPIP && x->props.family == AF_INET) ||
|
||||
(ipproto == IPPROTO_IPV6 && x->props.family == AF_INET6))
|
||||
return x->inner_mode;
|
||||
else
|
||||
return x->inner_mode_iaf;
|
||||
}
|
||||
|
||||
struct xfrm_tmpl
|
||||
{
|
||||
/* id in template is interpreted as:
|
||||
@@ -530,6 +552,9 @@ struct xfrm_mode_skb_cb {
|
||||
__be16 id;
|
||||
__be16 frag_off;
|
||||
|
||||
/* IP header length (excluding options or extension headers). */
|
||||
u8 ihl;
|
||||
|
||||
/* TOS for IPv4, class for IPv6. */
|
||||
u8 tos;
|
||||
|
||||
@@ -539,6 +564,9 @@ struct xfrm_mode_skb_cb {
|
||||
/* Protocol for IPv4, NH for IPv6. */
|
||||
u8 protocol;
|
||||
|
||||
/* Option length for IPv4, zero for IPv6. */
|
||||
u8 optlen;
|
||||
|
||||
/* Used by IPv6 only, zero for IPv4. */
|
||||
u8 flow_lbl[3];
|
||||
};
|
||||
@@ -1253,6 +1281,7 @@ extern int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi,
|
||||
extern int xfrm_input_resume(struct sk_buff *skb, int nexthdr);
|
||||
extern int xfrm_output_resume(struct sk_buff *skb, int err);
|
||||
extern int xfrm_output(struct sk_buff *skb);
|
||||
extern int xfrm_inner_extract_output(struct xfrm_state *x, struct sk_buff *skb);
|
||||
extern int xfrm4_extract_header(struct sk_buff *skb);
|
||||
extern int xfrm4_extract_input(struct xfrm_state *x, struct sk_buff *skb);
|
||||
extern int xfrm4_rcv_encap(struct sk_buff *skb, int nexthdr, __be32 spi,
|
||||
|
||||
Reference in New Issue
Block a user