Author: cieciwa                      Date: Fri Sep 22 11:18:09 2006 GMT
Module: SOURCES                       Tag: LINUX_2_6
---- Log message:
- added missing includes.

---- Files affected:
SOURCES:
   linux-net-2.6.19.patch (1.1.2.3 -> 1.1.2.4) 

---- Diffs:

================================================================
Index: SOURCES/linux-net-2.6.19.patch
diff -u SOURCES/linux-net-2.6.19.patch:1.1.2.3 
SOURCES/linux-net-2.6.19.patch:1.1.2.4
--- SOURCES/linux-net-2.6.19.patch:1.1.2.3      Fri Sep 22 12:58:07 2006
+++ SOURCES/linux-net-2.6.19.patch      Fri Sep 22 13:18:04 2006
@@ -41730,3 +41730,3377 @@
        __XFRMNLGRP_MAX
  };
  #define XFRMNLGRP_MAX (__XFRMNLGRP_MAX - 1)
+diff -Nur linux-2.6.18-rc5/include/net/act_api.h 
linux-2.6.19/include/net/act_api.h
+--- linux-2.6.18-rc5/include/net/act_api.h     2006-08-28 05:41:48.000000000 
+0200
++++ linux-2.6.19/include/net/act_api.h 2006-09-22 10:04:57.000000000 +0200
+@@ -8,70 +8,110 @@
+ #include <net/sch_generic.h>
+ #include <net/pkt_sched.h>
+ 
+-#define tca_gen(name) \
+-struct tcf_##name *next; \
+-      u32 index; \
+-      int refcnt; \
+-      int bindcnt; \
+-      u32 capab; \
+-      int action; \
+-      struct tcf_t tm; \
+-      struct gnet_stats_basic bstats; \
+-      struct gnet_stats_queue qstats; \
+-      struct gnet_stats_rate_est rate_est; \
+-      spinlock_t *stats_lock; \
+-      spinlock_t lock
++struct tcf_common {
++      struct tcf_common               *tcfc_next;
++      u32                             tcfc_index;
++      int                             tcfc_refcnt;
++      int                             tcfc_bindcnt;
++      u32                             tcfc_capab;
++      int                             tcfc_action;
++      struct tcf_t                    tcfc_tm;
++      struct gnet_stats_basic         tcfc_bstats;
++      struct gnet_stats_queue         tcfc_qstats;
++      struct gnet_stats_rate_est      tcfc_rate_est;
++      spinlock_t                      *tcfc_stats_lock;
++      spinlock_t                      tcfc_lock;
++};
++#define tcf_next      common.tcfc_next
++#define tcf_index     common.tcfc_index
++#define tcf_refcnt    common.tcfc_refcnt
++#define tcf_bindcnt   common.tcfc_bindcnt
++#define tcf_capab     common.tcfc_capab
++#define tcf_action    common.tcfc_action
++#define tcf_tm                common.tcfc_tm
++#define tcf_bstats    common.tcfc_bstats
++#define tcf_qstats    common.tcfc_qstats
++#define tcf_rate_est  common.tcfc_rate_est
++#define tcf_stats_lock        common.tcfc_stats_lock
++#define tcf_lock      common.tcfc_lock
++
++struct tcf_police {
++      struct tcf_common       common;
++      int                     tcfp_result;
++      u32                     tcfp_ewma_rate;
++      u32                     tcfp_burst;
++      u32                     tcfp_mtu;
++      u32                     tcfp_toks;
++      u32                     tcfp_ptoks;
++      psched_time_t           tcfp_t_c;
++      struct qdisc_rate_table *tcfp_R_tab;
++      struct qdisc_rate_table *tcfp_P_tab;
++};
++#define to_police(pc) \
++      container_of(pc, struct tcf_police, common)
+ 
+-struct tcf_police
+-{
+-      tca_gen(police);
+-      int             result;
+-      u32             ewma_rate;
+-      u32             burst;
+-      u32             mtu;
+-      u32             toks;
+-      u32             ptoks;
+-      psched_time_t   t_c;
+-      struct qdisc_rate_table *R_tab;
+-      struct qdisc_rate_table *P_tab;
++struct tcf_hashinfo {
++      struct tcf_common       **htab;
++      unsigned int            hmask;
++      rwlock_t                *lock;
+ };
+ 
++static inline unsigned int tcf_hash(u32 index, unsigned int hmask)
++{
++      return index & hmask;
++}
++
+ #ifdef CONFIG_NET_CLS_ACT
+ 
+ #define ACT_P_CREATED 1
+ #define ACT_P_DELETED 1
+ 
+-struct tcf_act_hdr
+-{
+-      tca_gen(act_hdr);
++struct tcf_act_hdr {
++      struct tcf_common       common;
+ };
+ 
+-struct tc_action
+-{
+-      void *priv;
+-      struct tc_action_ops *ops;
+-      __u32   type;   /* for backward compat(TCA_OLD_COMPAT) */
+-      __u32   order; 
+-      struct tc_action *next;
++struct tc_action {
++      void                    *priv;
++      struct tc_action_ops    *ops;
++      __u32                   type; /* for backward compat(TCA_OLD_COMPAT) */
++      __u32                   order;
++      struct tc_action        *next;
+ };
+ 
+ #define TCA_CAP_NONE 0
+-struct tc_action_ops
+-{
++struct tc_action_ops {
+       struct tc_action_ops *next;
++      struct tcf_hashinfo *hinfo;
+       char    kind[IFNAMSIZ];
+       __u32   type; /* TBD to match kind */
+       __u32   capab;  /* capabilities includes 4 bit version */
+       struct module           *owner;
+       int     (*act)(struct sk_buff *, struct tc_action *, struct tcf_result 
*);
+       int     (*get_stats)(struct sk_buff *, struct tc_action *);
+-      int     (*dump)(struct sk_buff *, struct tc_action *,int , int);
++      int     (*dump)(struct sk_buff *, struct tc_action *, int, int);
+       int     (*cleanup)(struct tc_action *, int bind);
+-      int     (*lookup)(struct tc_action *, u32 );
+-      int     (*init)(struct rtattr *,struct rtattr *,struct tc_action *, int 
, int );
+-      int     (*walk)(struct sk_buff *, struct netlink_callback *, int , 
struct tc_action *);
++      int     (*lookup)(struct tc_action *, u32);
++      int     (*init)(struct rtattr *, struct rtattr *, struct tc_action *, 
int , int);
++      int     (*walk)(struct sk_buff *, struct netlink_callback *, int, 
struct tc_action *);
+ };
+ 
++extern struct tcf_common *tcf_hash_lookup(u32 index,
++                                        struct tcf_hashinfo *hinfo);
++extern void tcf_hash_destroy(struct tcf_common *p, struct tcf_hashinfo 
*hinfo);
++extern int tcf_hash_release(struct tcf_common *p, int bind,
++                          struct tcf_hashinfo *hinfo);
++extern int tcf_generic_walker(struct sk_buff *skb, struct netlink_callback 
*cb,
++                            int type, struct tc_action *a);
++extern u32 tcf_hash_new_index(u32 *idx_gen, struct tcf_hashinfo *hinfo);
++extern int tcf_hash_search(struct tc_action *a, u32 index);
++extern struct tcf_common *tcf_hash_check(u32 index, struct tc_action *a,
++                                       int bind, struct tcf_hashinfo *hinfo);
++extern struct tcf_common *tcf_hash_create(u32 index, struct rtattr *est,
++                                        struct tc_action *a, int size,
++                                        int bind, u32 *idx_gen,
++                                        struct tcf_hashinfo *hinfo);
++extern void tcf_hash_insert(struct tcf_common *p, struct tcf_hashinfo *hinfo);
++
+ extern int tcf_register_action(struct tc_action_ops *a);
+ extern int tcf_unregister_action(struct tc_action_ops *a);
+ extern void tcf_action_destroy(struct tc_action *a, int bind);
+@@ -96,17 +136,17 @@
+       int ret = 0;
+ #ifdef CONFIG_NET_CLS_ACT
+       if (p) {
+-              if (bind) {
+-                       p->bindcnt--;
+-              }
+-              p->refcnt--;
+-              if (p->refcnt <= 0 && !p->bindcnt) {
++              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->refcnt == 0)
++      if (p && --p->tcf_refcnt == 0)
+               tcf_police_destroy(p);
+ 
+ #endif /* CONFIG_NET_CLS_ACT */
+diff -Nur linux-2.6.18-rc5/include/net/act_generic.h 
linux-2.6.19/include/net/act_generic.h
+--- linux-2.6.18-rc5/include/net/act_generic.h 2006-08-28 05:41:48.000000000 
+0200
++++ linux-2.6.19/include/net/act_generic.h     1970-01-01 01:00:00.000000000 
+0100
+@@ -1,142 +0,0 @@
+-/*
+- * include/net/act_generic.h
+- *
+-*/
+-#ifndef _NET_ACT_GENERIC_H
+-#define _NET_ACT_GENERIC_H
+-static inline int tcf_defact_release(struct tcf_defact *p, int bind)
+-{
+-      int ret = 0;
+-      if (p) {
+-              if (bind) {
+-                      p->bindcnt--;
+-              }
+-              p->refcnt--;
+-              if (p->bindcnt <= 0 && p->refcnt <= 0) {
+-                      kfree(p->defdata);
+-                      tcf_hash_destroy(p);
+-                      ret = 1;
+-              }
+-      }
+-      return ret;
+-}
+-
+-static inline int
+-alloc_defdata(struct tcf_defact *p, u32 datalen, void *defdata)
+-{
+-      p->defdata = kmalloc(datalen, GFP_KERNEL);
+-      if (p->defdata == NULL)
+-              return -ENOMEM;
+-      p->datalen = datalen;
+-      memcpy(p->defdata, defdata, datalen);
+-      return 0;
+-}
+-
+-static inline int
+-realloc_defdata(struct tcf_defact *p, u32 datalen, void *defdata)
+-{
+-      /* safer to be just brute force for now */
+-      kfree(p->defdata);
+-      return alloc_defdata(p, datalen, defdata);
+-}
+-
+-static inline int
+-tcf_defact_init(struct rtattr *rta, struct rtattr *est,
+-              struct tc_action *a, int ovr, int bind)
+-{
+-      struct rtattr *tb[TCA_DEF_MAX];
+-      struct tc_defact *parm;
+-      struct tcf_defact *p;
+-      void *defdata;
+-      u32 datalen = 0;
+-      int ret = 0;
+-
+-      if (rta == NULL || rtattr_parse_nested(tb, TCA_DEF_MAX, rta) < 0)
+-              return -EINVAL;
+-
+-      if (tb[TCA_DEF_PARMS - 1] == NULL || 
+-          RTA_PAYLOAD(tb[TCA_DEF_PARMS - 1]) < sizeof(*parm))
+-              return -EINVAL;
+-
+-      parm = RTA_DATA(tb[TCA_DEF_PARMS - 1]);
+-      defdata = RTA_DATA(tb[TCA_DEF_DATA - 1]);
+-      if (defdata == NULL)
+-              return -EINVAL;
+-
+-      datalen = RTA_PAYLOAD(tb[TCA_DEF_DATA - 1]);
+-      if (datalen <= 0)
+-              return -EINVAL;
+-
+-      p = tcf_hash_check(parm->index, a, ovr, bind);
+-      if (p == NULL) {
+-              p = tcf_hash_create(parm->index, est, a, sizeof(*p), ovr, bind);
+-              if (p == NULL)
+-                      return -ENOMEM;
+-
+-              ret = alloc_defdata(p, datalen, defdata);
+-              if (ret < 0) {
+-                      kfree(p);
+-                      return ret;
+-              }
+-              ret = ACT_P_CREATED;
+-      } else {
+-              if (!ovr) {
+-                      tcf_defact_release(p, bind);
+-                      return -EEXIST;
+-              }
+-              realloc_defdata(p, datalen, defdata);
+-      }
+-
+-      spin_lock_bh(&p->lock);
+-      p->action = parm->action;
+-      spin_unlock_bh(&p->lock);
+-      if (ret == ACT_P_CREATED)
+-              tcf_hash_insert(p);
+-      return ret;
+-}
+-
+-static inline int tcf_defact_cleanup(struct tc_action *a, int bind)
+-{
+-      struct tcf_defact *p = PRIV(a, defact);
+-
+-      if (p != NULL)
+-              return tcf_defact_release(p, bind);
+-      return 0;
+-}
+-
+-static inline int
+-tcf_defact_dump(struct sk_buff *skb, struct tc_action *a, int bind, int ref)
+-{
+-      unsigned char *b = skb->tail;
+-      struct tc_defact opt;
+-      struct tcf_defact *p = PRIV(a, defact);
+-      struct tcf_t t;
+-
+-      opt.index = p->index;
+-      opt.refcnt = p->refcnt - ref;
+-      opt.bindcnt = p->bindcnt - bind;
+-      opt.action = p->action;
+-      RTA_PUT(skb, TCA_DEF_PARMS, sizeof(opt), &opt);
+-      RTA_PUT(skb, TCA_DEF_DATA, p->datalen, p->defdata);
+-      t.install = jiffies_to_clock_t(jiffies - p->tm.install);
+-      t.lastuse = jiffies_to_clock_t(jiffies - p->tm.lastuse);
+-      t.expires = jiffies_to_clock_t(p->tm.expires);
+-      RTA_PUT(skb, TCA_DEF_TM, sizeof(t), &t);
+-      return skb->len;
+-
+-rtattr_failure:
+-      skb_trim(skb, b - skb->data);
+-      return -1;
+-}
+-
+-#define tca_use_default_ops \
+-      .dump           =       tcf_defact_dump, \
+-      .cleanup        =       tcf_defact_cleanup, \
+-      .init           =       tcf_defact_init, \
+-      .walk           =       tcf_generic_walker, \
+-
+-#define tca_use_default_defines(name) \
+-      static u32 idx_gen; \
+-      static struct tcf_defact *tcf_##name_ht[MY_TAB_SIZE]; \
+-      static DEFINE_RWLOCK(##name_lock);
+-#endif /* _NET_ACT_GENERIC_H */
+diff -Nur linux-2.6.18-rc5/include/net/addrconf.h 
linux-2.6.19/include/net/addrconf.h
+--- linux-2.6.18-rc5/include/net/addrconf.h    2006-08-28 05:41:48.000000000 
+0200
++++ linux-2.6.19/include/net/addrconf.h        2006-09-22 10:04:57.000000000 
+0200
+@@ -61,6 +61,13 @@
+ extern int                    ipv6_chk_addr(struct in6_addr *addr,
+                                             struct net_device *dev,
+                                             int strict);
++/* XXX: this is a placeholder till addrconf supports */
++#ifdef CONFIG_IPV6_MIP6
++static inline int ipv6_chk_home_addr(struct in6_addr *addr)
++{
++      return 0;
++}
++#endif
+ extern struct inet6_ifaddr *  ipv6_get_ifaddr(struct in6_addr *addr,
+                                               struct net_device *dev,
+                                               int strict);
+diff -Nur linux-2.6.18-rc5/include/net/cipso_ipv4.h 
linux-2.6.19/include/net/cipso_ipv4.h
+--- linux-2.6.18-rc5/include/net/cipso_ipv4.h  1970-01-01 01:00:00.000000000 
+0100
++++ linux-2.6.19/include/net/cipso_ipv4.h      2006-09-22 10:04:57.000000000 
+0200
+@@ -0,0 +1,246 @@
++/*
++ * CIPSO - Commercial IP Security Option
++ *
++ * This is an implementation of the CIPSO 2.2 protocol as specified in
++ * draft-ietf-cipso-ipsecurity-01.txt with additional tag types as found in
++ * FIPS-188, copies of both documents can be found in the Documentation
++ * directory.  While CIPSO never became a full IETF RFC standard many vendors
++ * have chosen to adopt the protocol and over the years it has become a
++ * de-facto standard for labeled networking.
++ *
++ * Author: Paul Moore <[EMAIL PROTECTED]>
++ *
++ */
++
++/*
++ * (c) Copyright Hewlett-Packard Development Company, L.P., 2006
++ *
++ * This program is free software;  you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY;  without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
++ * the GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program;  if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ */
++
++#ifndef _CIPSO_IPV4_H
++#define _CIPSO_IPV4_H
++
++#include <linux/types.h>
++#include <linux/rcupdate.h>
++#include <linux/list.h>
++#include <linux/net.h>
++#include <linux/skbuff.h>
++#include <net/netlabel.h>
++
++/* known doi values */
++#define CIPSO_V4_DOI_UNKNOWN          0x00000000
++
++/* tag types */
++#define CIPSO_V4_TAG_INVALID          0
++#define CIPSO_V4_TAG_RBITMAP          1
++#define CIPSO_V4_TAG_ENUM             2
++#define CIPSO_V4_TAG_RANGE            5
++#define CIPSO_V4_TAG_PBITMAP          6
++#define CIPSO_V4_TAG_FREEFORM         7
++
++/* doi mapping types */
++#define CIPSO_V4_MAP_UNKNOWN          0
++#define CIPSO_V4_MAP_STD              1
++#define CIPSO_V4_MAP_PASS             2
++
++/* limits */
++#define CIPSO_V4_MAX_REM_LVLS         256
++#define CIPSO_V4_INV_LVL              0x80000000
++#define CIPSO_V4_MAX_LOC_LVLS         (CIPSO_V4_INV_LVL - 1)
++#define CIPSO_V4_MAX_REM_CATS         65536
++#define CIPSO_V4_INV_CAT              0x80000000
++#define CIPSO_V4_MAX_LOC_CATS         (CIPSO_V4_INV_CAT - 1)
++
++/*
++ * CIPSO DOI definitions
++ */
++
++/* DOI definition struct */
++#define CIPSO_V4_TAG_MAXCNT           5
++struct cipso_v4_doi {
++      u32 doi;
++      u32 type;
++      union {
++              struct cipso_v4_std_map_tbl *std;
++      } map;
++      u8 tags[CIPSO_V4_TAG_MAXCNT];
++
++      u32 valid;
++      struct list_head list;
++      struct rcu_head rcu;
++      struct list_head dom_list;
++};
++
++/* Standard CIPSO mapping table */
++/* NOTE: the highest order bit (i.e. 0x80000000) is an 'invalid' flag, if the
++ *       bit is set then consider that value as unspecified, meaning the
++ *       mapping for that particular level/category is invalid */
++struct cipso_v4_std_map_tbl {
++      struct {
++              u32 *cipso;
++              u32 *local;
++              u32 cipso_size;
++              u32 local_size;
++      } lvl;
++      struct {
++              u32 *cipso;
++              u32 *local;
++              u32 cipso_size;
++              u32 local_size;
++      } cat;
++};
++
++/*
++ * Sysctl Variables
++ */
++
++#ifdef CONFIG_NETLABEL
++extern int cipso_v4_cache_enabled;
++extern int cipso_v4_cache_bucketsize;
++extern int cipso_v4_rbm_optfmt;
++extern int cipso_v4_rbm_strictvalid;
++#endif
++
++/*
++ * Helper Functions
++ */
++
++#define CIPSO_V4_OPTEXIST(x) (IPCB(x)->opt.cipso != 0)
++#define CIPSO_V4_OPTPTR(x) ((x)->nh.raw + IPCB(x)->opt.cipso)
++
++/*
++ * DOI List Functions
++ */
++
++#ifdef CONFIG_NETLABEL
++int cipso_v4_doi_add(struct cipso_v4_doi *doi_def);
++int cipso_v4_doi_remove(u32 doi, void (*callback) (struct rcu_head * head));
++struct cipso_v4_doi *cipso_v4_doi_getdef(u32 doi);
++struct sk_buff *cipso_v4_doi_dump_all(size_t headroom);
++struct sk_buff *cipso_v4_doi_dump(u32 doi, size_t headroom);
++int cipso_v4_doi_domhsh_add(struct cipso_v4_doi *doi_def, const char *domain);
++int cipso_v4_doi_domhsh_remove(struct cipso_v4_doi *doi_def,
++                             const char *domain);
++#else
++static inline int cipso_v4_doi_add(struct cipso_v4_doi *doi_def)
++{
++      return -ENOSYS;
++}
++
++static inline int cipso_v4_doi_remove(u32 doi,
++                                  void (*callback) (struct rcu_head * head))
++{
++      return 0;
++}
++
++static inline struct cipso_v4_doi *cipso_v4_doi_getdef(u32 doi)
++{
++      return NULL;
++}
++
++static inline struct sk_buff *cipso_v4_doi_dump_all(size_t headroom)
++{
++      return NULL;
++}
++
++static inline struct sk_buff *cipso_v4_doi_dump(u32 doi, size_t headroom)
++{
++      return NULL;
++}
++
++static inline int cipso_v4_doi_domhsh_add(struct cipso_v4_doi *doi_def,
++                                        const char *domain)
++{
++      return -ENOSYS;
++}
++
++static inline int cipso_v4_doi_domhsh_remove(struct cipso_v4_doi *doi_def,
++                                           const char *domain)
++{
++      return 0;
++}
++#endif /* CONFIG_NETLABEL */
++
++/*
++ * Label Mapping Cache Functions
++ */
++
++#ifdef CONFIG_NETLABEL
++void cipso_v4_cache_invalidate(void);
++int cipso_v4_cache_add(const struct sk_buff *skb,
++                     const struct netlbl_lsm_secattr *secattr);
++#else
++static inline void cipso_v4_cache_invalidate(void)
++{
++      return;
++}
++
++static inline int cipso_v4_cache_add(const struct sk_buff *skb,
++                                   const struct netlbl_lsm_secattr *secattr)
++{
++      return 0;
++}
++#endif /* CONFIG_NETLABEL */
++
++/*
++ * Protocol Handling Functions
++ */
++
++#ifdef CONFIG_NETLABEL
++void cipso_v4_error(struct sk_buff *skb, int error, u32 gateway);
++int cipso_v4_socket_setattr(const struct socket *sock,
++                          const struct cipso_v4_doi *doi_def,
++                          const struct netlbl_lsm_secattr *secattr);
++int cipso_v4_socket_getattr(const struct socket *sock,
++                          struct netlbl_lsm_secattr *secattr);
++int cipso_v4_skbuff_getattr(const struct sk_buff *skb,
++                          struct netlbl_lsm_secattr *secattr);
++int cipso_v4_validate(unsigned char **option);
++#else
++static inline void cipso_v4_error(struct sk_buff *skb,
++                                int error,
++                                u32 gateway)
++{
++      return;
++}
++
++static inline int cipso_v4_socket_setattr(const struct socket *sock,
++                                const struct cipso_v4_doi *doi_def,
++                                const struct netlbl_lsm_secattr *secattr)
++{
++      return -ENOSYS;
++}
++
++static inline int cipso_v4_socket_getattr(const struct socket *sock,
++                                        struct netlbl_lsm_secattr *secattr)
++{
++      return -ENOSYS;
++}
++
++static inline int cipso_v4_skbuff_getattr(const struct sk_buff *skb,
++                                        struct netlbl_lsm_secattr *secattr)
++{
++      return -ENOSYS;
++}
++
++static inline int cipso_v4_validate(unsigned char **option)
++{
++      return -ENOSYS;
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    
http://cvs.pld-linux.org/SOURCES/linux-net-2.6.19.patch?r1=1.1.2.3&r2=1.1.2.4&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to