Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[safe/jmp/linux-2.6] / include / net / netlabel.h
index 17c442a..60ebbc1 100644 (file)
 #include <linux/types.h>
 #include <linux/net.h>
 #include <linux/skbuff.h>
+#include <linux/in.h>
+#include <linux/in6.h>
 #include <net/netlink.h>
+#include <net/request_sock.h>
 #include <asm/atomic.h>
 
 struct cipso_v4_doi;
@@ -353,13 +356,37 @@ static inline void netlbl_secattr_free(struct netlbl_lsm_secattr *secattr)
 /*
  * LSM configuration operations
  */
-int netlbl_cfg_map_del(const char *domain, struct netlbl_audit *audit_info);
-int netlbl_cfg_unlbl_add_map(const char *domain,
+int netlbl_cfg_map_del(const char *domain,
+                      u16 family,
+                      const void *addr,
+                      const void *mask,
+                      struct netlbl_audit *audit_info);
+int netlbl_cfg_unlbl_map_add(const char *domain,
+                            u16 family,
+                            const void *addr,
+                            const void *mask,
                             struct netlbl_audit *audit_info);
-int netlbl_cfg_cipsov4_add_map(struct cipso_v4_doi *doi_def,
+int netlbl_cfg_unlbl_static_add(struct net *net,
+                               const char *dev_name,
+                               const void *addr,
+                               const void *mask,
+                               u16 family,
+                               u32 secid,
+                               struct netlbl_audit *audit_info);
+int netlbl_cfg_unlbl_static_del(struct net *net,
+                               const char *dev_name,
+                               const void *addr,
+                               const void *mask,
+                               u16 family,
+                               struct netlbl_audit *audit_info);
+int netlbl_cfg_cipsov4_add(struct cipso_v4_doi *doi_def,
+                          struct netlbl_audit *audit_info);
+void netlbl_cfg_cipsov4_del(u32 doi, struct netlbl_audit *audit_info);
+int netlbl_cfg_cipsov4_map_add(u32 doi,
                               const char *domain,
+                              const struct in_addr *addr,
+                              const struct in_addr *mask,
                               struct netlbl_audit *audit_info);
-
 /*
  * LSM security attribute operations
  */
@@ -380,6 +407,7 @@ int netlbl_secattr_catmap_setrng(struct netlbl_lsm_secattr_catmap *catmap,
  */
 int netlbl_enabled(void);
 int netlbl_sock_setattr(struct sock *sk,
+                       u16 family,
                        const struct netlbl_lsm_secattr *secattr);
 void netlbl_sock_delattr(struct sock *sk);
 int netlbl_sock_getattr(struct sock *sk,
@@ -387,6 +415,9 @@ int netlbl_sock_getattr(struct sock *sk,
 int netlbl_conn_setattr(struct sock *sk,
                        struct sockaddr *addr,
                        const struct netlbl_lsm_secattr *secattr);
+int netlbl_req_setattr(struct request_sock *req,
+                      const struct netlbl_lsm_secattr *secattr);
+void netlbl_req_delattr(struct request_sock *req);
 int netlbl_skbuff_setattr(struct sk_buff *skb,
                          u16 family,
                          const struct netlbl_lsm_secattr *secattr);
@@ -401,19 +432,62 @@ void netlbl_skbuff_err(struct sk_buff *skb, int error, int gateway);
 void netlbl_cache_invalidate(void);
 int netlbl_cache_add(const struct sk_buff *skb,
                     const struct netlbl_lsm_secattr *secattr);
+
+/*
+ * Protocol engine operations
+ */
+struct audit_buffer *netlbl_audit_start(int type,
+                                       struct netlbl_audit *audit_info);
 #else
 static inline int netlbl_cfg_map_del(const char *domain,
+                                    u16 family,
+                                    const void *addr,
+                                    const void *mask,
                                     struct netlbl_audit *audit_info)
 {
        return -ENOSYS;
 }
-static inline int netlbl_cfg_unlbl_add_map(const char *domain,
+static inline int netlbl_cfg_unlbl_map_add(const char *domain,
+                                          u16 family,
+                                          void *addr,
+                                          void *mask,
                                           struct netlbl_audit *audit_info)
 {
        return -ENOSYS;
 }
-static inline int netlbl_cfg_cipsov4_add_map(struct cipso_v4_doi *doi_def,
+static inline int netlbl_cfg_unlbl_static_add(struct net *net,
+                                             const char *dev_name,
+                                             const void *addr,
+                                             const void *mask,
+                                             u16 family,
+                                             u32 secid,
+                                             struct netlbl_audit *audit_info)
+{
+       return -ENOSYS;
+}
+static inline int netlbl_cfg_unlbl_static_del(struct net *net,
+                                             const char *dev_name,
+                                             const void *addr,
+                                             const void *mask,
+                                             u16 family,
+                                             struct netlbl_audit *audit_info)
+{
+       return -ENOSYS;
+}
+static inline int netlbl_cfg_cipsov4_add(struct cipso_v4_doi *doi_def,
+                                        struct netlbl_audit *audit_info)
+{
+       return -ENOSYS;
+}
+static inline void netlbl_cfg_cipsov4_del(u32 doi,
+                                         struct netlbl_audit *audit_info)
+{
+       return;
+}
+static inline int netlbl_cfg_cipsov4_map_add(u32 doi,
                                             const char *domain,
+                                            const struct in_addr *addr,
+                                            const struct in_addr *mask,
                                             struct netlbl_audit *audit_info)
 {
        return -ENOSYS;
@@ -450,7 +524,8 @@ static inline int netlbl_enabled(void)
        return 0;
 }
 static inline int netlbl_sock_setattr(struct sock *sk,
-                                    const struct netlbl_lsm_secattr *secattr)
+                                     u16 family,
+                                     const struct netlbl_lsm_secattr *secattr)
 {
        return -ENOSYS;
 }
@@ -468,6 +543,15 @@ static inline int netlbl_conn_setattr(struct sock *sk,
 {
        return -ENOSYS;
 }
+static inline int netlbl_req_setattr(struct request_sock *req,
+                                    const struct netlbl_lsm_secattr *secattr)
+{
+       return -ENOSYS;
+}
+static inline void netlbl_req_delattr(struct request_sock *req)
+{
+       return;
+}
 static inline int netlbl_skbuff_setattr(struct sk_buff *skb,
                                      u16 family,
                                      const struct netlbl_lsm_secattr *secattr)
@@ -495,6 +579,11 @@ static inline int netlbl_cache_add(const struct sk_buff *skb,
 {
        return 0;
 }
+static inline struct audit_buffer *netlbl_audit_start(int type,
+                                               struct netlbl_audit *audit_info)
+{
+       return NULL;
+}
 #endif /* CONFIG_NETLABEL */
 
 #endif /* _NETLABEL_H */