]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/net/ipv6.h
[NET]: Size listen hash tables using backlog hint
[linux-2.6-omap-h63xx.git] / include / net / ipv6.h
index ece7e8a84ffd089ef1902581f5c0b690610ec6fa..0b8c9b990ac4a115a790ed3b9a183fe9a9d2f8b8 100644 (file)
@@ -40,6 +40,7 @@
 #define NEXTHDR_ICMP           58      /* ICMP for IPv6. */
 #define NEXTHDR_NONE           59      /* No next header */
 #define NEXTHDR_DEST           60      /* Destination options header. */
+#define NEXTHDR_MOBILITY       135     /* Mobility header. */
 
 #define NEXTHDR_MAX            255
 
  */
 
 struct frag_hdr {
-       unsigned char   nexthdr;
-       unsigned char   reserved;       
-       unsigned short  frag_off;
-       __u32           identification;
+       __u8    nexthdr;
+       __u8    reserved;
+       __be16  frag_off;
+       __be32  identification;
 };
 
 #define        IP6_MF  0x0001
@@ -190,7 +191,7 @@ struct ipv6_txoptions
 struct ip6_flowlabel
 {
        struct ip6_flowlabel    *next;
-       u32                     label;
+       __be32                  label;
        struct in6_addr         dst;
        struct ipv6_txoptions   *opt;
        atomic_t                users;
@@ -210,7 +211,7 @@ struct ipv6_fl_socklist
        struct ip6_flowlabel    *fl;
 };
 
-extern struct ip6_flowlabel    *fl6_sock_lookup(struct sock *sk, u32 label);
+extern struct ip6_flowlabel    *fl6_sock_lookup(struct sock *sk, __be32 label);
 extern struct ipv6_txoptions   *fl6_merge_options(struct ipv6_txoptions * opt_space,
                                                   struct ip6_flowlabel * fl,
                                                   struct ipv6_txoptions * fopt);
@@ -229,7 +230,7 @@ extern int                  ip6_ra_control(struct sock *sk, int sel,
                                               void (*destructor)(struct sock *));
 
 
-extern int                     ipv6_parse_hopopts(struct sk_buff *skb);
+extern int                     ipv6_parse_hopopts(struct sk_buff **skbp);
 
 extern struct ipv6_txoptions *  ipv6_dup_options(struct sock *sk, struct ipv6_txoptions *opt);
 extern struct ipv6_txoptions * ipv6_renew_options(struct sock *sk, struct ipv6_txoptions *opt,
@@ -317,8 +318,8 @@ static inline void ipv6_addr_prefix(struct in6_addr *pfx,
 
 #ifndef __HAVE_ARCH_ADDR_SET
 static inline void ipv6_addr_set(struct in6_addr *addr, 
-                                    __u32 w1, __u32 w2,
-                                    __u32 w3, __u32 w4)
+                                    __be32 w1, __be32 w2,
+                                    __be32 w3, __be32 w4)
 {
        addr->s6_addr32[0] = w1;
        addr->s6_addr32[1] = w2;
@@ -336,7 +337,7 @@ static inline int ipv6_addr_equal(const struct in6_addr *a1,
                a1->s6_addr32[3] == a2->s6_addr32[3]);
 }
 
-static inline int __ipv6_prefix_equal(const u32 *a1, const u32 *a2,
+static inline int __ipv6_prefix_equal(const __be32 *a1, const __be32 *a2,
                                      unsigned int prefixlen)
 {
        unsigned pdw, pbi;
@@ -506,6 +507,8 @@ extern int                  ipv6_skip_exthdr(const struct sk_buff *, int start,
 
 extern int                     ipv6_ext_hdr(u8 nexthdr);
 
+extern int ipv6_find_tlv(struct sk_buff *skb, int offset, int type);
+
 extern struct ipv6_txoptions * ipv6_invert_rthdr(struct sock *sk,
                                                  struct ipv6_rt_hdr *hdr);